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.

AM2612: Clarification on .mcelf_xip Load Address in TI UniFlash

Part Number: AM2612
Other Parts Discussed in Thread: UNIFLASH

Dear TI Support Team,

I have,
AM261-LP,
ind_comms_sdk_am261x_2025_00_00_08

I am using the TI UniFlash tool to program a device through a JTAG session, and I would appreciate clarification regarding the load address used for the .mcelf_xip image.

I noticed that the .mcelf_xip file is programmed using the address 0xE0000000. Could you please confirm whether this is an actual memory-mapped address in the device, or whether it is only a recognized/metadata address used by UniFlash to identify the image as an XIP file?

In the Profinet_device_demo example, the linker.cmd file defines the flash region as:

 
FLASH : ORIGIN = 0x60100000 , LENGTH = 0x200000 

This suggests that 0x60100000 is the execute-in-place (XIP) memory region. If that is the actual XIP execution address, why is the .mcelf_xip image flashed at 0xE0000000 instead?

Could you please explain the relationship between these two addresses and confirm the recommended UniFlash programming address for the .mcelf_xip image?

Thank you for your support.

Best Regards,

 Parag Vora

  • I noticed that the .mcelf_xip file is programmed using the address 0xE0000000. Could you please confirm whether this is an actual memory-mapped address in the device, or whether it is only a recognized/metadata address used by UniFlash to identify the image as an XIP file?

    0xE000000 is not the address but a magic number for Uniflash script running on the device am261x, to comprehend that this needs to be flashed in the external flash, as executables.

    Could you please explain the relationship between these two addresses and confirm the recommended UniFlash programming address for the .mcelf_xip image?

    The mcelf_xip is flashes at the run address that is based on where the compiler has placed them in the final executable, can be seen from the .map file.