xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
| 3 | |
| 4 | # these soc use old bl31 code, others use new one |
| 5 | declare -a BL31_OLD_VER_SOC_LIST=("gxb" "gxtvbb" "gxl" "txl") |
| 6 | declare BL31_V1_3_SRC_FOLDER="bl31_1.3/src" |
| 7 | declare BL31_V1_0_SRC_FOLDER="bl31/src" |
| 8 | declare BL31_V1_3_BIN_FOLDER="bl31_1.3/bin" |
| 9 | declare BL31_V1_0_BIN_FOLDER="bl31/bin" |
| 10 | |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 11 | function build_bl31() { |
| 12 | echo -n "Build bl31...Please wait... " |
| 13 | # $1: src_folder, $2: bin_folder, $3: soc |
xiaobo gu | 3ce6407 | 2018-03-06 17:20:44 +0800 | [diff] [blame] | 14 | local target="$1/bl31.bin" |
| 15 | local target2="$1/bl31.img" |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 16 | cd $1 |
| 17 | export CROSS_COMPILE=${AARCH64_TOOL_CHAIN} |
| 18 | CONFIG_SPD="opteed" |
| 19 | #CONFIG_SPD="none" |
| 20 | local soc=$3 |
changqing.gao | 190a683 | 2019-02-14 12:49:27 +0800 | [diff] [blame] | 21 | local bl2z_plat |
xiaobo gu | 3ce6407 | 2018-03-06 17:20:44 +0800 | [diff] [blame] | 22 | if [ "$soc" == "gxtvbb" ] || [ "$soc" == "gxb" ]; then |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 23 | soc="gxbb" |
changqing.gao | 190a683 | 2019-02-14 12:49:27 +0800 | [diff] [blame] | 24 | bl2z_plat="txl" |
xiaobo gu | 3ce6407 | 2018-03-06 17:20:44 +0800 | [diff] [blame] | 25 | elif [ "$soc" == "txl" ]; then |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 26 | soc="gxl" |
changqing.gao | 190a683 | 2019-02-14 12:49:27 +0800 | [diff] [blame] | 27 | bl2z_plat="txl" |
| 28 | elif [ "$soc" == "gxl" ]; then |
| 29 | soc="gxl" |
| 30 | bl2z_plat="gxl" |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 31 | fi |
| 32 | #make PLAT=${soc} SPD=${CONFIG_SPD} realclean &> /dev/null |
| 33 | #make PLAT=${soc} SPD=${CONFIG_SPD} V=1 all &> /dev/null |
changqing.gao | 190a683 | 2019-02-14 12:49:27 +0800 | [diff] [blame] | 34 | /bin/bash mk $soc $bl2z_plat |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 35 | if [ $? != 0 ]; then |
| 36 | cd ${MAIN_FOLDER} |
| 37 | echo "Error: Build bl31 failed... abort" |
| 38 | exit -1 |
| 39 | fi |
| 40 | cd ${MAIN_FOLDER} |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 41 | cp ${target} $2 -f |
| 42 | cp ${target2} $2 -f |
| 43 | echo "done" |
| 44 | return |
| 45 | } |
| 46 | |
| 47 | function build_bl31_v1_3() { |
| 48 | echo -n "Build bl31 v1.3...Please wait... " |
| 49 | # $1: src_folder, $2: bin_folder, $3: soc |
xiaobo gu | 3ce6407 | 2018-03-06 17:20:44 +0800 | [diff] [blame] | 50 | local target="$1/bl31.bin" |
| 51 | local target2="$1/bl31.img" |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 52 | cd $1 |
| 53 | export CROSS_COMPILE=${AARCH64_TOOL_CHAIN} |
| 54 | #sh mk $3 &> /dev/null |
xiaobo gu | 3ce6407 | 2018-03-06 17:20:44 +0800 | [diff] [blame] | 55 | local soc=$3 |
| 56 | if [ "$soc" == "txhd" ]; then |
| 57 | soc="axg" |
| 58 | fi |
Bo Lv | 25cb197 | 2020-11-01 08:55:44 -0500 | [diff] [blame^] | 59 | if [ "$soc" == "t5d" ]; then |
| 60 | soc="t5" |
| 61 | fi |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 62 | /bin/bash mk $soc |
| 63 | if [ $? != 0 ]; then |
| 64 | cd ${MAIN_FOLDER} |
| 65 | echo "Error: Build bl31 failed... abort" |
| 66 | exit -1 |
| 67 | fi |
| 68 | cd ${MAIN_FOLDER} |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 69 | cp ${target} $2 -f |
| 70 | cp ${target2} $2 -f |
| 71 | echo "done" |
| 72 | return |
| 73 | } |
| 74 | |
| 75 | # check use which bl31 build script |
| 76 | function check_bl31_ver() { |
| 77 | # $1: soc |
| 78 | # return 1: use bl31 v1.3 |
| 79 | # return 0: use bl31 v1.0 |
| 80 | local -i ver=1 |
| 81 | for soc_list in ${!BL31_OLD_VER_SOC_LIST[@]}; do |
| 82 | if [ "$1" == "${BL31_OLD_VER_SOC_LIST[${soc_list}]}" ]; then |
| 83 | ver=0 |
| 84 | fi |
| 85 | done |
| 86 | return ${ver} |
| 87 | } |
| 88 | |
| 89 | # some soc need use bl31_v1.3 |
| 90 | function switch_bl31() { |
| 91 | # $1: soc |
xiaobo gu | 8a3907e | 2019-05-22 11:46:49 +0800 | [diff] [blame] | 92 | local bl31_index=0; |
| 93 | for loop in ${!BLX_NAME[@]}; do |
| 94 | if [ ${BLX_NAME[$loop]} == ${BLX_NAME_GLB[2]} ]; then |
| 95 | bl31_index=$loop |
| 96 | fi |
| 97 | done |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 98 | check_bl31_ver $1 |
| 99 | if [ $? != 0 ]; then |
| 100 | echo "check bl31 ver: use v1.3" |
xiaobo gu | 8a3907e | 2019-05-22 11:46:49 +0800 | [diff] [blame] | 101 | BLX_SRC_FOLDER[$bl31_index]=${BL31_V1_3_SRC_FOLDER} |
| 102 | BLX_BIN_FOLDER[$bl31_index]=${BL31_V1_3_BIN_FOLDER} |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 103 | else |
| 104 | echo "check bl31 ver: use v1.0" |
xiaobo gu | 8a3907e | 2019-05-22 11:46:49 +0800 | [diff] [blame] | 105 | BLX_SRC_FOLDER[$bl31_index]=${BL31_V1_0_SRC_FOLDER} |
| 106 | BLX_BIN_FOLDER[$bl31_index]=${BL31_V1_0_BIN_FOLDER} |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 107 | fi |
changqing.gao | 190a683 | 2019-02-14 12:49:27 +0800 | [diff] [blame] | 108 | } |