diff --git a/build/build_boot-app-mcu-rtos_release.sh b/build/build_boot-app-mcu-rtos_release.sh
new file mode 100755
index 0000000..a08f0ae
--- /dev/null
+++ b/build/build_boot-app-mcu-rtos_release.sh
@@ -0,0 +1 @@
+make -s -j can_boot_app_mcu_rtos HLOSBOOT=linux BOOTMODE=ospi CANFUNC=none BOARD=j7200_evm SOC=j7200 BUILD_PROFILE=release CORE=mcu1_0 BUILD_OS_TYPE=tirtos
diff --git a/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/scripts/constructappimage_multistage_j7200.sh b/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/scripts/constructappimage_multistage_j7200.sh
index c06ee7d..d04a416 100755
--- a/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/scripts/constructappimage_multistage_j7200.sh
+++ b/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/scripts/constructappimage_multistage_j7200.sh
@@ -9,8 +9,9 @@ PDK_INSTALL_PATH="${SDK_INSTALL_PATH}/pdk_j7200_07_03_00_29/packages"
 SBL_REPO_PATH="${PDK_INSTALL_PATH}/ti/boot/sbl"
 MULTICORE_APPIMAGE_GEN_TOOL_PATH="${SBL_REPO_PATH}/tools/multicoreImageGen/bin"
 SBL_OUT2RPRC_GEN_TOOL_PATH="${SBL_REPO_PATH}/tools/out2rprc/bin"
+ETHFW_BINARY_PATH=${SDK_INSTALL_PATH}/ethfw/out/J7200/R5Ft/SYSBIOS/debug
 MULTICOREAPP_BIN_PATH=../binary/bin/j7200_evm
-TEST_NAME=ex01_multicore_demo_app
+TEST_NAME=app_remoteswitchcfg
 
 devId=55
 
@@ -23,14 +24,14 @@ numStages=2
 appImageName1=multicore_MCU2_0_MCU2_1_stage1.appimage
 appImageName2=multicore_MPU1_0_stage2.appimage
 
