Devicetree规范 v0.1-pre1-20160430

需积分: 1 3 下载量 88 浏览量 更新于2024-07-18 收藏 312KB PDF 举报
"devicetree spec (Devicetree Specification Release 0.1-pre1-20160430)" 《Devicetree Specification》是设备树规范的一个早期版本,发布于2016年4月30日,主要用于描述硬件平台的结构和配置信息,帮助操作系统内核理解硬件布局,以便进行驱动程序的初始化和硬件资源的分配。设备树(Devicetree)是一种数据结构,它在系统启动时被固件提供给操作系统,使得内核能够以一种标准化的方式了解硬件的细节。 1.1 目的与范围 该规范旨在定义一个通用的方法来描述硬件的组织和特性,适用于各种处理器架构,包括32位和64位系统。它不仅涵盖设备的物理布局,还涉及到中断处理、内存映射等关键功能。 1.2 与IEEE 1275和ePAPR的关系 Devicetree规范与IEEE 1275(Open Firmware)和ePAPR(Power Architecture Platform Requirements)有关,它们都是为嵌入式和服务器系统定义硬件初始化标准的框架。Devicetree在此基础上提供了一种更加结构化和可扩展的方式来描述硬件配置。 1.3 32位与64位支持 规范考虑到了不同位宽的系统,确保设备树可以用于描述不同架构的硬件平台。 1.4 术语定义 文档中会定义关键术语,以便读者理解其含义和用法。 2.1 设备树概述 设备树是由节点和属性组成的,它描述了系统中的硬件组件、它们之间的关系以及如何与之交互。 2.2 设备树结构与约定 - 节点名称:每个设备或硬件组件都由一个唯一的节点表示,节点名称遵循一定的命名规则。 - 通用名称推荐:建议使用清晰、无歧义的名称,以方便理解和维护。 - 路径名称:节点通过路径名来定位,类似于文件系统的路径。 - 属性:节点包含描述其特性的键值对,例如设备类型、地址、中断等信息。 2.3 标准属性 - `compatible`:标识设备的兼容性列表,用于匹配内核驱动。 - `model`:描述硬件模型,帮助识别设备。 - `phandle`:物理处理句柄,用于在设备树中引用其他节点。 - `status`:指示设备的状态,如“okay”或“disabled”。 - `#address-cells` 和 `#size-cells`:定义子节点地址和大小信息的单元数量。 - `reg`:描述设备的物理地址空间。 - `virtual-reg`:虚拟地址映射。 - `ranges`:转换从父到子的地址和大小信息。 - `dma-ranges`:描述DMA地址映射。 - `name`:设备的名称。 - `device_type`(已弃用):早期用于标识设备类型。 2.4 中断和中断映射 - 中断生成设备的属性:描述如何产生中断。 - 中断控制器的属性:定义中断控制器的行为。 - 中断 Nexus 属性:连接中断源和中断控制器的节点属性。 - 中断映射示例:展示如何通过设备树描述中断的路由。 3.1 设备节点要求 - 基本设备节点类型:规定了不同类型设备的节点应遵循的模式。 - 根节点:系统中的顶级节点,包含所有其他节点。 - `/aliases` 节点:提供别名,使访问设备节点更简单。 《Devicetree Specification》是一个详细且全面的指南,对于操作系统开发者、驱动开发者以及系统架构师来说,是理解和操作硬件配置的关键参考文档。通过正确地编写和使用设备树,可以实现硬件平台的灵活配置和跨平台兼容性。