#!/usr/bin/env bash # Copyright 2017 The Fuchsia Authors # # Use of this source code is governed by a MIT-style # license that can be found in the LICENSE file or at # https://opensource.org/licenses/MIT set -eo pipefail DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" MKBOOTIMG="${DIR}/../third_party/tools/android/mkbootimg" MEMBASE=0x00000000 KERNEL_OFFSET=0x1080000 USE_LZ4=0 BOOT_PART=boot BUILD_DIR=build-arm64 CMDLINE= function HELP { echo "help:" echo "-b : Board to flash" echo "-c : Extra command line options" echo "-m : Add mexec option to command line" echo "-o : Build directory" echo "-M : RAM Start address" echo "-K : Kernel offset" echo "-z : Use LZ4" echo "-P : Boot partition name" echo "-h for help" exit 1 } while getopts "b:c:d:mo:M:K:P:zh" FLAG; do case $FLAG in b) BOARD="${OPTARG}";; c) CMDLINE+=" ${OPTARG}";; d) RAMDISK="${OPTARG}";; m) CMDLINE+=" netsvc.netboot=true";; o) BUILD_DIR="${OPTARG}";; M) MEMBASE="${OPTARG}";; K) KERNEL_OFFSET="${OPTARG}";; P) BOOT_PART="${OPTARG}";; z) USE_LZ4=1;; h) HELP;; \?) echo unrecognized option HELP ;; esac done shift $((OPTIND-1)) if [[ -z "${BOARD}" ]]; then echo must specify a board to flash HELP fi BOOTDATA_BIN="${BUILD_DIR}/${BOARD}-zircon-bootimage.bin" ZBOOTDATA_BIN="${BUILD_DIR}/z${BOARD}-zircon-bootimage.bin" OUT_IMAGE="${BUILD_DIR}/${BOARD}-boot.img" if [[ ${USE_LZ4} == 1 ]]; then lz4 -c ${BOOTDATA_BIN} > ${ZBOOTDATA_BIN} else gzip -c ${BOOTDATA_BIN} > ${ZBOOTDATA_BIN} fi $MKBOOTIMG \ --kernel "${ZBOOTDATA_BIN}" \ --kernel_offset $KERNEL_OFFSET \ --base $MEMBASE \ --cmdline "${CMDLINE}" \ -o "${OUT_IMAGE}" fastboot flash "${BOOT_PART}" "${OUT_IMAGE}" fastboot reboot