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.

Ground zero reboot (IE: branching to bootloader ROM)

I am using a C6748 and i am trying to figure out a way to reboot the DSP from the bootloader (when i update the software in the flash, i want to re-initialize the bootloader so that i can use the new code)

we used to use the C6421 and i found the magic assembly language to accomplish this. this doesn't seem to work for the 6748.

I am trying to do (for the 6748)

asm(" MVKL .S1 00100000h, A5");

 

 

asm(" MVKH .S1 00100000h, A5");

 

 

asm(" BNOP .S2 A5, 2");

Does anyone know of a way to do this for the 6748?

  • The ROM address of the C6748 is 0x00700000, not 0x00100000.  So you could try changing the code to reflect that, but to be honest I would not recommend that.  A safer solution is to initiate an actual reset of the core, either as part of a chip reset or via the PSC (for example, the PRU could be used to perform a power-down and power-up of the DSP power domain).

    The reason I say this is that the ROM boot loader is tested under reset conditions (with the various portions of the device in their default states) and is not tested to be jumped into in the manner you show. It may work, but then again, it may not.

    Regards, Daniel

  • i forgot to update the address, my bad.

     

    my questions are: If i shut down the core in the PSC will the DSP continue to run my code once the core is shut down? if not how will it run the code that turns it back on? if it does what keeps the DSP running code once the core is shut down?  Does powering it up again force a bootload and the DSP really acts like it is performing a cold boot?

     

    also in the 6748 system reference guide it says not to turn off the power domain the DSP is on:

    "Currently programming the PD1 power domain state to OFF is not supported. You should leave both the PDCTL1.NEXT and PDCTL1.PDMODE values at default/power on reset values."

    So it seems according your documentation that i shouldn't do that

  • well i worked it out by initiating the watchdog timer and not servicing it. hooray me
  • Good! If you are looking for a simple reboot operation, this is probably the right thing to do.  You can also do the same thing by manually setting a bit in the PLL controller, which should be simpler to do,  but I can't seem to locate where that's documented.

    Also, to clarify my comment about the DSP power domain, I should have said the DSP LPSC module state, not the power domain.  But the PRU would have to run code to do this, as the DSP can't do this to itself.

    Regards, Daniel