xilloader
Vitis Drivers API Documentation
xloader_cfi.c File Reference

Overview

This file contains the code related to PDI image loading.

MODIFICATION HISTORY:
Ver   Who  Date        Changes


1.00 bsv 06/17/2019 Initial release 1.01 bsv 04/09/2020 Code clean up of xilloader 1.02 kc 08/03/2020 Added status prints for CFU/CFI errors kal 08/12/2020 Added PlHouseCleaning in case of any PL error. td 08/19/2020 Fixed MISRA C violations Rule 10.3 bsv 10/13/2020 Code clean up 1.03 kal 12/22/2020 Perform Cfu/Cfi recovery before re-triggering PL House cleaning in case of error in PL loading. 1.04 skd 03/25/2021 Compilation warning fix 1.05 td 07/08/2021 Fix doxygen warnings td 07/15/2021 Fix doxygen warnings bsv 07/18/2021 Debug enhancements bsv 08/31/2021 Code clean up ma 09/01/2021 Fix issue in clearing the CFI and CFU errors 1.06 am 11/24/2021 Fixed doxygen warning bsv 12/04/2021 Addressed security review comment 1.07 ma 01/17/2022 Enable SLVERR for CFU_APB registers 1.08 ma 07/27/2022 Added support for CFrame data clear check which is required during PL secure lockdown 1.09 ng 11/11/2022 Updated doxygen comments ng 03/12/2023 Fixed Coverity warnings sk 03/14/2023 Added Glitch detect for status check in XLoader_CframeDataClearCheck dd 03/28/2023 Updated doxygen comments ng 03/30/2023 Updated algorithm and return values in doxygen comments 1.10 ng 06/26/2023 Added support for system device tree flow 2.00 ng 01/26/2024 Added header file for minor error codes sk 03/13/24 Fixed doxygen comments format pre 08/22/2024 Added XLoader_CfiSelectiveRead command execution pre 08/25/2024 Fixed build issue for PLM_DEBUG_MODE pre 10/22/2024 Made CFI_selective_read feature configurable

 

Macros

#define CFRAME_BCAST_REG_TESTMODE_OFFSET   (0x120U)
 Test mode offset. More...
 
#define CFRAME_BCAST_REG_TESTMODE_CRAM_SELF_CHECK_MASK   (0x100U)
 CRAM self check mask. More...
 
#define CFRAME_BCAST_REG_FAR_OFFSET   (0x10U)
 CFrame address register offset. More...
 
#define CFRAME_BCAST_REG_FAR_BLOCKTYPE_SHIFT   (20U)
 CFrame address register block type shift. More...
 
#define CFRAME_MAX_BLOCK_TYPE_COUNT   (0x3U)
 CFrame maximum block type count. More...
 
#define XPLMI_ZERO   (0x0U)
 Zero. More...
 
#define CFRAME_CRC_POLL_TIMEOUT   (0xFFFFU)
 CRC poll time out. More...
 
#define XLOADER_CFRAME_DATACLEAR_CHECK_CMD_ID   (0xCU)
 Data clear check command Id. More...
 
#define PMC_GLOBAL_PMC_ERR2_STATUS_CFI_SHIFT   (16U)
 CFI Non-Correctable Error shift. More...
 

Functions

int XLoader_CframeInit (void)
 This function initializes the Cframe driver. More...
 
void XLoader_CframeErrorHandler (u32 ImageId)
 This function is used to check the CFU ISR and PMC_ERR1 and PMC_ERR2 status registers to check for any errors in PL and call corresponding error recovery functions if needed. More...
 
int XLoader_CframeDataClearCheck (XPlmi_Cmd *Cmd)
 This function is used to check if the Cframe data is cleared or not using CRC method. More...
 
int XLoader_CfiSelectiveRead (XPlmi_Cmd *Cmd)
 This function provides CFI SELECTIVE READ command execution. More...