英语
设备树动态解析器笔记¶
本文档描述了内核设备树解析器的实现,位于 drivers/of/resolver.c
解析器如何工作¶
解析器的输入是一个任意树,该树使用正确的 dtc 选项编译并具有 /plugin/ 标签。 这会生成相应的 __fixups__ & __local_fixups__ 节点。
解析器按以下步骤工作
从实时树获取设备树 phandle 最大值 + 1。
按该值调整要解析的树的所有本地 phandle。
使用 __local__fixups__ 节点信息,按相同量调整所有本地引用。
对于 __fixups__ 节点中的每个属性,找到它在实时树中引用的节点。 这是用于标记节点的标签。
检索 fixup 目标的 phandle。
对于属性中的每个 fixup,找到 node:property:offset 位置并将其替换为 phandle 值。