Devicetree SpecificationRelease 之(1)Introduction

设备树(Devicetree)是ARMLinux自2011年起采用的一种硬件描述方式,旨在减少平台差异的代码。在设备树引入前,每个设备需要单独的.c文件描述硬件信息,而设备树则将这些硬件差异抽离到.dts文件中。设备树的文档位于kernel/Documentation/devicetree/,包含设备树概念、节点定义、设备绑定和编写指南等内容。文档中的术语如'Shall'、'Should'和'May'分别代表强制要求、推荐和允许的行为。此外,文档还涉及AMP和SMP架构、bootCPU、DTB、DTC等概念。

设备树文档官方网址:Specifications - DeviceTree

Introduction

1.1 设备树介绍:

设备树(Device tree)是一套用来描述硬件属相的规则。ARM Linux采用设备树机制源于2011年3月份Linux创始人Linus Torvalds发的一封邮件,在这封邮件中他提倡ARM平台应该参考其他平台如PowerPC的设备树机制描述硬件。因为在此之前,ARM平台还是采用旧的机制,在kernel/arch/arm/plat-xxx目录和kernel/arch/arm/mach-xxx目录下用代码描述硬件,如注册platform设备,声明设备的resource等。因为这些代码都是用来描述芯片平台及板级差异的,所以对于内核来讲都是垃圾代码。因为嵌入式平台中很多公司的芯片采用的都是ARM架构,随着Android的成功,这些代码越来越多。据说常见的平台如s3c2410板级目录下边的代码有数万行,难怪Linux Torvalds会说“this whole ARM thing is a fucking pain in the ass”

在设备树引入Linux之前,实现一个设备需要一个单独的device.c文件来描述特定器件的硬件信息,比如IO资源、内存资源和中断资源等。这些.c文件充斥了大量冗余的信息,而且修改.c需要重新编译ko或者内核。引入设备树后,这些硬件差异被单独抽离到设备树文件中。

内核中关于设备树的文档位于kernel/Documentation/devicetree/目录。

1.2 目录

第一章:介绍本文档所指定的一些体系结构

第二章:介绍设备树的概念,描述设备树的逻辑逻辑结构和标准属性

第三章:介绍设备树一些必要设备节点结合的定义

第四章:描述特定设备类别和特定设备类型的设备bindings

第五章:细说如何编写设备树

第六章:待定

1.3 说明

对于Devicetree SpecificationRelease文档中经常出现的

1. Shall, 是指为了符合标准,必须严格遵循的强制性要求,并且不允许有任何偏差。

2. Should 指的是推荐这样做,但不是强制要求。

3. may 表示被允许的行为。

dts支持32位和64位寻址的cpu,

1.4 文档中的常见术语解释

AMP:非对称多重处理,区别于SMP(对称多重处理)。在AMP构架的系统中,用户需要对各个操作系统使用的硬件资源进行划分,CPU间的合作仅限于使用共享存储器的情况。AMP相当于在多核处理其中,每个处理器能独立运行一个操作系统。

SMP:一种计算机架构,其中两个或多个相同的cpu可以共享内存和IO,并在单个操作系统下操作。SMP构架的系统中所有CPU共享系统内存和外设资源,由操作系统负责处理器间协作,并保持数据结构的一致性。一种计算机架构,其中两个或多个相同的cpu可以共享内存和IO,并在单个操作系统下操作。

boot CPU:运行引导程序跳转到客户端程序的第一个cpu,可以理解为启动系统的CPU

Book III-E:

boot program:通常指初始化系统状态并跳转到客户端程序的程序。也就是引导程序,引导程序包括:系统固件、BootLoader和管理程序。可以理解为系统上电后负责初始化的那段代码。

client program:通常指应用程序或操作系统软件。客户端程序例子:引导加载程序、管理程序、操作系统和特殊用途的程序。

cell:一个包含32bit的信息单元

DMA:直接内存存取

DTB:全称,Devicetree blob,指的是设备树的二进制格式。通常使用dtc工具将dts编译成dtb。BootLoader和内核使用的都是dtb

DTC: Devicetree compiler,设备树编译器,一个开源工具,用于从DTS文件编译为DTB文件

DTS:Devicetree syntax,设备树源文件,文本文件。

effective address: 有效地址,由处理器存储访问或转移指令计算的内存地址。

physical address: 物理地址,处理器用来访问外部设备(通常是内存控制器)的地址。

Power ISA:

interrupt specifier: 描述中断的属性值,通常包括指定中断号、灵敏度和触发机制的信息。

secondary CPU: 除了boot CPU的其他CPU

SoC: 偏上系统,只单个芯片上集成了CPU和其他必要的外设内存等部件。

unit address: 节点名称中指定节点地址的部分。

quiescent CPU:静态CPU处于一种状态,它不能干扰其他CPU的正常运行,也不受其他正在运行的CPU的正常运行的影响,除非通过显式的使能或重新使能静态CPU。

 DEVICE NODE REQUIREMENTS

DEVICE BINDINGS
 

FLATTENED DEVICETREE (DTB) FORMAT
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值