#!/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) mkimage=$HOST_DIR/bin/mkimage futility=$HOST_DIR/bin/futility devkeys=$HOST_DIR/share/vboot/devkeys 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