xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
xiaobo gu | 0c2598b | 2019-06-28 11:22:17 +0800 | [diff] [blame] | 3 | function select_uboot() { |
| 4 | local cfg_name=$1 |
Honglin Zhang | e358be4 | 2020-08-12 02:16:02 -0400 | [diff] [blame] | 5 | |
xiaobo gu | 0c2598b | 2019-06-28 11:22:17 +0800 | [diff] [blame] | 6 | cd ${MAIN_FOLDER} |
| 7 | |
Bo Lv | 26b2167 | 2023-01-16 01:50:15 +0000 | [diff] [blame] | 8 | for file in `ls -d ${BL33_DEFCFG1}/* ${BL33_DEFCFG2}/* ${BL33_DEFCFG3}/*`; do |
xiaobo gu | 0c2598b | 2019-06-28 11:22:17 +0800 | [diff] [blame] | 9 | temp_file=`basename $file` |
| 10 | #echo $temp_file |
| 11 | temp_file=${temp_file%_*} |
| 12 | if [ "$cfg_name" == "$temp_file" ]; then |
Bo Lv | 26b2167 | 2023-01-16 01:50:15 +0000 | [diff] [blame] | 13 | if [ "1" == "${CONFIG_CHOICE_BUILD}" ]; then |
| 14 | if [ "2015" == "${CONFIG_BUILD_VERSION}" ]; then |
| 15 | bl33_path=${UBOOT_FOLDER}/${UBOOT_VERSION1} |
| 16 | elif [ "2019" == "${CONFIG_BUILD_VERSION}" ]; then |
| 17 | bl33_path=${UBOOT_FOLDER}/${UBOOT_VERSION2} |
| 18 | elif [ "2023" == "${CONFIG_BUILD_VERSION}" ]; then |
| 19 | bl33_path=${UBOOT_FOLDER}/${UBOOT_VERSION3} |
| 20 | else |
| 21 | echo "input parameter error" |
| 22 | exit 1 |
| 23 | fi |
Bo Lv | 0edfe51 | 2022-10-14 21:08:09 +0800 | [diff] [blame] | 24 | else |
| 25 | if [ "${BL33_DEFCFG1}" == "$(dirname $file)" ]; then |
| 26 | bl33_path=${UBOOT_FOLDER}/${UBOOT_VERSION1} |
Bo Lv | 26b2167 | 2023-01-16 01:50:15 +0000 | [diff] [blame] | 27 | elif [ "${BL33_DEFCFG2}" == "$(dirname $file)" ]; then |
Bo Lv | 0edfe51 | 2022-10-14 21:08:09 +0800 | [diff] [blame] | 28 | bl33_path=${UBOOT_FOLDER}/${UBOOT_VERSION2} |
Bo Lv | 26b2167 | 2023-01-16 01:50:15 +0000 | [diff] [blame] | 29 | elif [ "${BL33_DEFCFG3}" == "$(dirname $file)" ]; then |
| 30 | bl33_path=${UBOOT_FOLDER}/${UBOOT_VERSION3} |
| 31 | else |
| 32 | echo "not found defconfig" |
| 33 | exit 1 |
Bo Lv | 0edfe51 | 2022-10-14 21:08:09 +0800 | [diff] [blame] | 34 | fi |
xiaobo gu | 0c2598b | 2019-06-28 11:22:17 +0800 | [diff] [blame] | 35 | fi |
| 36 | echo "select bl33: ${bl33_path}" |
| 37 | BL33_BUILD_FOLDER=${bl33_path}/build/ |
| 38 | SOURCE_FILE=("${BL33_BUILD_FOLDER}.config") |
| 39 | CONFIG_FILE=("${BL33_BUILD_FOLDER}include/autoconf.mk") |
| 40 | UBOOT_SRC_FOLDER=${bl33_path} |
| 41 | break |
| 42 | fi |
| 43 | done |
| 44 | export BL33_BUILD_FOLDER SOURCE_FILE CONFIG_FILE UBOOT_SRC_FOLDER |
| 45 | } |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 46 | |
| 47 | function pre_build_uboot() { |
xiaobo gu | 0c2598b | 2019-06-28 11:22:17 +0800 | [diff] [blame] | 48 | select_uboot $1 |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 49 | cd ${UBOOT_SRC_FOLDER} |
| 50 | echo -n "Compile config: " |
| 51 | echo "$1" |
dongqing.li | 030579d | 2022-04-11 10:38:27 +0800 | [diff] [blame] | 52 | SOCNAME=$1 |
| 53 | echo "SOCNAME:${SOCNAME}" |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 54 | make distclean # &> /dev/null |
| 55 | make $1'_config' # &> /dev/null |
| 56 | if [ $? != 0 ] |
| 57 | then |
| 58 | echo "Pre-build failed! exit!" |
| 59 | cd ${MAIN_FOLDER} |
| 60 | exit -1 |
| 61 | fi |
| 62 | cd ${MAIN_FOLDER} |
| 63 | } |
| 64 | |
| 65 | function build_uboot() { |
ruixuan.li | 6846821 | 2023-05-10 15:25:08 +0800 | [diff] [blame] | 66 | echo "Build uboot...Please Wait...$1...$2...$3...$4...$5...$6...$7" |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 67 | mkdir -p ${FIP_BUILD_FOLDER} |
| 68 | cd ${UBOOT_SRC_FOLDER} |
Bo Lv | 6f135a8 | 2021-06-29 19:36:35 +0800 | [diff] [blame] | 69 | if [[ "${SCRIPT_ARG_CHIPSET_VARIANT}" =~ "nocs" ]] || [[ "${CONFIG_CHIPSET_VARIANT}" =~ "nocs" ]]; then |
| 70 | CONFIG_CHIP_NOCS=1 |
| 71 | echo "### ${CONFIG_CHIP_NOCS} ###" |
| 72 | fi |
wenbo.wang | e8d2fbe | 2023-10-23 19:04:56 +0800 | [diff] [blame] | 73 | set -e |
dongqing.li | df6de9c | 2022-01-03 22:34:01 +0800 | [diff] [blame] | 74 | if [ "${CONFIG_MDUMP_COMPRESS}" = "1" ]; then |
| 75 | CONFIG_MDUMP_COMPRESS=1 |
| 76 | echo "### BL33 CONFIG_MDUMP_COMPRESS = 1 ###" |
ruixuan.li | 6846821 | 2023-05-10 15:25:08 +0800 | [diff] [blame] | 77 | make -j SYSTEMMODE=$1 AVBMODE=$2 BOOTCTRLMODE=$3 FASTBOOTMODE=$4 AVB2RECOVERY=$5 TESTKEY=$6 GPTMODE=$7 CHIPMODE=${CONFIG_CHIP_NOCS} \ |
Meng yu | 654238f | 2024-06-05 11:06:32 +0800 | [diff] [blame] | 78 | CONFIG_MDUMP_COMPRESS=${CONFIG_MDUMP_COMPRESS} \ |
| 79 | CONFIG_TEE_TYPE=${CONFIG_TEE_TYPE} # &> /dev/null |
dongqing.li | df6de9c | 2022-01-03 22:34:01 +0800 | [diff] [blame] | 80 | else |
Meng yu | 654238f | 2024-06-05 11:06:32 +0800 | [diff] [blame] | 81 | echo "### BL33 CONFIG_MDUMP_COMPRESS = 0 ### CONFIG_TEE_TYPE ${CONFIG_TEE_TYPE}" |
| 82 | make -j SYSTEMMODE=$1 AVBMODE=$2 BOOTCTRLMODE=$3 FASTBOOTMODE=$4 AVB2RECOVERY=$5 TESTKEY=$6 GPTMODE=$7 CHIPMODE=${CONFIG_CHIP_NOCS} \ |
| 83 | CONFIG_TEE_TYPE=${CONFIG_TEE_TYPE} # &> /dev/null |
dongqing.li | df6de9c | 2022-01-03 22:34:01 +0800 | [diff] [blame] | 84 | fi |
wenbo.wang | e8d2fbe | 2023-10-23 19:04:56 +0800 | [diff] [blame] | 85 | set +e |
Bo Lv | cefaba4 | 2022-11-30 14:36:57 +0800 | [diff] [blame] | 86 | |
| 87 | if [ "y" == "${CONFIG_AB_UPDATE}" ]; then |
| 88 | cp ./build/board/amlogic/${SOCNAME}/firmware/acs.bin ../../${BUILD_PATH}/acs.bin -f |
| 89 | fip_bl33_size=`stat -c %s ./build/u-boot.bin` |
| 90 | dd if=/dev/zero of=./build/fip.tmp bs=2097120 count=1 |
| 91 | dd if=./build/u-boot.bin of=./build/fip.tmp bs=${fip_bl33_size} count=1 conv=notrunc |
| 92 | |
| 93 | # sha fip ab |
| 94 | openssl dgst -sha256 -binary ./build/fip.tmp > ./build/u-boot.bin.sha256 |
| 95 | dd if=./build/u-boot.bin.sha256 of=./build/fip.tmp bs=1 count=32 oflag=append conv=notrunc |
| 96 | cp ./build/fip.tmp ../../build/fip-bl33.bin -f |
| 97 | |
| 98 | # sign fip ab |
| 99 | ../../fip/stool/signing-tool-c1/sign-boot-c1.sh --sign-kernel -i ./build/fip.tmp \ |
| 100 | -k ./board/amlogic/common/ab_mode/aml-key/kernelkey.pem -a ./board/amlogic/common/ab_mode/aml-key/kernelaeskey \ |
| 101 | --iv ./board/amlogic/common/ab_mode/aml-key/kernelaesiv -o ./build/fip-bl33.bin.encrypt |
| 102 | cp ./build/fip-bl33.bin.encrypt ../../build/ -f |
| 103 | #cp ./build/fip-bl33.bin.encrypt ../../${BUILD_PATH}/fip-bl33.bin -f |
| 104 | |
| 105 | # build pre bl33 |
wenbo.wang | e8d2fbe | 2023-10-23 19:04:56 +0800 | [diff] [blame] | 106 | set -e |
Bo Lv | cefaba4 | 2022-11-30 14:36:57 +0800 | [diff] [blame] | 107 | make distclean |
| 108 | make ${SOCNAME}_defconfig |
| 109 | make -j SYSTEMMODE=$1 AVBMODE=$2 BOOTCTRLMODE=$3 FASTBOOTMODE=$4 AVB2RECOVERY=$5 TESTKEY=$6 CHIPMODE=${CONFIG_CHIP_NOCS} \ |
Meng yu | 654238f | 2024-06-05 11:06:32 +0800 | [diff] [blame] | 110 | ABUPDATE=${CONFIG_AB_UPDATE} \ |
| 111 | CONFIG_TEE_TYPE=${CONFIG_TEE_TYPE} # &> /dev/null |
wenbo.wang | e8d2fbe | 2023-10-23 19:04:56 +0800 | [diff] [blame] | 112 | set +e |
Bo Lv | cefaba4 | 2022-11-30 14:36:57 +0800 | [diff] [blame] | 113 | if [ $? != 0 ]; then |
| 114 | echo "Pre bl33 failed! exit!" |
| 115 | cd ${MAIN_FOLDER} |
| 116 | exit 1 |
| 117 | fi |
| 118 | cp ./build/u-boot.bin ../../${FIP_BUILD_FOLDER}bl33.bin |
| 119 | fi |
Bo Lv | 6f135a8 | 2021-06-29 19:36:35 +0800 | [diff] [blame] | 120 | |
dongqing.li | b66a11a | 2023-03-27 17:18:43 +0800 | [diff] [blame] | 121 | SOC_GROUP=`echo ${SOCNAME} | cut -d '_' -f 1` |
| 122 | skiped=("a1" "c1" "c2" "c3" "g12a" "g12b" "sm1" "t5w") |
| 123 | if [[ "${skiped[@]}" =~ "${SOC_GROUP}" ]]; then |
| 124 | echo "" |
| 125 | echo "The soc(${SOC_GROUP}) does not support bl33z, skip." |
| 126 | echo "" |
| 127 | elif [ "${CONFIG_SUPPORT_BL33Z}" = "1" ]; then |
dongqing.li | 030579d | 2022-04-11 10:38:27 +0800 | [diff] [blame] | 128 | echo "" |
dongqing.li | 82e3899 | 2022-06-23 15:56:15 +0800 | [diff] [blame] | 129 | set -e |
dongqing.li | 030579d | 2022-04-11 10:38:27 +0800 | [diff] [blame] | 130 | echo "ramdump enable, build bl33z.bin for soc [${SOCNAME}] ..." |
dongqing.li | 030579d | 2022-04-11 10:38:27 +0800 | [diff] [blame] | 131 | if [ -f "./bl33z/Makefile" ]; then |
wenbo.wang | e8d2fbe | 2023-10-23 19:04:56 +0800 | [diff] [blame] | 132 | set -e |
dongqing.li | 030579d | 2022-04-11 10:38:27 +0800 | [diff] [blame] | 133 | make -C bl33z/ PLAT=${SOCNAME} AARCH=aarch64 distclean |
| 134 | make -C bl33z/ PLAT=${SOCNAME} AARCH=aarch64 |
wenbo.wang | e8d2fbe | 2023-10-23 19:04:56 +0800 | [diff] [blame] | 135 | set +e |
dongqing.li | 030579d | 2022-04-11 10:38:27 +0800 | [diff] [blame] | 136 | if [ -f "./bl33z/build/bl33z.bin" -a -f "./build/u-boot.bin" ]; then |
| 137 | # place bl33z at end of u-boot.bin, _end align(4096) |
| 138 | END_LENS=`ls -l ./build/u-boot.bin | awk '{print $5}'` |
| 139 | END_ALIGN=4096 |
| 140 | BL33Z_LOAD=`echo "((($END_LENS-1) / $END_ALIGN * $END_ALIGN) + $END_ALIGN)" | bc` |
| 141 | echo "uboot.bin size:$END_LENS, align:$END_ALIGN, new uboot size:$BL33Z_LOAD" |
| 142 | |
| 143 | dd if=/dev/zero of=u-boot.tmp bs=$BL33Z_LOAD count=1 |
| 144 | dd if=./build/u-boot.bin of=u-boot.tmp conv=notrunc &> /dev/null |
| 145 | cat ./bl33z/build/bl33z.bin >> u-boot.tmp |
| 146 | cp -rf u-boot.tmp build/u-boot.bin |
| 147 | rm -rf u-boot.tmp |
| 148 | echo "Append bl33z.bin to the end of uboot.bin OK." |
| 149 | else |
| 150 | echo "Error: build bl33z.bin failed... abort" |
| 151 | fi |
| 152 | else |
| 153 | echo "Error: bl33z proj is not exist... abort" |
| 154 | fi |
dongqing.li | 82e3899 | 2022-06-23 15:56:15 +0800 | [diff] [blame] | 155 | set +e |
dongqing.li | 030579d | 2022-04-11 10:38:27 +0800 | [diff] [blame] | 156 | echo "" |
| 157 | fi |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 158 | ret=$? |
| 159 | cd ${MAIN_FOLDER} |
| 160 | if [ 0 -ne $ret ]; then |
| 161 | echo "Error: U-boot build failed... abort" |
| 162 | exit -1 |
| 163 | fi |
| 164 | } |
| 165 | |
| 166 | function uboot_config_list() { |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 167 | echo " ******Amlogic Configs******" |
Bo Lv | 26b2167 | 2023-01-16 01:50:15 +0000 | [diff] [blame] | 168 | for file in `ls -d ${BL33_DEFCFG1}/* ${BL33_DEFCFG2}/* ${BL33_DEFCFG3}/*`; do |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 169 | temp_file=`basename $file` |
| 170 | #echo "$temp_file" |
xiaobo gu | 0c2598b | 2019-06-28 11:22:17 +0800 | [diff] [blame] | 171 | temp_file=${temp_file%_*} |
| 172 | echo " ${temp_file}" |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 173 | done |
| 174 | |
xiaobo gu | 0c2598b | 2019-06-28 11:22:17 +0800 | [diff] [blame] | 175 | customer_folder1="${BL33_PATH1}/customer/board/defconfigs" |
| 176 | customer_folder2="${BL33_PATH2}/customer/board/defconfigs" |
| 177 | if [ -e ${customer_folder1} ]; then |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 178 | echo " ******Customer Configs******" |
xiaobo gu | 0c2598b | 2019-06-28 11:22:17 +0800 | [diff] [blame] | 179 | for file in ${customer_folder1}/*; do |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 180 | temp_file=`basename $file` |
xiaobo gu | 0c2598b | 2019-06-28 11:22:17 +0800 | [diff] [blame] | 181 | temp_file=${temp_file%_*} |
| 182 | echo " ${temp_file}" |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 183 | done |
| 184 | fi |
xiaobo gu | 0c2598b | 2019-06-28 11:22:17 +0800 | [diff] [blame] | 185 | if [ -e ${customer_folder2} ]; then |
| 186 | for file in ${customer_folder2}/*; do |
| 187 | temp_file=`basename $file` |
| 188 | temp_file=${temp_file%_*} |
| 189 | echo " ${temp_file}" |
| 190 | done |
| 191 | fi |
| 192 | |
xiaobo gu | e6c4686 | 2018-01-10 18:58:09 +0800 | [diff] [blame] | 193 | echo " ***************************" |
| 194 | } |
| 195 | |
| 196 | function copy_bl33() { |
Bo Lv | cefaba4 | 2022-11-30 14:36:57 +0800 | [diff] [blame] | 197 | if [ "y" != "${CONFIG_AB_UPDATE}" ]; then |
| 198 | cp ${BL33_BUILD_FOLDER}/u-boot.bin ${FIP_BUILD_FOLDER}bl33.bin -f |
| 199 | fi |
xiaobo gu | 0c83cb6 | 2018-03-19 14:09:38 +0800 | [diff] [blame] | 200 | |
| 201 | # remove src link to prevent android "File system loop detected" issue |
xiaobo gu | a64f93c | 2018-07-31 21:27:43 +0800 | [diff] [blame] | 202 | #cd ${UBOOT_SRC_FOLDER}/build/ |
| 203 | #rm source |
xiaobo gu | 0c83cb6 | 2018-03-19 14:09:38 +0800 | [diff] [blame] | 204 | cd ${MAIN_FOLDER} |
xiaobo gu | a64f93c | 2018-07-31 21:27:43 +0800 | [diff] [blame] | 205 | } |