- 62
- 0
- 约2.61万字
- 约 19页
- 2016-03-13 发布于湖北
- 举报
ARM Linux 3.x的设备树(Device Tree)
1.?? ?ARM Device Tree起源
Linus Torvalds2011年3月17日的ARM Linux邮件列表宣称“this whole ARM thing is a f*cking pain in the ass”,引发ARM Linux社区的地震,随后ARM社区进行了一系列的重大修正。在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码,相当多数的代码只是在描述板级细节,而这些板级细节对于内核来讲,不过是垃圾,如板上的platform设备、resource、i2c_board_info、spi_board_info以及各种硬件的platform_data。读者有兴趣可以统计下常见的s3c2410、s3c6410等板级目录,代码量在数万行。社区必须改变这种局面,于是PowerPC等其他体系架构下已经使用的Flattened Device Tree(FDT)进入ARM社区的视野。Device Tree是一种描述硬件的数据结构,它起源于 OpenFirmware (OF)。在Linux 2.6中,ARM架构的板极硬件细节过多地被硬编码在arch/arm/plat-xxx和arch/arm/mach-xxx,采用Device Tree后,许多硬件的细节可以直接透过它传递给Linux,而不再需要在kernel中进行大量的冗余编码。Device Tree由一系列被命名的结点(node)和属性(property)组成,而结点本身可包含子结点。所谓属性,其实就是成对出现的name和value。在Device Tree中,可描述的信息包括(原先这些信息大多被hard code到kernel中):
CPU的数量和类别
小
桥
接
况
GPIOGPIO使用情况
ClockClock使用情况
CPU、总线、设备组成的树,Bootloader会将这棵树传递给内核,然后内核可以识别这棵树,并根据它展开出Linux内核中的platform_device、i2c_client、spi_device等设备,而这些设备用到的内存、IRQ等资源,也被传递给了内核,内核会将这些资源绑定给展开的相应的设备。
2.?? ?Device Tree组成和结构
Device Tree牵涉面比较广,即增加了新的用于描述设备硬件信息的文本格式,又增加了编译这一文本的工具,同时Bootloader也需要支持将编译后的Device Tree传递给Linux内核。
DTS (device tree source)
.dts文件是一种ASCII 文本格式的Device Tree描述,此文本格式非常人性化,适合人类的阅读习惯。基本上,在ARM Linux在,一个.dts文件对应一个ARM的machine,一般放置在内核的arch/arm/boot/dts/目录。由于一个SoC可能对应多个machine(一个SoC可以对应多个产品和电路板),势必这些.dts文件需包含许多共同的部分,Linux内核为了简化,把SoC公用的部分或者多个machine共同的部分一般提炼为.dtsi,类似于C语言的头文件。其他的machine对应的.dts就include这个.dtsi。譬如,对于VEXPRESS而言,vexpress-v2m.dtsi就被vexpress-v2p-ca9.dts所引用, vexpress-v2p-ca9.dts有如下一行:/include/ vexpress-v2m.dtsi当然,和C语言的头文件类似,.dtsi也可以include其他的.dtsi,譬如几乎所有的ARM SoC的.dtsi都引用了skeleton.dtsi。.dts(或者其include的.dtsi)基本元素即为前文所述的结点和属性:
[plain]?view plaincopy
/?{??
????node1?{??
????????a-string-property?=?A?string;??
????????a-string-list-property?=?first?string,?second?string;??
????????a-byte-data-property?=?[0x01?0x23?0x34?0x56];??
????????child-node1?{??
????????????first-child-property;??
????????????second-child-property?=?1;??
????????????a-string-property?=?Hello,?world;??
????????};??
您可能关注的文档
最近下载
- 学霸作文里的“骚话公式”(5个).pdf VIP
- 欧姆龙制氧机说明书1C_IM_HAO-3620、3720、3721、3722、3710、3711、3712.pdf VIP
- 基于S7-1200的异步电机速度跟随控制系统设计与实现.doc
- 第五讲量化与编码.ppt VIP
- 无人机飞行管理及应用:无人机飞行的空管需求PPT教学课件.pptx
- 无人机操作技术-无人机自动机场.pptx VIP
- SYT 7388-2017 石油天然气钻采设备 钻井用空气锤和冲击钻头.docx VIP
- 直线定向示范课.ppt
- SYT 7421-2018 石油天然气钻采设备 钻井和修井用管柱自动化处理系统.pdf VIP
- 谢冕评志摩的诗.doc VIP
原创力文档

文档评论(0)