Skip to contentSkip to conversation

device tree compilation problems.

U-Boot hanumant 3 participants 4 messages Jan 23, 2012 – Apr 13, 2012

lore
Share & tools
lore

hanumant

author
#0 lore raw

Hi

I am getting DTC when compiling dts file with CONFIG_OF_CONTROL.
The message says that it cannot find skeleton.dtsi though its placed in the same directory as the dts file. I notice that if i remove this line from the dts Makefile, the error disappears

$(DT_BIN): $(TOPDIR)/board/$(VENDOR)/dts/$(DEVICE_TREE).dts

-       cat $< | $(CPP) -P $(DTS_CPPFLAGS) - >[email protected]
-       $(DTC) -R 4 -p 0x1000 -O dtb -o ${DT_BIN} [email protected]
-       rm [email protected]
+       $(DTC) -R 4 -p 0x1000 -O dtb -o ${DT_BIN} $<

Has anyone faced this issue?

Thanks
Hanumant

#1 lore raw

Hi,

Quoted 8 lines · hanumant

Hi

? I am getting DTC when compiling dts file with CONFIG_OF_CONTROL. The message says that it cannot find skeleton.dtsi though its placed in the same directory as the dts file. I notice that if i remove this line from the dts Makefile, the error disappears

Quoted 7 lines

?$(DT_BIN): $(TOPDIR)/board/$(VENDOR)/dts/$(DEVICE_TREE).dts
- ? ? ? cat $< | $(CPP) -P $(DTS_CPPFLAGS) - >[email protected]
- ? ? ? $(DTC) -R 4 -p 0x1000 -O dtb -o ${DT_BIN} [email protected]
- ? ? ? rm [email protected]
+ ? ? ? $(DTC) -R 4 -p 0x1000 -O dtb -o ${DT_BIN} $<

Has anyone faced this issue?

Not really, although I haven't used a skeleton file on mainline. One thing to check is that you have a .dtsi extension.

The lines above are running the .dts file through the C proprocessor to create a tmp file, which is then compiled. It is only really used to get the name of the SOC's device tree include file - see the definition of DTS_CPPFLAGS.

The tmp file should be in the same directory - check the file it produces and see what is wrong with it. The reason for using a tmp file is that people can check the resulting post-processed input to dtc. I wonder if the # signs in the file are confusing the preprocessor (at the time I wondered why they didn't). We should perhaps add sed into the mix :-(

Quoted 3 lines

Thanks
Hanumant

Regards,
Simon

Quoted 5 lines

_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

#2 lore raw

Dear Simon Glass,

Quoted 5 lines · In message <CAPnjgZ3s2+w0PPyUh8c4JqgSEmSbZwWDeqBqUWKz_Bf1O0O6UQ@mail.gmail.com>…
Quoted 5 lines

$(DT_BIN): $(TOPDIR)/board/$(VENDOR)/dts/$(DEVICE_TREE).dts

(quoted diff) +0 -3
-       cat $< | $(CPP) -P $(DTS_CPPFLAGS) - >[email protected]
-       $(DTC) -R 4 -p 0x1000 -O dtb -o ${DT_BIN} [email protected]
-       rm [email protected]

...

Quoted 4 lines

The lines above are running the .dts file through the C proprocessor to create a tmp file, which is then compiled. It is only really used to get the name of the SOC's device tree include file - see the definition of DTS_CPPFLAGS.

Is there actually any reason for the "cat" (the UUOCA seems to be extinct these days, cf. http://partmaps.org/era/unix/award.html) and the tmp file?

Why not rewriting as

	$(CPP) -P $(DTS_CPPFLAGS) < $< | \
	$(DTC) -R 4 -p 0x1000 -O dtb -o ${DT_BIN} -

?

Best regards,

Wolfgang Denk

Signature · 4 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: [email protected]
######## This message was made from 100% recycled electrons. ########
#3 lore raw

Hi Wolfgang,

Quoted 14 lines · Wolfgang Denk

Dear Simon Glass,

Quoted 5 lines · In message <CAPnjgZ3s2+w0PPyUh8c4JqgSEmSbZwWDeqBqUWKz_Bf1O0O6UQ@mail.gmail.com>…
Quoted 5 lines

?$(DT_BIN): $(TOPDIR)/board/$(VENDOR)/dts/$(DEVICE_TREE).dts
- ? ? ? cat $< | $(CPP) -P $(DTS_CPPFLAGS) - >[email protected]
- ? ? ? $(DTC) -R 4 -p 0x1000 -O dtb -o ${DT_BIN} [email protected]
- ? ? ? rm [email protected]

...

Quoted 4 lines

The lines above are running the .dts file through the C proprocessor to create a tmp file, which is then compiled. It is only really used to get the name of the SOC's device tree include file - see the definition of DTS_CPPFLAGS.

Quoted 8 lines

Is there actually any reason for the "cat" (the UUOCA seems to be extinct these days, cf. http://partmaps.org/era/unix/award.html) and the tmp file?

Why not rewriting as

? ? ? ?$(CPP) -P $(DTS_CPPFLAGS) < $< | \
? ? ? ?$(DTC) -R 4 -p 0x1000 -O dtb -o ${DT_BIN} -

Any errors produce messages with line numbers, and it is nice for people to be able to look up the file, go to the right line and see what is actually being compiled. So that's why I did this - although I certainly could use tee.

But instead I have been working on getting rid of the need for the CPP step - the -i flag (include path) has now made it into dtc so before long I will submit a patch to tidy up this logic and remove the problem.

Quoted 2 lines

?

Regards,
Simon

Quoted 10 lines

Best regards,

Wolfgang Denk

--
DENX Software Engineering GmbH, ? ? MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de ######## This message was made from 100% recycled electrons. ########