Elfboard-ELF开发板 Linux学习笔记(八)—— 设备树浅学笔记

Elfboard-ELF开发板 Linux学习笔记(八)—— 设备树浅学笔记

设备树(Device Tree)是一种描述硬件资源的数据结构,它由 uboot 传递给 Linux 内核,被内核解析,内核根据设备树中的硬件描述信息加载利用相应驱动资源。在引入设备树之前,Linux 内核中充斥着大量的用于描述板级硬件信息的文件,拥有不同硬件资源的板卡 ,都有其对应的板级文件或者冗余文件,随着 Linux 内核支持的板卡越来越多,板级文件也越来越多。

一、设备树的组成

设备树 Device Tree 由一系列被命名的节点(node)和属性(property)组成,而节点本身可包含子节点。所谓属性,其实就是成对出现的 name value。在设备树中,可描述的信息包括:

  • CPU 的数量和类别;
  • 内存基地址和大小;
  • 总线和桥;
  • 外设连接;
  • 中断控制器和中断使用情况;
  • GPIO 控制器和 GPIO 使用情况;
  • Clock 控制器和 Clock 使用情况;
    这种以树状节点的方式描述一个设备的各种硬件信息:CPU、GPIO、时钟、中断、内存等,形成类似文本文件,很好的解决了这些问题。

dts、dtb和dtsi

  • dts:Device Tree Source,设备树源文件,是纯文本文件,用于描述硬件信息。
  • dtb:Device Tree Blob,设备树二进制文件,由设备树源文件编译而来。
  • dtsi:Device Tree Include,设备树头文件,用于被其他设备树文件包含。

二、设备组织架构

1.节点

命名方式:node-name@unit-address:

  • node-name:节点名称,由字母、数字、下划线、@和:组成,不能以数字开头。
  • unit-address:设备地址,由字母、数字、下划线、@和:组成,不能以数字开头。地址主要是为了区分其他的节点以保证节点的唯一性,节点地址是非必须的,可以省略。

2.属性

属性是节点的一个组成部分,用于描述节点的信息。属性由 name 和 value 组成,name 表示属性名称,value 表示属性值。
一般属性值分为三种:

  • 字符串:使用双引号""括起来。

  • byte数组型:用方括号[]括起来,每个元素用逗号分隔。

  • u32类型:使用尖括号<>括起来,每个元素用逗号分隔。

    常见的属性有:

  • compatible:compatible 是兼容的意思,即该设备可被一个或者多个驱动匹配.

  • model:model 属性用于描述设备型号。

  • #address-cells,#size-cells,reg:
    reg 属性用来表示节点地址资源的,属性值一般是寄存器的起始地址及地址之后连续的空间长度。
    #address-cells,#size-cells 分别表示子节点中 reg 的地址以及地址之后连续的空间长度用几个 32bit 数据表示。

  • status:status 属性用于描述设备的状态,属性值可以是“okay”、“disable”、“fail”、“fail-sss”等。

3.标签

标签不是必须的,定义标签主要为了方便在其他地方对该节点进行引用的时候,不必写该节点的全路径,直接使用标签即可。如在 node@0 的子节点 child-node@0 的第三个属性就引用了 node1(&node1)。

三、开发板使用的设备树

开发板使用的设备树:ElfBoard 使用的设备树命名为 imx6ull-elf1-emmc.dts,是基于 NXP 官方 evk 板子的设备树 imx6ull-14x14-evk.dts 修改而来。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

君逸~~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值