Hi,
i want to trigger a system reset in the C6474 DSP.
How can i generate an doorbell interrupt to SRIO INT#6 with the CSL?
Thanks.
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.
Hi,
i want to trigger a system reset in the C6474 DSP.
How can i generate an doorbell interrupt to SRIO INT#6 with the CSL?
Thanks.
Thank you for joining the TI E2E Community. There is a wealth of information available to you in the many E2E Forum postings, plus you can browse through all the formal TI documentation by starting at www.ti.com , and there are also many useful application topics on software and hardware and tools at http://www.tiexpressdsp.com .
For some specific information that should help you with the C6474 and SRIO, we offer some online training material at http://e2e.ti.com/media/p/36682.aspx . Please take a look at the SRIO training module first to see if it directly addresses your current question, which I trust it will.
Hi,
i have studied the online training material. And ich saw, that i can trigger the system reset with the Interrupt Controller without SRIO. Is this right?
I want that all 3 cores start executing code from 0x00800000, after I fill the L2 memory with valid data (SRIO read from external source with running core 0). Is there an easier way without SRIO doorbell?
Additionally, the "Advanced Resets" Function under Debug is not available ???
It is not yet clear to me what you intend to do. Please explain from a system-level what you want to happen with the DSP. Is this for power-on booting of the DSP, and if so which boot mode do you use?
Mehly said:i can trigger the system reset with the Interrupt Controller without SRIO. Is this right?
Can you point to a document about triggering "the system reset with the Interrupt Controller"? This is not familiar to me.
Mehly said:I want that all 3 cores start executing code from 0x00800000, after I fill the L2 memory with valid data (SRIO read from external source with running core 0). Is there an easier way without SRIO doorbell?
It appears that you want the DSP Core0 to do SRIO reads from an external source, in other words an SRIO Master boot mode. If so, how do you get the secondary boot loader into the DSP since SRIO Master Boot is not a supported function?
Hi,
thank you very much for your helping support.
RandyP said:Can you point to a document about triggering "the system reset with the Interrupt Controller"? This is not familiar to me.
I found it in the online training material: (page:9 first line) http://learningmedia.ti.com/public/c6474/C64x_Startup/C6474_Startup.pdf
" Initiated by Emulation, sRIO, or C64x+ INTC "
RandyP said:It is not yet clear to me what you intend to do. Please explain from a system-level what you want to happen with the DSP. Is this for power-on booting of the DSP, and if so which boot mode do you use?
Yes this is for power-on-booting ( secondary Bootloader for SRIO Master Boot from an external source).
RandyP said:It appears that you want the DSP Core0 to do SRIO reads from an external source, in other words an SRIO Master boot mode. If so, how do you get the secondary boot loader into the DSP since SRIO Master Boot is not a supported function?
I boot my own Bootloader from a I2C EEPROM as it is descibed in the DSP Bootloader Users Guide SPRUG24. This Bootloader do SRIO transfer from an external Source to the Internal L2 memory of all 3 cores. This is already working ;-)
Now, i am at the end of the boot process and will start my multicore DSP-programm.
The I2C bootmode will result in Core0 executing from the BOOTROM to read the sections of program and/or data from the I2C EEPROM and writing those sections to the target locations of the DSP. When all of the EEPROM has been copied into the DSP, Core0 will branch to a location defined in the boot process and Core1 and Core2 will start executing at their local 0x00800000 addresses (if nothing was loaded to those addresses, there will be an IDLE instruction inserted there).
If I understand correctly from your system, at this point Core0 begins running the secondary bootloader to read from the SRIO to load additional contents of DSP memory. Having successfully completed that process, you now want to start all three cores running.
The System Reset, in my opinion, is not the way to do this. The System Reset will cause the DSP to repeat the I2C EEPROM Master boot sequence. From what I can tell, you cannot change the boot mode to No Boot, which might result in your desired operation, so the System Reset would not be able to make things work the way you want.
My recommendation is to take advantage of the fact that all three cores are already running, and now direct them to where you would like them to be. You have already said that you want them to all start at their local 0x00800000. Your choices include:
My preference is #2, and you may find other solutions, too.