[笔记分享] [DT] device tree之结构

这篇笔记详细介绍了设备树(Device Tree)的概念,包括其在MSM8X39平台上的应用,以及在Android 4.4系统中的结构。设备树以节点方式描述设备,每个节点包含属性和值对。内容涵盖节点命名规则、路径命名和属性详情,揭示了如何通过节点路径唯一标识设备,并描述了属性名称和值的构成。
摘要由CSDN通过智能技术生成

Platform: MSM8X39
OS: Android4.4

Overview:

DT是以节点node的方式来描述的,每个node有property/value pairs的方式来描述device。除了root node没有parent之外,每个Node只有一个parent node。
如下是官方的一个简单例子,包含了platform, cpu, memory.

这里写图片描述

实际Qualcomm用法如下:
[msm8939-pinctrl.dtsi]

这里写图片描述

大概可以猜测出来用的是Qualcomm的msm8939平台,ID是239或者241,可以boot的cpu有0/1/4/5/7.
前图的memory和chosen的内容会从lk添加之后传递到kernel.


结构:

a. Node Names:
命名规则:

node-name@unit-address

node-name是node的名字,1~31个字符,可用的字符如下,大小写敏感。

这里写图片描述

unit-address指定了name所属的bus type. 能用字符也和node-name一样。 Unit-address的值和格式和设备有关,如果是cpu,那就从0开始,后面累加,如果是具体涉笔,那么必须和reg property node中的第一个address(也就是寄存器地址)要匹配,如果没有reg property, @和unit-address就要删除掉,

root node 没有 node-name或者unit-address,它用”/”来区别。

例子:

这里写图片描述

Node-name是cpu, ethernet, unit-address是0/1(cpu编号), fe001000/fe00200(寄存器地址)。

b. Path Names
通过从root node开始指定一个full path, 此node就是唯一的了。一级级往下寻找,就能找到对应的node了。

命名规则:

/node-name-1/node-name-2/node-name-N

例如之前的cpu1就可以这样表示:

/cpus/cpu@1

如果full path直接能找到对应node,那么unit-address可以删除。

c. Properties
每个node使用property来表述自己的特性, properties由name和value组成。

1.Property name:
Property name可以是1~31个字符,由如下字符组成:
这里写图片描述

非标准的property name应该指定一个前缀来保证name的唯一,可以用公司名字,组织号之类, 如“qcom, pin” 这样:

这里写图片描述

2.Property value:
此value可以是空的,也可以是多个bytes,value可以有不同的类型,见下表。

这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值