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