operating-system – DTS文件说明 – 别名
我试图从DTS文件中了解以下代码段.
/dts-v1/; / { model = "MPC8313ERDB"; compatible = "MPC8313ERDB","MPC831xRDB","MPC83xxRDB"; #address-cells = <1>; #size-cells = <1>; aliases { ethernet0 = &enet0; serial0 = &serial0; serial1 = &serial1; pci0 = &pci0; }; 别名的作用是什么? 谢谢. 解决方法
在DTS的别名部分,我们看到格式的条目
每个条目包括: 它基本上将b的值赋给a.此后,可以使用速记属性访问由标签标识的节点的长名称. 请注意,此分配的RHS使用标签而不是单个节点的短名称.就像C代码中的标签指的是定义它的行上的指令一样,DTS中的标签指的是在该行上定义的单个节点(使用其完整的长路径). 例如,考虑以下DTS, 其别名部分包含以下内容: 20 aliases { 21 ethernet0 = &enet0; 22 ethernet1 = &enet1; 23 serial0 = &serial0; 24 serial1 = &serial1; 25 pci0 = &pci0; 26 }; 新定义的属性(LHS) > ethernet0 参考相应的标签(RHS) > 例如,属性ethernet0现在设置为“/ soc8313 @ e0000000 / ethernet @ 24000”,即在the line where the label 更新: >为什么别名只定义为ethernet0,serial0 ……? >接下来,开发人员打算在内核源代码中访问这些节点.一旦在DTS中定义了别名,就可以通过在别名部分中搜索它而不是在整个DTS中搜索它来获得它所引用的节点的句柄. 来源:Linux内核源代码中的函数find_node_by_alias(). >为什么不在soc8313节点下的pci0节点? >在MPC8313上,PCI和DMA块通过IO-Sequencer(IOS)连接.因此,与直接连接到系统总线的其他模块(以太网,I2C,UART)相比,可以进行特殊处理. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |