它基本上就是画一棵电路板上CPU、总线、设备组成的树,uboot在启动的时候会将这棵树传递给内核,然后内核可以识别这棵树,并根据它展开出Linux内核中的platform_device、i2c_client、spi_device等设备,而这些设备用到的内存、IRQ等资源,也被传递给了内核,内核会将这些资源绑定给展开的相应的设备。
通常由.dts文件以文本方式对系统设备树进行描述,经过Device Tree Compiler(dtc)将dts文件转换成二进制文件binary device tree blob(dtb),.dtb文件可由Linux内核解析,有了device tree就可以在不改动Linux内核的情况下,对不同的平台实现无差异的支持,硬件有变动时不需要重新编译内核或驱动程序,只需更换相应的dts文件即可。dtsi文件被dts文件包含引用,这类似于C语言C文件include包含.h文件,对于同一个节点的设置情况,dts中的配置会覆盖dtsi中的配置。