【发布时间】:2021-10-27 09:40:06
【问题描述】:
下面是linux内核中arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi的一部分。该文件包含在 arch/arm64/boot/dts/arm/fvp-base-revc.dts 中。
/ {
smb@8000000 {
motherboard {
arm,v2m-memory-map = "rs1";
compatible = "arm,vexpress,v2m-p1", "simple-bus";
#address-cells = <2>; /* SMB chipselect number and offset */
#size-cells = <1>;
#interrupt-cells = <1>;
ranges;
flash@0,00000000 {
compatible = "arm,vexpress-flash", "cfi-flash";
reg = <0 0x00000000 0x04000000>,
<4 0x00000000 0x04000000>;
bank-width = <4>;
};
ethernet@2,02000000 {
compatible = "smsc,lan91c111";
reg = <2 0x02000000 0x10000>;
interrupts = <15>;
};
当我编译 fvp-base-revc.dts 文件时(按照这种方法处理预处理:Device tree compiler not recognizes C syntax for include files),它给了我下面的错误。
arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi:20.21-25.6: 警告 (simple_bus_reg): /smb@8000000/motherboard/flash@0,00000000: 简单总线单元地址格式错误,预期“0”
arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi:27.24-31.6:警告(simple_bus_reg):/smb@8000000/motherboard/ethernet@2,02000000:简单总线单元地址格式错误,预期为“202000000”
dtc 抱怨地址格式 flash@0,00000000 或 ethernet@2,02000000。但是因为#address-cells = ,节点地址应该由片选号和偏移量(片选内部)给出。我怎样才能防止这个错误? DTC 版本是 1.5.0。
【问题讨论】:
标签: linux-kernel linux-device-driver embedded-linux device-tree