SoC c3 : scripts : sync changes from SH-21631. [1/1]

PD#SWPL-96793

Problem:
Optimize the C3 compilation process.

Solution:
Optimize the C3 compilation process.

Verify:
N/A

Change-Id: I664cc9047a2b883d47792468874523f5f51e33b4
Signed-off-by: shijie.xiong <shijie.xiong@amlogic.com>
diff --git a/gen_fastboot.sh b/gen_fastboot.sh
index cc63388..83101a1 100755
--- a/gen_fastboot.sh
+++ b/gen_fastboot.sh
@@ -8,12 +8,23 @@
 #RTOS root directory
 RTOS_BASE_DIR=$(realpath $(dirname $(readlink -f ${BASH_SOURCE[0]:-$0}))/..)
 
+#Board default config
 RTOS_TARGET_ADDRESS=0x2200000
 BOARD_TYPE=aw402_c302x
 SENSOR_TYPE=SC301IOT
 DDR_SIZE=128m
 UBOOT_CFG=c3_aw402
 
+#ISP default config
+ISP_MCNR_BUFFER_BASE=0x3000000
+ISP_PTNR_BUFFER_BASE=0x37C6000
+ISP_STATS_BUFFER_BASE=0x3B86000
+ISP_PARAM_BUFFER_BASE=0x3C86000
+ISP_PRESET_BASE=0x3D06000
+ISP_IMG_BUFFER_BASE=0x3E00000
+ISP_RGB_IMG_BUFFER_BASE=0x6000000
+ISP_WDR_VI_RAW_BASE=0x01000000
+
 while [[ $# -gt 0 ]]; do
     case "$1" in
     -a | --address)
@@ -51,6 +62,10 @@
         INSTALL_DIR=$2
         shift 2
         ;;
+    --rtos-dir)
+        RTOS_BASE_DIR=$2
+        shift 2
+        ;;
     -h | --help)
         echo -e "\033[41;33m gen_fastboot.sh help info \033[0m"
         echo "Usage: fastboot [OPTIONS]"
@@ -135,44 +150,119 @@
     echo "<============ TOOLCHAIN INFO RTOS ============>"
 }
 
-#Configure the compile-time address.
-function rtos_config_prepare() {
+function sensor_config_choose() {
+    VENC_CONFIG_H=lib/venc/include/venc_config.h
     CONFIG_FILE=$RTOS_BASE_DIR/boards/$ARCH/$BOARD/lscript.h
+
+    #Configure the compile-time address.
     sed -i '/.*#define configTEXT_BASE*/c\#define configTEXT_BASE '${RTOS_TARGET_ADDRESS}'' $CONFIG_FILE
     sed -i '/.*#define CONFIG_SCATTER_LOAD_ADDRESS*/c\#define CONFIG_SCATTER_LOAD_ADDRESS '${RTOS2_TARGET_ADDRESS}'' $CONFIG_FILE
+
+	sed -i '/CONFIG_SENSOR_SC301IOT/d' $RTOS_BASE_DIR/boards/$ARCH/$BOARD/defconfig
+	sed -i '/CONFIG_SENSOR_SC401AI/d' $RTOS_BASE_DIR/boards/$ARCH/$BOARD/defconfig
+	sed -i '/CONFIG_SENSOR_SC5336P/d' $RTOS_BASE_DIR/boards/$ARCH/$BOARD/defconfig
+	sed -i '/.*#define MINI_ENC_300W*/c\#define MINI_ENC_300W '0'' $VENC_CONFIG_H
+	sed -i '/.*#define MINI_ENC_400W*/c\#define MINI_ENC_400W '0'' $VENC_CONFIG_H
+	sed -i '/.*#define MINI_ENC_2880X1620*/c\#define MINI_ENC_2880X1620 '0'' $VENC_CONFIG_H
+
     case $DDR_SIZE in
     '128m')
-        sed -i '/.*#define configSRAM_START*/c\#define configSRAM_START '0x3000000'' $CONFIG_FILE
-        sed -i '/.*#define configSRAM_LEN*/c\#define configSRAM_LEN '0x1700000'' $CONFIG_FILE
-        sed -i '/.*#define configVENC_BASE*/c\#define configVENC_BASE '0x04700000'' $CONFIG_FILE
-        sed -i '/.*#define configVENC_LEN*/c\#define configVENC_LEN '0x0B00000'' $CONFIG_FILE
-        sed -i '/.*#define configISP_RGB_BASE*/c\#define configISP_RGB_BASE '0x6000000'' $CONFIG_FILE
-        ;;
+        case $SENSOR_TYPE in
+            'SC301IOT')
+                sed -i '$ a CONFIG_SENSOR_SC301IOT=y' $RTOS_BASE_DIR/boards/$ARCH/$BOARD/defconfig
+                sed -i '/.*#define MINI_ENC_300W*/c\#define MINI_ENC_300W '1'' $VENC_CONFIG_H
+                ISP_MCNR_BUFFER_BASE=0x3000000
+                ISP_PTNR_BUFFER_BASE=0x37C6000
+                ISP_STATS_BUFFER_BASE=0x3B86000
+                ISP_PARAM_BUFFER_BASE=0x3C86000
+                ISP_PRESET_BASE=0x3D06000
+                ISP_IMG_BUFFER_BASE=0x3E00000
+                ISP_RGB_IMG_BUFFER_BASE=0x6000000
+                ISP_WDR_VI_RAW_BASE=0x01000000
+            ;;
+            'SC401AI')
+                sed -i '$ a CONFIG_SENSOR_SC401AI=y' $RTOS_BASE_DIR/boards/$ARCH/$BOARD/defconfig
+                sed -i '/.*#define MINI_ENC_400W*/c\#define MINI_ENC_400W '1'' $VENC_CONFIG_H
+                    ISP_MCNR_BUFFER_BASE=0x3000000
+                    ISP_PTNR_BUFFER_BASE=0x391A000
+                    ISP_STATS_BUFFER_BASE=0x3D7F000
+                    ISP_PARAM_BUFFER_BASE=0x3E7F000
+                    ISP_PRESET_BASE=0x3EFF000
+                    ISP_IMG_BUFFER_BASE=0x3F00000
+                    ISP_RGB_IMG_BUFFER_BASE=0x6000000
+                    ISP_WDR_VI_RAW_BASE=0x01000000
+                ;;
+            esac
+
+            sed -i '/.*#define configSRAM_START*/c\#define configSRAM_START '0x3000000'' $CONFIG_FILE
+            sed -i '/.*#define configSRAM_LEN*/c\#define configSRAM_LEN '0x1700000'' $CONFIG_FILE
+            sed -i '/.*#define configVENC_BASE*/c\#define configVENC_BASE '0x04700000'' $CONFIG_FILE
+            sed -i '/.*#define configVENC_LEN*/c\#define configVENC_LEN '0x0B00000'' $CONFIG_FILE
+            sed -i '/.*#define configISP_RGB_BASE*/c\#define configISP_RGB_BASE '0x6000000'' $CONFIG_FILE
+
+            sed -i '/.*#define VENC_PHY_MEM_BASE_ADDR*/c\#define VENC_PHY_MEM_BASE_ADDR '0x4700000'' $VENC_CONFIG_H
+            sed -i '/.*#define VENC_PHY_MEM_SIZE*/c\#define VENC_PHY_MEM_SIZE '0x900000'' $VENC_CONFIG_H
+            ;;
     '256m')
