设备树规范v0.1-20160524解读
需积分: 9 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节点**:描述系统中的处理器信息。
这份规范详尽地阐述了设备树的各个组成部分及其用法,对于开发者来说是理解和实现设备树的关键参考资料。通过遵循这些规范,硬件平台和操作系统内核之间的交互可以更加高效和可靠。
362 浏览量
126 浏览量
2017-11-24 上传
131 浏览量
114 浏览量
249 浏览量
575 浏览量
108 浏览量
hank_fan
- 粉丝: 9
- 资源: 12
最新资源
- EJB.Design.Patterns.EJB设计模式.pdf
- Bigtable: A Distributed Storage System for Structured Data
- The Google File System
- MapReduce: Simpli
- 深入浅出MFC——MFC初级入门(繁体版)
- CGI跟我学 web编程
- c8051f 应用笔记
- ORACLE PROC
- Java 开发软件下载以及环境搭建
- 深入学习C++指针_不再害怕指针
- linux-c语言编程
- Flex 3 Cookbook 中文版
- 深入浅出系列之二_SubVersion.pdf
- 软件测试指导书—《软件测试从这里开始》
- 毕业设计—软件测试—性能测试的研究
- 利用数据结构堆栈求解迷宫