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.

OMAP L138 Soft Reset

Other Parts Discussed in Thread: OMAPL138

Hello All,

I am curious if anyone knows how to perform a software reset of the OMAP L138.

I don't mean just jump back to the entry point of this application (c_init00 or similar), but rather force the ARM to start the entry point of the BOOTROM, and force the entire system to come back up.

At the moment I am configuring the watchdog and forcing a reset that way, however because it is a device level reset it appears to be resetting internal L3 memory as well (I would like to preserve the contents)

 

Any ideas?

Thanks in advanced,

-Murray

  • Hi Murray,

    to nudge this discussion along... let's step back and can could you share with us what you need to accomplish as a result of the "soft" reset?

    Also, for OMAPL138 you have 2 cores to reset...I believe one can hold the other in "reset."

     

  • I'm trying to do something similar on an C6746.

     

    I need to have the processor do a warm start, i.e. load and process the AIS image.

     

    I've tried setting the PLL0 RSTYPE register but it doesn't always seem to work.

     

    Peter

  • Sure... here is the basic premise... well at least the most likely use case.

    The board boots (from NAND), and a little bootloader (skinny little thing) runs and loads a higher level bootloader. The bootloader attempts to mount a file system in NAND and finds out that either the file system does not exist or that the file it is looking for does not exist. Oh no, I'm bricked it thinks (and rightfully so).

    At this point we would like the higher level bootloader to reset, but before doing setting a special a boot parameter via internal L3 ram. Assuming the board maintained L3 through the warm reboot, the OMAP would again load the skinny bootloader from NAND and begin executing, however this time it would see a special boot request parameter and would realize it should load a backup image from (raw) NAND, instead of the higher level bootloader.

    The backup image is loaded, backup image executes and is able to correct the filesystem and allow for a new firmware to be pushed down. System is no longer a brick.

     

    As for 2 cores to reset.:

    Yup. Although you really just have to get the ARM restarted, the DSP will get handled by the ARM if need be.

  • Peter,

     

    Not sure if it helps you at all but assuming you *just* need a reset without internal memories maintaining state, you can probably use the onboard watchdog to fire a device level reset.

    I actually have done this currently and have the processor rebooting on command. In my case the downside is that the internal SRAM (L3) is not maintained.

    So not sure if that would work for you, but may be worth looking into. I am not familiar enough with the C6746 to say if it also has this ability. In the case of the OMAP the watchdog functionality is actually embedded as a mode inside one of the timer peripherals.

  • Murray Hersh said:
    I actually have done this currently and have the processor rebooting on command. In my case the downside is that the internal SRAM (L3) is not maintained.

    Murray -- as far as I know the L3 SRAM should not be affected by reset.  In other words, RAM is unaffected by reset (we do not guarantee any specific RAM values after a reset).  However, it is important to note that the boot ROM utilizes a portion of L3.  Here's a quote from the Bootloader App Note:

    Memory Usage: The bootloader uses 16 KB of Shared RAM starting from 0x80000000 for multiple
    purposes. This memory should not be used by any initialized section of the user application.

    Therefore if you want to utilize some portion of the L3 RAM you must make sure it's not part of the first 16KB as that will get trashed by the boot ROM.

    Brad