Linux – imx6 Device Tree compilation — FATAL ERROR: Unable to parse input tree


I am working on Embedded Linux for TX6U-8010 based on Freescale imx6.

I am trying to compile dtb using the device tree compiler (dtc). However when I use the command:

dtc -O dtb -o imx6dl-tx6u-801x.dtb imx6dl-tx6u-801x.dts

…I get the following error:

Error: imx6dl-tx6u-801x.dts:13.1-9 syntax error
FATAL ERROR: Unable to parse input tree

Lines 12,13,14 are:-

#include "imx6dl.dtsi"
#include "imx6qdl-tx6.dtsi"

The kernel version that I am using is linux-3.18.5 and dtc version is DTC 1.4.0.

Best Solution

Device tree sources in the kernel deviate from the regular syntax, by using the cpp preprocessor for includes and substitution. This proceeds as follows:


cpp -nostdinc -I include -undef -x assembler-with-cpp $SRC > $TMP
dtc -O dtb -b 0 -o $DST $TMP
rm $TMP
Related Question