回答

2

這些數字(和名稱)並不重要。看看下一個功能drivers/of/overlay.c

of_overlay_create() - >of_build_overlay_info() - >of_fill_overlay_info() - >find_target_node()

正如你可以看到,代碼只是在迭代的tree(使用for_each_child_of_node()),然後通過獲得的利益節點"__overlay__"名稱,如:

ovinfo->overlay = of_get_child_by_name(info_node, "__overlay__"); 

因此,這些片段都只是一些節點,它們的名字有關係不到風度。真正使用的唯一東西是這些節點的內容。

我甚至可以假設你完全可以忽略那些@1@2後綴。看看Device Tree specification(第2.2.1節節點名稱):

設備樹的每個節點都按照以下約定命名:

[email protected]

名字的unit-address組件特定於節點所在的總線類型。它由表2-1中字符集中的一個或多個ASCII字符組成 。 unit-address必須 與該節點的reg屬性中指定的第一個地址相匹配。 如果該節點沒有reg屬性,則必須省略 @unit-address,並且節點名僅將節點與樹中相同級別的其他節點 區分開來。對於特定總線的綁定可以規定對於regunit-address格式的附加更具體的 要求。

當然,也可以在代碼中的一些技巧,分析設備樹的文件,如:drivers/of/fdt.c, unflatten_dt_node()

if ((*p1) == '@') 

但我真的很懷疑,經過「@」的數量意味着什麼(在你的情況)。