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