PKGBUILDs/core/linux-aarch64-rc/generate_chromebook_its.sh

67 lines
1.4 KiB
Bash
Raw Normal View History

2021-03-07 23:36:12 +00:00
#!/bin/bash
image=$1
arch=$2
compression=$3
read -a dtb_list
2021-03-07 23:36:12 +00:00
cat <<-ITS_HEADER_END
/dts-v1/;
/ {
description = "Chrome OS kernel image with one or more FDT blobs";
images {
kernel@1{
description = "kernel";
data = /incbin/("${image}");
2021-03-07 23:36:12 +00:00
type = "kernel_noload";
arch = "${arch}";
2021-03-07 23:36:12 +00:00
os = "linux";
compression = "${compression}";
2021-03-07 23:36:12 +00:00
load = <0>;
entry = <0>;
};
ITS_HEADER_END
for i in ${!dtb_list[@]}; do
dtb=${dtb_list[${i}]}
2021-03-07 23:36:12 +00:00
cat <<-FDT_END
fdt@$(expr ${i} + 1){
description = "$(basename ${dtb})";
data = /incbin/("${dtb}");
2021-03-07 23:36:12 +00:00
type = "flat_dt";
arch = "${arch}";
compression = "${compression}";
2021-03-07 23:36:12 +00:00
hash@1{
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
2021-03-07 23:36:12 +00:00
cat <<-ITS_CONF_END
conf@$(expr ${i} + 1){
2021-03-07 23:36:12 +00:00
kernel = "kernel@1";
fdt = "fdt@$(expr ${i} + 1)";
compatible = ${compat_line%,};
2021-03-07 23:36:12 +00:00
};
ITS_CONF_END
done
cat <<-ITS_FOOTER_END
};
};
ITS_FOOTER_END