+        case $SENSOR_TYPE in
+            'SC301IOT')
+                sed -i '$ a CONFIG_SENSOR_SC301IOT=y' $RTOS_BASE_DIR/boards/$ARCH/$BOARD/defconfig
+                sed -i '/.*#define MINI_ENC_300W*/c\#define MINI_ENC_300W '1'' $VENC_CONFIG_H
+                #	start_addr
+                ISP_MCNR_BUFFER_BASE=0x9B00000
+                ISP_PTNR_BUFFER_BASE=0xA2C6000
+                ISP_STATS_BUFFER_BASE=0xA686000
+                ISP_PARAM_BUFFER_BASE=0xA786000
+                ISP_PRESET_BASE=0xA806000
+                ISP_IMG_BUFFER_BASE=0xA807000
+                ISP_RGB_IMG_BUFFER_BASE=0x6000000
+                ISP_WDR_VI_RAW_BASE=0x01000000
+                ;;
+            'SC401AI')
+                sed -i '$ a CONFIG_SENSOR_SC401AI=y' $RTOS_BASE_DIR/boards/$ARCH/$BOARD/defconfig
+                sed -i '/.*#define MINI_ENC_400W*/c\#define MINI_ENC_400W '1'' $VENC_CONFIG_H
+                ISP_MCNR_BUFFER_BASE=0x9B00000
+                ISP_PTNR_BUFFER_BASE=0xA41A000
+                ISP_STATS_BUFFER_BASE=0xA87F000
+                ISP_PARAM_BUFFER_BASE=0xA97F000
+                ISP_PRESET_BASE=0xA9FF000
+                ISP_IMG_BUFFER_BASE=0xAA00000
+                ISP_RGB_IMG_BUFFER_BASE=0x6000000
+                ISP_WDR_VI_RAW_BASE=0x01000000
+                ;;
+            'SC5336P')
+                sed -i '$ a CONFIG_SENSOR_SC5336P=y' $RTOS_BASE_DIR/boards/$ARCH/$BOARD/defconfig
+                sed -i '/.*#define MINI_ENC_2880X1620*/c\#define MINI_ENC_2880X1620 '1'' $VENC_CONFIG_H
+                ISP_MCNR_BUFFER_BASE=0x9B00000
+                ISP_PTNR_BUFFER_BASE=0xA681000
+                ISP_STATS_BUFFER_BASE=0xAC11000
+                ISP_PARAM_BUFFER_BASE=0xAD11000
+                ISP_PRESET_BASE=0xAD91000
+                ISP_IMG_BUFFER_BASE=0xAD92000
+                ISP_RGB_IMG_BUFFER_BASE=0x3700000
+                ISP_WDR_VI_RAW_BASE=0x01000000
+                ;;
+        esac
         sed -i '/.*#define configSRAM_START*/c\#define configSRAM_START '0x9B00000'' $CONFIG_FILE
         sed -i '/.*#define configSRAM_LEN*/c\#define configSRAM_LEN '0x3200000'' $CONFIG_FILE
         sed -i '/.*#define configVENC_BASE*/c\#define configVENC_BASE '0xCD00000'' $CONFIG_FILE
         sed -i '/.*#define configVENC_LEN*/c\#define configVENC_LEN '0x2A00000'' $CONFIG_FILE
         sed -i '/.*#define configISP_RGB_BASE*/c\#define configISP_RGB_BASE '0x3700000'' $CONFIG_FILE
