设备树规格书(Devicetree Specification)
引导程序要初始化并且引导一个计算机系统实现多种软件模块的交互。例如Bootloaders和hypervisors(固件)程序, 他们在把控制权交给操作系统软件之前可能需要在系统硬件上做低级的初始化工作。同时,bootloaders,hypervisos能够依次加载系统并把控制权交给操作系统, 使得在软件之间的交互变的标准化、接口化并且易用。在这个文档中引导程序被用作泛指那些初始化系统状态并加载执行操作系统的程序。boot引导程序主要包括:固件、bootloaders和hypervisors。一个client程序主要包括:bootloader、hypervisors、操作系统和一些其他特别目的的程序。一个软件包可能包含boot程序和client程序。
这个设备树规范提供了一个完整的boot引导程序到client程序的接口定义和广泛且多样系统开发的最小集合。
这个规范目标是关于嵌入式系统的一些要求。一个典型的嵌入式操作系统主要由硬件、操作系统和个入针对具体任务设计的应用软件组成。这和通用目的的计算机不太一样,通常它是用户通过多种软件和I/O设备定制化设计的。关于嵌入式系统的其他特性可能包含:
- 对于应用高度定制化的IO设备集
- 控制大小/成本的系统板
- 有限的用户接口
- 有限的资源,如内存和非易失存储器
- 实时性的限制
- 一个广而多的操作系统的使用,包含Linux、实时操作系统、定制化和专有操作系统。
文档的内容组成
- 第一章: 介绍设备树规范的结构
- 第二章: 介绍设备树概念和描述它的逻辑结构和标准属性
- 第三章: 阐述DTSpec-compliant 设备树要求的设备结点基本集合的定义
- 第四章: 具体的设备(类型)的设备bindings
- 第五章: 设备树的DTB编码
- 第六章: DTS 语法
文档的约定
暂略
设备树规范是低依赖于IEEE1275开放固件标准--IEEE Standard for Boot(初始化配置) 固件: Core Requirements and Practices [IEEE1275].
IEEE1275规格书和他的派生CHRP和PAPR是处理通用计算机的地址问题。例如, 他使得一个操作系统的版本能运行在统一系列但物理机不同的计算机上,并且能从用户安装的设备上加载操作系统。
嵌入式系统与通用计算机不同,因为它的天然属性是定制化的。设备树规格中省略的IEEE1275的明显的特征包括:
-
Plug-in 设备驱动
-
FCode
-
基于Forth(系统)的可编程开放固件用户接口
-
操作系统debugging
IEEE1275中被保留下来的是一个引导程序能描述系统硬件信息并且和系统进行交互。这避免了client 程序使用硬编码描述硬件信息。
这个规范某种意义上取代了ePAPR规范。ePAPR通过Power ISA描述设备书的使用并且包含了如Power ISA bindings的通用概念。这个文档是ePAPR的派生,但同时也移除了架构的具体bindings并把他们放到了附录。
这设备树规范同时支持32位和64位寻址能力。它考虑/描述了32位和64位的任何要求。
AMP:非对称多处理器。计算机中的CUPs中被划成组,每个运行不同的系统镜像。CPUs不一定是相同的。
boot CPU:运行引导程序跳转到client program的进入点的CUP。
Book III-E:嵌入式环境。Power ISA 定义在特权指令的段(section)和在嵌入式Power处理器中被使用的功能。
boot 程序:引导操作系统并且初始化基础系统状态和执行/跳转到client 程序的程序。一般包括: 固件,bootloader和hypervisors。
client 程序:通常包含操作系统和应用软件。
cell:32bit的信息单元
DMA:直接内存访问技术(数据传送过程中不需要cpu参与)
DTB:设备树块。设备树的二进制表示。
DTC:设备树编译器。一个把DTS文件编译成DTB的开源编译器。
DTS:设备树语法。能够被DTC识别的文本。
Power ISA:Power指令集架构。
SMP:对称处理器。
SoC:片上系统。
DTS:设备树语法。能够被DTC识别的文本。