PKGBUILDs/core/linux-aarch64/generate_chromebook_its.sh
2021-10-01 00:30:30 +00:00

66 lines
1.4 KiB
Bash
Executable file

#!/bin/bash
image=$1
arch=$2
compression=$3
read -a dtb_list
cat <<-ITS_HEADER_END
/dts-v1/;
/ {
description = "Chrome OS kernel image with one or more FDT blobs";
images {
kernel {
description = "kernel";
data = /incbin/("${image}");
type = "kernel_noload";
arch = "${arch}";
os = "linux";
compression = "${compression}";
load = <0>;
entry = <0>;
};
ITS_HEADER_END
for i in ${!dtb_list[@]}; do
dtb=${dtb_list[${i}]}
cat <<-FDT_END
fdt-$(expr ${i} + 1) {
description = "$(basename ${dtb})";
data = /incbin/("${dtb}");
type = "flat_dt";
arch = "${arch}";
compression = "${compression}";
hash {
algo = "sha1";
};
};
FDT_END
done
cat <<-ITS_MIDDLE_END
};
configurations {
default = "conf-1";
ITS_MIDDLE_END
for i in "${!dtb_list[@]}"; do
compat_line=""
dtb_uncompressed=$(echo ${dtb_list[${i}]} | sed "s/\(\.dtb\).*/\1/g")
for compat in $(fdtget "${dtb_uncompressed}" / compatible); do
compat_line+="\"${compat}\","
done
cat <<-ITS_CONF_END
conf-$(expr ${i} + 1) {
kernel = "kernel";
fdt = "fdt-$(expr ${i} + 1)";
compatible = ${compat_line%,};
};
ITS_CONF_END
done
cat <<-ITS_FOOTER_END
};
};
ITS_FOOTER_END