blob: 13da4ecb13296d8d8bdbafd1192b22558bf261ef [file] [log] [blame]
#!/bin/bash
set -x
exec_name=$0
set -o errtrace
trap 'echo Fatal error: script ${exec_name} aborting at line $LINENO, command \"$BASH_COMMAND\" returned $?; exit 1' ERR
cpu_num=$(grep -c processor /proc/cpuinfo)
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo DIR:$DIR
function usage(){
echo "Usage: ${exec_name} <board> <workspace path> <build_config>"
echo "supported boards: estelle-p1, estelle-p2"
echo " newman-p2, newman-p2_1, newman-b1, newman-b3, newman-b4"
echo " legion-p1"
echo " puddy-p0"
echo " elaine-p1, elaine-p2, elaine-b1, elaine-b3, elaine-b4"
echo "build_config: dev only"
echo " defaults to dev"
}
function building_uboot(){
soc_family_name=$1
local_name=$2
rev=$3
board_name=$4
debug_flag=$5
cfg_suffix=$6
config=${local_name}_${rev}${cfg_suffix}
echo "building ${BUILD_CONFIG} u-boot for ${board}"
# Even though we guard this behind device unlock, we still don't want it
# on release builds. The commandline gives a lot of power, and it's possible
# someone could make changes that persist even after re-locking.
export ENABLE_COMMANDLINE=0
if [ "${debug_flag}" == debug ]; then
ENABLE_COMMANDLINE=1
fi
pushd "${DIR}" >/dev/null
./mk ${config} --board_name $board_name \
--bl2 fip/${soc_family_name}/bl2.bin \
--bl30 fip/${soc_family_name}/bl30.bin \
--bl31 fip/${soc_family_name}/bl31.img \
--bl32 fip/${soc_family_name}/bl32.img \
$debug_flag
popd >/dev/null
# make T=1 to use latest git commit time as build timestamp.
echo "mk done\n"
local product=`echo ${board} | cut -d "-" -f1`
local bootloader_path="${workspace_path}/vendor/amlogic/${product}/prebuilt/${BUILD_CONFIG}/bootloader"
if [ ! -z $workspace_path ]; then
mkdir -p ${bootloader_path}
if [ "$product" == "estelle" ] || [ "$product" == "newman" ] || [ "$product" == "legion" ] || [ "$product" == "puddy" ] || [ "$product" == "elaine" ] ; then
# Copy bl2 and bl3x images for bootloader signing under eureka source.
cp "${DIR}/fip/build/bl2_new.bin" ${bootloader_path}/bl2_new.bin.${board}
cp "${DIR}/fip/build/bl30_new.bin" ${bootloader_path}/bl30_new.bin.${board}
cp "${DIR}/fip/build/bl31.img" ${bootloader_path}/bl31.img.${board}
cp "${DIR}/fip/build/bl32.img" ${bootloader_path}/bl32.img.${board}
cp "${DIR}/fip/build/bl33.bin" ${bootloader_path}/bl33.bin.${board}
# Copy ddr bin for bootloader signing under eureka source.
# TODO(ljchen): Remove hard code of ddr files under vendor/amlogic.
cp "${DIR}/fip/${soc_family_name}/ddr4_1d.fw" ${bootloader_path}/
cp "${DIR}/fip/${soc_family_name}/ddr4_2d.fw" ${bootloader_path}/
cp "${DIR}/fip/${soc_family_name}/ddr3_1d.fw" ${bootloader_path}/
cp "${DIR}/fip/${soc_family_name}/piei.fw" ${bootloader_path}/
cp "${DIR}/fip/${soc_family_name}/lpddr4_1d.fw" ${bootloader_path}/
cp "${DIR}/fip/${soc_family_name}/lpddr4_2d.fw" ${bootloader_path}/
cp "${DIR}/fip/${soc_family_name}/diag_lpddr4.fw" ${bootloader_path}/
cp "${DIR}/fip/${soc_family_name}/aml_ddr.fw" ${bootloader_path}/
else
cp "${DIR}/fip/${soc_family_name}/u-boot.bin.usb.bl2" ${bootloader_path}/u-boot.bin.usb.bl2
cp "${DIR}/fip/${soc_family_name}/u-boot.bin.usb.tpl" ${bootloader_path}/u-boot.bin.usb.tpl
cp "${DIR}/fip/${soc_family_name}/u-boot.bin" ${bootloader_path}/u-boot.bin
fi
fi
}
if (( $# < 1 ))
then
usage
exit 2
fi
readonly board=$1
readonly workspace_path=$2
readonly build_config=$3
dbg_flag="debug"
case "$build_config" in
prod | release)
dbg_flag="release"
export BUILD_CONFIG="prod"
;;
dogfood)
dbg_flag="release"
export BUILD_CONFIG="dogfood"
;;
dev | "")
dbg_flag="debug"
export BUILD_CONFIG="dev"
;;
*)
esac
zircon_cfg="_zircon"
export ENABLE_UBOOT_UPDATE=0
case $board in
estelle-p1)
building_uboot g12a g12a_estelle p1 $board
;;
estelle-p2)
building_uboot g12a g12a_estelle p2 $board
;;
newman-p2)
building_uboot g12b g12b_newman px $board $dbg_flag $zircon_cfg
;;
newman-p2_1)
building_uboot g12b g12b_newman p2_1 $board $dbg_flag $zircon_cfg
;;
newman-b1|newman-b3)
building_uboot g12b g12b_newman bx $board $dbg_flag $zircon_cfg
;;
newman-b4)
export ENABLE_UBOOT_UPDATE=0
building_uboot g12b g12b_newman bx $board $dbg_flag $zircon_cfg
;;
legion-p1)
building_uboot g12a gl2a_legion p1 $board
;;
puddy-p0)
building_uboot g12b g12b_puddy px $board $dbg_flag $zircon_cfg
;;
elaine-p0)
building_uboot sm1 sm1_elaine p0 $board $dbg_flag
;;
elaine-p1)
building_uboot sm1 sm1_elaine p1 $board $dbg_flag
;;
elaine-p2)
building_uboot sm1 sm1_elaine p2 $board $dbg_flag $zircon_cfg
;;
elaine-b1)
building_uboot sm1 sm1_elaine b1 $board $dbg_flag
;;
elaine-b3)
building_uboot sm1 sm1_elaine bx $board $dbg_flag $zircon_cfg
;;
elaine-b4)
building_uboot sm1 sm1_elaine bx $board $dbg_flag $zircon_cfg
;;
*)
echo "unknown board: $board"
exit 1
esac