2016-01-05 18:00:13 +01:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
# This script creates u-boot FIT image containing the kernel and the DT,
|
|
|
|
# then signs it using futility from vboot-utils.
|
|
|
|
# The resulting file is called uImage.kpart.
|
|
|
|
|
|
|
|
BOARD_DIR=$(dirname $0)
|
2017-07-05 13:14:26 +02:00
|
|
|
mkimage=$HOST_DIR/bin/mkimage
|
|
|
|
futility=$HOST_DIR/bin/futility
|
|
|
|
devkeys=$HOST_DIR/share/vboot/devkeys
|
2016-01-05 18:00:13 +01:00
|
|
|
|
|
|
|
run() { echo "$@"; "$@"; }
|
|
|
|
die() { echo "$@" >&2; exit 1; }
|
|
|
|
test -f $BINARIES_DIR/zImage || \
|
|
|
|
die "No kernel image found"
|
|
|
|
test -x $mkimage || \
|
|
|
|
die "No mkimage found (host-uboot-tools has not been built?)"
|
|
|
|
test -x $futility || \
|
|
|
|
die "No futility found (host-vboot-utils has not been built?)"
|
|
|
|
|
|
|
|
# kernel.its references zImage and exynos5250-snow.dtb, and all three
|
|
|
|
# files must be in current directory for mkimage.
|
|
|
|
run cp $BOARD_DIR/kernel.its $BINARIES_DIR/kernel.its || exit 1
|
|
|
|
echo "# entering $BINARIES_DIR for the next command"
|
|
|
|
(cd $BINARIES_DIR && run $mkimage -f kernel.its uImage.itb) || exit 1
|
|
|
|
|
|
|
|
# futility requires non-empty file to be supplied with --bootloader
|
|
|
|
# even if it does not make sense for the target platform.
|
|
|
|
echo > $BINARIES_DIR/dummy.txt
|
|
|
|
|
|
|
|
run $futility vbutil_kernel \
|
|
|
|
--keyblock $devkeys/kernel.keyblock \
|
|
|
|
--signprivate $devkeys/kernel_data_key.vbprivk \
|
|
|
|
--arch arm \
|
|
|
|
--version 1 \
|
|
|
|
--config $BOARD_DIR/kernel.args \
|
|
|
|
--vmlinuz $BINARIES_DIR/uImage.itb \
|
|
|
|
--bootloader $BINARIES_DIR/dummy.txt \
|
|
|
|
--pack $BINARIES_DIR/uImage.kpart || exit 1
|
|
|
|
|
|
|
|
rm -f $BINARIES_DIR/kernel.its $BINARIES_DIR/dummy.txt
|