blob: 8cc7b1bd51e69957adea2c48d9713419703b69ca [file] [log] [blame]
#!/bin/bash
set -e
set -o errtrace
trap 'echo Fatal error: script $0 aborting at line $LINENO, command \"$BASH_COMMAND\" returned $?; exit 1' ERR
ENABLE_64BIT_BUILD=false
NUM_JOBS=$(grep -c processor /proc/cpuinfo)
top_dir=$(readlink -e $(dirname $0))
toolchain_dir=$(readlink -e ${top_dir}/../prebuilt/toolchain)
if [ ${ENABLE_64BIT_BUILD} = "true" ]; then
cross_compiler_dir=${toolchain_dir}/aarch64/bin
export ARCH=arm64
export CROSS_COMPILE=aarch64-cros-linux-gnu-
else
cross_compiler_dir=${toolchain_dir}/armv7a/bin
export ARCH=arm
export CROSS_COMPILE=armv7a-cros-linux-gnueabihf-
fi
export PATH=${cross_compiler_dir}:$PATH
function BuildBootloader() {
local board=$1
local eureka_src_path=$(readlink -e $2)
if [ -z ${eureka_src_path} ]; then
echo "eureka_src_path doesn't exist"
exit 1
fi
# clean previous build
make distclean
find . -maxdepth 1 -name "dtb_combined*" -delete
rm -f combined_dtb.lds
# build config
make ipq5018_defconfig
diff .config ./configs/ipq5018_defconfig
# make u-boot
make -j${NUM_JOBS} BOARD_NAME=${board} DEVICE_TREE="${board}" SOURCE_DATE_EPOCH="${U_BOOT_BUILD_TIMESTAMP}" V=1
if [ ! -e u-boot ]; then
echo "u-boot build fails!"
exit 1
fi
# convert u-boot from elf to mbn format
python3 ${top_dir}/../sdk/tools/elftombn.py -f u-boot -o u-boot.mbn
# install u-boot
echo "Install u-boot.mbn"
local product=$(echo ${board} | cut -d'-' -f1)
mkdir -p ${eureka_src_path}/vendor/qualcomm/${product}/prebuilt/bootloader/
cp u-boot.mbn ${eureka_src_path}/vendor/qualcomm/${product}/prebuilt/bootloader/bootloader.${board}
}
#########################
####### Main Entry ######
#########################
U_BOOT_BUILD_TIMESTAMP=""
while getopts ":d" arg; do
case "${arg}" in
d)
U_BOOT_BUILD_TIMESTAMP=$(git log -1 -s --format=%ct)
;;
?)
exit 1
;;
esac
done
shift $((OPTIND-1))
if (( $# < 2 )); then
exit 1
else
BuildBootloader $1 $2
fi