![]() |
xilplmi
Vitis Drivers API Documentation
|
This file contains the PLMI versal_2ve_2vm platform specific code.
MODIFICATION HISTORY:
Ver Who Date Changes
1.00 bm 07/06/2022 Initial release dc 07/12/2022 Added XPlmi_RomISR() API kpt 07/21/2022 Added KAT APIs 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/22/2022 Shutdown modules gracefully during update 1.01 bm 11/07/2022 Clear SSS Cfg Error in SSSCfgSbiDma for Versal Net ng 11/11/2022 Fixed doxygen file name error kpt 01/04/2023 Added XPlmi_CheckandUpdateFipsState to update FIPS state bm 03/11/2023 Modify XPlmi_PreInit to return Status dd 03/28/2023 Updated doxygen comments ng 03/30/2023 Updated algorithm and return values in doxygen comments 1.02 bm 04/28/2023 Update Pmc IRO frequency by detecting the part dd 05/24/2023 Updated doxygen comments ng 05/31/2023 Initialised IsKatRan state to False bm 07/06/2023 Initialize address buffer list ng 06/26/2023 Added support for system device-tree flow sk 07/18/2023 Updated error codes in VerifyAddrRange function sk 07/31/2023 Added redundant write for SSS Config kpt 08/28/2023 Reread from efuse cache to enhance security sk 09/07/2023 Added redundancy check in XPlmi_SetPmcIroFreq for updating the MB Freq ng 09/22/2023 Fixed missing header for microblaze sleep 1.03 sk 14/12/2023 PSM & PMC buffer list saving to handle in-place update mss 01/09/2024 Added PMC RAM check condition in Xplmi_VerifyAddr API pre 01/22/2024 Updated XPlmi_SetPmcIroFreq to support both ES1 and production samples ng 02/12/2024 optimised u8 vars to u32 for size reduction ma 03/05/2024 Fixed improper timestamp issue after In-place PLM update ma 03/15/2024 Do not stop PIT3 timer during In-place PLM update 1.04 sk 08/26/2024 Updated EAM support for Versal 2VE and 2VM Devices yog 09/09/2024 Updated XPlmi_VerifyAddrRange API to handle ASU memory regions nb 09/16/2024 Register interrupt for PMC power interrupts sk 12/13/2024 Updated PSM buffer defines to PPU RAM pre 12/24/2024 Assigned PmcBuffers to data of PmcBufferList 2.2 vss 02/11/2025 Updated SSS configuration correctly. sk 02/26/2025 Updated status variable as volatile in XPlmi_GenericHandler sk 03/17/2025 Updated XPlmi_VerifyAddrRange function to handle RPU cluster TCM memory ranges sk 03/25/2025 Corrected configuration of the PMC IRO Freq obs 04/11/2025 Removed HNIC and PKI related code in XPlmi_UpdateFipsState
Macros | |
| #define | XPLMI_ROM_VERSION_1_0 (0x10U) |
| ROM version 1. More... | |
| #define | XPLMI_SSSCFG_SHA0_MASK (0x000F0000U) |
| SHA0 mask. More... | |
| #define | XPLMI_SSSCFG_SHA1_MASK (0x0F000000U) |
| SHA1 mask. More... | |
| #define | XPLMI_SSSCFG_AES_MASK (0x0000F000U) |
| AES mask. More... | |
| #define | XPLMI_SSS_SHA0_DMA0 (0x000C0000U) |
| SHA0 DMA0. More... | |
| #define | XPLMI_SSS_SHA0_DMA1 (0x00070000U) |
| SHA0 DMA1. More... | |
| #define | XPLMI_SSS_SHA1_DMA0 (0x0A000000U) |
| SHA1 DMA0. More... | |
| #define | XPLMI_SSS_SHA1_DMA1 (0x0F000000U) |
| SHA1 DMA1. More... | |
| #define | XPLMI_SSS_AES_DMA0 (0x0000E000U) |
| AES DMA0. More... | |
| #define | XPLMI_SSS_AES_DMA1 (0x00005000U) |
| AES DMA1. More... | |
| #define | XPLMI_LPDINITIALIZED_VER (1U) |
| LPD initialized version. More... | |
| #define | XPLMI_LPDINITIALIZED_LCVER (1U) |
| LPD initialized LC version. More... | |
| #define | XPLMI_UART_BASEADDR_VER (1U) |
| UART base address version. More... | |
| #define | XPLMI_UART_BASEADDR_LCVER (1U) |
| UART base address LC version. More... | |
| #define | XPLMI_TRACE_LOG_VERSION (1U) |
| Trace log version. More... | |
| #define | XPLMI_TRACE_LOG_LCVERSION (1U) |
| Trace log LC version. More... | |
| #define | XPLMI_BOARD_PARAMS_VERSION (1U) |
| Board parameters version. More... | |
| #define | XPLMI_BOARD_PARAMS_LCVERSION (1U) |
| Board parameters LC version. More... | |
| #define | XPLMI_XIOMODULE_VERSION (1U) |
| IOModule version. More... | |
| #define | XPLMI_XIOMODULE_LCVERSION (1U) |
| IOModule LC version. More... | |
| #define | XPLMI_PMC_VOLTAGE_MULTIPLIER (32768.0f) |
| Voltage multiplier for Sysmon. More... | |
| #define | XPLMI_PMC_IRO_FREQ_233_MHZ (233000000U) |
| PMC IRO frequency 233Mhz. More... | |
| #define | XPLMI_PPU_BUFFER_DS_VER (1U) |
| PPU buffers Data structure version. More... | |
| #define | XPLMI_PPU_BUFFER_DS_LCVER (1U) |
| PPU buffers Data structure LC version. More... | |
| #define | XPLMI_PMC_BUFFER_DS_VER (1U) |
| PMC buffers Data structure version. More... | |
| #define | XPLMI_PMC_BUFFER_DS_LCVER (1U) |
| PMC buffers Data structure LC version. More... | |
| #define | XPLMI_PPU_BUFFER_LIST_DS_VER (1U) |
| PPU buffer list Data structure version. More... | |
| #define | XPLMI_PPU_BUFFER_LIST_DS_LCVER (1U) |
| PPU buffer list Data structure LC version. More... | |
| #define | XPLMI_PMC_BUFFER_LIST_DS_VER (1U) |
| PMC buffer list Data structure version. More... | |
| #define | XPLMI_PMC_BUFFER_LIST_DS_LCVER (1U) |
| PMC buffer list Data structure LC version. More... | |
Functions | |
| XInterruptHandler * | XPlmi_GetTopLevelIntrTbl (void) |
| This function provides pointer to g_TopLevelInterruptTable. More... | |
| u8 | XPlmi_GetTopLevelIntrTblSize (void) |
| This function provides size of g_TopLevelInterruptTable. More... | |
| XPlmi_BoardParams * | XPlmi_GetBoardParams (void) |
| This function provides pointer to BoardParams. More... | |
| XIOModule * | XPlmi_GetIOModuleInst (void) |
| This function provides pointer to IOModule structure. More... | |
| u32 * | XPlmi_GetLpdInitialized (void) |
| This function provides LpdInitialized variable pointer. More... | |
| u32 * | XPlmi_GetUartBaseAddr (void) |
| This function provides LpdInitialized variable pointer. More... | |
| int | XPlmi_PreInit (void) |
| This function performs plmi pre-initializaton. More... | |
| void | XPlmi_RtcaPlatInit (void) |
| This function performs initialization of platform specific RCTA registers. More... | |
| void | XPlmi_PrintRomVersion (void) |
| This function prints ROM version using ROM digest value. More... | |
| void | XPlmi_SssMask (u32 DmaSrc) |
| This function masks the secure stream switch value. More... | |
| XPlmi_CircularBuffer * | XPlmi_GetTraceLogInst (void) |
| This function provides TraceLog instance. More... | |
| int | XPlmi_GenericHandler (XPlmi_ModuleOp Op) |
| This function is used for shutdown operation before In-place PLM Update. More... | |
| void | XPlmi_GetReadbackSrcDest (u32 SlrType, u64 *SrcAddr, u64 *DestAddrRead) |
| This function processes and provides SrcAddr and DestAddr for cfi readback. More... | |
| void | XPlmi_GicAddTask (u32 PlmIntrId) |
| This will add the GIC interrupt task handler to the TaskQueue. More... | |
| void | XPlmi_IpiIntrHandler (void *CallbackRef) |
| This function is the Ipi interrupt handler for the device. More... | |
| int | XPlmi_RegisterNEnableIpi (void) |
| This function registers and enables IPI interrupt. More... | |
| void | XPlmi_EnableIomoduleIntr (void) |
| This function registers and enables IPI interrupt. More... | |
| u32 | XPlmi_GetRomIroFreq (void) |
| This function provides the Iro Frequency used in ROM. More... | |
| int | XPlmi_SetPmcIroFreq (void) |
| It sets the PMC IRO frequency. More... | |
| int | XPlmi_VerifyAddrRange (u64 StartAddr, u64 EndAddr) |
| This function is used to check if the given address range is valid. More... | |
| XPlmi_WaitForDmaDone_t | XPlmi_GetPlmiWaitForDone (u64 DestAddr) |
| This function is used to check and wait for DMA done when sending data to SSIT Slave SLRs. More... | |
| u32 | XPlmi_GetGicIntrId (u32 GicPVal, u32 GicPxVal) |
| This function provides Gic interrupt id. More... | |
| u32 | XPlmi_GetIpiIntrId (u32 BufferIndex) |
| This function provides IPI interrupt id. More... | |
| int | XPlmi_RomISR (XPlmi_RomIntr RomServiceReq) |
| This function raises an interrupt request to ROM and waits for completion. More... | |
| u32 | XPlmi_IsFipsModeEn (void) |
| This function return FIPS mode. More... | |
| u32 | XPlmi_GetRomKatStatus (void) |
| This function returns ROM KAT status. More... | |
| void | XPlmi_GetBootKatStatus (volatile u32 *PlmKatStatus) |
| This function returns KAT status from RCTA area. More... | |
| void | XPlmi_ClearSSSCfgErr (void) |
| This function clears SSS Cfg error set during ROM PCR Extension. More... | |
| XPlmi_FipsKatMask * | XPlmi_GetFipsKatMaskInstance (void) |
| This function returns XPlmi_FipsKatMask instance. More... | |
| int | XPlmi_CheckAndUpdateFipsState (void) |
| This function checks and updates the FIPS state in RTCA. More... | |
| void | XPlmi_UpdateCryptoStatus (u32 Mask, u32 Val) |
| This function sets or clears crypto bit in RTCA based on mask. More... | |
| u32 | XPlmi_GetCryptoStatus (u32 Mask) |
| This function returns crypto status flag. More... | |
| u8 | XPlmi_IsKatRan (u32 PlmKatMask) |
| This function will return KAT status of given mask. More... | |
| XPlmi_BufferList * | XPlmi_GetBufferList (u32 BufferListType) |
| This function defines BufferList and returns the address of the same. More... | |