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.

Another way to restart OMAP-l138

So we some how managed to make our device behave in such a way that the code in "platform\common\src\soc\OMAP_L3X_TI_V1\IOCTL\reboot.c" to shut down the device. Are there alternatives I can look into? Right now our device has a 100% chance to shutdown instead of rebooting when this code is run.

 

// Let do reset

    OALMSGS(TRUE, (L"*** RESET ***\r\n"));

 

    // Use WD to perform reboot

    EnableWatchDog();

    ReloadWatchDog();

 

    // Write invalid key to WD to reboot immediately

    pWDRegs = (PTIMERREGS)OALPAtoUA(OMAPL13X_TIMER1_REGS_PA);

    OUTREG32(&pWDRegs->WDTCR, (1 << WDTCR_WDEN_SHIFT) | (0xFFFF << WDTCR_WDKEY_SHIFT));

 

    // Should never get to this point...

    OALMSG(OAL_IOCTL&&OAL_FUNC, (L"-OALIoCtlHalReboot\r\n"));

 

  • Let me clarify this a little bit, mostly because I didn't really understand the problem we were having. When the power-on reset is initiated by the watch dog, it drives all the pin outs to high impedance, but this ends up looking low to  I think POWER_CTRL to some of our circuitry which will pull the POWER_ON moments later to turn the device back on. We had a small lack of foresight to fix another problem and now we basically took out our ability to do a hardware reset i think.

     

    So are there other ways to reset the OMAP cpu? I know we can drive TRST high and then pull RESET low, and do a warm reset, but we don't really have a way to touch either of those pins. or we always off at this point.

     

    This likely doesn't belong in the linux platform... this is specific to the omap chip and I'm sorry the original post was really really stupid and I had to work with other people to fully understand what the hell had happened.