zoukankan      html  css  js  c++  java
  • Linux 设备树的解释

    https://blog.csdn.net/cc289123557/article/details/51782449

    1、dtb文件格式

     dtb文件的格式如下图 :

    NOTE:不同部分顺序可能不一样

    2、文件头boot_param_header

     1 struct boot_param_header {
     2         u32     magic;----------------用于标dtb文件头,等于OF_DT_HEADER=“0xd00dfeed 3         u32     totalsize;------------dtb文件大小
     4         u32     off_dt_struct;--------DT structure偏移
     5         u32     off_dt_strings;-------DT strings偏移
     6         u32     off_mem_rsvmap;-------memory reserve map偏移
     7         u32     version;--------------版本号
     8         u32     last_comp_version;----兼容最早版本号
     9 
    10         /* version 2 fields below */
    11         u32     boot_cpuid_phys;------physical CPU id
    12 
    13         /* version 3 fields below */
    14         u32     size_dt_strings;------size of the strings block
    15 
    16         /* version 17 fields below */
    17         u32 size_dt_struct;-----------size of the DT structure block
    18 };

    3、保留内存memory reserve map

    这段保存的是一个保留内存映射列表,每个表由一对64位的物理地址和大小组成

    4、device-tree structure&strings

    由于某些属性(比如compatible)在大多数节点下都会存在,为了减少dtb文件大小,就需要把这些属性字符串只指定一个存储位置即可,这样每个节点的属性只需要按照位置找到属性字符串的位置就可以得到是哪个属性,所以dtb把device-tree strings单独列出来存储,下图是device-tree structure的格式,节点嵌套节点 

     

    上面的宏定义如下

     1 #define FDT_MAGIC   0xd00dfeed  /* 4: version, 4: total size */
     2 #define FDT_TAGSIZE sizeof(uint32_t)
     3 
     4 #define FDT_BEGIN_NODE  0x1     /* Start node: full name */
     5 #define FDT_END_NODE    0x2     /* End node */
     6 #define FDT_PROP    0x3     /* Property: name off,
     7                        size, content */
     8 #define FDT_NOP     0x4     /* nop */
     9 #define FDT_END     0x9
    10 
    11 #define FDT_V1_SIZE (7*sizeof(uint32_t))
    12 #define FDT_V2_SIZE (FDT_V1_SIZE + sizeof(uint32_t))
    13 #define FDT_V3_SIZE (FDT_V2_SIZE + sizeof(uint32_t))
    14 #define FDT_V16_SIZE    FDT_V3_SIZE
    15 #define FDT_V17_SIZE    (FDT_V16_SIZE + sizeof(uint32_t))

    总图 

  • 相关阅读:
    一名中国联络官的来信
    中国女性出席1899年伦敦世界妇女大会
    曾在九江同文任教的中外人士若干
    金韵梅大夫略传
    为何高于四次的方程没有根式解?
    日军进攻九江的影像资料
    美以美会在九江
    九江同文中学与宝洁公司的甘布尔家族
    九江生命活水医院
    微信小程序获取用户信息签名解密C#
  • 原文地址:https://www.cnblogs.com/linhaostudy/p/8682589.html
Copyright © 2011-2022 走看看