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))

总图

转载于:https://www.cnblogs.com/linhaostudy/p/8682589.html

Linux 设备树的解释 - DTB文件格式【转】相关推荐

  1. Linux设备树学习2 - DTB文件格式

    一. DTB文件简介 DTB文件是由DTS文件通过dtc命令编译生成的二进制文件.DTS文件不能直接被内核解析,需要编译成DTB文件才可以直接被内核识别并解析使用的. 二. DTB文件内容布局 从上图 ...

  2. [ZedBoard移植嵌入式Linux教程(9,10)]编译设备树dts为dtb,制作根文件系统

    九.编译设备树dts为dtb 前面的linux内核源码目录中已经包含了设备树编译器Device Tree Compiler(dtc),在目录arch/arm/boot/dts/目录下. 将前面生成的x ...

  3. Linux设备树 .dtb文件,查看“第二课:设备树的规范(dts和dtb)”的源代码

    因为以下原因,您没有权限编辑本页: 您所请求的操作仅限于该用户组的用户使用:用户 您可以查看与复制此页面的源代码.= 第01节_DTS格式= dts文件通过编译生成dtb格式文件 [[File:ldd ...

  4. 【正点原子MP157连载】第二十三章 Linux设备树-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7

    1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...

  5. Linux设备树是什么?

    众所周知操作系统一直在不断的更新和发展,而在Linux驱动的架构上面也是不断的进步和完善.在早期的Linux内核和ARM架构中并没有采用设备树.在没有设备树的时候Linux是通过大量的arch/arm ...

  6. 韦东山 IMX6ULL和正点原子_「正点原子Linux连载」第四十三章Linux设备树(一)

    1)实验平台:正点原子Linux开发板 2)摘自<正点原子I.MX6U嵌入式Linux驱动开发指南> 关注官方微信号公众号,获取更多资料:正点原子 前面章节中我们多次提到"设备树 ...

  7. 【正点原子Linux连载】第四十三章 Linux设备树 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  8. linux设备树dts文件详解

    1.什么是设备树? (1)设备树(dt:device tree)是linux内核采用的参数表示和传递技术,在系统引导启动阶段进行设备初始化的时候,将设备树中描述的硬件信息传递给操作系统: (2)dts ...

  9. linux设备树笔记__基于msm8x10的基本分析

    由文章,linux设备树笔记__dts基本概念及语法,我们知道了基本概念,知道了大概的设备树节点及其属性,而节点下的属性大多是自定义,除了保留的几个属性,大多从.dts是无法知道其用途的,这个就需要看 ...

  10. 我眼中的Linux设备树(五 根节点)

    五 根节点 一个最简单的设备树必须包含根节点,cpus节点,memory节点.根节点的名字及全路径都是"/",至少需要包含model和compatible两个属性.model属性我 ...

最新文章

  1. 读书笔记 — Java高并发程序设计 — 第三章 — 锁
  2. AngularJS基于MVC的复杂操作案例
  3. MySQL排序查询示例
  4. C++|Qt工作笔记-C++获取当前系统时间,Qt获取当前系统时间及各标准间转化
  5. mysql设置账号过期
  6. 从程序员到项目经理(六):程序员加油站 -- 懂电脑更要懂人脑
  7. elasticsearch组合查询
  8. Linux 命令(92)—— locate 命令
  9. ftp服务器不能读取文件内容_使用file_get_contents()函数读取文件内容
  10. 转载--数据库sql取整操作
  11. [js]js设计模式-构造函数模式
  12. POI 读取 Excel 文件(2003版本与2007版本的差异之处)
  13. [APIO2014]序列分割
  14. 别只看钱:赛门铁克46.5亿美元现金收购Blue Coat为哪般?
  15. 计算机英语单词练习一
  16. windows server 2008 r2集成USB3.0
  17. js的tree数组对象扁平化思否_js中数组扁平化处理
  18. kaggle点赞最多的 泰坦尼克号数据竞赛模型融合方法(附代码)
  19. 第2章 C语言的赋值运算符、复合运算符与逗号运算符 (十一)
  20. 多源异构航班航迹数据流实时融合方法研究

热门文章

  1. jdk动态代理为什么只能为接口生成代理类?
  2. Spring中的bean是否是线程安全的
  3. 【译】给小白准备的Web架构基础知识
  4. Dynamics CRM 2013 初体验(5):Business Rule
  5. 2017极客大奖评选进行时:年度十大消费科技产品花落谁家
  6. 《UNIX网络编程 卷1:套接字联网API(第3版)》——2.13 常见因特网应用的协议使用...
  7. NHibernate 的 ID 标识选择器
  8. 【笔记】Windows Sublime text安装json格式化插件SublimePrettyJson
  9. 几点预防内存泄露的小建议
  10. Luogu2279[HNOI2003] 消防局的设立