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.

TMDSCNCD263P: ECP: AM263P How SBL handover control to application code

Part Number: TMDSCNCD263P
Other Parts Discussed in Thread: UNIFLASH

Hi Team,

Greetings of the day.

I am currently working on implementing a custom SBL project, and for reference, I am using the SBL_OSPI_MultiCore_Elf example from the SDK.

In that example, there are APIs related to parsing ELF files, loading them, and resetting the respective cores. I noticed that the SDK’s SBL example calls the “reset self core” API. Could you please explain why this core reset is required? I would like to understand this mechanism in more detail, as it will help me while implementing my own SBL.

In my design, I plan to handle core initialization, memory initialization, initialization of interrupt vectors, and PLL configuration for the required frequency—so that both my SBL and final application run at the same clock speed. After that, I will reinitialize the OSPI with minimal settings, parse the multicore ELF, and finally hand over control to the application via a function pointer. This way, all the initialization settings done in the SBL will be retained.

Previously, when I worked on the TMS570LS device, I implemented a similar approach where the bootloader performed all initializations and then called the application’s main() function using a function pointer. No core reset was performed in that setup since we were running code on Core-0 and Core-1 in lockstep mode.