-        ;;
-    *)
-        sed -i '/.*#define configSRAM_START*/c\#define configSRAM_START '0x3000000'' $CONFIG_FILE
-        sed -i '/.*#define configSRAM_LEN*/c\#define configSRAM_LEN '0x1700000'' $CONFIG_FILE
-        sed -i '/.*#define configVENC_LEN*/c\#define configVENC_LEN '0x04700000'' $CONFIG_FILE
-        sed -i '/.*#define configISP_RGB_BASE*/c\#define configISP_RGB_BASE '0x6000000'' $CONFIG_FILE
+
+        sed -i '/.*#define VENC_PHY_MEM_BASE_ADDR*/c\#define VENC_PHY_MEM_BASE_ADDR '0xCD00000'' $VENC_CONFIG_H
+        sed -i '/.*#define VENC_PHY_MEM_SIZE*/c\#define VENC_PHY_MEM_SIZE '0x2800000'' $VENC_CONFIG_H
         ;;
     esac
-}
+        #config isp buffer base
+        sed -i '/.*#define AML_ISP_MCNR_BUFFER_BASE_ADDR*/c\#define AML_ISP_MCNR_BUFFER_BASE_ADDR '${ISP_MCNR_BUFFER_BASE}'' $CONFIG_FILE
+        sed -i '/.*#define AML_ISP_PTNR_BUFFER_BASE_ADDR*/c\#define AML_ISP_PTNR_BUFFER_BASE_ADDR '${ISP_PTNR_BUFFER_BASE}'' $CONFIG_FILE
+        sed -i '/.*#define AML_ISP_STATS_BUFFER_BASE_ADDR*/c\#define AML_ISP_STATS_BUFFER_BASE_ADDR '${ISP_STATS_BUFFER_BASE}'' $CONFIG_FILE
+        sed -i '/.*#define AML_ISP_PARAM_BUFFER_BASE_ADDR*/c\#define AML_ISP_PARAM_BUFFER_BASE_ADDR '${ISP_PARAM_BUFFER_BASE}'' $CONFIG_FILE
+        sed -i '/.*#define AML_ISP_PRESET_BASE_ADDR*/c\#define AML_ISP_PRESET_BASE_ADDR '${ISP_PRESET_BASE}'' $CONFIG_FILE
+        sed -i '/.*#define AML_ISP_IMG_BUFFER_BASE_ADDR*/c\#define AML_ISP_IMG_BUFFER_BASE_ADDR '${ISP_IMG_BUFFER_BASE}'' $CONFIG_FILE
+        sed -i '/.*#define AML_ISP_RGB_IMG_BUFFER_BASE_ADDR*/c\#define AML_ISP_RGB_IMG_BUFFER_BASE_ADDR '${ISP_RGB_IMG_BUFFER_BASE}'' $CONFIG_FILE
+        sed -i '/.*#define AML_ISP_WDR_VI_RAW_BASE_ADDR*/c\#define AML_ISP_WDR_VI_RAW_BASE_ADDR '${ISP_WDR_VI_RAW_BASE}'' $CONFIG_FILE
 
-function sensor_config_choose() {
-	sed -i '/CONFIG_SENSOR_SC401AI/d' $RTOS_BASE_DIR/boards/$ARCH/$BOARD/defconfig
-	sed -i '/CONFIG_SENSOR_SC5336P/d' $RTOS_BASE_DIR/boards/$ARCH/$BOARD/defconfig
-	if [ "${SENSOR_TYPE}" == "SC401AI" ]; then
-		sed -i '$ a CONFIG_SENSOR_SC401AI=y' $RTOS_BASE_DIR/boards/$ARCH/$BOARD/defconfig
-	fi
-	if [ "${SENSOR_TYPE}" == "SC5336P" ]; then
-		sed -i '$ a CONFIG_SENSOR_SC5336P=y' $RTOS_BASE_DIR/boards/$ARCH/$BOARD/defconfig
-	fi
 }
 
 function lz4_rtos() {
@@ -317,8 +407,6 @@
     echo "<============ JENKINS FOR RTOS ============>"
 }
 
-#Configure the RTOS environment
-rtos_config_prepare
 #choose sensor
 sensor_config_choose
 #Compile toolchain preparation