欢迎来到天天文库
浏览记录
ID:56926697
大小:184.50 KB
页数:27页
时间:2020-07-24
《设备树使用手册.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、设备树使用手册本文将介绍如何为一个新机器编写设备树。我们准备提供一个有关设备树概念的概述和如何使用这些设备树来描述一个机器。完整的设备树数据格式的技术说明书请参考ePAPR规范。ePAPR规范涵盖了比本文基本主题更丰富的细节,要查阅本文没有涉及到的高级用法请参考该规范。 目录1.基本数据格式2.基本概念2.1模型机2.2初始结构2.3中央处理器2.4节点名称2.5设备2.6理解compatible属性3.如何编址3.1CPU 编址3.2内存映射设备3.3非内存映射设备3.4范围(地址转换)4.中断的工作方式5.设备特定数据6.特殊的节点6.1aliases节点6.2chosen
2、 节点7.高级主题7.1高级模型机7.2PCI 主桥7.2.1PCI 总线编号7.2.2PCI 地址转换7.3高级中断映射8.附注基本数据格式设备树是一个包含节点和属性的简单树状结构。属性就是键-值对,而节点可以同时包含属性和子节点。例如,以下就是一个.dts格式的简单树:/{node1{ a-string-property="Astring"; a-string-list-property="firststring","secondstring"; a-byte-data-property=[0x010x230x340x56]; child-no
3、de1{ first-child-property; second-child-property=<1>; a-string-property="Hello,world"; }; child-node2{ }; }; node2{ an-empty-property; a-cell-property=<1234>;/*eachnumber(cell)isauint32*/ child-node1{ }; };};这棵树显然是没什么用的,因为它
4、并没有描述任何东西,但它确实体现了节点的一些属性:■一个单独的根节点:“/”■两个子节点:“node1”和“node2”■两个node1的子节点:“child-node1”和“child-node2”■一堆分散在树里的属性。属性是简单的键-值对,它的值可以为空或者包含一个任意字节流。虽然数据类型并没有编码进数据结构,但在设备树源文件中任有几个基本的数据表示形式。■文本字符串(无结束符)可以用双引号表示:string-property="astring"■‘Cells’是32位无符号整数,用尖括号限定:cell-property=<0xbeef1230xabcd1234>■二进制数据用方括号
5、限定:binary-property=[0x010x230x450x67];■不同表示形式的数据可以使用逗号连在一起:mixed-property="astring",[0x010x230x450x67],<0x12345678>;■逗号也可用于创建字符串列表:string-list="redfish","bluefish";基本概念我们将以一个简单机开始,然后通过一步步的建立一个描述这个简单机的设备树,来了解如何使用设备树。2.1模型机考虑下面这个假想的机器(大致基于ARMVersatile),制造商为“Acme”,并命名为“Coyote'sRevenge”: ■ 一个32位ARMCPU
6、 ■ 处理器本地总线连接到内存映射的串行口、spi总线控制器、i2c控制器、中断控制器和外部总线桥 ■ 256MBSDRAM起始地址为0 ■两个串口起始地址:0x101F1000和0x101F2000 ■ GPIO控制器起始地址:0x101F3000 ■ 带有以下设备的SPI控制器起始地址:0x10170000 ■ MMC插槽的SS管脚连接至GPIO#1 ■ 外部总线桥挂载以下设备 ■ SMCSMC91111以太网设备连接到外部总线,起始地址:0x10100000 ■ i2c控制器起始地址:0x10160000,并挂载以下设备 ■ MaximDS1338实时时钟
7、。响应至从地址1101000(0x58) ■ 64MBNOR闪存起始地址0x300000002.2初始结构第一步就是要为这个模型机构建一个基本结构,这是一个有效的设备树最基本的结构。在这个阶段你需要唯一的标识该机器。/{ compatible="acme,coyotes-revenge";};compatible指定了系统的名称。它包含了一个“<制造商>,<型号>”形式的字符串。重要的是要指定一个确切的设备,并
此文档下载收益归作者所有