裝置樹 (DT) ABI¶
關於穩定的繫結/ABI,我們引用 2013 年 ARM 小型峰會總結文件中的內容:
“這仍然留下了一個問題,即穩定的繫結是什麼樣的?當然,穩定的繫結意味著較新的核心不會在舊的裝置樹上中斷,但這並不意味著繫結會永遠凍結。Grant 表示,有辦法在不導致中斷的情況下更改繫結。例如,如果添加了一個新屬性,那麼在缺少該屬性時,預設採用之前的行為。如果一個繫結確實需要不相容的更改,那麼同時更改相容字串。驅動程式可以同時繫結舊的和新的。這些準則並不新鮮,但它們迫切需要被記錄下來。”
通用繫結規則
維護者們,不要讓完美成為優秀的敵人。不要因為繫結不完美就阻礙它。
使用特定的相容字串,這樣如果未來需要新增某個功能(如 DMA),我們可以建立一個新的相容字串。參見 I。
繫結可以擴充,但當使用舊繫結時,驅動程式不應中斷。即,可以新增額外的屬性,但不要更改現有屬性的含義。對於驅動程式,當新新增的屬性缺失時,預設採用原始行為。
不要提交用於 staging 或不穩定的繫結。這將在郵件列表討論後由裝置樹維護者決定。
說明
本文件旨在讓讀者大致瞭解 2013 年核心峰會所確定的流程。如有疑問,以裝置樹維護者目前的意見為準,而非本文件。在這種情況下,更新本文件的補丁將不勝感激。