设备树在Linux系统的属性

设备树源文件

设备树源文件扩展名为.dts,我们在前面移植 Linux 的时候却一直在使用.dtb 文件,那么 DTS 和 DTB 这两个文件是什么关系呢? DTS 是设备树源码文件, DTB 是将 DTS 编译以后得到的二进制文件。将.dts 编译为.dtb 需要什么工具呢?需要用到 DTC 工具! DTC 工具源码在 Linux 内核的 scripts/dtc 目录下,scripts/dtc/Makefile 文件内容如下:

always := $(hostprogs-y)

dtc-objs:= dtc.o flattree.o fstree.o data.o livetree.o treesource.o \
		srcpos.o checks.o util.o
dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o
......

DTC 工具依赖于 dtc.c、 flattree.c、 fstree.c 等文件,最终编译并链接出 DTC 这个主机文件。如果要编译 DTS 文件的话只需要进入到 Linux 源码根目录下,然后执行如下命令:

make all

或者

make dtbs

“make all”命令是编译 Linux 源码中的所有东西,包括 zImage, .ko 驱动模块以及设备树,如果只是编译设备树的话建议使用“make dtbs”命令。

---------------------------------------------------------------

设备树内容属性介绍

设备树是采用树形结构来描述板子上的设备信息的文件,每个设备都是一个节点,叫做设备节点,每个节点都通过一些属性信息来描述节点信息,属性就是键—值对。

1.节点名称

node-name@unit-address  
//node-name:节点名字 
//unit-address:表示寄存器基地址或设备地址,如下serial@101f0000
label:node-name@unit-address       
 // 引入label目的就是为了方便便访问节点,可以直接通过&label来访问这个
serial@101f0000 {  
	compatible = "arm,pl011";  
	reg = <0x101f0000 0x1000 >;  
	interrupts = < 1 0 >;  

2.compatible 属性
compatible 属性值为字符串列表,⽤于将设备和驱动绑定起来,字符串列表⽤于选择设备所要使用的驱动程序

"manufacturer,model"     //anufacturer :厂商  model:模块对应的驱动名

一般驱动程序文件中都会有一个 OF 匹配表,此 OF 匹配表保存着一些 compatible 值,如果设备节点的 compatible 属性值和 OF 匹配表中的任何一个值相等,那么就表示设备可以使用这个驱动。

3.model 属性
model 属性:描述设备模块信息,比如名字什么的,如:model = “wm8960-audio”。

4.status 属性
status 属性:描述设备状态,如:okay - 设备可操作,disabled - 设备不可操作

5.#address-cells 和 #size-cells 属性
#address-cells 和 #size-cells 描述⼦节点应如何编写 reg 属性值,一般 reg 属性是某个外设的寄存器地址范围信息。

#address-cells:代表reg属性起始地址的字长,32位机的1字长为32位
#size-cells :代表reg属性 地址长度的字长
reg:描述地址空间资源信息
reg = <0x02200000 0x100000>; 起始地址为0x02200000,地址长度为0x100000


6.ranges 属性
ranges它是一个地址映射/转换表,如果 ranges 属性值为空值,说明子地址空间和父地址空间完全相同,不需要进行地址转换。

7.aliases 节点
用 aliases 节点给多个同类型的控制器分配唯一编号,便于Linux内核区分。在Linux启动时会解析aliases节点。

8.chosen 节点
chosen 并不是一个真实的设备,主要用于将 uboot 中的 bootargs 环境变量值传递给 Linux 内核作为命令行参数

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肖爱Kun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值