首页 > 技术文章 > 设备树常用节点

Rainingday 2020-03-18 15:33 原文

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";
};

 

 

 

推荐阅读