This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

LP-AM261: Xip example does not seem to run

Part Number: LP-AM261
Other Parts Discussed in Thread: UNIFLASH, SYSCONFIG, ASH

Tool/software:

Hello, I am trying the example hello_world_xip_fss1 for AM261 LP. I am having the earlier version of LP(non secure) so I am commenting out the following code for SBL OSPI

On building the xip example, I am loading the file using uniflash at the specified addresses.

On running the code after reset, I am getting the following log in serial terminal.




Can you please check if I missed any steps or the load addresses are correct ?

Why is the size of XIP image very small.I am attaching map file for analysis.

  • Hi Dheeraj,

    This is expected. As the latest version of SDK does not support AM261x-lP E1 by default. It has support for AM261x-Lp E2.

  • I tried the same with SDK 10.0.1.10 by importing the XIP example and changing the SDK version and sysconfig version to 1.21.2. 

    i am observing the similar behaviour(only appimage size is changed slightly)

  • Are you able to run non-xip examples in OSPI boot mode?

  • Yes, Helloworld and led blink worked with the same SBL which I tried to use with XIP

  • sbl_ospi_without_HSM-hello_world-helloworl_xip.zip

    I have attached the projects. I am able to use sbl_ospi with helloworld but not with helloworld_xip

  • Sure Dheeraj,

    Let me check this tomorrow and get back to you.

  • Are there ay updates  ?

  • Hi Dheeraj,

    You are using an old version of Uniflash.

    In the same could you modify the application load address to 0x81000

  • Hi Dheeraj

    Can you please confirm the value of MCELF_XIP_RANGE in {MCU_PLUS_SDK_PATH}/devconfig/deconfig.mak?

  • MCELF_XIP_RANGE?=0x60000000:0x68000000

    This is same for both 10_00_10 and 10_02_00 SDK


  • HI Dheeraj

    Can you change this to 0x80000000:0x88000000 and try again? 

    thanks 

  • Hi Sanveg, 
    NoLuck, 
    does the steps mentioned on this page needs to be followed for 10.0.1 SDK? Or, the xip example from 10.2.0 has everything configured already.

    AM261x MCU+ SDK: Enabling XIP or eXecute In Place

  • Hi Dheeraj 

    Generally, when XIP is needed, this step is not required (And hence, no need to document in the page that you have linked). This example shows how to perform XIP from FSS1 interface (and not from FSS0, which is default),

    And yes this change has been documented in the example documentation: https://software-dl.ti.com/mcu-plus-sdk/esd/AM261X/10_02_00_15/exports/docs/api_guide_am261x/EXAMPLES_HELLO_WORLD_XIP_FSS1.html 

    Can you share the .mcelf and .mcelf_xip file?

    Thanks

  • Hi Dheeraj,

    Lets have a call to debug this tomorrow.

  • Hi Dheeraj

    I was under the impression that mcelf boot format is being used. However, from the files that is being shared, its evident that .appimage is the boot format that is being used. 

    From the files that are being shared, .appimage_xip size if 52B which says that there is no XIP data. 

    MCELF_XIP_RANGE variable is used for .mcelf format and not appimage format.

    For appimage, in the Makefile of your project, find -flash-start-addr flag and change its value from 0x60000000 to 0x80000000. 

    After that check if the .appimage_xip file's size is more than 52B and try again.

    thanks 

  • If this change in Makefile is not acceptable, then recommendation is to switch to MCELF boot format

    Infact, in general, it is better to switch to mcelf boot format. 

  • I used appimage because mcelf files were no tgenerating if I build xip example with 10.00.01 SDK
    Please have a look at  the log 

    **** Clean-only build of configuration Release for project hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang ****
    
    "C:\\ti\\ccs1280\\ccs\\utils\\bin\\gmake" -k -j 22 clean -O 
     
    DEL /F  "syscfg\ti_dpl_config.h" "syscfg\ti_drivers_config.h" "syscfg\ti_drivers_open_close.h" "syscfg\ti_board_config.h" "syscfg\ti_board_open_close.h" "syscfg\ti_enet_config.h" "syscfg\ti_enet_open_close.h" "syscfg\ti_enet_lwipif.h" "syscfg\linker_defines.h"  "syscfg\ti_dpl_config.c" "syscfg\ti_drivers_config.c" "syscfg\ti_drivers_open_close.c" "syscfg\ti_pinmux_config.c" "syscfg\ti_power_clock_config.c" "syscfg\ti_board_config.c" "syscfg\ti_board_open_close.c" "syscfg\ti_enet_config.c" "syscfg\ti_enet_open_close.c" "syscfg\ti_enet_soc.c" "syscfg\ti_enet_lwipif.c" "syscfg\linker.cmd"  *.appimage* *.appimage_xip *.rprc* *.rprc_xip *.tiimage* *.bin *.lnkxml *.map *.ossr *.mcelf* *.mcelf_xip  "hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang.out" 
    DEL /F "syscfg\ti_dpl_config.o" "syscfg\ti_drivers_config.o" "syscfg\ti_drivers_open_close.o" "syscfg\ti_pinmux_config.o" "syscfg\ti_power_clock_config.o" "syscfg\ti_board_config.o" "syscfg\ti_board_open_close.o" "syscfg\ti_enet_config.o" "syscfg\ti_enet_open_close.o" "syscfg\ti_enet_soc.o" "syscfg\ti_enet_lwipif.o" "hello_world.o" "main.o" 
    DEL /F "syscfg\ti_dpl_config.d" "syscfg\ti_drivers_config.d" "syscfg\ti_drivers_open_close.d" "syscfg\ti_pinmux_config.d" "syscfg\ti_power_clock_config.d" "syscfg\ti_board_config.d" "syscfg\ti_board_open_close.d" "syscfg\ti_enet_config.d" "syscfg\ti_enet_open_close.d" "syscfg\ti_enet_soc.d" "syscfg\ti_enet_lwipif.d" "hello_world.d" "main.d" 
    RMDIR /S/Q  "syscfg" 
    Finished clean
     
    
    **** Build Finished ****
    
    **** Build of configuration Release for project hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang ****
    
    "C:\\ti\\ccs1280\\ccs\\utils\\bin\\gmake" -k -j 22 all -O 
     
    Building file: "../example.syscfg"
    Invoking: SysConfig
    "C:/ti/sysconfig_1.21.2/sysconfig_cli.bat" --script "X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/example.syscfg" -o "syscfg" -s "C:/ti/mcu_plus_sdk_am261x_10_00_01_10/.metadata/product.json" --context "r5fss0-0" --part AM2612 --package ZFG --compiler ticlang
    Running script...
    Validating...
    info: CONFIG_MPU_REGION3(/kernel/dpl/mpu_armv7) attributes: Some memory region(s) within this range is Shared among cores. 
    info: /kernel/dpl/debug_log uartLog.baudRate: Actual Baudrate Possible: 114943 (0 % error)
    Generating Code (example.syscfg)...
    Writing X:\Proj_CCS_AM261_10_00_01_10\hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang\Release\syscfg\ti_dpl_config.c...
    Writing X:\Proj_CCS_AM261_10_00_01_10\hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang\Release\syscfg\ti_dpl_config.h...
    Writing X:\Proj_CCS_AM261_10_00_01_10\hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang\Release\syscfg\ti_drivers_config.c...
    Writing X:\Proj_CCS_AM261_10_00_01_10\hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang\Release\syscfg\ti_drivers_config.h...
    Writing X:\Proj_CCS_AM261_10_00_01_10\hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang\Release\syscfg\ti_drivers_open_close.c...
    Writing X:\Proj_CCS_AM261_10_00_01_10\hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang\Release\syscfg\ti_drivers_open_close.h...
    Writing X:\Proj_CCS_AM261_10_00_01_10\hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang\Release\syscfg\ti_pinmux_config.c...
    Writing X:\Proj_CCS_AM261_10_00_01_10\hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang\Release\syscfg\ti_power_clock_config.c...
    Writing X:\Proj_CCS_AM261_10_00_01_10\hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang\Release\syscfg\ti_board_config.c...
    Writing X:\Proj_CCS_AM261_10_00_01_10\hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang\Release\syscfg\ti_board_config.h...
    Writing X:\Proj_CCS_AM261_10_00_01_10\hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang\Release\syscfg\ti_board_open_close.c...
    Writing X:\Proj_CCS_AM261_10_00_01_10\hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang\Release\syscfg\ti_board_open_close.h...
    Writing X:\Proj_CCS_AM261_10_00_01_10\hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang\Release\syscfg\ti_enet_config.c...
    Writing X:\Proj_CCS_AM261_10_00_01_10\hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang\Release\syscfg\ti_enet_config.h...
    Writing X:\Proj_CCS_AM261_10_00_01_10\hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang\Release\syscfg\ti_enet_open_close.c...
    Writing X:\Proj_CCS_AM261_10_00_01_10\hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang\Release\syscfg\ti_enet_open_close.h...
    Writing X:\Proj_CCS_AM261_10_00_01_10\hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang\Release\syscfg\ti_enet_soc.c...
    Writing X:\Proj_CCS_AM261_10_00_01_10\hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang\Release\syscfg\ti_enet_lwipif.c...
    Writing X:\Proj_CCS_AM261_10_00_01_10\hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang\Release\syscfg\ti_enet_lwipif.h...
    Writing X:\Proj_CCS_AM261_10_00_01_10\hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang\Release\syscfg\linker.cmd...
    Writing X:\Proj_CCS_AM261_10_00_01_10\hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang\Release\syscfg\linker_defines.h...
    Finished building: "../example.syscfg"
     
    Building file: "syscfg/ti_enet_config.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.2.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -Os -I"C:/ti/ti-cgt-armllvm_4.0.2.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am261x_10_00_01_10/source" -DSOC_AM261X -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_enet_config.d_raw" -MT"syscfg/ti_enet_config.o" -I"X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/syscfg"   -o"syscfg/ti_enet_config.o" "syscfg/ti_enet_config.c"
    Finished building: "syscfg/ti_enet_config.c"
     
    Building file: "syscfg/ti_enet_open_close.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.2.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -Os -I"C:/ti/ti-cgt-armllvm_4.0.2.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am261x_10_00_01_10/source" -DSOC_AM261X -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_enet_open_close.d_raw" -MT"syscfg/ti_enet_open_close.o" -I"X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/syscfg"   -o"syscfg/ti_enet_open_close.o" "syscfg/ti_enet_open_close.c"
    Finished building: "syscfg/ti_enet_open_close.c"
     
    Building file: "syscfg/ti_enet_soc.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.2.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -Os -I"C:/ti/ti-cgt-armllvm_4.0.2.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am261x_10_00_01_10/source" -DSOC_AM261X -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_enet_soc.d_raw" -MT"syscfg/ti_enet_soc.o" -I"X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/syscfg"   -o"syscfg/ti_enet_soc.o" "syscfg/ti_enet_soc.c"
    Finished building: "syscfg/ti_enet_soc.c"
     
    Building file: "syscfg/ti_power_clock_config.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.2.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -Os -I"C:/ti/ti-cgt-armllvm_4.0.2.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am261x_10_00_01_10/source" -DSOC_AM261X -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_power_clock_config.d_raw" -MT"syscfg/ti_power_clock_config.o" -I"X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/syscfg"   -o"syscfg/ti_power_clock_config.o" "syscfg/ti_power_clock_config.c"
    Finished building: "syscfg/ti_power_clock_config.c"
     
    Building file: "syscfg/ti_dpl_config.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.2.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -Os -I"C:/ti/ti-cgt-armllvm_4.0.2.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am261x_10_00_01_10/source" -DSOC_AM261X -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_dpl_config.d_raw" -MT"syscfg/ti_dpl_config.o" -I"X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/syscfg"   -o"syscfg/ti_dpl_config.o" "syscfg/ti_dpl_config.c"
    Finished building: "syscfg/ti_dpl_config.c"
     
    Building file: "syscfg/ti_drivers_config.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.2.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -Os -I"C:/ti/ti-cgt-armllvm_4.0.2.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am261x_10_00_01_10/source" -DSOC_AM261X -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_drivers_config.d_raw" -MT"syscfg/ti_drivers_config.o" -I"X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/syscfg"   -o"syscfg/ti_drivers_config.o" "syscfg/ti_drivers_config.c"
    Finished building: "syscfg/ti_drivers_config.c"
     
    Building file: "syscfg/ti_drivers_open_close.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.2.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -Os -I"C:/ti/ti-cgt-armllvm_4.0.2.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am261x_10_00_01_10/source" -DSOC_AM261X -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_drivers_open_close.d_raw" -MT"syscfg/ti_drivers_open_close.o" -I"X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/syscfg"   -o"syscfg/ti_drivers_open_close.o" "syscfg/ti_drivers_open_close.c"
    Finished building: "syscfg/ti_drivers_open_close.c"
     
    Building file: "syscfg/ti_pinmux_config.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.2.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -Os -I"C:/ti/ti-cgt-armllvm_4.0.2.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am261x_10_00_01_10/source" -DSOC_AM261X -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_pinmux_config.d_raw" -MT"syscfg/ti_pinmux_config.o" -I"X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/syscfg"   -o"syscfg/ti_pinmux_config.o" "syscfg/ti_pinmux_config.c"
    Finished building: "syscfg/ti_pinmux_config.c"
     
    Building file: "syscfg/ti_board_config.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.2.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -Os -I"C:/ti/ti-cgt-armllvm_4.0.2.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am261x_10_00_01_10/source" -DSOC_AM261X -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_board_config.d_raw" -MT"syscfg/ti_board_config.o" -I"X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/syscfg"   -o"syscfg/ti_board_config.o" "syscfg/ti_board_config.c"
    Finished building: "syscfg/ti_board_config.c"
     
    Building file: "syscfg/ti_board_open_close.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.2.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -Os -I"C:/ti/ti-cgt-armllvm_4.0.2.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am261x_10_00_01_10/source" -DSOC_AM261X -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_board_open_close.d_raw" -MT"syscfg/ti_board_open_close.o" -I"X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/syscfg"   -o"syscfg/ti_board_open_close.o" "syscfg/ti_board_open_close.c"
    Finished building: "syscfg/ti_board_open_close.c"
     
    Building file: "syscfg/ti_enet_lwipif.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.2.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -Os -I"C:/ti/ti-cgt-armllvm_4.0.2.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am261x_10_00_01_10/source" -DSOC_AM261X -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_enet_lwipif.d_raw" -MT"syscfg/ti_enet_lwipif.o" -I"X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/syscfg"   -o"syscfg/ti_enet_lwipif.o" "syscfg/ti_enet_lwipif.c"
    Finished building: "syscfg/ti_enet_lwipif.c"
     
    Building file: "../hello_world.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.2.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -Os -I"C:/ti/ti-cgt-armllvm_4.0.2.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am261x_10_00_01_10/source" -DSOC_AM261X -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"hello_world.d_raw" -MT"hello_world.o" -I"X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/syscfg"   -o"hello_world.o" "../hello_world.c"
    Finished building: "../hello_world.c"
     
    Building file: "../main.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.2.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -Os -I"C:/ti/ti-cgt-armllvm_4.0.2.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am261x_10_00_01_10/source" -DSOC_AM261X -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"main.d_raw" -MT"main.o" -I"X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/syscfg"   -o"main.o" "../main.c"
    Finished building: "../main.c"
     
    Building target: "hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang.out"
    Invoking: Arm Linker
    "C:/ti/ti-cgt-armllvm_4.0.2.LTS/bin/tiarmclang.exe" -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -Os -DSOC_AM261X -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -Wl,-m"hello_world_xip_fss1.Release.map" -Wl,-i"C:/ti/mcu_plus_sdk_am261x_10_00_01_10/source/kernel/nortos/lib" -Wl,-i"C:/ti/mcu_plus_sdk_am261x_10_00_01_10/source/drivers/lib" -Wl,-i"C:/ti/mcu_plus_sdk_am261x_10_00_01_10/source/board/lib" -Wl,-i"C:/ti/ti-cgt-armllvm_4.0.2.LTS/lib" -Wl,--reread_libs -Wl,--diag_suppress=10063 -Wl,--diag_wrap=off -Wl,--display_error_number -Wl,--warn_sections -Wl,--gen_xml_func_hash -Wl,--xml_link_info="hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang_linkInfo.xml" -Wl,--ram_model -o "hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang.out" "./syscfg/ti_dpl_config.o" "./syscfg/ti_drivers_config.o" "./syscfg/ti_drivers_open_close.o" "./syscfg/ti_pinmux_config.o" "./syscfg/ti_power_clock_config.o" "./syscfg/ti_board_config.o" "./syscfg/ti_board_open_close.o" "./syscfg/ti_enet_config.o" "./syscfg/ti_enet_open_close.o" "./syscfg/ti_enet_soc.o" "./syscfg/ti_enet_lwipif.o" "./hello_world.o" "./main.o" -Wl,-l"syscfg/linker.cmd"  -Wl,-lnortos.am261x.r5f.ti-arm-clang.release.lib -Wl,-ldrivers.am261x.r5f.ti-arm-clang.release.lib -Wl,-lboard.am261x.r5f.ti-arm-clang.release.lib -Wl,-llibc.a -Wl,-llibsysbm.a 
    Finished building target: "hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang.out"
     
    C:/ti/ccs1280/ccs/utils/bin/gmake -C X:\Proj_CCS_AM261_10_00_01_10\hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang -f makefile_ccs_bootimage_gen OUTNAME=hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang PROFILE=Release MCU_PLUS_SDK_PATH=C:/ti/mcu_plus_sdk_am261x_10_00_01_10 CG_TOOL_ROOT=C:/ti/ti-cgt-armllvm_4.0.2.LTS CCS_INSTALL_DIR=C:\ti\ccs1280\ccs CCS_IDE_MODE=desktop DEVICE=am261x
     Boot image: am261x:r5fss0-0:nortos:ti-arm-clang X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang.appimage  ...
    C:\ti\ccs1280\ccs/tools/node/node C:/ti/mcu_plus_sdk_am261x_10_00_01_10/tools/boot/out2rprc/elf2rprc.js Release/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang.out >> Release/temp_stdout_Release.txt
    C:\ti\ccs1280\ccs/utils/cygwin/cp hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang.rprc X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang.rprc
    C:\ti\ccs1280\ccs/utils/cygwin/cp X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang.rprc X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang.rprc_tmp
    C:\ti\ccs1280\ccs/utils/cygwin/rm -f X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang.rprc
    C:/ti/mcu_plus_sdk_am261x_10_00_01_10/tools/boot/xipGen/xipGen.exe -i X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang.rprc_tmp -o X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang.rprc -x X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang.rprc_xip --flash-start-addr 0x60000000 -v > Release/temp_stdout_Release.txt
    C:\ti\ccs1280\ccs/tools/node/node C:/ti/mcu_plus_sdk_am261x_10_00_01_10/tools/boot/multicoreImageGen/multicoreImageGen.js --devID 55 --out X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang.appimage X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang.rprc@0  >> Release/temp_stdout_Release.txt
    C:\ti\ccs1280\ccs/tools/node/node C:/ti/mcu_plus_sdk_am261x_10_00_01_10/tools/boot/multicoreImageGen/multicoreImageGen.js --devID 55 --out X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang.appimage_xip X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang.rprc_xip@0  >> Release/temp_stdout_Release.txt
    C:\ti\ccs1280\ccs/utils/cygwin/rm -f X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang.rprc_tmp
     Boot multi-core ELF image: am261x:r5fss0-0:nortos:ti-arm-clang X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang.mcelf ...
    python C:/ti/mcu_plus_sdk_am261x_10_00_01_10/tools/boot/multicore-elf/genimage.py --core-img=0:Release/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang.out --output=X:/Proj_CCS_AM261_10_00_01_10/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/hello_world_xip_fss1_am261x-lp_r5fss0-0_nortos_ti-arm-clang.mcelf --merge-segments=true --tolerance-limit=0 --ignore-context=false --xip=0x80000000:0x88000000 --xlat="" --max-segment-size=8192
    makefile_ccs_bootimage_gen:87: recipe for target 'all' failed
    usage: genimage.py [-h] -i [CORE_IMG ...] [-s [SSO ...]]
                       --merge-segments MERGE_SEGMENTS -t TOLERANCE_LIMIT
                       --ignore-context IGNORE_CONTEXT -o OUTPUT --xip XIP
                       --xlat XLAT --max_segment_size MAX_SEGMENT_SIZE
                       [--otfaConfigFile OTFACONFIGFILE]
    genimage.py: error: the following arguments are required: --max_segment_size
    gmake[3]: *** [all] Error 2
    gmake[2]: [post-build] Error 2 (ignored)
    makefile:167: recipe for target 'post-build' failed
     
    
    **** Build Finished ****
    

  • Hi Dheeraj,

    Please find the working hello world and SBL OSPI image attached.

    Following are the changes to get XIP working in AM261x MCUPLUSSDK 10.1

    SBL Changes

    Since in the SBL OSPI syscfg we do not have PHY enabled, In the main.c file , the DAC enable call will be bypassed, so you need to add Dac enabled API ouside the check as below:

    - Then rebuild the SBLOSPI example

  • Example Chnages to enable XIP

    Add MPU configuration for Fl;ash as below in syscfg:

    Add .text.main and .rodata.cfg in the TEXT SECTION(alignment and padding enabled, should placed in OCRAM)

    Next put code and rodata in flash