设备树规范v0.3:Devicetree Specification解读

需积分: 14 6 下载量 184 浏览量 更新于2024-07-09 收藏 450KB PDF 举报
"devicetree-specification-v0.3.pdf" 设备树规范是嵌入式系统,特别是Linux在各种硬件平台上运行时的核心组件之一。它提供了一种方式来描述硬件结构,使得操作系统能够理解硬件的具体配置,从而进行初始化和驱动程序的加载。这份文档是设备树规范的v0.3版本,由devicetree.org发布,日期为2020年2月13日。 1. 设备树的基本概念和范围 - 目的和范围:设备树的主要目标是为硬件平台定义一种标准化的描述语言,以便于操作系统(如Linux)能够动态地适应不同的硬件配置。 - 关系:设备树规范与IEEE 1275和ePAPR(嵌入式PowerPC架构平台参考)有密切关系,但提供了更通用的32位和64位支持。 2. 设备树的构成和约定 - 概览:设备树由一系列节点和属性组成,描述了从处理器、内存到外设的所有硬件组件。 - 节点命名:节点名称遵循一定的规则,通常与硬件的物理位置或功能相关联。 - 通用名称推荐:建议使用清晰、无歧义的名称,便于理解和维护。 - 路径名称:节点路径用于唯一标识节点在设备树中的位置。 - 属性:每个节点可以包含多个属性,这些属性提供了关于节点的详细信息。 3. 标准属性 - `compatible`:标识硬件兼容的驱动程序列表。 - `model`:描述硬件的型号或具体实现。 - `phandle`:节点处理程序,用于在节点间引用。 - `status`:表示设备当前的状态,如“okay”、“disabled”等。 - `#address-cells` 和 `#size-cells`:定义子节点地址和大小信息的单元数量。 - `reg`:描述设备的物理地址范围。 - `virtual-reg`:虚拟地址映射信息。 - `ranges`:转换子节点的物理地址到总线地址。 - `dma-ranges`:描述DMA(直接存储器访问)地址范围。 - `name`(已废弃):早期的设备名称。 - `device_type`(已废弃):用于标识设备类型。 4. 中断和中断映射 - 设备中断产生器的属性:描述如何生成中断信号。 - 中断控制器的属性:定义中断控制器的特性。 - 中断连接点属性:用于连接中断生成器和控制器。 - 中断映射示例:展示中断如何在设备树中表示和映射。 5. Nexus节点和指定器映射 - Nexus节点属性:定义Nexus节点的特定属性,Nexus是中断和设备连接的层次结构。 - 指定器映射示例:展示如何通过设备树描述复杂的中断层次结构。 6. 设备节点要求 - 基本设备节点:规定了每个设备节点应包含的基本信息。 这份规范详细阐述了设备树的结构、语法规则以及标准属性,旨在为硬件描述提供一致性,使得操作系统能够高效地管理硬件资源。对开发和调试嵌入式Linux系统的工程师来说,理解并应用这个规范是至关重要的。