blob: cc8d6b4c4c74b02e4bee8111fac3f76364ce059b [file] [log] [blame]
#!/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
RECOVERY_PORT=/dev/ttyUSB1
set -- `getopt "p:" "$@"`
while [ ! -z "$1" ]
do
case "$1" in
--)
shift
break
;;
-p) RECOVERY_PORT=$2
shift;;
*) echo "$1"
break;;
esac
shift
done
if [ "$#" -ne 1 ]; then
echo "Usage: hikey-efi-build [-p <recovery tty path>] <uefi repo path>"
echo " see /docs/targets/hikey960-uefi.md for more info"
exit 1
fi
export ARCH=aarch64
export CROSS_COMPILE_64=aarch64-linux-gnu-
export CROSS_COMPILE=aarch64-linux-gnu-
#You need to set this to the location where you have all the hikey repositories
BUILD_PATH=$1
BUILD_OPTION=DEBUG
export AARCH64_TOOLCHAIN=GCC5
export UEFI_TOOLS_DIR=${BUILD_PATH}/uefi-tools
export EDK2_DIR=${BUILD_PATH}/edk2
export EDK2_OUTPUT_DIR=${EDK2_DIR}/Build/HiKey960/${BUILD_OPTION}_${AARCH64_TOOLCHAIN}
cd ${EDK2_DIR}
# Build UEFI & ARM Trust Firmware
${UEFI_TOOLS_DIR}/uefi-build.sh -b ${BUILD_OPTION} -a ../arm-trusted-firmware hikey960
if [ $? -ne 0 ]; then
echo " !!! UEFI edk2 failed to build !!! " >&2
exit 1
fi
# Generate l-loader.bin
cd ${BUILD_PATH}/l-loader
ln -sf ${EDK2_OUTPUT_DIR}/FV/bl1.bin
ln -sf ${EDK2_OUTPUT_DIR}/FV/fip.bin
ln -sf ${EDK2_OUTPUT_DIR}/FV/BL33_AP_UEFI.fd
python gen_loader_hikey960.py -o l-loader.bin --img_bl1=bl1.bin --img_ns_bl1u=BL33_AP_UEFI.fd
PTABLE=aosp-32g SECTOR_SIZE=4096 SGDISK=./sgdisk bash -x generate_ptable.sh
cd ${BUILD_PATH}/tools-images-hikey960
#This will load the images into ram and boot them... If you want to make it
# permanent, then they will need to be flashed via fastboot after this step.
ln -sf ../l-loader/l-loader.bin
ln -sf ../l-loader/fip.bin
./hikey_idt -c config -p $RECOVERY_PORT