我眼中的Linux设备树(一 概述)】的更多相关文章

一 概述设备树(Device tree)是一套用来描述硬件属相的规则.ARM Linux采用设备树机制源于2011年3月份Linux创始人Linus Torvalds发的一封邮件,在这封邮件中他提倡ARM平台应该参考其他平台如PowerPC的设备树机制描述硬件.因为在此之前,ARM平台还是采用旧的机制,在kernel/arch/arm/plat-xxx目录和kernel/arch/arm/mach-xxx目录下用代码描述硬件,如注册platform设备,声明设备的resource等.因为这些代码…
五 根节点一个最简单的设备树必须包含根节点,cpus节点,memory节点.根节点的名字及全路径都是"/",至少需要包含model和compatible两个属性.model属性我们在属性那节已经说过是用来描述产品型号的,类型为字符串,推荐的格式为"manufacturer,model-number"(非强制的).根节点的model属性描述的是板子的型号或者芯片平台的型号,如:model = "Atmel AT91SAM9G20 family SoC&quo…
一 概述 设备树(Device tree)是一套用来描述硬件属相的规则.ARM Linux采用设备树机制源于2011年3月份Linux创始人Linus Torvalds发的一封邮件,在这封邮件中他提倡ARM平台应该参考其他平台如PowerPC的设备树机制描述硬件.因为在此之前,ARM平台还是采用旧的机制,在kernel/arch/arm/plat-xxx目录和kernel/arch/arm/mach-xxx目录下用代码描述硬件,如注册platform设备,声明设备的resource等.因为这些代…
六 memory&chosen节点根节点那一节我们说过,最简单的设备树也必须包含cpus节点和memory节点.memory节点用来描述硬件内存布局的.如果有多块内存,既可以通过多个memory节点表示,也可以通过一个memory节点的reg属性的多个元素支持.举一个例子,假如某个64位的系统有两块内存,分别是• RAM: 起始地址 0x0, 长度 0x80000000 (2GB)• RAM: 起始地址 0x100000000, 长度 0x100000000 (4GB)对于64位的系统,根节点的…
四 中断中断一般包括中断产生设备和中断处理设备.中断控制器负责处理中断,每一个中断都有对应的中断号及触发条件.中断产生设备可能有多个中断源,有时多个中断源对应中断控制器中的一个中断,这种情况中断产生设备的中断源称之为中断控制器中对应中断的子中断.一般情况中断产生设备数量要多于中断控制器,多个中断产生设备的中断都由一个中断控制器处理,这种多对一的关系也很像一个树形结构,所以在设备树中,中断也被描述成树,叫中断树.以下表述的时候为了明确是在说中断树,在父节点和子节点前边我们都加上"中断"二…
二 节点(node)的表示首先说节点的表示方法,除了根节点只用一个斜杠"/"表示外,其他节点的表示形式如"node-name@unit-address".@前边是节点名字,后边是节点地址.节点名字的长度范围是1到31,可以使用的字符在ePAPR规范中有说明,包括:0-9    数字a-z    小写字母A-Z    大写字母,    逗号.    句点(英)_    下划线+    加号-    破折号(英)规范要求节点名字应该以字母开头,虽然允许后边的位置使用非字…
三 属性(property)device_type = "memory"就是一个属性,等号前边是属性,后边是值.节点是一个逻辑上相对独立的实体,属性是用来描述节点特性的,根据需要一个节点由0个,1个或多个属性表示节点的特性.一个属性由名字和值两部分组成.和节点的名字类似,规范要求属性名字由1到31个字符组成.和节点名字字符的种类有些区别,不允许有大写字母,增加了问号和井号两个字符.不清楚为什么没有和节点名字完全保持一致,井号对于初学者容易误解,以为是注释.0-9    数字a-z  …
设备树语法及绑定 概述 Device Tree是一种用来描述硬件的数据结构,类似板级描述语言,起源于OpenFirmware(OF). 就ARM平台来说,设备树文件存放在arch/arm/boot/dts下,绑定文档存在Documentation/devicetree/bindings下. 设备树由一系列被命名的节点(node)和属性(property)组成,而节点本身可包含子节点.所谓属性,就是成对出现的名称和值. 在设备树中可描述的信息包括(原来这些信息大多被编码在内核中): >CPU数量和…
本文转载自:http://blog.csdn.net/KjfureOne/article/details/51972854 1.ARM Linux社区为什么要引入设备树 Linux之父Linus Torvalds闲来无事,在翻看ARM Linux代码的时候,有一天终于忍不住了.他在2011年3月17日的ARM Linux邮件列表中说道:“This whole ARM thing is a f*cking pain in the ass”.这句话迫使ARM Linux社区引入了设备树. Linus…
概念 Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离.在设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写.引入了设备树之后,驱动代码只负责处理驱动的逻辑,而关于设备的具体信息存放到设备树文件中,这样,如果只是硬件接口信息的变化而没有驱动逻辑的变化,驱动开发者只需要修改设备树文件信息,不需要改写驱动代码.比如在ARM Linux内,一个.dts(device tree source)文件对应一个ARM的machine,一般放置在…