diff options
author | ian <ian@FreeBSD.org> | 2014-10-27 00:47:55 +0000 |
---|---|---|
committer | ian <ian@FreeBSD.org> | 2014-10-27 00:47:55 +0000 |
commit | 8f1520bd133cfba0b19d94312e81e5aa5bedfcbe (patch) | |
tree | a9b51dcfa8c4216b3b19dbd316d1c695aaea66f3 /sys | |
parent | 348b464642751e4ce8fc20685e7ebd86821b51c1 (diff) | |
download | FreeBSD-src-8f1520bd133cfba0b19d94312e81e5aa5bedfcbe.zip FreeBSD-src-8f1520bd133cfba0b19d94312e81e5aa5bedfcbe.tar.gz |
MFC r262626, r262626, r264979, r265154, r265162, r265163, r267319, r270863,
r270991, r271045:
Enhancements related to compiling FDT data...
- Use proper include path for dtc as well as cpp.
- Call cpp with -P to avoid printing line markings.
- Allow FDT_DTS_FILE to be a list, either in the makedtb target, or in a
kernel config file.
- Add the dts include directory to the -I list when doing arm builds.
- Invoke make_dtb with MACHINE defined for cross building friendliness.
- Allow the make_dtb script to work outside of a "make buildkernel"
context by setting MACHINE from uname -m if it's not set already.
- Use sh -c '...' to launch the dtb build scripts with env prepended,
otherwise it tries to treat the env var stuff as a script file name.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/conf/files | 4 | ||||
-rwxr-xr-x | sys/tools/fdt/make_dtb.sh | 19 |
2 files changed, 18 insertions, 5 deletions
diff --git a/sys/conf/files b/sys/conf/files index cd33a06..226eb44 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -14,11 +14,11 @@ acpi_quirks.h optional acpi \ # from the specified source (DTS) file: <platform>.dts -> <platform>.dtb # fdt_dtb_file optional fdt fdt_dtb_static \ - compile-with "sh $S/tools/fdt/make_dtb.sh $S ${FDT_DTS_FILE} ${.CURDIR}/${FDT_DTS_FILE:R}.dtb" \ + compile-with "sh -c 'MACHINE=${MACHINE} $S/tools/fdt/make_dtb.sh $S ${FDT_DTS_FILE} ${.CURDIR}'" \ no-obj no-implicit-rule before-depend \ clean "${FDT_DTS_FILE:R}.dtb" fdt_static_dtb.h optional fdt fdt_dtb_static \ - compile-with "sh $S/tools/fdt/make_dtbh.sh ${FDT_DTS_FILE} ${.CURDIR}" \ + compile-with "sh -c 'MACHINE=${MACHINE} $S/tools/fdt/make_dtbh.sh ${FDT_DTS_FILE} ${.CURDIR}'" \ dependency "fdt_dtb_file" \ no-obj no-implicit-rule before-depend \ clean "fdt_static_dtb.h" diff --git a/sys/tools/fdt/make_dtb.sh b/sys/tools/fdt/make_dtb.sh index 900ad9b..643fdd6 100755 --- a/sys/tools/fdt/make_dtb.sh +++ b/sys/tools/fdt/make_dtb.sh @@ -4,8 +4,21 @@ # Script generates dtb file ($3) from dts source ($2) in build tree S ($1) S=$1 -dts=$2 -dtb=$3 +dts="$2" +dtb_path=$3 -cpp -x assembler-with-cpp -I $S/gnu/dts/include -I $S/boot/fdt/dts/${MACHINE} -I $S/gnu/dts/${MACHINE} -include $dts /dev/null | +if [ -z "$dts" ]; then + echo "No DTS specified" + exit 1 +fi + +if [ -z "${MACHINE}" ]; then + MACHINE=$(uname -m) +fi + +for d in ${dts}; do + dtb=${dtb_path}/`basename $d .dts`.dtb + echo "converting $d -> $dtb" + cpp -P -x assembler-with-cpp -I $S/gnu/dts/include -I $S/boot/fdt/dts/${MACHINE} -I $S/gnu/dts/${MACHINE} -include $d /dev/null | dtc -O dtb -o $dtb -b 0 -p 1024 -i $S/boot/fdt/dts/${MACHINE} -i $S/gnu/dts/${MACHINE} +done |