1 / 16
文档名称:

dts入门.docx

格式:docx   大小:77KB   页数:16页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

dts入门.docx

上传人:森林书屋 2022/5/9 文件大小:77 KB

下载得到文件列表

dts入门.docx

文档介绍

文档介绍:实用标准文案
一、 dts 产生原因 2
二、 dts 基本知识 2
dts 加载过程 2
dts 描述信息 3
dts 组成结构示例 4
dts 语法 4
.

在高通 msm8992平台:
sbl 将烧写在 emmc中的
进行读取和处理,获得
nPlatform
和 nSubtype ,如果没有 CDT分区,那么
就使用代码里配置的
cdt ,存入共享内存;
精彩文档
实用标准文案
lk 将从共享内存中获得 nPlatform 和 nSubtype 进行相应处理, 确定 dtb entry ,然后选择一个对应的 dtb( 所
有 dtb 保存在 中) 从 emmc中读进内存地址 hdr->tags_addr ,这个参数会传递给 kernel ;
kernel 通过传入的 dtb 地址进行设备的创建。
dts 描述信息
Device Tree 由一系列被命名的结点( node )和属性( property )组成,而结点本身可包含子结点。所谓属
性,其实就是成对出现的 name和 value 。在 Device Tree 中,可描述的信息包括 (原先这些信息大多被 hard code
到 kernel 中):
CPU的数量和类别内存基地址和大小总线和桥
外设连接
中断控制器和中断使用情况
GPIO控制器和 GPIO使用情况 Clock 控制器和 Clock 使用情况
它基本上就是画一棵电路板上
CPU、总线、设备组成的树,
Bootloader
会将这棵树传递给内核,然后内核可
以识别这棵树,并根据它展开出
Linux 内核中的 platform_device
、i2c_client 、spi_device
等设备,而这些设
备用到的内存、 IRQ 等资源,也被传递给了内核,内核会将这些资源绑定给展开的相应的设备。
是否 Device
Tree 要描述系统中的所有硬件信息?答案是否定的。基本上,那些可以动态探测到的设备是不
需要描述的,例如
USBdevice
。不过对于 SOC上的 usb host controller
,它是无法动态识别的,需要在device
tree 中描述。同样的道理,在
computer system
中, PCI device 可以被动态探测到,不需要在
device tree

描述,但是 PCI bridge
如果不能被探测,那么就需要描述之。
.dts
文件是一种 ASCII 文本格式的 Device Tree 描述,此文本格式非常人性化,适合人类的阅读****惯。基
本上,在 ARMLinux 在,一个 .dts
文件对应一个
ARM的 machine ,一般放置在内核的
arch/arm/boot/dts/
目录 。
由于一个 SoC可能对应多个 machine(一个 SoC可以对应多个产品和电路板)
,势必这些 .dts
文件需包含许多共
同的部分, Linux
内核为了简化,把
SoC 公用的部分或者多个
machine 共同的部分一般提炼为
.dtsi ,类似于 C
语言的头文件。其他的
machine 对应的 .dts 就 include 这个 .dtsi 。
譬 如 在 arch/arm/boot/dts/qcom/
目 录 下 , 高 通 的 很 多 .dtsi
都 include

或 者


正常情况下所有的
dts 文件以及 dtsi
文件都含有一个根节点” / ”,这样 include
之后就会造成有很多个 “根
节点”。
按理说 device tree
既然是一个树,那么其只能有一个根节点,所有其他的节点都是派生于根节点的
child node
。其实 Device Tree Compiler
会对 DTS的 node 进行合并,最终生成的
DTB中只有一个 root node.
device tree
的基本单元是 n