summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-09-20 02:31:43 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-09-20 02:37:13 +0300
commit43764c01cd8ed103fa6e15a61030e8005757f2d2 (patch)
tree8e7f16538e8ad63a70626a2e6d157cea191f584e
parent1b9133e66ab3a75e5b81ca6746a5fb9d608b800a (diff)
kbuild: Allow adding out-of-tree DTBs to image
It's useful to build a FIT image with DTBs stored outside of the kernel tree, for instance to test vendor-supplied DTBs. Support this by allowing DTB paths to be absolute. Compilation of the DTB is skipped in that case. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-rw-r--r--images/FIT.sh9
-rwxr-xr-xkbuild.sh11
2 files changed, 17 insertions, 3 deletions
diff --git a/images/FIT.sh b/images/FIT.sh
index 006baaf..46fe2ea 100644
--- a/images/FIT.sh
+++ b/images/FIT.sh
@@ -51,8 +51,6 @@ EOF
for dtb in ${dtbs[@]} ${dt_overlays[@]} ; do
local src=${dtb/:*/}
local dst=${dtb/*:/}
- dst=${dst/*\//}
-
local load=
if [ ! -z $fdtaddr ] ; then
@@ -60,10 +58,15 @@ EOF
addr=$(($addr+0x40000))
fi
+ if [[ ${src} != /* ]] ; then
+ src="$output_dir/arch/$arch/boot/dts/$src"
+ fi
+
+ dst=${dst/*\//}
cat <<EOF >> $kernel_its
fdt-$dst {
description = "Flattened Device Tree blob $dst";
- data = /incbin/("$output_dir/arch/$arch/boot/dts/$src");
+ data = /incbin/("$src");
type = "flat_dt";
arch = "$arch";
compression = "none";
diff --git a/kbuild.sh b/kbuild.sh
index 3f20151..d526aad 100755
--- a/kbuild.sh
+++ b/kbuild.sh
@@ -251,6 +251,11 @@ kernel_dtbs=
if [[ ${do_build[dt]} == 1 ]] ; then
for dtb in ${dtbs[@]} ; do
dtb=${dtb/:*/}
+
+ if [[ "${dtb}" == /* ]] ; then
+ continue
+ fi
+
kernel_dtbs="$kernel_dtbs $dtb"
done
fi
@@ -324,6 +329,12 @@ copy_dtbs() {
dst=$(basename $dst)
fi
+ # The destination should never be an absolute path.
+ if [[ "${dst}" == /* ]] ; then
+ echo "Error: DTB destination ${dtb} can't be absolute path"
+ exit 1
+ fi
+
mkdir -p $(dirname $dest_dir/$dst)
cp $output_dir/arch/${arch}/boot/dts/$src* $dest_dir/$dst
done