设备树简介

Device Tree是一种描述硬件的数据结构,

DTS(Device Tree Source)就是用来描述目标板硬件信息的源文件。

设备树基本数据格式

device tree是一个简单的节点和属性树,属性是键值对,节点可以包含属性和子节点。下面是一个.dts格式的简单设备树

/ {
node1 {
    a-string-property = "A string";
    a-string-list-property = "first string", "second string";
    a-byte-data-property = [0x01 0x23 0x34 0x56];
    child-node1 {
        first-child-property;
        second-child-property = <1>;
        a-string-property = "Hello, world";
    };
    child-node2 {
    };
};
node2 {
    an-empty-property;
    a-cell-property = <1 2 3 4>; /* each number (cell) is a uint32 */
    child-node1 {
    };
};
};

编译设备树后,可以使用

dtc -I dtb -O dts xxx.dtb -o xxx.dts

来查看实际生成的设备树文件

在运行系统时,/sys/firmware/devicetree 可以查看实际使用的是设备树

设备树常用操作

删除属性
 1/ {
 2    ... ...
 3    demo1: demo1 {
 4        compatible = "demo1";
 5        property1 = <1>;
 6        property2;
 7        property3 = <2>;
 8        property4;
 9    };
10};
11
12&demo1 {
13    /delete-property/property2;
14    /delete-property/property3;
15};
删除节点
 memory_DDR1@c0000000 {
         device_type = "memory";
         reg = <0 0xc0000000 0 0x40000000>;
     };


 / {
     /delete-node/ memory_DDR1@c0000000;
 };

设备树实例解析

下面解析rv1126设备树实例