The Error Management module in the PLM initializes and handles the hardware-generated errors across the Versal platform, and provides an option to customize these error actions. The error management support is one of the important runtime platform management activity supported by PLM. In the hardware, there are two error status registers for PMC and two error status registers for PSM that contain the type of error occurrence. You can enable or disable an error from interrupting the PMC/PSM MicroBlaze processor. The Error Manager code present in PLMI, maintains an Error Table that contains Handler Pointer, Error Action and Subsystem (to shutdown or restart in case of SUBSYSTEM SHUTDOWN or SUBSYSTEM RESTART error action) information for each error that is routed to PMC and PSM. You can set any supported error action for each of the errors to take an appropriate action when an error occurs.
The possible error actions supported by PLM include:
- Generation of a power-on-reset (POR)
- Generation of a system reset
- Assertion of error out signal on the device (SRST)
- CUSTOM (Not supported through CDO)
- Subsystem shutdown
- Subsystem restart
- PLM print to log
- Secure lockdown
- Secure lockdown with I/O tristate
- No action (This disables all actions on the error and clears the corresponding status bit)
The PLM Error Manager provides APIs for assigning a default error action in response to an error. During initialization of the PLM modules, the PLMI initializes the Error Manager, enables errors, and sets error action for each error in accordance with the Error Table structure defined in the xplmi_err.c file.