Hello RC REDDY,
Please refer to the following Linux-SmartDSP OS boot Procedure.
(1) On Power-on-Reset Phase
PA: Load u-boot, Linux Kernel, Linux Kernel starts booting and partition manager Kernel module which does memory partition for heterogeneous cores communication.
DSP: DSP core executes boot code from internal ROM. After completing the initialization, DSP core sets DSP_READY and polls for PPC_READY.
(2) The phase of Linux booted up
When Linux is booted up, the DSP boot application needs to be executed as “$dsp_bt <dsp image file>”, which triggers the partition manager Kernel module to use shamget to create a hugetlb of 16MB, this is set in the shared control area structure before DSP is booted up.
a. Check if the DSP_READY is set.
b. Parses the DSP binary file and loads into M2/DDR.
c. Set START_ADDRESS as the SmartDSP OS entry point.
DSP: DSP core still polls for PPC_READY from PA.
(3) The phase after Linux settting PPC_READY
PA:
a. Linux sets PPC_READY and start a timer.
b. Waits for HW semaphore 1 to be set to the value 0xfe.
DSP:
a. After PPC_READY is set, SmartDSP OS executes.
b. After SmartDSP OS is up, it set HW semaphore 1 to PA unique value 0xfe.
c. SmartDSP polls for HW semaphore 0 to be cleared by PA Linux.
(4) The phase checking DSP boot
PA: PA checks HW semaphore 1 set correctly, clear the semaphore 0.
DSP:
a. Check HW semaphore 0 to be cleared by Linux.
b. DSP sends a message on Channel 0 to indicate that the DSP IPC is up, and waits for further actions from Linux side.
So I think the way which you mentioned above is impossible to execute DSP OS images one by one on the same DSP core without reset.
Have a great day,
Yiping
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------