![]() |
xilplmi
Vitis Drivers API Documentation
|
This file contains error management code which is common for both versal and versal net PLM.
MODIFICATION HISTORY:
Ver Who Date Changes
==== ==== ======== ======================================================-
1.00 kc 02/12/2019 Initial release
1.01 kc 08/01/2019 Added error management framework
ma 08/01/2019 Added LPD init code
sn 08/03/2019 Added code to wait until over-temperature condition
gets resolved before restart
bsv 08/29/2019 Added Multiboot and Fallback support
scs 08/29/2019 Added support for Extended IDCODE checks
1.02 ma 05/02/2020 Remove SRST error action for PSM errors as it is
de-featured
ma 02/28/2020 Error actions related changes
bsv 04/04/2020 Code clean up
1.03 bsv 07/07/2020 Made functions used in single transaltion unit as
static
kc 08/11/2020 Added disabling and clearing of error which has actions
selected as subsystem shutdown or restart or custom.
They have to be re-enabled again using SetAction
command.
bsv 09/21/2020 Set clock source to IRO before SRST for ES1 silicon
bm 10/14/2020 Code clean up
td 10/19/2020 MISRA C Fixes
1.04 td 01/07/2021 Fix warning in PLM memory log regarding NULL handler for
PMC_PSM_NCR error
bsv 01/29/2021 Added APIs for checking and clearing NPI errors
1.05 pj 03/24/2021 Added API to update Subsystem Id of the error node
pj 03/24/2021 Added API to trigger error handling from software.
Added SW Error event and Ids for Healthy Boot errors
bm 03/24/2021 Added logic to store error status in RTCA
bl 04/01/2021 Update function signature for PmSystemShutdown
ma 04/05/2021 Added support for error configuration using Error Mask
instead of Error ID. Also, added support to configure
multiple errors at once.
ma 05/03/2021 Minor updates related to PSM and FW errors, trigger
FW_CR for PSM and FW errors which have error action
set as ERROR_OUT
bsv 05/15/2021 Remove warning for AXI_WRSTRB NPI error
ma 05/17/2021 Update only data field when writing error code to FW_ERR
register
bm 05/18/2021 Ignore printing and storing of ssit errors for ES1 silicon
td 05/20/2021 Fixed blind write on locking NPI address space in
XPlmi_ClearNpiErrors
1.06 ma 06/28/2021 Added handler for CPM_NCR error
ma 07/08/2021 Fix logic in reading link down error mask value
td 07/08/2021 Fix doxygen warnings
bsv 07/16/2021 Fix doxygen warnings
bsv 07/18/2021 Debug enhancements
kc 07/22/2021 XPlmi_PorHandler scope updated to global
ma 07/27/2021 Updated print statements in CPM handlers
bm 08/02/2021 Change debug log level of PMC error status prints
ma 08/06/2021 Save PMC_FW_ERR register value to RTCA and clear it
bsv 08/15/2021 Removed unwanted goto statements
rv 08/19/2021 Updated XPLMI_EM_ACTION_SUBSYS_RESTART error action
handling
ma 08/19/2021 Renamed error related macros
ma 08/30/2021 Modified XPlmi_ErrMgr function to handle errors in
SSIT Slave SLRs
bsv 10/11/2021 Added boundary check before incrementing NumErrOuts
1.07 ma 12/17/2021 Clear SSIT_ERR register during EM init
bsv 12/24/2021 Move common defines from xilplmi and xilpm to common
folder
is 01/10/2022 Updated XPlmi_SysMonOTDetect API to pass wait time arg
is 01/10/2022 Updated Copyright Year to 2022
ma 01/17/2022 Add exceptions to SW Errors list
ma 01/24/2022 Check error mask registers after error action is
enabled or disabled
ma 01/24/2022 Check if error action is enabled before executing the
handler
ma 02/01/2022 Fix SW-BP-INIT-TO-FAILURE warnings
ma 03/10/2022 Fix bug in disabling the error actions for PSM errors
is 03/22/2022 Add custom handler for XPPU/XMPU error events
1.08 ma 05/10/2022 Added PLM to PLM communication feature
ma 06/01/2022 Added PLM Print Log as new error action
bsv 06/10/2022 Add CommandInfo to a separate section in elf
rama 06/28/2022 Added new entries in ErrorTable to support XilSem
events
bm 07/06/2022 Refactor versal and versal_net code
ma 07/08/2022 Added support for secure lockdown
ma 07/08/2022 Added support for executing secure lockdown when
Halt Boot eFuses are blown
ma 07/19/2022 Disable interrupts before secure lockdown
kpt 07/21/2022 Replaced secure lockdown code with function
bm 07/22/2022 Update EAM logic for In-Place PLM Update
bm 07/22/2022 Retain critical data structures after In-Place PLM Update
bm 07/20/2022 Shutdown modules gracefully during update
bm 07/24/2022 Set PlmLiveStatus during boot time
ma 07/28/2022 Update FW_ERR register and return from XPlmi_ErrMgr if
secure lockdown is in progress
ma 08/08/2022 Handle EAM errors at task level
ma 08/08/2022 Fix SW-BP-MAGIC-NUM warning
ma 09/02/2022 Print EAM errors only if they are enabled
ma 09/07/2022 Print ERR number as per the register database
1.09 bsv 09/30/2022 Make XPlmi_SoftResetHandler non-static so that
it can be used in Image Selector
sk 10/27/2022 Updated logic to handle invalid node id
ng 11/11/2022 Updated doxygen comments
bm 01/03/2023 Remove Triggering of SSIT ERR2 from Slave SLR to
Master SLR
bm 01/03/2023 Create Secure Lockdown as a Critical Priority Task
bm 01/03/2023 Notify Other SLRs about Secure Lockdown
ng 02/07/2023 Check to skip the multiboot reg update and SRST
bm 02/09/2023 Added support to return warnings
ng 03/12/2023 Fixed Coverity warnings
dd 03/28/2023 Updated doxygen comments
ng 03/30/2023 Updated algorithm and return values in doxygen comments
1.10 bm 06/13/2023 Add API to just log PLM error
sk 07/26/2023 Added redundant call for XPlmi_DetectSlaveSlrTamper
sk 07/26/2023 Added redundant check in XPlmi_DetectAndHandleTamper
sk 08/17/2023 Updated logic to handle SubsystemId for EM actions
sk 08/18/2023 Added redundant call for XPlmi_TriggerSLDOnHaltBoot
rama 08/30/2023 Changed EAM prints to DEBUG_ALWAYS for debug level_0 option
mss 09/04/2023 Added Null Check for EmInit
dd 09/12/2023 MISRA-C violation Rule 10.3 fixed
dd 09/12/2023 MISRA-C violation Rule 17.7 fixed
1.11 bm 09/25/2023 Fix Error Handling after In-Place PLM Update
ma 09/27/2023 Add secure lockdown to EAM error actions list
mss 10/31/2023 Added code to Trigger FW CR error in XPlmi_ErrMgr
ma 11/14/2023 Update error action to NONE after disabling the error
2.00 ng 12/27/2023 Reduced log level for less frequent prints
jb 02/22/2024 Removed PmSubsysRestart handler and insed used
SystemShutdown for Subsystem restart EM action
ma 02/29/2024 Removed XPlmi_ErrPrintToLog function from common folder
and moved it to xplmi_err.c
pre 03/01/2024 Added infinite loop for PLM to stop further processing
in slave SLR if any error is encountered during boot
ng 03/09/2024 Fixed format specifier for 32bit variables
mss 03/13/2024 MISRA-C violatiom Rule 17.8 fixed
sk 05/07/2024 Added support for In Place Update Error Notify
2.01 sk 08/26/2024 Updated EAM support for Versal 2VE and 2VM Devices
pre 10/07/2024 Added slave error notification
sk 02/20/2025 Added emconfig support for Versal 2VE and 2VM Devices
moved PSM code to separate source file Functions | |
| void | XPlmi_LogPlmErr (int ErrStatusVal) |
| This function is called for logging PLM error into FW_ERR register. More... | |
| void | XPlmi_ErrMgr (int ErrStatusVal) |
| This function is called in PLM error cases. More... | |
| void | XPlmi_UpdateErrorSubsystemId (u32 ErrorNodeId, u32 ErrorMasks, u32 SubsystemId) |
| This function updates the SubystemId for the given error index. More... | |
| void | XPlmi_PORHandler (void) |
| This function triggers Power on Reset. More... | |
| u32 | XPlmi_GetErrorId (u32 ErrorNodeId, u32 RegMask) |
| This function returns Error Id for the given error node type and error mask. More... | |
| void | XPlmi_HandleSwError (u32 ErrorNodeId, u32 RegMask) |
| This function handles the Software error triggered from within PLM. More... | |
| void | XPlmi_ErrIntrHandler (void *CallbackRef) |
| This function is default interrupt handler for EAM error which will add the task to the task queue. More... | |
| int | XPlmi_ErrorTaskHandler (void *Data) |
| This function is the interrupt handler for the EAM errors. More... | |
| void | XPlmi_EmClearError (XPlmi_EventType ErrorNodeType, u32 ErrorId) |
| This function clears any previous errors before enabling them. More... | |
| u32 | EmDisableErrAction (u32 ErrMaskRegAddr, u32 RegMask) |
| This function disables the error action for the given error mask. More... | |
| int | XPlmi_EmDisablePmcErrors (u32 RegOffset, u32 RegMask) |
| This function disables the PMC error actions for the given mask. More... | |
| int | XPlmi_EmDisable (u32 ErrorNodeId, u32 RegMask) |
| This function disables the responses for the given error. More... | |
| int | XPlmi_EmConfig (XPlmi_EventType NodeType, u32 ErrorId, u8 ActionId, XPlmi_ErrorHandler_t ErrorHandler, const u32 SubsystemId) |
| This function configures the Action specified for a given Error ID. More... | |
| int | XPlmi_EmSetAction (u32 ErrorNodeId, u32 ErrorMasks, u8 ActionId, XPlmi_ErrorHandler_t ErrorHandler, const u32 SubsystemId) |
| This function sets the Action specified for a given Error Masks. More... | |
| int | XPlmi_EmInit (XPlmi_ShutdownHandler_t SystemShutdown) |
| This function initializes the error module. More... | |
| void | XPlmi_SoftResetHandler (void) |
| This function sets clock source to IRO for ES1 silicon and resets the device. More... | |
| void | XPlmi_TriggerFwNcrError (void) |
| This function sets clock source to IRO for ES1 silicon and triggers FW NCR error. More... | |
| void | XPlmi_SetEmSubsystemId (const u32 *Id) |
| This function sets EmSubsystemId. More... | |
| u32 | XPlmi_GetEmSubsystemId (void) |
| This function returns EmSubsystemId. More... | |
| u32 | XPlmi_UpdateNumErrOutsCount (u8 UpdateType) |
| This function updates NumErrOuts and returns number of error outs count to the caller. More... | |
| int | XPlmi_CheckNpiErrors (void) |
| This function clears NPI errors. More... | |
| int | XPlmi_ClearNpiErrors (void) |
| This function clears NPI errors. More... | |