Linux - Devicetree规范: 结构介绍和标准属性

参考:

Specifications - DeviceTree

Release v0.3: Devicetree Specification 0.3 · devicetree-org/devicetree-specification · GitHub

devicetree-specification-changebars-v0.3.pdf (Devicetree Specification Release v0.3-40-g7e1cc17)

鸣谢

devicetree.org技术指导委员会要感谢许多通过写作、技术讨论和审查为本规范的制定做出贡献的个人和公司。

我们要感谢开发和发布ePAPR的power.org平台架构技术委员会。ePAPR的文本被用作本文档的出发点。

Devicetree规范的重要方面是基于开放固件工作组所做的工作,该工作组为IEEE-1275开发了bindings功能。我们要感谢他们的贡献。

我们还要感谢PowerPC和ARM Linux社区的贡献,他们开发并实施了扁平化的devicetree概念。

注:ePAPR是一个文档:Power.org™ Standard for Embedded Power Architecture™ Platform Requirements。

第一章 介绍 Introduction

1.1 目的和范围

为了初始化和启动一个计算机系统,各种软件组件相互作用。固件可以在将控制权移交给操作系统、bootloader(引导程序)或hypervisor(管理程序)等软件之前,对系统硬件进行低级别的初始化。

Bootloaders和hypervisors可以接着加载和转移控制权给操作系统。标准的、一致的接口和约定促进了这些软件组件之间的相互作用。在本文件中,boot program(引导程序)这个术语被用来泛指一个软件组件,它初始化系统状态并执行另一个被称为客户程序的软件组件。boot program的例子包括:固件(firmware)、bootloaders和hypervisor。客户端程序的例子包括:bootloaders、hypervisor、操作系统和特殊用途程序。一个软件可能既是客户程序又是启动程序(例如,hypervisor)。

这个规范,即 Devicetree 规范(DTSpec),提供了一个完整的boot program到客户端程序的接口定义,结合了最低的系统要求,方便了各种系统的开发。

这个规范是针对嵌入式系统的要求的。一个嵌入式系统通常由系统硬件、操作系统和应用软件组成,这些都是为执行固定的、特定的任务集而定制的。这与通用计算机不同,通用计算机的设计是由用户通过各种软件和I/O设备来定制。嵌入式系统的其他特点可能包括:

 - 一套固定的I/O设备,可能为应用程序高度定制

 - 针对尺寸和成本优化的系统电路板

 - 有限的用户接口

 - 资源限制,如有限的内存和有限的非易失性存储空间

 - 实时响应限制

 -  使用各种各样的操作系统,包括Linux、实时操作系统和自定义或专有操作系统

本文档的组织

第1章介绍了DTSpec所指定的架构。

第2章介绍了设备树的概念,并描述了其逻辑结构和标准属性。

第3章规定了符合DTSpec的设备树所需的设备节点的基本集合的定义。

第4章描述了某些类别的设备和特定设备类型的设备绑定。

第5章规定了devicetrees的DTB编码。

第6章规定了DTS源码所用语言。

本文件中使用的惯例

"shall"一词用于表示为了符合标准而必须严格遵守的强制性要求,并且不允许偏离这些要求("shall" equals "is required to")。

should这个词用来表示在几种可能性中,有一种被推荐为特别合适,而不提及或排除其他可能性;或者表示某种行动方案是首选,但不一定是必须的;或者表示某种行动方案是不提倡的(使用否定形式),但不禁止(“should” equals “is recommended that”)。

May一词用于表示在标准的范围内允许的行动过程(“may” equals “is permitted”)。

devicetree结构的例子经常以Devicetree语法形式(Devicetree Syntax form)显示。请见第六章。

1.2 与IEEE 1275和ePAPR的关系

DTSpec与IEEE 1275 Open Firmware standard (开放固件标准)有一定的关系,后者全称是:IEEE Standard for Boot (Initialization Configuration) Firmware: Core Requirements and Practices [IEEE1275].

原始的IEEE 1275规范及其衍生物,如CHRP和PAPR,解决了通用计算机的问题,如一个单一版本的操作系统如何在同一家族的几个不同的计算机上工作,以及从用户安装的I/O设备加载操作系统的问题。

由于嵌入式系统的性质,开放的通用计算机所面临的这些问题中的一些并不适用。DTSpec省略了IEEE 1275规范中的一些明显的功能:

 - 插件式设备驱动程序

 - FC代码

 - 基于Forth的可编程的开放固件用户接口

 - FCode的调试

 - 操作系统调试

从IEEE 1275中保留的是devicetree架构的概念,通过这些概念,启动程序boot program可以描述系统硬件信息并将其传达给客户程序client program,从而消除了客户程序对系统硬件硬编码描述的需要。

本规范部分取代了ePAPR规范。ePAPR记录了devicetree是如何被Power ISA使用的,包括一般概念和Power ISA的具体绑定。本文档的文本参考了ePAPR,但删除了架构的具体绑定,或将其移至附录中。

1.3 32位和64位支持

DTSpec支持的CPU包括32位和64位寻址能力。在需要的地方,DTSpec的章节描述了对32位和64位寻址有关的需求和研究。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值