1 / 14
文档名称:

dts入门.doc

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

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

分享

预览

dts入门.doc

上传人:511709291 2022/1/14 文件大小:62 KB

下载得到文件列表

dts入门.doc

文档介绍

文档介绍:word
word
1 / 14
word
一、dts产生原因2
二、dts根本知识2
dts加载过程2
dts描述信息3
dts组成结构示例3
dts语法4
patible 6
nameunit-address6
reg address-cells size-cells6
interrupt9
三、dts与驱动10
四、具体案例11
gpio12
interrupt12
pinctl12
clk13
dts入门
本文目标是了解dts根本语法,可以尝试去看内核dts中的文件,follow去配置。
一、dts产生原因
DTS即Device Tree Source 设备树源码, Device Tree是一种描述硬件的数据结构,它起源于 OpenFirmware (OF)。
它替代arch/arm/plat-xxx和arch/arm/mach-xxx中的板级spec代码,便于code管理。
ARM平台的相关code相关规X调整:
1、ARM的核心代码仍然保存在arch/arm目录下
2、ARM SOC core architecture code保存在arch/arm目录下
3、ARM SOC的周边外设模块的驱动保存在drivers目录下
4、ARM SOC的特定代码在arch/arm/mach-xxx目录下
5、ARM SOC board specific的代码被移除,由Device Tree机制来负责传递硬件拓扑和硬件资源信息。
本质上,Device Tree改变了原来用hardcode方式将HW配置信息嵌入到内核代码的方法,改用bootloader传递一些参数。
如果我们认为kernel是一个black box,那么其输入参数应该包括:
对于嵌入式系统,在系统启动阶段,bootloader会加载内核并将控制权转交给内核,此外,还需要把上述的三个参数信息传递给kernel,以便kernel可以有较大的灵活性。在linux kernel中,Device Tree的设计目标就
是如此。
二、dts根本知识
dts加载过程
如果要使用Device Tree,首先用户要了解自己的硬件配置和系统运行参数,并把这些信息组织成Device Tree source file。通过DTC〔Device Tree piler〕,可以将这些适合人类阅读的Device Tree source file变成适合机器处理的Device Tree binary file〔有一个更好听的名字,DTB,device tree blob〕。在系统启动的时候,boot program〔例如:firmware、bootloader〕可以将保存在flash中的DTB copy到内存〔当然也可以通过其他方式,例如可以通过bootloader的交互式命令加载DTB,或者firmware可以探测到device的信息,组织成DTB保存在内存中〕,并把DTB的起始地址传递给client program〔例如OS kernel,bootloader或者其他特殊功能的程序〕。对于计算机系统〔puter system〕,一般是firmware->bootloader->OS,对于嵌入式系统,一般是bootloader->OS。
在高通msm8992平台:
,获得nPlatform和nSubtype,如果没有CDT分区,那么就使用代码里配置的cdt,存入共享内存;
word
word
2 / 14
word
lk将从共享内存中获得nPlatform和nSubtype进展相应处理,确定dtb entry,然后选择一个对应的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、总线、设备组