shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 1 | #! /bin/bash |
| 2 | # |
| 3 | # Copyright (c) 2021-2022 Amlogic, Inc. All rights reserved. |
| 4 | # |
| 5 | # SPDX-License-Identifier: MIT |
| 6 | # |
| 7 | |
| 8 | RTOS_BUILD_DIR=$(realpath $(dirname $(readlink -f ${BASH_SOURCE[0]:-$0}))/..) |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 9 | |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 10 | #Package target check |
| 11 | function package_target_verify() { |
| 12 | |
| 13 | #Get the packed sequence selected by the user |
| 14 | j=0 |
| 15 | while IFS= read -r LINE; do |
| 16 | if [ $j == $CHOICE_PACKAGE ]; then |
| 17 | PACKAGE_ARRY=($(echo $LINE | tr ' ' ' ')) |
| 18 | fi |
| 19 | j=$((j + 1)) |
| 20 | done <$PACKAGE_COMBINATION |
| 21 | |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 22 | #parameter check |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 23 | if [ -z "$PACKAGE_ARRY" ]; then |
shijie.xiong | 9a3c904 | 2022-04-12 17:51:55 +0800 | [diff] [blame] | 24 | echo -e "\033[41;33m package list is not set, please execute source scripts/pkg_env.sh \033[0m" |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 25 | exit 1 |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 26 | fi |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 27 | |
| 28 | #parameter check |
| 29 | for ((loop = 0; loop < ${#PACKAGE_ARRY[@]}; loop += 4)); do |
| 30 | arch=${PACKAGE_ARRY[loop]} |
| 31 | soc=${PACKAGE_ARRY[loop + 1]} |
| 32 | board=${PACKAGE_ARRY[loop + 2]} |
| 33 | product=${PACKAGE_ARRY[loop + 3]} |
| 34 | |
| 35 | echo $arch $soc $board $product |
| 36 | |
| 37 | case ${product} in |
| 38 | 'hifi_dsp') |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 39 | BUILD_DSP=1 |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 40 | DSP_ARCH=$arch |
| 41 | DSP_SOC=$soc |
| 42 | DSP_BOARD=$board |
| 43 | DSP_PRODUCT=$product |
| 44 | ;; |
| 45 | 'speaker') |
| 46 | BUILD_RTOS=1 |
| 47 | RTOS_ARCH=$arch |
| 48 | RTOS_SOC=$soc |
| 49 | RTOS_BOARD=$board |
| 50 | RTOS_PRODUCT=$product |
| 51 | ;; |
| 52 | *) |
| 53 | echo "Unsupported product type:${product}" |
| 54 | exit 1 |
| 55 | ;; |
| 56 | esac |
| 57 | |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 58 | done |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 59 | |
| 60 | #Set the board configuration path |
| 61 | IMAGE_BOARD_CONFIG_DIR="image_packer/$RTOS_SOC/" |
| 62 | |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 63 | #Set up the build project |
| 64 | BUILD_CLEAN=1 |
| 65 | BUILD_IMAGE=1 |
| 66 | BUILD_UBOOT=1 |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 67 | } |
| 68 | |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 69 | #Packaging environment configuration |
| 70 | function package_env_config() { |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 71 | |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 72 | #Select the compile parameters of the bootstrap |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 73 | case $1 in |
| 74 | 'ad401_a113l') |
| 75 | UBOOT_BOARDNAME="a1_ad401_nand_rtos" |
| 76 | ;; |
| 77 | 'ad403_a113l') |
shijie.xiong | 696e17c | 2022-04-25 10:53:33 +0800 | [diff] [blame] | 78 | UBOOT_BOARDNAME="a1_ad403_nand_rtos" |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 79 | unset BUILD_DSP |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 80 | unset DSP_ARCH |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 81 | ;; |
| 82 | *) |
| 83 | echo "Unsupported board type:$1" |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 84 | exit 1 |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 85 | ;; |
| 86 | esac |
| 87 | |
shijie.xiong | 82d1b62 | 2022-06-28 14:33:57 +0800 | [diff] [blame] | 88 | #Xip config |
| 89 | case $DSP_BOARD in |
| 90 | 'ad401_a113l_hifi4a_lowpower') |
| 91 | if [ $UBOOT_BOARDNAME == 'a1_ad401_nor_rtos' ]; then |
| 92 | RTOS_XIP=1 |
| 93 | fi |
| 94 | ;; |
| 95 | *) ;; |
| 96 | |
| 97 | esac |
| 98 | |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 99 | #Arch prefix settings |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 100 | if [ -n "$RTOS_ARCH" ]; then |
| 101 | ARCH_PREFIX="${RTOS_ARCH}""-" |
| 102 | PRODUCT_SUFFIX="-""${RTOS_PRODUCT}" |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 103 | fi |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 104 | if [ -n "$DSP_ARCH" ]; then |
| 105 | ARCH_PREFIX="${ARCH_PREFIX}""${DSP_ARCH}""-" |
| 106 | PRODUCT_SUFFIX="${PRODUCT_SUFFIX}""-""${DSP_PRODUCT}" |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 107 | fi |
| 108 | } |
| 109 | |
| 110 | #build rtos dsp |
| 111 | function build_rtos_dsp() { |
| 112 | |
| 113 | pushd $RTOS_BUILD_DIR |
| 114 | |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 115 | source scripts/env.sh ${DSP_ARCH} ${DSP_SOC} ${DSP_BOARD} ${DSP_PRODUCT} |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 116 | |
| 117 | make |
| 118 | |
| 119 | test -f ${DSP_SDK_SINGED_BIN_FILE} && cp ${DSP_SDK_SINGED_BIN_FILE} $PROJECT_BUILD_OUT_IMAGE_PATH/dspboot.bin |
shijie.xiong | 3fe6f04 | 2022-08-17 10:56:18 +0800 | [diff] [blame] | 120 | test -f ${DSP_SDK_DEBUG_FILE_PREFIX}.lst && cp ${DSP_SDK_DEBUG_FILE_PREFIX}.lst $PROJECT_BUILD_OUT_IMAGE_PATH/${DSP_ARCH}-${DSP_BOARD}.lst |
| 121 | test -f ${DSP_SDK_DEBUG_FILE_PREFIX}.map && cp ${DSP_SDK_DEBUG_FILE_PREFIX}.map $PROJECT_BUILD_OUT_IMAGE_PATH/${DSP_ARCH}-${DSP_BOARD}.map |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 122 | rm -rf $DSP_SDK_OUT_PATH |
| 123 | |
| 124 | popd |
| 125 | } |
| 126 | |
| 127 | #build rtos uimage |
| 128 | function build_rtos_image() { |
| 129 | |
| 130 | pushd $RTOS_BUILD_DIR |
| 131 | |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 132 | source scripts/env.sh ${RTOS_ARCH} ${RTOS_SOC} ${RTOS_BOARD} ${RTOS_PRODUCT} |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 133 | |
shijie.xiong | 82d1b62 | 2022-06-28 14:33:57 +0800 | [diff] [blame] | 134 | if [ -n "$RTOS_XIP" ]; then |
| 135 | sed -i -e 's/CONFIG_XIP .*$/CONFIG_XIP 1/' $RTOS_XIP_CONFIG_FILE |
| 136 | fi |
| 137 | |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 138 | if [ -n "$1" ] && |
| 139 | [ $1 == "backtrace" ]; then |
| 140 | make backtrace |
shijie.xiong | 82d1b62 | 2022-06-28 14:33:57 +0800 | [diff] [blame] | 141 | if [ -n "$RTOS_XIP" ]; then |
| 142 | make -f ${BUILD_SYSTEM_DIR}/xip.mk xip |
| 143 | cp ${RTOS_SDK_OUT_PATH}/${KERNEL}/${KERNEL}.bin ${RTOS_SDK_SINGED_BIN_FILE} |
| 144 | fi |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 145 | else |
| 146 | make |
shijie.xiong | 82d1b62 | 2022-06-28 14:33:57 +0800 | [diff] [blame] | 147 | if [ -n "$RTOS_XIP" ]; then |
| 148 | make -f ${BUILD_SYSTEM_DIR}/xip.mk xip |
| 149 | cp ${RTOS_SDK_OUT_PATH}/${KERNEL}/${KERNEL}.bin ${RTOS_SDK_SINGED_BIN_FILE} |
| 150 | fi |
| 151 | fi |
| 152 | |
| 153 | if [ -n "$RTOS_XIP" ]; then |
| 154 | sed -i -e 's/CONFIG_XIP .*$/CONFIG_XIP 0/' $RTOS_XIP_CONFIG_FILE |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 155 | fi |
| 156 | |
| 157 | if [ $? -ne 0 ]; then |
| 158 | echo "bulid rtos image faile error:$?" |
| 159 | popd |
| 160 | exit 1 |
| 161 | else |
shijie.xiong | 82d1b62 | 2022-06-28 14:33:57 +0800 | [diff] [blame] | 162 | if [ -z "$RTOS_XIP" ]; then |
| 163 | mkimage -A ${ARCH} -O u-boot -T standalone -C none -a 0x1000 -e 0x1000 -n rtos -d ${RTOS_SDK_SINGED_BIN_FILE} ${RTOS_SDK_IMAGE_PATH}/rtos-uImage |
| 164 | test -f ${RTOS_SDK_IMAGE_PATH}/rtos-uImage && cp ${RTOS_SDK_IMAGE_PATH}/rtos-uImage $PROJECT_BUILD_OUT_IMAGE_PATH/rtos-uImage |
shijie.xiong | 3fe6f04 | 2022-08-17 10:56:18 +0800 | [diff] [blame] | 165 | test -f ${RTOS_SDK_DEBUG_FILE_PREFIX}.lst && cp ${RTOS_SDK_DEBUG_FILE_PREFIX}.lst $PROJECT_BUILD_OUT_IMAGE_PATH/${RTOS_ARCH}-${RTOS_BOARD}.lst |
| 166 | test -f ${RTOS_SDK_DEBUG_FILE_PREFIX}.map && cp ${RTOS_SDK_DEBUG_FILE_PREFIX}.map $PROJECT_BUILD_OUT_IMAGE_PATH/${RTOS_ARCH}-${RTOS_BOARD}.map |
shijie.xiong | 82d1b62 | 2022-06-28 14:33:57 +0800 | [diff] [blame] | 167 | rm -rf $RTOS_SDK_OUT_PATH |
| 168 | else |
| 169 | mkimage -A ${ARCH} -O u-boot -T standalone -C none -a 0x1000 -e 0x1000 -n rtos -d ${RTOS_SDK_SINGED_BIN_FILE} ${RTOS_SDK_IMAGE_PATH}/rtos-uImage |
| 170 | cp ${RTOS_SDK_OUT_PATH}/freertos/freertos_b.bin ${RTOS_SDK_IMAGE_PATH}/rtos-xipA |
| 171 | cp ${RTOS_SDK_IMAGE_PATH}/* $PROJECT_BUILD_OUT_IMAGE_PATH/ |
shijie.xiong | 3fe6f04 | 2022-08-17 10:56:18 +0800 | [diff] [blame] | 172 | test -f ${RTOS_SDK_DEBUG_FILE_PREFIX}.lst && cp ${RTOS_SDK_DEBUG_FILE_PREFIX}.lst $PROJECT_BUILD_OUT_IMAGE_PATH/${RTOS_ARCH}-${RTOS_BOARD}.lst |
| 173 | test -f ${RTOS_SDK_DEBUG_FILE_PREFIX}.map && cp ${RTOS_SDK_DEBUG_FILE_PREFIX}.map $PROJECT_BUILD_OUT_IMAGE_PATH/${RTOS_ARCH}-${RTOS_BOARD}.map |
shijie.xiong | 82d1b62 | 2022-06-28 14:33:57 +0800 | [diff] [blame] | 174 | rm -rf $RTOS_SDK_OUT_PATH |
| 175 | fi |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 176 | fi |
| 177 | |
| 178 | popd |
| 179 | } |
| 180 | |
| 181 | #build aml image |
| 182 | function build_aml_image() { |
| 183 | install $RTOS_BUILD_DIR/$IMAGE_BOARD_CONFIG_DIR/platform.conf $PROJECT_BUILD_OUT_IMAGE_PATH/ |
| 184 | install $RTOS_BUILD_DIR/$IMAGE_BOARD_CONFIG_DIR/usb_flow.aml $PROJECT_BUILD_OUT_IMAGE_PATH/ |
| 185 | install $RTOS_BUILD_DIR/$IMAGE_BOARD_CONFIG_DIR/aml_sdc_burn.ini $PROJECT_BUILD_OUT_IMAGE_PATH/ |
| 186 | if [ -z "$BUILD_DSP" ]; then |
| 187 | install $RTOS_BUILD_DIR/$IMAGE_BOARD_CONFIG_DIR/aml_upgrade_package_ndsp.conf $PROJECT_BUILD_OUT_IMAGE_PATH/ |
| 188 | $RTOS_BUILD_DIR/image_packer/aml_image_v2_packer -r $PROJECT_BUILD_OUT_IMAGE_PATH/aml_upgrade_package_ndsp.conf $PROJECT_BUILD_OUT_IMAGE_PATH $PROJECT_BUILD_OUT_IMAGE_PATH/aml_upgrade_package.img |
| 189 | else |
shijie.xiong | 82d1b62 | 2022-06-28 14:33:57 +0800 | [diff] [blame] | 190 | if [ -z "$RTOS_XIP" ]; then |
| 191 | install $RTOS_BUILD_DIR/$IMAGE_BOARD_CONFIG_DIR/aml_upgrade_package.conf $PROJECT_BUILD_OUT_IMAGE_PATH/ |
| 192 | $RTOS_BUILD_DIR/image_packer/aml_image_v2_packer -r $PROJECT_BUILD_OUT_IMAGE_PATH/aml_upgrade_package.conf $PROJECT_BUILD_OUT_IMAGE_PATH $PROJECT_BUILD_OUT_IMAGE_PATH/aml_upgrade_package.img |
| 193 | else |
| 194 | install $RTOS_BUILD_DIR/$IMAGE_BOARD_CONFIG_DIR/aml_upgrade_package_xip.conf $PROJECT_BUILD_OUT_IMAGE_PATH/ |
| 195 | $RTOS_BUILD_DIR/image_packer/aml_image_v2_packer -r $PROJECT_BUILD_OUT_IMAGE_PATH/aml_upgrade_package_xip.conf $PROJECT_BUILD_OUT_IMAGE_PATH $PROJECT_BUILD_OUT_IMAGE_PATH/aml_upgrade_package.img |
| 196 | fi |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 197 | fi |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 198 | |
shijie.xiong | 3fe6f04 | 2022-08-17 10:56:18 +0800 | [diff] [blame] | 199 | cd $PROJECT_BUILD_OUT_IMAGE_PATH && rm $(ls | grep -v ".lst" | grep -v ".map" | grep -v ".img") |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 200 | } |
| 201 | |
| 202 | #build uboot |
| 203 | function build_uboot() { |
shijie.xiong | fe9f21e | 2022-09-21 10:52:41 +0800 | [diff] [blame] | 204 | echo "UBOOT COMPILE START" |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 205 | if [ -z "$UBOOT_BOARDNAME" ]; then |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 206 | echo "Select board($BOARD) not support compile uboot" |
| 207 | exit 1 |
| 208 | else |
shijie.xiong | 446f12c | 2022-11-30 10:24:17 +0800 | [diff] [blame^] | 209 | pushd $RTOS_BUILD_DIR/boot/u-boot |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 210 | ./mk $UBOOT_BOARDNAME |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 211 | test -f build/u-boot.bin && cp -av build/u-boot.bin* $PROJECT_BUILD_OUT_IMAGE_PATH |
| 212 | popd |
| 213 | fi |
| 214 | } |
| 215 | |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 216 | package_target_verify |
| 217 | package_env_config $RTOS_BOARD |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 218 | |
shijie.xiong | 82d1b62 | 2022-06-28 14:33:57 +0800 | [diff] [blame] | 219 | export BUILD_SYSTEM_DIR=${RTOS_BUILD_DIR}/build_system |
| 220 | export RTOS_XIP_CONFIG_FILE=${RTOS_BUILD_DIR}/boards/${RTOS_ARCH}/${RTOS_BOARD}/lscript.h |
shijie.xiong | 696e17c | 2022-04-25 10:53:33 +0800 | [diff] [blame] | 221 | export PROJECT_BUILD_OUT_IMAGE_PATH=${RTOS_BUILD_DIR}/output/packages/"${ARCH_PREFIX}""${RTOS_SOC}"-${RTOS_BOARD} |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 222 | |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 223 | export RTOS_SDK_OUT_PATH=${RTOS_BUILD_DIR}/output/${RTOS_ARCH}-${RTOS_BOARD}-${RTOS_PRODUCT} |
| 224 | export RTOS_SDK_IMAGE_PATH=${RTOS_BUILD_DIR}/output/${RTOS_ARCH}-${RTOS_BOARD}-${RTOS_PRODUCT}/images |
| 225 | export RTOS_SDK_SINGED_BIN_FILE=${RTOS_BUILD_DIR}/output/${RTOS_ARCH}-${RTOS_BOARD}-${RTOS_PRODUCT}/images/${KERNEL}-signed.bin |
shijie.xiong | 3fe6f04 | 2022-08-17 10:56:18 +0800 | [diff] [blame] | 226 | export RTOS_SDK_DEBUG_FILE_PREFIX=${RTOS_BUILD_DIR}/output/${RTOS_ARCH}-${RTOS_BOARD}-${RTOS_PRODUCT}/${KERNEL}/${KERNEL} |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 227 | |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 228 | export DSP_SDK_OUT_PATH=${RTOS_BUILD_DIR}/output/${DSP_ARCH}-${DSP_BOARD}-${DSP_PRODUCT} |
| 229 | export DSP_SDK_IMAGE_PATH=${RTOS_BUILD_DIR}/output/${DSP_ARCH}-${DSP_BOARD}-${DSP_PRODUCT}/images |
| 230 | export DSP_SDK_SINGED_BIN_FILE=${RTOS_BUILD_DIR}/output/${DSP_ARCH}-${DSP_BOARD}-${DSP_PRODUCT}/images/${KERNEL}-signed.bin |
shijie.xiong | 3fe6f04 | 2022-08-17 10:56:18 +0800 | [diff] [blame] | 231 | export DSP_SDK_DEBUG_FILE_PREFIX=${RTOS_BUILD_DIR}/output/${DSP_ARCH}-${DSP_BOARD}-${DSP_PRODUCT}/${KERNEL}/${KERNEL} |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 232 | |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 233 | test -n "$BUILD_CLEAN" && rm -fr $DSP_SDK_OUT_PATH |
| 234 | test -n "$BUILD_CLEAN" && rm -fr $RTOS_SDK_OUT_PATH |
| 235 | test -n "$BUILD_CLEAN" && rm -fr $PROJECT_BUILD_OUT_IMAGE_PATH |
| 236 | mkdir -p $PROJECT_BUILD_OUT_IMAGE_PATH |
| 237 | |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 238 | test -n "$BUILD_RTOS" && build_rtos_image $1 |
shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 239 | test -n "$BUILD_DSP" && build_rtos_dsp |
| 240 | test -n "$BUILD_UBOOT" && build_uboot |
shijie.xiong | 1369b8c | 2022-03-31 15:22:51 +0800 | [diff] [blame] | 241 | test -n "$BUILD_IMAGE" && build_aml_image |
| 242 | |
| 243 | echo "======Done======" |