Devicetree规格说明:设备配置与中断映射

需积分: 9 3 下载量 180 浏览量 更新于2024-07-20 收藏 309KB PDF 举报
"Devicetree Specification R0.1 是一份详细介绍Devicetree规范的文档,由devicetree.org发布,旨在规定硬件描述语言的使用,以便于操作系统与硬件之间的交互。此规范适用于32位和64位系统,并定义了与IEEE 1275和ePAPR的关系。文档内容包括Devicetree的基本概念、结构、节点命名、属性、标准属性、中断映射以及设备节点要求等关键部分。" 在深入理解Devicetree之前,我们需要知道它的主要目的和范围。Devicetree是硬件描述的一种方式,用于提供操作系统关于硬件配置的详细信息,如设备、内存布局和中断控制器。它与IEEE 1275(开放Firmware标准)和ePAPR(嵌入式PowerPC参考平台)有一定的关联,但更专注于提供一个通用的、可扩展的框架。 Devicetree的结构包含节点和属性。节点可以表示硬件组件,如CPU、内存、I/O端口等,而属性则描述节点的特性。节点名称遵循一定的约定,通常是描述性名称,且推荐使用通用名称以增强可读性。路径名称用来标识节点的位置,而属性则携带节点的具体信息,例如`compatible`属性用于指定设备兼容的驱动程序,`model`属性定义设备的型号,`status`表示设备的工作状态。 标准属性中,`#address-cells`和`#size-cells`定义了地址和大小单元的数量,用于表示内存或I/O区域。`reg`属性用于指定设备的物理地址,`virtual-reg`则涉及虚拟地址。`ranges`属性在多级总线系统中用于映射设备的物理地址到不同的地址空间,`dma-ranges`则处理DMA(直接存储器访问)的地址映射。`name`和`device_type`这两个属性在新版本的Devicetree中已被弃用。 中断和中断映射是Devicetree中的重要组成部分。设备节点可以有生成中断的属性,中断控制器节点有其特定的属性,而中断轴节点(Interrupt Nexus)则用于连接中断生成设备和中断控制器。通过示例,文档解释了如何使用这些属性来构建中断映射。 设备节点的要求部分详细列出了不同类型的节点,如基础设备节点、根节点、别名节点、内存节点、选择节点和CPU节点。根节点是Devicetree的顶层,`/aliases`用于创建别名,方便引用;`/memory`节点描述系统的内存区域;`/chosen`节点包含全局设置,如启动加载器的选择;`/cpu`节点则包含关于处理器的信息。 总结来说,Devicetree Specification R0.1是一个全面的指南,涵盖了Devicetree的各个方面,为操作系统开发者提供了清晰的硬件描述方法,以实现更高效、更灵活的系统配置和驱动程序匹配。通过遵循这个规范,硬件平台和软件之间的交互得以标准化,简化了复杂硬件环境的管理。