public inbox for kernelnewbies@kernelnewbies.org
 help / color / mirror / Atom feed
* DTC compile error (simple-bus unit address format error for #address-cells = <2> case)
@ 2021-10-27  9:44 Chan Kim
  2021-10-27 11:57 ` Chan Kim
  0 siblings, 1 reply; 2+ messages in thread
From: Chan Kim @ 2021-10-27  9:44 UTC (permalink / raw)
  To: kernelnewbies


[-- Attachment #1.1: Type: text/plain, Size: 1879 bytes --]

Hello all,

Below is a part of arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi in linux
kernel. This file is included by 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>;

            };

 

When I compile the fvp-base-revc.dts file 

(following this method to handle pre-processing :
https://stackoverflow.com/questions/50658326/device-tree-compiler-not-recogn
izes-c-syntax-for-include-files), it gives me error below.

 

arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi:20.21-25.6: Warning
(simple_bus_reg): /smb@8000000/motherboard/flash@0,00000000: simple-bus unit
address format error, expected "0"

arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi:27.24-31.6: Warning
(simple_bus_reg): /smb@8000000/motherboard/ethernet@2,02000000: simple-bus
unit address format error, expected "202000000"

 

The dtc is complaining about the address format `flash@0,00000000` or
`ethernet@2,02000000`. 

But because the #address-cells = <2>, the node address should be given by
chip select number and the offset (inside the chip select). 

How can I prevent this error? DTC version is 1.5.0.

 

Any help will be appreciated.

Thank you!

Chan Kim

 


[-- Attachment #1.2: Type: text/html, Size: 7295 bytes --]

[-- Attachment #2: Type: text/plain, Size: 170 bytes --]

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

^ permalink raw reply	[flat|nested] 2+ messages in thread

* RE: DTC compile error (simple-bus unit address format error for #address-cells = <2> case)
  2021-10-27  9:44 DTC compile error (simple-bus unit address format error for #address-cells = <2> case) Chan Kim
@ 2021-10-27 11:57 ` Chan Kim
  0 siblings, 0 replies; 2+ messages in thread
From: Chan Kim @ 2021-10-27 11:57 UTC (permalink / raw)
  To: kernelnewbies


[-- Attachment #1.1: Type: text/plain, Size: 3326 bytes --]

Hi, 

I've found how to do it.

For you should add CONFIG_ARCH_VEXPRESS and ran 'make V=1 ARCH=arm64
CROSS_COMPILE=aarch64-none-elf- dtbs |& tee logx'

Dtbs for ARCH_VEXPRESS are generated in the dts directory. Then you can see
the command to make the dtb (in the logx file). 

Below is the command. Lots of options for the dtc.

 

mkdir -p arch/arm64/boot/dts/arm/ ; gcc -E
-Wp,-MD,arch/arm64/boot/dts/arm/.fvp-base-revc.dtb.d.pre.tmp -nostdinc
-I./scripts/dtc/include-prefixes -undef -D__DTS__ -x assembler-with-cpp -o
arch/arm64/boot/dts/arm/.fvp-base-revc.dtb.dts.tmp
arch/arm64/boot/dts/arm/fvp-base-revc.dts ; ./scripts/dtc/dtc -O dtb -o
arch/arm64/boot/dts/arm/fvp-base-revc.dtb -b 0 -iarch/arm64/boot/dts/arm/
-i./scripts/dtc/include-prefixes -Wno-unit_address_vs_reg
-Wno-unit_address_format -Wno-avoid_unnecessary_addr_size -Wno-alias_paths
-Wno-graph_child_address -Wno-simple_bus_reg -Wno-unique_unit_address
-Wno-pci_device_reg  -d arch/arm64/boot/dts/arm/.fvp-base-revc.dtb.d.dtc.tmp
arch/arm64/boot/dts/arm/.fvp-base-revc.dtb.dts.tmp ; cat
arch/arm64/boot/dts/arm/.fvp-base-revc.dtb.d.pre.tmp
arch/arm64/boot/dts/arm/.fvp-base-revc.dtb.d.dtc.tmp >
arch/arm64/boot/dts/arm/.fvp-base-revc.dtb.d

 

Thanks!

Chan Kim

 

From: Chan Kim <ckim@etri.re.kr> 
Sent: Wednesday, October 27, 2021 6:45 PM
To: kernelnewbies@kernelnewbies.org
Subject: DTC compile error (simple-bus unit address format error for
#address-cells = <2> case)

 

Hello all,

Below is a part of arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi in linux
kernel. This file is included by 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>;

            };

 

When I compile the fvp-base-revc.dts file 

(following this method to handle pre-processing :
https://stackoverflow.com/questions/50658326/device-tree-compiler-not-recogn
izes-c-syntax-for-include-files), it gives me error below.

 

arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi:20.21-25.6: Warning
(simple_bus_reg): /smb@8000000/motherboard/flash@0,00000000: simple-bus unit
address format error, expected "0"

arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi:27.24-31.6: Warning
(simple_bus_reg): /smb@8000000/motherboard/ethernet@2,02000000: simple-bus
unit address format error, expected "202000000"

 

The dtc is complaining about the address format `flash@0,00000000` or
`ethernet@2,02000000`. 

But because the #address-cells = <2>, the node address should be given by
chip select number and the offset (inside the chip select). 

How can I prevent this error? DTC version is 1.5.0.

 

Any help will be appreciated.

Thank you!

Chan Kim

 


[-- Attachment #1.2: Type: text/html, Size: 10450 bytes --]

[-- Attachment #2: Type: text/plain, Size: 170 bytes --]

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-10-27 11:58 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-10-27  9:44 DTC compile error (simple-bus unit address format error for #address-cells = <2> case) Chan Kim
2021-10-27 11:57 ` Chan Kim

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox