QEMU导出arm virt设备树重编译出现clocks属性告警是否可忽略
告警原因
你遇到的警告本质是dtc工具反编译dtb生成dts时的局限性导致的:
- 原始dtb里
clocks属性的值本身就是合法的phandle引用,指向系统中phandle为0x8000的时钟节点 - dtc反编译的时候没有自动把这个数值替换为对应节点的标签引用,所以你直接编译这个未经修改的dts时,dtc会把
<0x8000>识别为普通数值,而非phandle引用,才触发了该警告。
属性合法性说明
你在pl061单独的绑定文档里找不到clocks属性说明是正常的:
pl061属于ARM PrimeCell系列外设,该系列外设的通用绑定要求必须提供apb_pclk时钟,这部分要求在PrimeCell的公共绑定规则里定义,不需要每个外设的独立绑定重复说明。内核的PrimeCell通用驱动逻辑会读取该时钟属性,完成时钟使能操作,不是无用属性。
是否可以忽略
分两种场景判断:
- 如果你只是做简单的dts修改测试,不需要保证时钟属性的绑定完全合规,该警告可以安全忽略,编译生成的dtb可以正常加载使用,不会影响pl061的功能
- 如果你需要输出完全符合绑定规范的dtb,可以先在反编译的dts中找到
phandle = <0x8000>;对应的时钟节点,把clocks = <0x8000>;替换为clocks = <&xxx>;(xxx为对应时钟节点的标签),再重新编译就不会触发该警告。
内容的提问来源于stack exchange,提问作者Chan Kim
相关产品推荐
相关产品推荐

