对相关的硬件描述保存成一个单独的dts文件,可以供使用来引用并将文件的扩展名变成dtsi(i表示include)
各家ARM vendor也会共用一些硬件定义信息,这个文件就是skeleton.dtsi。
DTS+DTSI>>DTC>>DTB 设备启动bootloader将dtb文件加载到内存上,kernal将内存上的信息来配置硬件。
每个node都只有一个parent。一个device tree文件中只能有一个root node。
device tree的基本单元是node。
一些特殊的节点
chosen node主要用来描述由系统firmware(固件)指定的runtime parameter(运行时参)
向bootloader传递参数
aliases node 用于重命名节点,方便访问节点。
memory node 用于是所有设备树文件的必备节点,它定义了系统物理内存的layout。
属性(property)值标识了设备的特性,它的值(value)是多种多样的:
value有三种情况:
1)属性值是text string或者string list,用双引号表示。例如device_type = "memory"
2)属性值是32bit unsigned integers,用尖括号表示。例如#size-cells =
3)属性值是binary data,用方括号表示。例如binary-property = [0x01 0x23 0x45 0x67]
fdtdump的工具,可以dump dtb文件查看信息。
DTBO device tree blob overlay 设备树中的复用部分。
在加载过程中 ,将main dtb 加载到内存中,再将overlay dtb加载到内存中,将dtb和dtbo合并成DT,交给kernal 处理。