Difference between revisions of "Reset scheme (AxelLite)"

From DAVE Developer's Wiki
Jump to: navigation, search
(PMIC_VSNVS)
Line 29: Line 29:
  
  
=== Handling CPU initiated reset ===
+
=== Handling CPU-initiated software reset ===
'''By default, MX6 processor does not assert any external signal when it initiates a reset sequence'''. This behaviour can be changed by acting on WDOG_RESET_B_DEB signal configuration. This signal is driven by MX6's watchdog timer (WDT).  
+
'''By default, MX6 processor does not assert any external signal when it initiates a software reset sequence. Also default software reset implementation does not guarantee that all processor registers are reset properly'''. For these reasons, it is strongly recommended to use a different approach that, in combination with the use of a processor's watchdog timer (WDT), provides a full hardware reset in case a software reset is issued.
  
The two typical scenarios are:
+
This technique is implemented in [[Axel_Embedded_Linux_Kit_(XELK)|XELK]]. At software level, U-Boot and Linux kernel software reset routines make use of processor's WDT #2 to assert the WDOG2_B reset signal. This signal in turn is routed to GPIO_1 pad (MUX mode = 1). At hardware level, this signal is AC-coupled to a 3-state output buffer (please refer to U22 chip of [[AxelEVB-Lite]] carrier board), driving PMIC_PWRON.
# WDOG_RESET_B_DEB is not used (default): in this case a CPU initiated reset sequence does not reset external devices such as SPI NOR flash memory. '''This may be critical'''. For example if boot memory is not reset properly, processor might be unable to boot correctly.
 
# WDOG_RESET_B_DEB is used: in this case a CPU initiated reset asserts WDOG_RESET_B_DEB signal that, in turn, can be used to reset external devices. To implement this solution:
 
#* software reset routines must configure WDT in order to assert WDOG_RESET_B_DEB signal
 
#* WDOG_RESET_B_DEB must be configured properly at IOMUX controller level
 
#* when asserted, WDOG_RESET_B_DEB must assert in turn either AxelLite's PMIC_PWRON or AxelLite's CPU_PORn signal at carrier board level (see [[AxelEVB-Lite]] schematics as an example). In case PMIC_PWRON is asserted, a complete power on cycle is perfomed and PMIC is reset too. In case CPU_PORn is asserted instead, PMIC is not reset because its RESETBMCU pad is output only.
 
 
 
WDOG_RESET_B_DEB can be routed to SD1_DATA2 or SD1_DATA3 pads. For more details please see descriptions of
 
IOMUXC_SW_MUX_CTL_PAD_SD1_DATA2 and IOMUXC_SW_MUX_CTL_PAD_SD1_DATA3 registers in chapter ''IOMUX controller'' of processor Reference Manual. About WDT, please refer to ''Watchdog Timer'' chapter instead.
 

Revision as of 13:04, 20 October 2015

Info Box
Axel-lite 02.png Applies to Axel Lite

Reset scheme and control signals[edit | edit source]

The following picture shows the simplified block diagram of reset scheme and voltage monitoring.

AxelLite-reset-scheme.png

PMIC_VSNVS[edit | edit source]

Some signals that are related to reset circuitry are pulled-up to PMIC_VSNVS. This voltage is generated by PMIC PF0100's VSNVS LDO/Switch and its actual value depends on:

  • voltage applied to PMICS's VIN pin
    • in case of AxelLite this pin is connected to 3.3VIN power rail
  • voltage applied to PMICS's LICELL pin
    • in case of AxelLite this pin is connected to pin 14 of SODIMM connector (PMIC_LICELL)
  • PMIC's VSNVSCTL register configuration.

Hence it is recommended that system designer takes into account these factors in order to properly manage these signals at carrier board level.

For more details please refer to section VSNVS LDO/Switch of MMPF0100 Advance Information document.

CPU_PORn[edit | edit source]

The following devices can assert this active-low signal:

  • PMIC
  • multiple-voltage monitor: this device monitors critical power voltages and triggers a reset pulse in case any of these exhibits a brownout condition

Since SPI NOR flash can be used as boot device, CPU_PORn is connected to this device too. This guarantees it is in a known state when reset signal is released.


Handling CPU-initiated software reset[edit | edit source]

By default, MX6 processor does not assert any external signal when it initiates a software reset sequence. Also default software reset implementation does not guarantee that all processor registers are reset properly. For these reasons, it is strongly recommended to use a different approach that, in combination with the use of a processor's watchdog timer (WDT), provides a full hardware reset in case a software reset is issued.

This technique is implemented in XELK. At software level, U-Boot and Linux kernel software reset routines make use of processor's WDT #2 to assert the WDOG2_B reset signal. This signal in turn is routed to GPIO_1 pad (MUX mode = 1). At hardware level, this signal is AC-coupled to a 3-state output buffer (please refer to U22 chip of AxelEVB-Lite carrier board), driving PMIC_PWRON.