不同的人眼中的Linux设备树是不一样的!

 首先说节点的表示方法,除了根节点只用一个斜杠“/”表示外,其他节点的表示形式如“node-name@unit-address”。@前边是节点名字,后边是节点地址。

    不同的人眼中的Linux设备树是不一样的!_设计制作_模拟技术  

节点名字的长度范围是1到31,可以使用的     字符   在ePAPR规范中有说明,包括:

0-9    数字
a-z    小写字母
A-Z    大写字母
,    逗号
.    句点(英)
_    下划线
+    加号
-    破折号(英)

规范要求节点名字应该以字母开头,虽然允许后边的位置使用非字母的字符,但实际情况我们实在没必要使用其他字符,一般情况全部用字母表示就够了。特别是规范建议在起名字时采用通用的名字而不是专有的名字,比如对于网卡,使用     ethernet   表示就可以了,可以通过地址区分不同的网卡,网卡的区别可以通过节点下的属性区分。还有就是关于目前存在的设备基本上都已经有被广泛接受的名字了,我们完全没必要在此标新立异,比如下边规范中列举的节点名字(经常写驱动的人基本一眼就能猜出是哪种设备):

atm
cache-controller
compact-flash
    can  
    cpu  
crypto
disk
display
    dma   -controller
ethernet
ethernet-phy
fdc
flash
g     pi   o
    i2c  
ide
in     te   rrupt-controller
isa
keyboard
mdio
memory
memory-controller
mouse
nv     ram  
parallel
pc-card
pci
pcie
rtc
sata
s     csi  
serial
sound
spi
    ti   mer
    usb  
vme
watchdog

节点地址是用来区别同名节点的,不是软件意义上的地址,但是有些情况可以用软件地址作为这个地址。比如两个I2C控制器的名字可以都是i2c,然后用控制器     寄存器   首地址作为这个节点地址。对于cpu,因为它是没有寄存器地址的,就可以用核的号码作为地址,对于8核处理器,地址可以从0到7。ePAPR规范中关于节点地址的描述不太好理解,原文是“The unit-address component of the name is specific to the bus type on which the node sits”。其实我觉得这句话说的也不太准确,因为并不是所有节点表示的硬件都位于某个总线上,比如内存,cpu。设备树是软件对硬件的一种近似表示,软件需要他怎么表示,他就怎么表示。对于cpu,软件需要序号,那么地址就用序号,对于i2c控制器,软件需要寄存器首地址,那么就用地址。除此之外规范还要求,如果节点有地址,那么节点下边必须有一个叫reg的属性,并且该地址必须和reg的属性的第一个地址相同。如果节点没有reg属性,那么节点地址及前边的@必须都不能有。关于属性和值我们还没开始介绍,这里插一句,其实reg就是register的缩写,这个属性主要用来表示控制器寄存器首地址的。我觉得规范中这一条不是非常有必要,因为有些设备只要有一个地址就够了,那么放在节点地址中就够了,完全没必要非得再加个reg属性。在这一段的最后一句,规范来了句“The binding for a par  TI cular bus may specify addi  TI onal, more specific requirements for the format of reg and the unit-address.”,我觉得这句话的意思和“设备树是软件对硬件的一种近似表示,软件需要他怎么表示,他就怎么表示”差不多,没有什么玄的。

节点路径也比较容易理解,从根节点到每个节点都可以形成一个路径,如第一节的例子/cpus/cpu@0,通过这个可以唯一的表示cpu@0这个节点。因为cpu@0在cpus下边是唯一的,但是在整个设备树可能不是唯一的,只有用全路径表示才能毫无异议的确认是哪个节点。如果省略了节点地址也不会产生歧义,那么可以省略不写。就像编程中的括号一样,个人觉得这个没必要省。

除了名字和地址外,节点前边还可以有一个标签(label),这个标签不是必须的,一般只有在别个地方需要引用这个节点时才会用标签标示这个节点,因为如果用全路径太繁琐了。如“i2c_1: i2c@12C70000”中的i2c_1就是一个标签。



49
31
0
29

相关资讯

  1. 1、Canalys:2020年Q1全球PC出货量下滑8%,需求量激增或难持续4812
  2. 2、MLCC涨价潮仍将延续,产业链各方如何应对?2161
  3. 3、人工智能并不是完美的,目前已导致90%的企业出​​现“道德问题”848
  4. 4、DxOMark被质疑“既当球员又当裁判”4003
  5. 5、磁场导航会成为GPS的一种新的“替代品”吗?3200
  6. 6、人工神经网络(ANN)支持的物联网架构在音乐治疗中的应用699
  7. 7、供应续吃紧硅晶圆价格仍看涨!2504
  8. 8、顺舟智能——生活污水处理物联网硬件解决方案3615
  9. 9、中国电科与嘉兴达成战略合作,打造“数字中国城市实验室”3993
  10. 10、EUV光刻机技术研发开花结果!日本凸版EUV光掩模正式出货392
全部评论(0)
我也有话说
0
收藏
点赞
顶部