关于兼容值的另一个注释

关于兼容值的另一个注释。必须记录兼容属性中使用的任何字符串,以表明其所指示的内容。在Documentation/devicetree/bindings中添加兼容字符串的文档。

同样在ARM上,对于每个machine_desc,内核会查看是否有任何dt_compat列表条目出现在compatible属性中。如果有,那么machine_desc是驱动machine的候选者。在搜索整个machine_descs表之后,setup_machine_fdt()函数根据每个machine_desc匹配的兼容属性中的哪个条目返回"最兼容"的machine_desc。如果找不到匹配的machine_desc,则返回NULL。

这种方案背后的原因是,在大多数情况下,如果单个machine_desc都使用相同的SoC或相同的SoC系列,则它们可以支持大量的board。但是,总会有一些例外情况,特定的电路板需要特殊的设置代码,这在通用情况下是无用的。可以通过在通用设置代码中明确检查麻烦的板来处理特殊情况,但如果它不仅仅是几个案例,那么很快就会变得难看和/或不可维护。

相反,兼容列表允许通用machine_desc通过在dt_compat列表中指定“不太兼容”的值来为广泛的通用板集提供支持。在上面的示例中,通用板支持可声称与"ti,omap3"或"ti,omap3450"兼容。如果在原始beagleboard上发现了一个在早期启动时需要特殊解决方法代码的错误,那么可以添加一个新的machine_desc来实现变通方法并且只匹配"ti,omap3-beagleboard"。

PowerPC使用稍微不同的方案,它从每个machine_desc调用.probe()函数,并使用返回TRUE的第一个。但是,这种方法没有考虑兼容列表的优先级,并且可能应该避免新的体系结构支持。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值