设备树规范v0.1-20160524解读

需积分: 9 3 下载量 139 浏览量 更新于2024-07-19 收藏 309KB PDF 举报
“devicetree-specification-v0.1-20160524.pdf是devicetree的官方规格文档,包含了对devicetree的详细解释和规范,适用于理解和使用devicetree进行系统配置。” 《Devicetree Specification》是设备树(devicetree)的标准指南,旨在提供一种描述硬件结构的方法,主要用于嵌入式系统和操作系统,如Linux。设备树是一种数据结构,用于向操作系统内核传递关于硬件配置的信息,包括硬件组件的位置、特性以及它们之间的关系。 1. **目的和范围**: 设备树规范的主要目标是定义一个通用的机制,使得不同架构的系统能以统一的方式描述其硬件配置。它的适用范围涵盖了从32位到64位的不同处理器架构。 2. **与IEEE 1275和ePAPR的关系**: devicetree与IEEE 1275标准(Open Firmware)和ePAPR(Power Architecture Platform Requirements)有关,但提供了更具体和现代的解决方案,特别是在处理硬件描述和驱动程序绑定方面。 3. **支持32位和64位**: 规范确保了设备树可以被32位和64位系统所使用,适应了多种平台的需求。 4. **术语定义**: 文档中定义了关键术语,如“节点”、“属性”、“路径名”等,帮助读者理解设备树的结构和语义。 5. **设备树的结构和约定**: - **节点名称**:每个节点都有一个唯一的名称,用于标识硬件组件。 - **通用名称推荐**:建议使用通用名称来减少命名冲突和提高可读性。 - **路径名**:表示节点在设备树中的位置。 - **属性**:包含关于节点的详细信息,如硬件地址、状态、兼容性等。 6. **标准属性**: - **compatible**:定义硬件的兼容性,供驱动程序识别和匹配。 - **model**:描述硬件模型。 - **phandle**:节点的处理程序引用,用于节点间的通信。 - **status**:表示设备的状态,如"ok"或"disabled"。 - **#address-cells/#size-cells**:定义地址和大小单元的数量。 - **reg**:描述硬件的物理地址范围。 - **virtual-reg**:虚拟地址映射信息。 - **ranges**:在不同地址空间间转换的设备地址。 - **dma-ranges**:DMA地址范围。 - **name/deprecated** 和 **device_type/deprecated**:旧版属性,现在已不推荐使用。 7. **中断和中断映射**: - **中断生成设备的属性**:定义如何触发中断。 - **中断控制器的属性**:描述中断控制器的行为。 - **中断 Nexus 属性**:处理中断传播的属性。 - **中断映射示例**:展示了如何在设备树中映射中断。 8. **设备节点需求**: - **基础设备节点类型**:定义了各种基本硬件组件的节点要求。 - **根节点**:设备树的顶级节点,通常包含其他所有节点。 - **/aliases节点**:用于创建别名,方便访问节点。 - **/memory节点**:描述系统的内存布局。 - **/chosen节点**:包含全局设置,如启动参数。 - **/cpu节点**:描述系统中的处理器信息。 这份规范详尽地阐述了设备树的各个组成部分及其用法,对于开发者来说是理解和实现设备树的关键参考资料。通过遵循这些规范,硬件平台和操作系统内核之间的交互可以更加高效和可靠。