LPD WDT can be used to reset the RPU. PMU firmware error management module can configure
the error action to be taken when the LPD WDT error occurs. PMU firmware implements a
recovery mechanism for LPD WDT error. This mechanism is disabled by default. The same
can be enabled by defining the
ENABLE_RECOVERY build flag.
The EM module in the PMU firmware sets LPD WDT error action as "system reset' when recovery mechanism is not enabled. In this case, PMU firmware doesn't initialize and configure the LPD WDT. It is left to the RPU user application to initialize and start the WDT, if required. When WDT expires, the system restarts.
When ENABLE_RECOVERY flag is defined and FSBL is running on RPU, PMU firmware sets FPD WDT error action as "interrupt to PMU" and registers a handler to be called when this error occurs. In this case, when PMU firmware comes up, it initializes and starts the WDT.
PMU firmware configures LPD WDT expiry time to 60s. And if WDT error occurs, PMU firmware gets an interrupt and it calls the registered handler. PMU firmware maintains a restart tracker structure for LPD WDT. Refer to Table 10-23 for more information.
When WDT error occurs, the WDT error handler is called and PMU firmware performs the following actions:
- It checks if master is RPU and error ID is LPD WDT. Then, it checks if restart state is in progress or not. If restart state is not in progress, then it changes the restart state to in progress and restarts the WDT to track the next WDT expiry.
- It applies AIB isolation for RPU and removes it.
- If restart scope is set as a subsystem, then it will restart RPU subsystem.
- If restart scope is set as PS only restart, then PMU firmware will restart PS subsystem.
- If restart scope is set as system, then it will perform the system restart.