英語
裝置樹動態解析器筆記¶
本文件描述了核心裝置樹解析器的實現,位於 drivers/of/resolver.c
解析器如何工作¶
解析器的輸入是一個任意樹,該樹使用正確的 dtc 選項編譯並具有 /plugin/ 標籤。 這會生成相應的 __fixups__ & __local_fixups__ 節點。
解析器按以下步驟工作
從即時樹獲取裝置樹 phandle 最大值 + 1。
按該值調整要解析的樹的所有本地 phandle。
使用 __local__fixups__ 節點資訊,按相同量調整所有本地引用。
對於 __fixups__ 節點中的每個屬性,找到它在即時樹中引用的節點。 這是用於標記節點的標籤。
檢索 fixup 目標的 phandle。
對於屬性中的每個 fixup,找到 node:property:offset 位置並將其替換為 phandle 值。