summaryrefslogtreecommitdiff
path: root/images/CrOS.sh
diff options
context:
space:
mode:
Diffstat (limited to 'images/CrOS.sh')
-rw-r--r--images/CrOS.sh48
1 files changed, 48 insertions, 0 deletions
diff --git a/images/CrOS.sh b/images/CrOS.sh
new file mode 100644
index 0000000..eb9ff05
--- /dev/null
+++ b/images/CrOS.sh
@@ -0,0 +1,48 @@
+# SPDX-License-Identifier: GPL-2.0+
+
+if [[ $arch != arm64 && $arch != x86 ]] ; then
+ echo "CrOS image unsupported on architecture $arch"
+ exit 1
+fi
+
+source "${kbuild_root}/images/FIT.sh" || exit 1
+
+make_CrOS_image() {
+ local boot_dir=$output_dir/arch/$arch/boot
+ local bootloader
+ local config
+ local vmlinuz
+
+ if [[ $arch == arm64 ]] ; then
+ make_FIT_image
+ vmlinuz=$boot_dir/kernel_fdt.itb
+ elif [[ $arch == x86 ]] ; then
+ vmlinuz=$boot_dir/bzImage
+ fi
+
+ if [[ -f $opt_bootloader ]] ; then
+ bootloader=$opt_bootloader
+ else
+ dd if=/dev/zero of=$boot_dir/bootloader bs=512 count=1
+ bootloader=$boot_dir/bootloader
+ fi
+
+ if [[ -f $opt_cmdline_file ]] ; then
+ config=$opt_cmdline_file
+ else
+ echo "$CMDLINE" > $boot_dir/cmdline
+ config=$boot_dir/cmdline
+ fi
+
+ vbutil_kernel \
+ --pack $boot_dir/vmlinuz.image \
+ --version 1 \
+ --vmlinuz $vmlinuz \
+ --arch $arch \
+ --keyblock /usr/share/vboot/devkeys/kernel.keyblock \
+ --signprivate /usr/share/vboot/devkeys/kernel_data_key.vbprivk \
+ --config $config \
+ --bootloader $bootloader
+}
+
+image_file=$output_dir/arch/$arch/boot/vmlinuz.image