An SSL is a stand-alone application that is executed at boot time before the actual application is dynamically loaded into memory. The SSL can be used to invoke a ROM API to boot a second application.
The ROM API can be accessed at runtime by any core to boot an application from a boot source, but booting via the API is completely different as compared with POR, as it depends on which core is calling it:
Case 1 ->If the ROM API is invoked from the ARM Cortex A5 (core0), then the boot kernel can boot applications to all three cores.
Case 2 ->If the ROM API is invoked from the primary SHARC (core1), then the boot kernel can boot applications to both SHARC cores (core1 and core2), but not to the ARM (core0).
Case 3 ->If the ROM API is invoked from the secondary SHARC (core2), then the boot kernel can only boot the core2 SHARC (not the core 0 ARM nor the core1 SHARC).
Attached project demonstrates booting of ADSP-SC584 cores when the ROM API is invoked from the ARM Cortex A5 (core0), SHARC0 and SHARC1 named as Case1, Case2 and Case3.
Attached folder contains two projects namely SC584_SSL and SC584_LED. The SC584_SSL project invokes ROM API(first booting application). The SC584_LED is the second booting application.
Along with these projects, the loader streams are also attached.