scripts: xip support [5/5]
PD#SWPL-86395
Problem:
xip support.
Solution:
xip support.
Verify:
ad401
Signed-off-by: shijie.xiong <shijie.xiong@amlogic.com>
Change-Id: Id6cb44ba1283c95e6ee4ba7033ce032955f92cdf
diff --git a/package.sh b/package.sh
index 6664f6c..9487cd6 100755
--- a/package.sh
+++ b/package.sh
@@ -85,6 +85,17 @@
;;
esac
+ #Xip config
+ case $DSP_BOARD in
+ 'ad401_a113l_hifi4a_lowpower')
+ if [ $UBOOT_BOARDNAME == 'a1_ad401_nor_rtos' ]; then
+ RTOS_XIP=1
+ fi
+ ;;
+ *) ;;
+
+ esac
+
#Arch prefix settings
if [ -n "$RTOS_ARCH" ]; then
ARCH_PREFIX="${RTOS_ARCH}""-"
@@ -118,11 +129,27 @@
source scripts/env.sh ${RTOS_ARCH} ${RTOS_SOC} ${RTOS_BOARD} ${RTOS_PRODUCT}
+ if [ -n "$RTOS_XIP" ]; then
+ sed -i -e 's/CONFIG_XIP .*$/CONFIG_XIP 1/' $RTOS_XIP_CONFIG_FILE
+ fi
+
if [ -n "$1" ] &&
[ $1 == "backtrace" ]; then
make backtrace
+ if [ -n "$RTOS_XIP" ]; then
+ make -f ${BUILD_SYSTEM_DIR}/xip.mk xip
+ cp ${RTOS_SDK_OUT_PATH}/${KERNEL}/${KERNEL}.bin ${RTOS_SDK_SINGED_BIN_FILE}
+ fi
else
make
+ if [ -n "$RTOS_XIP" ]; then
+ make -f ${BUILD_SYSTEM_DIR}/xip.mk xip
+ cp ${RTOS_SDK_OUT_PATH}/${KERNEL}/${KERNEL}.bin ${RTOS_SDK_SINGED_BIN_FILE}
+ fi
+ fi
+
+ if [ -n "$RTOS_XIP" ]; then
+ sed -i -e 's/CONFIG_XIP .*$/CONFIG_XIP 0/' $RTOS_XIP_CONFIG_FILE
fi
if [ $? -ne 0 ]; then
@@ -130,9 +157,16 @@
popd
exit 1
else
- 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
- test -f ${RTOS_SDK_IMAGE_PATH}/rtos-uImage && cp ${RTOS_SDK_IMAGE_PATH}/rtos-uImage $PROJECT_BUILD_OUT_IMAGE_PATH/rtos-uImage
- rm -rf $RTOS_SDK_OUT_PATH
+ if [ -z "$RTOS_XIP" ]; then
+ 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
+ test -f ${RTOS_SDK_IMAGE_PATH}/rtos-uImage && cp ${RTOS_SDK_IMAGE_PATH}/rtos-uImage $PROJECT_BUILD_OUT_IMAGE_PATH/rtos-uImage
+ rm -rf $RTOS_SDK_OUT_PATH
+ else
+ 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
+ cp ${RTOS_SDK_OUT_PATH}/freertos/freertos_b.bin ${RTOS_SDK_IMAGE_PATH}/rtos-xipA
+ cp ${RTOS_SDK_IMAGE_PATH}/* $PROJECT_BUILD_OUT_IMAGE_PATH/
+ rm -rf $RTOS_SDK_OUT_PATH
+ fi
fi
popd
@@ -147,8 +181,13 @@
install $RTOS_BUILD_DIR/$IMAGE_BOARD_CONFIG_DIR/aml_upgrade_package_ndsp.conf $PROJECT_BUILD_OUT_IMAGE_PATH/
$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
else
- install $RTOS_BUILD_DIR/$IMAGE_BOARD_CONFIG_DIR/aml_upgrade_package.conf $PROJECT_BUILD_OUT_IMAGE_PATH/
- $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
+ if [ -z "$RTOS_XIP" ]; then
+ install $RTOS_BUILD_DIR/$IMAGE_BOARD_CONFIG_DIR/aml_upgrade_package.conf $PROJECT_BUILD_OUT_IMAGE_PATH/
+ $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
+ else
+ install $RTOS_BUILD_DIR/$IMAGE_BOARD_CONFIG_DIR/aml_upgrade_package_xip.conf $PROJECT_BUILD_OUT_IMAGE_PATH/
+ $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
+ fi
fi
cd $PROJECT_BUILD_OUT_IMAGE_PATH && rm $(ls | grep -v "aml_upgrade_package.img")
@@ -170,6 +209,8 @@
package_target_verify
package_env_config $RTOS_BOARD
+export BUILD_SYSTEM_DIR=${RTOS_BUILD_DIR}/build_system
+export RTOS_XIP_CONFIG_FILE=${RTOS_BUILD_DIR}/boards/${RTOS_ARCH}/${RTOS_BOARD}/lscript.h
export PROJECT_BUILD_OUT_IMAGE_PATH=${RTOS_BUILD_DIR}/output/packages/"${ARCH_PREFIX}""${RTOS_SOC}"-${RTOS_BOARD}
export RTOS_SDK_OUT_PATH=${RTOS_BUILD_DIR}/output/${RTOS_ARCH}-${RTOS_BOARD}-${RTOS_PRODUCT}