#!/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="TERM=uart"

function HELP {
    echo "help:"
    echo "-b <board>     : Board to flash"
    echo "-c <cmd line>  : Extra command line options"
    echo "-m             : Add mexec option to command line"
    echo "-o <dir>       : 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
