代码之家  ›  专栏  ›  技术社区  ›  71GA

Devicetree-如何将“范围”映射到设备节点?

  •  0
  • 71GA  · 技术社区  · 4 年前

    假设我们有一个示例devicetree:

    enter image description here

    我只想知道是什么机制 ranges 使用,以便将其正确映射到设备节点( ethernet@0,0 , i2c@1,0 , flash@2,0 ).

    它是否使用:

    • “孩子的域地址” (红色)或
    • “出现顺序” (紫罗兰色)

    为了正确地绘制地图?

    0 回复  |  直到 4 年前
        1
  •  1
  •   sawdust    4 年前

    它是否使用:
    ...
    为了正确地绘制地图?

    DT节点的排序并不重要,通常是为了美学,所以 “出现顺序” 可以立即排除。看见 The order in which the device-tree text file is written, does it matter?

    这个 range 属性应该是<子总线地址>&书信电报;父总线地址>,和<长度>价值观
    然而 #address-cells 属性指定(外部总线)<地址>价值将包括 <u32>价值观此“双倍长度”仅适用于<子总线地址>,而<父总线地址>是单身<u32>每小时的价值 #地址单元 父节点的属性。 这个 #size-cells 属性指定<长度>值将由单个<u32>价值
    因此 rangle 在您的示例中,属性显然由4个值组成的“三元组”,前两个值表示<子总线地址>,下一个<父总线地址>,最后是<长度>。

    这个 reg 属性应该是一对<地址>和<长度>价值观
    自从外部总线 #地址单元 属性指定(和/或默认值无论如何为2)该<地址>价值将包括 <u32>价值观,以及 #大小单元格 属性指定<长度>值将由单个<u32>价值观 规则 在您的示例中,属性将由3个值组成的“对”,前两个值表示<地址>最后是<长度>。


    请注意,DT规范要求<地址>在 规则 属性必须与“@<单元地址>”匹配在节点名称中。<单位地址>这就是你猜到的,下半部分<地址>在每个 规则 .


    因此,您的问题的答案是<子总线地址>,这与芯片选择值有关。
    然而,与其引用<单位地址>在节点名称中,突出的链接 “机制” 在设备节点中是<地址>在 规则 所有物

    推荐文章