① #address-cells、#size-cells 。cell 指一个 32 位的数值, address-cells:address 要用多少个 32 位数来表示;size-cells:size 要用多少个 32 位数来表示。
② compatible 表示可以“兼容”什么
③ model 准确地定义这个硬件是什么
④ status 明确此设备的状态
⑤ reg 用来表示寄存器地址 也可以用来描述一段空间
⑥ name 表示节点的名字 在跟 platform_driver 匹配时,优先级最低。
⑦ device_type 表示节点的类型跟 platform_driver 匹配时,优先级为中。
示例1:(涉及①address-cells和⑤ reg)
下例中,address-cells 为 1,所以 reg 中用 1 个数来表示地址,即用 0x80000000 来表 示地址;size-cells 为 1,所以 reg 中用 1 个数来表示大小,即用 0x20000000 表示大小: / { #address-cells = <1>; #size-cells = <1>; memory { reg = <0x80000000 0x20000000>; }; };
示例2 :涉及② compatible ③ model
/ { compatible = "samsung,smdk2440", "samsung,mini2440"; model = "jz2440_v3"; };
它表示这个单板,可以兼容内核中的“smdk2440”,也兼容“mini2440”。从 compatible 属性中可以知道它兼容哪些板,但是它到底是什么板?用 model 属性来明确。
示例3:涉及④ status
&uart1 { status = "disabled"; };
dtsi 文件中定义了很多设备,但是在你的板子上某些设备是没有的。这时你可以给这个设备节点添加一个 status 属性,设置为“disabled”.
Value | Description |
"okay" | 设备正常运行 |
"disabled" | 设备不可操作,但是后面可能恢复工作 |
"fail" | 发生了严重错误,需修复 |
"fail-sss" | 发生了严重错误,需要修复;sss表示错误信息 |