-ElfImages1=("mcusw_${TEST_NAME}_mcu2_0_release_strip.xer5f" \
-            "mcusw_${TEST_NAME}_mcu2_1_release_strip.xer5f" \
+ElfImages1=("${TEST_NAME}_server_strip.xer5f" \
+            "${TEST_NAME}_client_strip.xer5f" \
            )
 ElfImages2=("mcusw_${TEST_NAME}_mpu1_0_release.xa72fg" \
            )
 
-CoreRprcFiles1=("mcusw_${TEST_NAME}_mcu2_0_release_strip.xer5f.rprc" \
-                "mcusw_${TEST_NAME}_mcu2_1_release_strip.xer5f.rprc" \
+CoreRprcFiles1=("${TEST_NAME}_server_strip.xer5f.rprc" \
+                "${TEST_NAME}_client_strip.xer5f.rprc" \
                )
 CoreRprcFiles2=("mcusw_${TEST_NAME}_mpu1_0_release.xa72fg.rprc" \
                )
@@ -73,6 +74,7 @@ fi
 
 ## Create all rprc files for each of the stages
 for i in ${ElfImages1[@]}; do
+    cp ${ETHFW_BINARY_PATH}/$i .
     $SBL_OUT2RPRC_GEN_TOOL_PATH/out2rprc.exe $i "$i.rprc"
 done
 for i in ${ElfImages2[@]}; do
diff --git a/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/scripts/hlos/constructappimageshlos.sh b/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/scripts/hlos/constructappimageshlos.sh
index 7e5a78b..bad73ff 100755
--- a/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/scripts/hlos/constructappimageshlos.sh
+++ b/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/scripts/hlos/constructappimageshlos.sh
@@ -4,10 +4,12 @@
 ##############################################################
 
 # MY_BOARD options are: j721e_evm or j7200_evm
-MY_BOARD=$1
+#MY_BOARD=$1
+MY_BOARD=j7200_evm
 
 # OS options are: linux or qnx
-OS=qnx
+#OS=qnx
+OS=linux
 
 # Linux-specific paths
 # --------------------
@@ -17,7 +19,17 @@ OS=qnx
 # base-board.dtb (k3-j72*-common-proc-board.dtb), and Image files
 
 # Linux build directory containing all the locally-built Linux-related binaries
-LINUX_BUILD_DIR_PATH=USER_DEFINED_PATH
+if [ $OS == "linux" ]; then
+   SDK_PATH=/home/a0220410local/Public/J7200/SDK_V7.3
+
+   PSDKRA_INSTALL_PATH=${SDK_PATH}/ti-processor-sdk-rtos-j7200-evm-07_03_00_07
+   PSDKLA_INSTALL_PATH=${SDK_PATH}/ti-processor-sdk-linux-j7200-evm-07_03_00_04
+   LINUX_TOOLCHAIN_PATH_GCC_ARCH64=${PSDKRA_INSTALL_PATH}/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin
+   LINUX_KERNEL_PATH=${PSDKLA_INSTALL_PATH}/board-support/linux-5.4.106+gitAUTOINC+023faefa70-g023faefa70
+   LINUX_PREBUILT_DIR=${PSDKLA_INSTALL_PATH}/board-support/prebuilt-images
+   LINUX_DTB_DIR=${LINUX_KERNEL_PATH}/arch/arm64/boot/dts/ti
+   LINUX_BUILD_DIR_PATH=${PSDKLA_INSTALL_PATH}/board-support/u-boot_build/a72/spl
+fi
 
 # QNX-specific paths
 # ------------------
@@ -63,6 +75,10 @@ pushd $PWD > /dev/null
 if [ $OS == "linux" ]; then
     cd $LINUX_BUILD_DIR_PATH
     #cd $LINUX_PREBUILT_DIR_PATH
+    cp $LINUX_PREBUILT_DIR/bl31.bin .
+    cp $LINUX_PREBUILT_DIR/bl32.bin .
+    cp $LINUX_PREBUILT_DIR/Image .
+    cp $LINUX_DTB_DIR/k3-j7200-common-proc-board.dtb base-board.dtb
 fi
 if [ $OS == "qnx" ]; then
     cd $QNX_PREBUILT_DIR_PATH
@@ -73,7 +89,7 @@ for i in "${GenFiles[@]}"
 do
     echo "Generating $i image"
     if [ $OS == "linux" ]; then
-        aarch64-none-linux-gnu-ld -T $LDS_PATH/$i.lds -o $MULTICOREAPP_BIN_PATH/$i.elf
+        ${LINUX_TOOLCHAIN_PATH_GCC_ARCH64}/aarch64-none-linux-gnu-ld -T $LDS_PATH/$i.lds -o $MULTICOREAPP_BIN_PATH/$i.elf
     fi
     if [ $OS == "qnx" ]; then
         ${TOOLCHAIN_PATH_GCC_ARCH64}/aarch64-unknown-nto-qnx7.0.0-ld -T $LDS_PATH/$i.lds -o $MULTICOREAPP_BIN_PATH/$i.elf
diff --git a/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/scripts/hlos/flash_ospi_boot_main_demo.sh b/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/scripts/hlos/flash_ospi_boot_main_demo.sh
new file mode 100755
index 0000000..b871f82
--- /dev/null
+++ b/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/scripts/hlos/flash_ospi_boot_main_demo.sh
@@ -0,0 +1,149 @@
+# Please refer to below link for OSPI image address
+# https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/latest/exports/docs/mcusw/mcal_drv/docs/drv_docs/demo_boot_app_mcu_rtos_top.html
+#
+
+#adjust blow PATH according to your own enviroment
+export FLASH_TTY_PORT=/dev/ttyUSB1
+export PSDKRA_PATH=/home/a0220410local/Public/J7200/SDK_V7.3/ti-processor-sdk-rtos-j7200-evm-07_03_00_07
+export DSLITE_PATH=/home/a0220410local/Public/J721E/uniflash_6.2.0
+export MCU_APP_PATH=$PSDKRA_PATH/mcusw/binary
+export MAIN_APP_PATH=$PSDKRA_PATH/mcusw/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/binary/bin/j7200_evm
+
+#path used by utility
+export PDK_PATH=$PSDKRA_PATH/pdk_j7200_07_03_00_29
+export FLASH_PROGRAMMER_BINARY=$PDK_PATH/packages/ti/board/utils/uniflash/target/bin/j7200_evm/uart_j7200_evm_flash_programmer_release.tiimage
+export FLASH_PROGRAMMER_SYSFW=$PDK_PATH/packages/ti/board/utils/uniflash/target/bin/j7200_evm/sysfw.bin
+export FLASH_PATTERN_BINARY=$PDK_PATH/packages/ti/board/src/flash/nor/ospi/nor_spi_patterns.bin
+export SBL_CUST_BINARY=$PDK_PATH/packages/ti/boot/sbl/binary/j7200_evm/cust/bin/sbl_cust_img_mcu1_0_release.tiimage
+export SBL_PATH=$PDK_PATH/packages/ti/boot/sbl/binary/j7200_evm/ospi/bin
+export TIFS_BINARY=$PDK_PATH/packages/ti/drv/sciclient/soc/V2/tifs.bin
+export MCU1_0_IMAGE=$MCU_APP_PATH/can_boot_app_mcu_rtos/bin/j7200_evm/can_boot_app_mcu_rtos_mcu1_0_release.appimage
+export STAGE1_IMAGE=$MAIN_APP_PATH/multicore_MCU2_0_MCU2_1_stage1.appimage
+export STAGE2_IMAGE=$MAIN_APP_PATH/multicore_DSPs_MCU3_0_MCU3_1_stage2.appimage
+export ATF_OPTEE_IMAGE=$MAIN_APP_PATH/atf_optee.appimage
+export KERNEL_IMAGE=$MAIN_APP_PATH/tikernelimage_linux.appimage
+export DTB_IMAGE=$MAIN_APP_PATH/tidtb_linux.appimage
+export CURRENT_PATH=$PWD
+
+echo "checking $TIFS_BINARY ..."
+if [ ! -f $TIFS_BINARY ]; then
+echo "ERROR!!! $TIFS_BINARY doesn't exist!!!"
+exit 1
+else
+echo "$TIFS_BINARY is in place."
+fi
+
+echo ""
+echo "checking $FLASH_PATTERN_BINARY ..."
+if [ ! -f $FLASH_PATTERN_BINARY ]; then
+echo "ERROR!!! $FLASH_PATTERN_BINARY doesn't exist!!!"
+exit 2
+else
+echo "$FLASH_PATTERN_BINARY is in place."
+fi
+
+echo ""
+echo "checking $FLASH_PROGRAMMER_BINARY ..."
+if [ ! -f $FLASH_PROGRAMMER_BINARY ]; then
+echo "$FLASH_PROGRAMMER_BINARY doesn't exist!!!"
+echo " =============================================================================== "
+echo " Please build flash programmer in $PDK_PATH/packages/ti/build"
+echo " make PLATFORM=j7200_evm board_utils_uart_flash_programmer"
+echo " =============================================================================== "
+exit 3
+fi
+
+echo ""
+echo "checking $SBL_CUST_BINARY ..."
+if [ ! -f $SBL_CUST_BINARY ]; then
+echo "$SBL_CUST_BINARY doesn't exist, ATTENTION!!!"
+echo " =============================================================================== "
+echo " Please build the SBL in $PDK_PATH/package/ti/build "
+echo " step 1: make BOARD=j7200_evm CORE=mcu1_0 BUILD_PROFILE=release pdk_libs_clean"
+echo " step 2: make BOARD=j7200_evm CORE=mcu1_0 BUILD_PROFILE=release pdk_libs"
+echo " step 3: make BOARD=j7200_evm CORE=mcu1_0 BUILD_PROFILE=release sbl_cust_img_clean"
+echo " step 4: make BOARD=j7200_evm CORE=mcu1_0 BUILD_PROFILE=release sbl_cust_img"
+echo " =============================================================================== "
+exit 4
+fi
+
+echo ""
+echo "checking $MCU1_0_IMAGE ..."
+if [ ! -f $MCU1_0_IMAGE ]; then
+echo "$MCU1_0_IMAGE doesn't exist, ATTENTION!!!"
+exit 5
+fi
+
+echo ""
+echo "all the necessary binaries are available, good to go..."
+
+echo ""
+echo "checking $FLASH_PROGRAMMER_SYSFW ..."
+if [ ! -f $FLASH_PROGRAMMER_SYSFW ]; then
+echo "cp $TIFS_BINARY to $FLASH_PROGRAMMER_SYSFW"
+cp $TIFS_BINARY $FLASH_PROGRAMMER_SYSFW
+else
+echo "$FLASH_PROGRAMMER_SYSFW is in place."
+fi
+
+echo ""
+echo "----step 1---- flash $FLASH_PROGRAMMER_BINARY ..."
+$DSLITE_PATH/dslite.sh --mode processors -c $FLASH_TTY_PORT -f $FLASH_PROGRAMMER_BINARY -i 0
+
+echo ""
+echo "----step 2---- erase flash ..."
+#erase flash, only needed once if FLASH layout isn't changed
+$DSLITE_PATH/dslite.sh --mode processors -c $FLASH_TTY_PORT -e 2000000 -d 3 -o 0
+
+echo ""
+echo "----step 3---- flash ospi pattern ..."
+$DSLITE_PATH/dslite.sh --mode processors -c $FLASH_TTY_PORT -f $FLASH_PATTERN_BINARY -d 3 -o 3FC0000
+
+echo ""
+echo "----step 4---- flash SBL ..."
+$DSLITE_PATH/dslite.sh --mode processors -c $FLASH_TTY_PORT -f $SBL_CUST_BINARY -d 3 -o 0
+
+echo ""
+echo "----step 5---- flash TIFS ..."
+$DSLITE_PATH/dslite.sh --mode processors -c $FLASH_TTY_PORT -f $TIFS_BINARY -d 3 -o 80000
+
+echo ""
+echo "----step 6---- flash mcu1_0 image ..."
+$DSLITE_PATH/dslite.sh --mode processors -c $FLASH_TTY_PORT -f $MCU1_0_IMAGE -d 3 -o 100000
+
+echo ""
+echo "----step 7---- flash stage1 image ..."
+if [ ! -f $STAGE1_IMAGE ]; then
+echo "$STAGE1_IMAGE doesn't exist, ATTENTION!!!"
+exit 6
+else
+$DSLITE_PATH/dslite.sh --mode processors -c $FLASH_TTY_PORT -f $STAGE1_IMAGE -d 3 -o 1fc0000
+fi
+
+echo ""
+echo "----step 8---- flash atf_optee image ..."
+if [ ! -f $ATF_OPTEE_IMAGE ]; then
+echo "$ATF_OPTEE_IMAGE doesn't exist, ATTENTION!!!"
+exit 8
+else
+$DSLITE_PATH/dslite.sh --mode processors -c $FLASH_TTY_PORT -f $ATF_OPTEE_IMAGE -d 3 -o 1c0000
+fi
+	
+echo ""
+echo "----step 9---- flash kernel image ..."
+if [ ! -f $KERNEL_IMAGE ]; then
+echo "$KERNEL_IMAGE doesn't exist, ATTENTION!!!"
+exit 9
+else
+$DSLITE_PATH/dslite.sh --mode processors -c $FLASH_TTY_PORT -f $KERNEL_IMAGE -d 3 -o 7c0000
+fi
+
+echo ""
+echo "----step 10---- flash dtb image ..."
+if [ ! -f $DTB_IMAGE ]; then
+echo "$DTB_IMAGE doesn't exist, ATTENTION!!!"
+exit 10
+else
+$DSLITE_PATH/dslite.sh --mode processors -c $FLASH_TTY_PORT -f $DTB_IMAGE -d 3 -o 1ec0000
+fi
+
diff --git a/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/scripts/makemulticore_j7200.sh b/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/scripts/makemulticore_j7200.sh
new file mode 100755
index 0000000..7a3739c
--- /dev/null
+++ b/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/scripts/makemulticore_j7200.sh
@@ -0,0 +1 @@
+./makemulticore.sh j7200_evm
