summaryrefslogtreecommitdiff
path: root/images/FIT.sh
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-05-19 19:04:07 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-05-19 19:48:10 +0300
commitbcd880c8e4085c943a055bcb2e2dc78feda33bea (patch)
treeb2af36a014b6159c2d5f33a4b726bb69d03c4b97 /images/FIT.sh
parentc743f77f9979b813da18585e9ca559d26913a62e (diff)
Modularise image handling
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'images/FIT.sh')
-rw-r--r--images/FIT.sh83
1 files changed, 83 insertions, 0 deletions
diff --git a/images/FIT.sh b/images/FIT.sh
new file mode 100644
index 0000000..0ed5482
--- /dev/null
+++ b/images/FIT.sh
@@ -0,0 +1,83 @@
+# SPDX-License-Identifier: GPL-2.0+
+
+make_FIT_image() {
+ local kernel_its=$output_dir/arch/$arch/boot/kernel_fdt.its
+
+ cat <<EOF > $kernel_its
+/dts-v1/;
+/ {
+ description = "Kernel + FDT image for $board board";
+ #address-cells = <1>;
+
+ images {
+ kernel {
+ description = "Linux kernel";
+ data = /incbin/("$output_dir/arch/$arch/boot/$image_kernel");
+ type = "kernel";
+ arch = "$arch";
+ os = "linux";
+ compression = "none";
+ load = <$LOADADDR>;
+ entry = <$LOADADDR>;
+ hash-1 {
+ algo = "crc32";
+ };
+ hash-2 {
+ algo = "sha1";
+ };
+ };
+EOF
+
+ local dtb
+
+ for dtb in $DTBS ; do
+ local src=${dtb/:*/}
+ local dst=${dtb/*:/}
+ dst=${dst/*\//}
+
+ cat <<EOF >> $kernel_its
+ fdt-$dst {
+ description = "Flattened Device Tree blob $dst";
+ data = /incbin/("$output_dir/arch/$arch/boot/dts/$src");
+ type = "flat_dt";
+ arch = "$arch";
+ compression = "none";
+ hash-1 {
+ algo = "crc32";
+ };
+ hash-2 {
+ algo = "sha1";
+ };
+ };
+EOF
+ done
+
+ local config=$(echo $DTBS | sed 's/.*[:/]//')
+ cat <<EOF >> $kernel_its
+ };
+
+ configurations {
+ default = "conf-$config";
+EOF
+ for dtb in $DTBS ; do
+ local dst=${dtb/*:/}
+ dst=${dst/*\//}
+
+ cat <<EOF >> $kernel_its
+ conf-$dst {
+ description = "Boot Linux kernel with $dst blob";
+ kernel = "kernel";
+ fdt = "fdt-$dst";
+ };
+EOF
+ done
+
+ cat <<EOF >> $kernel_its
+ };
+};
+EOF
+
+ PATH="$output_dir/scripts/dtc:$PATH" mkimage -f $kernel_its ${kernel_its/its/itb}
+}
+
+image_file=$output_dir/arch/$arch/boot/kernel_fdt.itb