blob: d0441cbe2b44794c7f183c70fd5420dd8989f3f0 [file] [log] [blame]
xiaobo gue6c46862018-01-10 18:58:09 +08001#!/bin/bash
2
3
4# these soc use old bl31 code, others use new one
5declare -a BL31_OLD_VER_SOC_LIST=("gxb" "gxtvbb" "gxl" "txl")
6declare BL31_V1_3_SRC_FOLDER="bl31_1.3/src"
7declare BL31_V1_0_SRC_FOLDER="bl31/src"
8declare BL31_V1_3_BIN_FOLDER="bl31_1.3/bin"
9declare BL31_V1_0_BIN_FOLDER="bl31/bin"
10
xiaobo gue6c46862018-01-10 18:58:09 +080011function build_bl31() {
12 echo -n "Build bl31...Please wait... "
13 # $1: src_folder, $2: bin_folder, $3: soc
xiaobo gu3ce64072018-03-06 17:20:44 +080014 local target="$1/bl31.bin"
15 local target2="$1/bl31.img"
xiaobo gue6c46862018-01-10 18:58:09 +080016 cd $1
17 export CROSS_COMPILE=${AARCH64_TOOL_CHAIN}
18 CONFIG_SPD="opteed"
19 #CONFIG_SPD="none"
20 local soc=$3
changqing.gao190a6832019-02-14 12:49:27 +080021 local bl2z_plat
xiaobo gu3ce64072018-03-06 17:20:44 +080022 if [ "$soc" == "gxtvbb" ] || [ "$soc" == "gxb" ]; then
xiaobo gue6c46862018-01-10 18:58:09 +080023 soc="gxbb"
changqing.gao190a6832019-02-14 12:49:27 +080024 bl2z_plat="txl"
xiaobo gu3ce64072018-03-06 17:20:44 +080025 elif [ "$soc" == "txl" ]; then
xiaobo gue6c46862018-01-10 18:58:09 +080026 soc="gxl"
changqing.gao190a6832019-02-14 12:49:27 +080027 bl2z_plat="txl"
28 elif [ "$soc" == "gxl" ]; then
29 soc="gxl"
30 bl2z_plat="gxl"
xiaobo gue6c46862018-01-10 18:58:09 +080031 fi
32 #make PLAT=${soc} SPD=${CONFIG_SPD} realclean &> /dev/null
33 #make PLAT=${soc} SPD=${CONFIG_SPD} V=1 all &> /dev/null
changqing.gao190a6832019-02-14 12:49:27 +080034 /bin/bash mk $soc $bl2z_plat
xiaobo gue6c46862018-01-10 18:58:09 +080035 if [ $? != 0 ]; then
36 cd ${MAIN_FOLDER}
37 echo "Error: Build bl31 failed... abort"
38 exit -1
39 fi
40 cd ${MAIN_FOLDER}
xiaobo gue6c46862018-01-10 18:58:09 +080041 cp ${target} $2 -f
42 cp ${target2} $2 -f
43 echo "done"
44 return
45}
46
47function build_bl31_v1_3() {
48 echo -n "Build bl31 v1.3...Please wait... "
49 # $1: src_folder, $2: bin_folder, $3: soc
xiaobo gu3ce64072018-03-06 17:20:44 +080050 local target="$1/bl31.bin"
51 local target2="$1/bl31.img"
xiaobo gue6c46862018-01-10 18:58:09 +080052 cd $1
53 export CROSS_COMPILE=${AARCH64_TOOL_CHAIN}
54 #sh mk $3 &> /dev/null
xiaobo gu3ce64072018-03-06 17:20:44 +080055 local soc=$3
56 if [ "$soc" == "txhd" ]; then
57 soc="axg"
58 fi
Bo Lv25cb1972020-11-01 08:55:44 -050059 if [ "$soc" == "t5d" ]; then
60 soc="t5"
61 fi
xiaobo gue6c46862018-01-10 18:58:09 +080062 /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 gue6c46862018-01-10 18:58:09 +080069 cp ${target} $2 -f
70 cp ${target2} $2 -f
71 echo "done"
72 return
73}
74
75# check use which bl31 build script
76function 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
90function switch_bl31() {
91 # $1: soc
xiaobo gu8a3907e2019-05-22 11:46:49 +080092 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 gue6c46862018-01-10 18:58:09 +080098 check_bl31_ver $1
99 if [ $? != 0 ]; then
100 echo "check bl31 ver: use v1.3"
xiaobo gu8a3907e2019-05-22 11:46:49 +0800101 BLX_SRC_FOLDER[$bl31_index]=${BL31_V1_3_SRC_FOLDER}
102 BLX_BIN_FOLDER[$bl31_index]=${BL31_V1_3_BIN_FOLDER}
xiaobo gue6c46862018-01-10 18:58:09 +0800103 else
104 echo "check bl31 ver: use v1.0"
xiaobo gu8a3907e2019-05-22 11:46:49 +0800105 BLX_SRC_FOLDER[$bl31_index]=${BL31_V1_0_SRC_FOLDER}
106 BLX_BIN_FOLDER[$bl31_index]=${BL31_V1_0_BIN_FOLDER}
xiaobo gue6c46862018-01-10 18:58:09 +0800107 fi
changqing.gao190a6832019-02-14 12:49:27 +0800108}