设备树 (DT) ABI¶
关于稳定的绑定/ABI,我们引用 2013 年 ARM 微型峰会总结文档中的内容:
“这仍然留下了一个问题:什么样的绑定才是稳定的?当然,稳定的绑定意味着较新的内核在较旧的设备树上不会无法正常工作,但这并不意味着绑定会被永久冻结。Grant 表示,有一些方法可以修改绑定而不会导致兼容性问题。例如,如果添加了一个新属性,那么当该属性缺失时,应默认采用之前的行为。如果一个绑定确实需要进行不兼容的更改,那么请同时更改兼容性字符串。驱动程序可以同时绑定到旧版本和新版本。这些指导原则并不新鲜,但非常需要被记录下来。”
通用绑定规则
维护者们,不要让完美成为优秀的敌人。不要因为绑定不够完美而阻碍其进展。
使用具体的兼容性字符串,以便在将来需要添加功能(如 DMA)时,我们可以创建一个新的兼容性字符串。参见 I。
绑定可以进行扩展,但当提供旧的绑定时,驱动程序不应无法正常工作。即,添加额外的属性,但不要改变现有属性的含义。对于驱动程序,当新添加的属性缺失时,默认采用原始行为。
不要提交处于暂存(staging)或不稳定状态的绑定。这由设备树维护者在邮件列表上讨论后决定。
注意
本文档旨在让读者大致了解 2013 年内核峰会上确定的流程。如有疑问,请以设备树维护者当前的意见为准,而非本文档。在这种情况下,如果能提交一个更新本文档的补丁,我们将不胜感激。