blob: d7359af0354785cd50261c4b8ce87724dd468090 [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")
wenbo.wangbd036162023-10-27 10:41:34 +08006declare -a BL31_VER2_7_SOC_LIST=("t3x" "a4" "s1a" "s7" "s7d")
Meng yub8b0ebb2023-05-16 15:59:18 +08007declare BL31_V2_7_SRC_FOLDER="bl31/bl31_2.7/src"
8declare BL31_V1_3_SRC_FOLDER="bl31/bl31_1.3/src"
9declare BL31_V1_0_SRC_FOLDER="bl31/bl31_1.0/src"
10declare BL31_V2_7_BIN_FOLDER="bl31/bl31_2.7/bin"
11declare BL31_V1_3_BIN_FOLDER="bl31/bl31_1.3/bin"
12declare BL31_V1_0_BIN_FOLDER="bl31/bl31_1.0/bin"
xiaobo gue6c46862018-01-10 18:58:09 +080013
xiaobo gue6c46862018-01-10 18:58:09 +080014function build_bl31() {
15 echo -n "Build bl31...Please wait... "
16 # $1: src_folder, $2: bin_folder, $3: soc
xiaobo gu3ce64072018-03-06 17:20:44 +080017 local target="$1/bl31.bin"
18 local target2="$1/bl31.img"
xiaobo gue6c46862018-01-10 18:58:09 +080019 cd $1
20 export CROSS_COMPILE=${AARCH64_TOOL_CHAIN}
21 CONFIG_SPD="opteed"
22 #CONFIG_SPD="none"
23 local soc=$3
changqing.gao190a6832019-02-14 12:49:27 +080024 local bl2z_plat
xiaobo gu3ce64072018-03-06 17:20:44 +080025 if [ "$soc" == "gxtvbb" ] || [ "$soc" == "gxb" ]; then
xiaobo gue6c46862018-01-10 18:58:09 +080026 soc="gxbb"
changqing.gao190a6832019-02-14 12:49:27 +080027 bl2z_plat="txl"
xiaobo gu3ce64072018-03-06 17:20:44 +080028 elif [ "$soc" == "txl" ]; then
xiaobo gue6c46862018-01-10 18:58:09 +080029 soc="gxl"
changqing.gao190a6832019-02-14 12:49:27 +080030 bl2z_plat="txl"
31 elif [ "$soc" == "gxl" ]; then
32 soc="gxl"
33 bl2z_plat="gxl"
xiaobo gue6c46862018-01-10 18:58:09 +080034 fi
35 #make PLAT=${soc} SPD=${CONFIG_SPD} realclean &> /dev/null
36 #make PLAT=${soc} SPD=${CONFIG_SPD} V=1 all &> /dev/null
changqing.gao190a6832019-02-14 12:49:27 +080037 /bin/bash mk $soc $bl2z_plat
xiaobo gue6c46862018-01-10 18:58:09 +080038 if [ $? != 0 ]; then
39 cd ${MAIN_FOLDER}
40 echo "Error: Build bl31 failed... abort"
41 exit -1
42 fi
43 cd ${MAIN_FOLDER}
xiaobo gue6c46862018-01-10 18:58:09 +080044 cp ${target} $2 -f
45 cp ${target2} $2 -f
46 echo "done"
47 return
48}
49
50function build_bl31_v1_3() {
51 echo -n "Build bl31 v1.3...Please wait... "
52 # $1: src_folder, $2: bin_folder, $3: soc
xiaobo gu3ce64072018-03-06 17:20:44 +080053 local target="$1/bl31.bin"
54 local target2="$1/bl31.img"
xiaobo gue6c46862018-01-10 18:58:09 +080055 cd $1
56 export CROSS_COMPILE=${AARCH64_TOOL_CHAIN}
57 #sh mk $3 &> /dev/null
xiaobo gu3ce64072018-03-06 17:20:44 +080058 local soc=$3
59 if [ "$soc" == "txhd" ]; then
60 soc="axg"
61 fi
Bo Lv25cb1972020-11-01 08:55:44 -050062 if [ "$soc" == "t5d" ]; then
63 soc="t5"
64 fi
Meng yuec57d862024-04-30 11:23:02 +080065 if [ "$soc" == "c3" ]; then
66 check_branch_bl2x_bl31
67 fi
xiaobo gue6c46862018-01-10 18:58:09 +080068 /bin/bash mk $soc
69 if [ $? != 0 ]; then
70 cd ${MAIN_FOLDER}
71 echo "Error: Build bl31 failed... abort"
72 exit -1
73 fi
74 cd ${MAIN_FOLDER}
xiaobo gue6c46862018-01-10 18:58:09 +080075 cp ${target} $2 -f
76 cp ${target2} $2 -f
77 echo "done"
78 return
79}
80
Meng yue91d80d2023-03-08 10:26:21 +080081function build_bl31_v2_7() {
82 echo -n "Build bl31 v2.7...Please wait... "
83 # $1: src_folder, $2: bin_folder, $3: soc
84 local target="$1/bl31.bin"
85 local target2="$1/bl31.img"
86 cd $1
87 export CROSS_COMPILE=${AARCH64_TOOL_CHAIN}
88 #sh mk $3 &> /dev/null
89 local soc=$3
Meng yue91d80d2023-03-08 10:26:21 +080090 /bin/bash mk $soc
91 if [ $? != 0 ]; then
92 cd ${MAIN_FOLDER}
93 echo "Error: Build bl31 failed... abort"
94 exit -1
95 fi
96 cd ${MAIN_FOLDER}
97 cp ${target} $2 -f
98 cp ${target2} $2 -f
99 echo "done"
100 return
101}
102
xiaobo gue6c46862018-01-10 18:58:09 +0800103# check use which bl31 build script
104function check_bl31_ver() {
105 # $1: soc
wenbo.wang8aa6cc52023-04-20 17:27:59 +0800106 # return 1: use bl31 v1.3
Wenbo Wang74779f82023-04-20 19:20:14 -0700107 # return 0: use bl31 v1.0
Meng yue91d80d2023-03-08 10:26:21 +0800108 # return 2: use bl31 v2.7
Wenbo Wang74779f82023-04-20 19:20:14 -0700109 local -i ver=1
xiaobo gue6c46862018-01-10 18:58:09 +0800110 for soc_list in ${!BL31_OLD_VER_SOC_LIST[@]}; do
Wenbo Wang74779f82023-04-20 19:20:14 -0700111 if [ "$1" == "${BL31_OLD_VER_SOC_LIST[${soc_list}]}" ]; then
112 ver=0
113 fi
xiaobo gue6c46862018-01-10 18:58:09 +0800114 done
benlong.zhou8ecb5ca2023-01-28 19:32:15 +0800115 for soc_list in ${!BL31_VER2_7_SOC_LIST[@]}; do
116 if [ "$1" == "${BL31_VER2_7_SOC_LIST[${soc_list}]}" ]; then
Wenbo Wang74779f82023-04-20 19:20:14 -0700117 ver=2
118 fi
Meng yue91d80d2023-03-08 10:26:21 +0800119 done
benlong.zhou8ecb5ca2023-01-28 19:32:15 +0800120 echo "check_bl31_ver soc=$1"
121 echo "check_bl31_ver ver=$ver"
xiaobo gue6c46862018-01-10 18:58:09 +0800122 return ${ver}
123}
124
125# some soc need use bl31_v1.3
126function switch_bl31() {
127 # $1: soc
xiaobo gu8a3907e2019-05-22 11:46:49 +0800128 local bl31_index=0;
129 for loop in ${!BLX_NAME[@]}; do
130 if [ ${BLX_NAME[$loop]} == ${BLX_NAME_GLB[2]} ]; then
131 bl31_index=$loop
132 fi
133 done
benlong.zhou8ecb5ca2023-01-28 19:32:15 +0800134 local version
xiaobo gue6c46862018-01-10 18:58:09 +0800135 check_bl31_ver $1
benlong.zhou8ecb5ca2023-01-28 19:32:15 +0800136 version=$?
137
138 if [ ${version} == 2 ]; then
Meng yue91d80d2023-03-08 10:26:21 +0800139 echo "check bl31 ver: use v2.7"
140 BLX_SRC_FOLDER[$bl31_index]=${BL31_V2_7_SRC_FOLDER}
141 BLX_BIN_FOLDER[$bl31_index]=${BL31_V2_7_BIN_FOLDER}
benlong.zhou8ecb5ca2023-01-28 19:32:15 +0800142 elif [ ${version} == 1 ]; then
143 echo "check bl31 ver: use v1.3"
144 BLX_SRC_FOLDER[$bl31_index]=${BL31_V1_3_SRC_FOLDER}
145 BLX_BIN_FOLDER[$bl31_index]=${BL31_V1_3_BIN_FOLDER}
146 else
147 echo "check bl31 ver: use v1.0"
148 BLX_SRC_FOLDER[$bl31_index]=${BL31_V1_0_SRC_FOLDER}
149 BLX_BIN_FOLDER[$bl31_index]=${BL31_V1_0_BIN_FOLDER}
xiaobo gue6c46862018-01-10 18:58:09 +0800150 fi
changqing.gao190a6832019-02-14 12:49:27 +0800151}