10天阅读挑战--DAY3---设备树规范

1) 引言

       Linux作为当前流行的操作系统,其在驱动的架构上面也是不断的进步和完善。在早期的Linux内核和ARM架构中并没有采用设备树, 因此Liunx驱动代码中包括大量冗余代码来描述对应平台的板信息,尤其是ARM架构平台。随着移动智能设备的迅猛发展,ARM架构芯片每年推出数百款,从而造成Linux内核板信息过多,使得linux内核虚胖。
       当 Linux之父 linus看到 ARM社区向 社区向 Linux内核添加了大量“无用”、冗余的板级信息文件,不禁发出了一句“ This whole ARM thing is a f*cking pain in the ass”。从此以后 ARM社区就引入了PowerPC等架构已经采用的设备树(Flattened Device Tree)来解决这个问题。

2) 设备树官方信息

官网: https://www.devicetree.org/
截止当前规范版本:v0.3

3) DAY3 笔记

2.3.2 型号

属性名称:model
值类型:
描述:
型号属性值为 ,其代表该器件的设备制造商型号。
推荐格式: “manufacturer, model”, manufacturer是描述制造商名称的字符串,model指定型号。
例如:
model = “fsl, MPC8439EMITX”;

2.3.3 phandle

属性名称: phandle
值类型:
描述:
phandle属性使用唯一的数字代表设备树的一个节点。phandle属性值由其他关联属性节点引用。
例如:
pic@10000000 {
phandle = <1>;
interrupt-controller;
};
phandle值Wie1,其他设备节点可使用值为1的phandel引用该pic节点
another-device-node {
interrupt-parent = <1>;
};
注: 设备树历史版本可能包含该属性的一个过期属性linux,phandle.为兼容,如phandle属性不存在,客户端程序需支持linux,。
注: DTS的大多数设备树不会包含显示Phandle属性。当DTS编译成DTB格式是,DTC工具自动插入phandle属性。

2.3.4 状态

属性名称: status
值类型:
描述:
status属性表示器件的运行状态。表2.4例出有限值
在这里插入图片描述

2.3.5 #address-cells 和size-cells

属性名称: #address-cells, #size-cells
值类型:
描述:
#address-cells和#size-cells属性可用于任何包含子节点的设备树节点,同时描述子设备树节点如何寻址。#address-cells属性定义数值,用于编码子节点寄存器属性的地址域。#size-cells属性定义数值,用于编码子节点寄存器属性的大小。
#address-cells和#size-cells属性非从设备树的前驱这,他们应该显示定义。
兼容DTSpec的启动程序,应提供所有拥有后继节点的节点的#address-cells和#size-cells。
如果缺失,客户端程序应加上#address-cells值为2,#size-cells值为1。
例程:
soc {
#address-cells = <1>;
#size-cells = <1>;
serial@4600 {
compatible = “nsl6550”;
reg = <0x4600 0x100>
clock-frequency = <0>;
interrupts = <0xA 0x8>
interrupt-parent = <&ipic>;
};
};

4) 关注我

                                    ****我的公众号****

我的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值