1 根节点
dts 文件中必须有一个根节点
/dts-v1/; / { model = "SMDK24440"; compatible = "samsung,smdk2440"; #address-cells = <1>; #size-cells = <1>; };
根节点中必须有这些属性:
#address-cells // 在它的子节点的 reg 属性中, 使用多少个 u32 整数来描述地址(address) #size-cells // 在它的子节点的 reg 属性中, 使用多少个 u32 整数来描述大小(size) compatible // 定义一系列的字符串, 用来指定内核中哪个machine_desc可以支持本设备 // 即这个板子兼容哪些平台 // uImage : smdk2410 smdk2440 mini2440 ==> machine_desc model // 咱这个板子是什么 // 比如有 2 款板子配置基本一致, 它们的 compatible 是一样的 // 那么就通过 model 来分辨这 2 款板子
2 CPU节点
一般不需要我们设置,在 dtsi 文件中都定义好了
3 memory节点
芯片厂家不可能事先确定你的板子使用多大的内存,所以 memory 节点需要板厂设置,比如:
memory { reg = <0x80000000 0x20000000>;//地址,长度 };
4 chosen节点
我们可以通过设备树文件给内核传入一些参数,这要在 chosen 节点中设置 bootargs 属性:
chosen { bootargs = "noinitrd root=/dev/mtdblock4 rw init=/linuxrc console=ttySAC0,115200"; };