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.

OMAP4430 boot does not complete after reset by NRESWARM

Other Parts Discussed in Thread: TWL6030, TWL6040, LM5576, TWL6032

Custom platform with:

  • OMAP4430 ES2.3 + TWL6030 + TWL6040
  • Powered by PoE using LM5073 and LM5576
  • Ethernet connection via USB3320 and LAN9512

Issue description:

In some occasions, the OMAP4430 does not complete a reboot cycle after a restart has been triggered by the NRESWARM pin.

Because the application running on the OMAP is not able to kick an external watchdog circuit in time, the external watchdog circuit pulls down the NRESWARM signal. The OMAP4430 keeps this signal low for some time and then releases the signal. In normal operation, the OMAP4430 sends out a message on the UART interface just after the NRESWARM pin has been released. However, in our case, the expected messages on the UART interface are not printed.

I would expect that the OMAP4430 completes the normal startup cycle when the NRESWARM pin was pulled low.

When I connect the output of the watchdog to the NRESPWRON pin, the OMAP4430 does complete the boot cycle successfully.

What can cause the OMAP4430 not to complete its boot cycle? Can this be caused by some register settings?

  • Hello Jens,

    OMAP sends NRESWARM signal if it fails to boot correctly. OMAP boots up based on the configuration selected by SYSBOOT pins. If this configuration does not match with the correct device (MMC, USB, UART) then the ROM code sends warm reset signal continuously.

    Check SYSBOOT and the memory device.

    Best regards,

    Yanko

  • Hello Yanko,

    Thank you for  your quick reply!

    The NRESWARM signal comes high for 1,6 seconds. After this time the external watchdog makes the NRESWARM low again because the OMAP did not start controlling the watchdog in time. Normally, the first data (from the X-Loader) is sent out shortly after the NRESWARM comes high. In our case, there is no data sent out on the UART for 1,6 seconds.

    Can this still be related to the SYSBOOT pins?

    When I pull the NRESPWRON pin low for a short time, the OMAP boots correctly.

    To make things clear: it's hard for us to reproduce the issue. When putting the OMAP4430 on heavy load, it can take between 1 and 48 hours before the issue occurs.

    Best regards,

    Jens

  • Hello Jens,

    Warm reset on sys_nreswarm pin
    sys_nreswarm is a bidirectional pin. It can be activated at any time by an external device or an external
    reset push button action to cause a global warm reset event. The SCRM then holds sys_nreswarm to be
    driven out and maintained for a limited length of time at the boundary of the device. In this way, the device
    and its related peripherals are reset together.

    I think that your issues with nreswarm pin are caused by hardware.

    Could you provide more details about your schematic with OMAP4430?

    Best regards,

    Yanko

  • Hello Yanko,

    Thank you for your feedback!

    On our PCBA, the sys_nreswarm is connected to the OMAP4430, the TWL6030 (PMIC), the TWL6040 (Audio codec), a reset button and the output of a watchdog circuit.

    When the reset button is pushed (or the watchdog timer expires), the sys_nreswarm signal goes low. After the reset button is released, the sys_nreswarm signal is still low for a short time => this should be the OMAP's SCRM holding the sys_nreswarm signal low. After that, the sys_nreswarm signal becomes high. So I think that the first part of the boot cycle is executed correctly.

    However, shortly after the sys_nreswarm signal goes high, the OMAP4430 should send some data on the UART interface (Texas Instruments Inc X-Loader 1.41.0 ....). In our case, this data is not sent out.

    The device does never recover from this state by re-toggling the sys_nreswarm (I can push the reset button 100 times, the OMAP4430 will always show the same behaviour as indicated above).

    When I power cycle the device or when I start a cold reset (by pulling the nrespwron signal low, the UART data is sent out short after the sys_nreswarm pin is set high.

    Can any register setting cause the OMAP4430 not to complete it's boot cycle after a warm reset?

    Please not that the OMAP4430 does complete the boot cycle after pulling the sys_nreswarm signal in most of the times. The issue as described above only occurs sporadically.

    Looking forward to your reply.

    Best regards,

    Jens

  • Hi Jens:

     

    NRESPWRON is globle cold reset, it is OMAP4430 input signal. NRESWARM is bi-directory, it is globle warm reset.  At TRM 3.5.2 you can find globle cold reset and warm reset, some module behave is different. At least DPLL, EMIF, Control module and eFUSE will not rest at warm reset state.

    You can use NRESPWRON as reset signal, but the risk is NRESPWRON connect to PMU output signal, you need insure PMU every power rail supply is table and meet the boot up voltage request. If PMU state is table, NRESPWRON will cold reset OMAP4.

     For PMU this pin is input, NRESWARM will reset PMU and OMAP4430. But OMAP4430 is warm reset, some module did not been reset at this state. I think system can not boot up have relationship with those module.

    I am working with your OMAP4 SOM vendor for this problem. My suggest is if PMU state is under control, use NRESPWRON risk is not high.

    Thanks a lot!

    Best Regards!

    Han Tao

  • Hi Han Tao,

    Thank you for your reply!

    According to the register map of the TWL6030 PMU, this component has a 'warm reset sensitivity' register where the device will set the correct output voltage on each power rail after a warm reset.

    I also read in the datasheet of the OMAP4430 that the OMAP will pull the NRESWARM signal low for some time (6,2 ms) after the NRESPWRON pin has been released. So if an external circuit pulls the NRESPWRON signal low, the OMAP will pull the NRESWARM signal low. The PMU (and other components) will notice that the NRESWARM signal is low and start to reset. If the 'warm reset sensitivity' bit in the PMU is enabled, the PMU will set the correct voltages on each of the power rails. This should allow the OMAP to boot correctly.
    Is this scenario correct?

    Best regards,
    Jens
  • Hello Jens,


    I confirm, your understanding is correct.

    See the diagram for NRESWARM signal:

    Based on information for PMU (TWL6032) NRESWARM pin is  Warm reset input. The behavior of this signal is:

    The warm reset is triggered by falling edge of NRESWARM pin. During a warm reset, the OFF2ACT sequence is executed regardless of the actual state (ACTIVE or SLEEP) and the device returns to or remains in the ACTIVE state. Resources which are not part of the OFF2ACT sequence are not impacted by warm reset and keep their previous state.

    If duration of NRESWARM pulse is longer than warm reset sequence, the warm reset sequence is repeated until NRESWARM is high. I2C interface is in reset state during warm reset starting from falling edge of NRESWARM. Reset of I2C is released when warm reset sequence is completed.

    Best regards,

    Yanko

  • Hi Jens:

     

    Please check probe signal from board. You are right, when NRESPWRON been pull down, NRESWARM will send out the low signal too.

    So use NRESPWRON is reasonable for reset OMAP4 and PMU together.

    Thanks a lot!

    Han Tao

     

  • Dear Han Tao, Yanko,

    Thank you for you confirmation!
    We will add a 22R series resistor between the NRESPWRON output of the TWL6030 and the reset button. By this, the NRESPWRON signal will drop to 0,25V when the reset button is pushed.

    Best regards,
    Jens
  • Hello Jens,

    For your information see the NRESPWRON circuit on PandaBoard:

    Best regards,

    Yanko

  • Hi Yanko,

    On the Pandaboard, the NRESPWRON output signal of the TWL6030 is buffered by a Schmidt trigger.

    On our PCB, we can only add a series resistor to protect the output of the TWL6030. I made a post in the TWL6030 subforum about this:

    http://e2e.ti.com/support/power_management/pmu/f/200/p/387320/1375341#1375341

    I would like to know if a 22R series resistor is sufficient for this

    Best regards,

    Jens