![]() |
xilloader
Vitis Drivers API Documentation
|
This file contains declarations for image store functions.
MODIFICATION HISTORY:
Ver Who Date Changes
1.00 kc 07/25/2018 Initial release tp 04/05/2019 Added API to reload a particular image kc 04/09/2019 Added support for PCIe secondary boot mode and partial PDI load bsv 06/11/2019 Added TCM power up code to Xilloader to fix issue in R5-1 split mode functionality bsv 06/17/2019 Added support for CFI and CFU error handling bsv 06/26/2019 Added secondary boot support kc 07/16/2019 Added code to print execution time rv 07/29/2019 Added code to request boot source before subsystem restart vnsl 07/30/2019 Added APIs to load secure headers scs 08/29/2019 Added API to validate extended ID Code bsv 08/30/2019 Added fallback and multiboot support in PLM kc 09/05/2019 Added code to use PMCDMA0 and PMCDMA1 in parallel kc 09/13/2019 SBI reset is removed for SMAP boot mode to ensure smap bus width value remains unchanged 1.01 bsv 10/31/2019 Added USB secondary boot mode support kc 12/02/2019 Added performance time stamps ma 12/12/2019 Added support for passing hand off parameters to ATF bsv 12/30/2019 Added SMAP secondary boot mode support ma 02/03/2020 Change XPlmi_MeasurePerfTime to retrieve Performance time and print bsv 02/12/2020 Added support for SD/eMMC raw boot mode bsv 02/23/2020 Added multi partition support for SD/eMMC FS boot modes bsv 02/25/2020 Added macros to handle u32 return values from drivers vnsl 02/26/2020 Added boot header reading call during partial PDI kc 02/27/2020 Added SEM support for partial reconfiguration bsv 02/28/2020 Added support for delay handoff har 02/28/2020 Removed code to return error codes for security related errors vnsl 03/01/2020 Added PUF KEK decrypt support bsv 03/14/2020 Added eMMC0 FS and raw boot mode support bsv 04/09/2020 Code clean up 1.02 ana 06/04/2020 Updated PlmkatStatus and Kekstatus variables from initial boot pdi to partial pdi structure variables bsv 06/22/2020 Cfi error handler should only be called for PL image bsv 07/01/2020 Added DevRelease to DevOps skd 07/14/2020 Function pointers Copy and DeviceCopy prototypes changed kal 07/20/2020 Added macro XLOADER_SECURE_CHUNK_SIZE for security bsv 07/29/2020 Added CopyToMem address and delay load fields in XilPdi structure skd 07/29/2020 Removed device copy macros bsv 08/06/2020 Code clean up bsv 08/10/2020 Added subsystem restart support from DDR har 08/11/2020 Added XLOADER_AUTH_JTAG_INT_STATUS_POLL_INTERVAL kal 08/12/2020 Added param ImageId for XLoader_CframeErrorHandler to identify Full PL partition and perform PL house cleaning. bsv 08/17/2020 Added redundancy in XLoader_IsAuthEnabled td 08/19/2020 Fixed MISRA C violations Rule 10.3 bm 08/19/2020 Added minor error codes skd 08/21/2020 Added flash size macros bm 09/21/2020 Added ImageInfo related code and added compatibility check required for DFx bm 09/24/2020 Added FuncID argument to RestartImage and ReloadImage bsv 10/13/2020 Code clean up ana 10/19/2020 Added doxygen comments 1.03 bm 12/15/2020 Added XLOADER_SD_MAX_BOOT_FILES_LIMIT macro ma 01/12/2021 Added macro for invalid boot mode Added macro for invalid SLR Type Added function for PMC State clear bm 03/16/2021 Added Image Upgrade support bm 05/10/2021 Added additional macro for PDI version 1.04 bm 07/16/2021 Updated XLoader_PdiInit prototype bsv 07/19/2021 Disable UART prints when invalid header is encountered in slave boot modes bsv 08/02/2021 Updated function return type as part of code clean up bm 08/09/2021 Removed obsolete XLoader_PMCStateClear API prototype bm 08/24/2021 Added Extract Metaheader support bm 08/26/2021 Added XLOADER_PDI_TYPE_PARTIAL_METAHEADER macro bsv 08/31/2021 Code clean up ma 09/01/2021 Use SSIT defines from XilPlmi kpt 09/06/2021 Added macro XLOADER_TOTAL_CHUNK_SIZE bsv 10/26/2021 Code clean up bsv 03/17/2022 Add support for A72 elfs to run from TCM 1.05 ma 06/21/2022 Add support for Get Handoff Parameters IPI command sk 06/24/2022 Removed bit field from XLoader_ImageInfoTbl to avoid compiler or portability issues bm 07/06/2022 Refactor versal and versal_net code kpt 07/05/22 Added PpdiKatStatus for partial pdi KAT bm 07/13/2022 Added compatibility check for In-Place PLM Update bm 07/13/2022 Retain critical data structures after In-Place PLM Update ma 07/27/2022 Added support for CFrame data clear check which is required during PL secure lockdown kal 01/05/2023 Added XLOADER_PCR_INVALID_VALUE macro 1.06 sk 01/11/2023 Updated XLoader_ImageStore structure to support image store feature bm 02/22/2023 Fix XLOADER_MAX_HANDOFF_CPUS value for versal Net sk 03/17/2023 Renamed member Kekstatus to DecKeySrc in xilpdi structure sk 04/28/2023 Added function to retrieve PDI Address from Image Store based on PDI ID sk 05/18/2023 Deprecate copy to memory feature,removed SubsystemPdiIns, Added BootPdiInfo Structure,Added XLoader_GetPdiInstance function declaration sk 07/06/2023 Added prototype for Enable and Disable Jtag functions Moved minor error codes to plat headers sk 08/18/2023 Renamed ValidHeader member to DiscardUartLogs in XilPdi dd 09/11/2023 MISRA-C violation Rule 17.8 fixed 2.00 kpt 02/21/2024 Update prototype for XLoader_EnableJtag and XLoader_DisableJtag mss 03/06/2024 Added ClearAtfHandoff member in XilPdi structure and ClearATFHandoffParams function prototype har 03/12/2024 Fixed doxygen warnings kal 06/04/2024 Added ImagePrtnId to XilPdi structure mss 04/05/2024 Added XLOADER_DEVICE_COPY_OPTIMIZATION_MASK macro pre 08/22/2024 Added XLoader_CfiSelectiveRead function obs 09/30/2024 Fixed Doxygen Warnings pre 12/09/2024 use PMC RAM for Metaheader instead of PPU1 RAM bm 12/16/2024 Move I2C Handshake feature to common code tri 03/13/2025 Added XLOADER_PCR_NUMBER_MASK macro pre 03/02/2025 Added XLoader_PpdiEventParamsPtr function and XLoader_ResourceSts type definition sk 03/28/2025 Updated the max handoff count for versal_2ve_2vm
Macros | |
| #define | XLOADER_SUCCESS (u32)XST_SUCCESS |
| Alias for XST_SUCCESS. More... | |
| #define | XLOADER_FAILURE (u32)XST_FAILURE |
| Alias for XST_FAILURE. More... | |
| #define | XLoader_Printf XPlmi_Printf |
| Alias for XPlmi_Printf. More... | |
| #define | XLOADER_DDR_TEMP_BUFFER_ADDRESS (0x50000000U) |
| Fixed DFU temporary address in DDR. More... | |
| #define | XLOADER_CHUNK_SIZE (0x10000U) |
| 64K More... | |
| #define | XLOADER_TOTAL_CHUNK_SIZE (XLOADER_CHUNK_SIZE + 0x100U) |
| Total chunk size. More... | |
| #define | XLOADER_DMA_LEN_ALIGN (0x10U) |
| 16 bytes alignment More... | |
| #define | XLOADER_DMA_LEN_ALIGN_MASK (0xFU) |
| Mask for 16 bytes alignment. More... | |
| #define | XLOADER_IMAGE_SEARCH_OFFSET (0x8000U) |
| 32K More... | |
| #define | XLOADER_DEVICE_COPY_OPTIMIZATION_MASK (0x30U) |
| Mask to extract copy optimization bits of RTCA SecureCtrl registers. More... | |
| #define | XLOADER_PCR_NUMBER_MASK (0x0000FFFFU) |
| Number mask value. More... | |
| #define | XLOADER_RESP_CMD_EXEC_STATUS_INDEX (0U) |
| Index of executed coammnd status. More... | |
| #define | XLOADER_RESP_CMD_LOAD_PDI_STATUS_INDEX (1U) |
| Index of PDI load status. More... | |
| #define | XLOADER_INVALID_IMG_ID (0x0U) |
| Invalid Img ID. More... | |
| #define | XLOADER_INVALID_UID (0x0U) |
| Invalid UID. More... | |
| #define | XLOADER_IMG_INDEX_NOT_FOUND (0xFFFFFFFFU) |
| Image Index Not found. More... | |
| #define | XLOADER_IMG_STORE_INVALID_ADDR (0xFFFFFFFFFFFFFFFFUL) |
| Invalid address in Image Store. More... | |
| #define | XLOADER_IMG_STORE_INVALID_SIZE (0x0U) |
| Invalid size in Image Store. More... | |
| #define | PdiSrc_t u32 |
| Alias for u32. More... | |
| #define | XLOADER_MULTIBOOT_OFFSET_MASK (0x001FFFFFU) |
| Mask for multiboot offset. More... | |
| #define | XLOADER_SD_MAX_BOOT_FILES_LIMIT (8192U) |
| Maximum limit of boot files in SD filesystem. More... | |
| #define | XLOADER_UFS_MAX_BOOT_FILES_LIMIT (8192U) |
| Maximum limit of boot files in UFS filesystem. More... | |
| #define | XLOADER_AUTH_JTAG_INT_STATUS_POLL_INTERVAL (1000U) |
| Polling interval for checking Authenticated JTAG interrupt status. More... | |
| #define | XLOADER_SHA3_LEN (48U) |
| SHA3 hash length in bytes. More... | |
| #define | XLOADER_MAX_PDI_LIST (32U) |
| Maximum number of PDIs. More... | |
| #define | XLoader_MbPmcI2cHandshake (NULL) |
| DDRMB - PMC I2C Handshake. More... | |
Subsystem related macros | |
| #define | XLOADER_MAX_HANDOFF_CPUS (10U) |
| < Subsystem related macros More... | |
Macros for different PDI types | |
| #define | XLOADER_PDI_TYPE_FULL (0x1U) |
| < Different PDI types More... | |
| #define | XLOADER_PDI_TYPE_PARTIAL (0x2U) |
| #define | XLOADER_PDI_TYPE_RESTORE (0x3U) |
| #define | XLOADER_PDI_TYPE_FULL_METAHEADER (0x4U) |
| #define | XLOADER_PDI_TYPE_PARTIAL_METAHEADER (0x5U) |
| #define | XLOADER_PDI_TYPE_IPU (0x6U) |
SD boot | |
| #define | XLOADER_PDISRC_FLAGS_MASK (0xFU) |
| < SD boot related macros More... | |
| #define | XLOADER_PDISRC_FLAGS_SHIFT (0x4U) |
Status of PDI Load | |
| #define | XLOADER_PDI_LOAD_COMPLETE (0x1U) |
| < Status of PDI load More... | |
| #define | XLOADER_PDI_LOAD_STARTED (0x0U) |
SLR Types | |
| #define | XLOADER_SSIT_MONOLITIC XPLMI_SSIT_MONOLITIC |
| < SLR Types More... | |
| #define | XLOADER_SSIT_MASTER_SLR XPLMI_SSIT_MASTER_SLR |
| #define | XLOADER_SSIT_INVALID_SLR XPLMI_SSIT_INVALID_SLR |
PDI version | |
< Flash size | |
| #define | XLOADER_PDI_VERSION_1 (0x01030000U) |
| < PDI version More... | |
| #define | XLOADER_PDI_VERSION_2 (0x00020000U) |
| #define | XLOADER_PDI_VERSION_4 (0x00040000U) |
PDI Src Index | |
| #define | XLOADER_SBI_INDEX (0U) |
| < PDI Src index More... | |
| #define | XLOADER_QSPI_INDEX (1U) |
| #define | XLOADER_SD_INDEX (2U) |
| #define | XLOADER_SD_RAW_INDEX (3U) |
| #define | XLOADER_DDR_INDEX (4U) |
| #define | XLOADER_OSPI_INDEX (5U) |
| #define | XLOADER_USB_INDEX (6U) |
| #define | XLOADER_UFS_INDEX (7U) |
| #define | XLOADER_INVALID_INDEX (8U) |
SD Raw boot | |
| #define | XLOADER_SD_RAWBOOT_MASK (0xF0000000U) |
| < SD Raw boot More... | |
| #define | XLOADER_SD_RAWBOOT_VAL (0x70000000U) |
| #define | XLOADER_EMMC_BP1_RAW_VAL (0x10000000U) |
| #define | XLOADER_EMMC_BP2_RAW_VAL (0x20000000U) |
Functions | |
| int | XLoader_Init (void) |
| This function initializes the loader instance and registers loader commands with PLM. More... | |
| XilPdi * | XLoader_GetPdiInstance (void) |
| This function provides PdiInstance pointer. More... | |
| int | XLoader_LoadPdi (XilPdi *PdiPtr, PdiSrc_t PdiSrc, u64 PdiAddr) |
| This function provides loading PDI. More... | |
| #define PdiSrc_t u32 |
Alias for u32.
Referenced by XLoader_PdiInit(), and XLoader_PerformInternalPOR().
| #define XLOADER_AUTH_JTAG_INT_STATUS_POLL_INTERVAL (1000U) |
Polling interval for checking Authenticated JTAG interrupt status.
Referenced by XLoader_UpdateHandler().
| #define XLOADER_CHUNK_SIZE (0x10000U) |
64K
Referenced by XLoader_ReadAndVerifySecureHdrs().
| #define XLOADER_DDR_TEMP_BUFFER_ADDRESS (0x50000000U) |
Fixed DFU temporary address in DDR.
| #define XLOADER_DEVICE_COPY_OPTIMIZATION_MASK (0x30U) |
Mask to extract copy optimization bits of RTCA SecureCtrl registers.
| #define XLOADER_DMA_LEN_ALIGN (0x10U) |
16 bytes alignment
| #define XLOADER_DMA_LEN_ALIGN_MASK (0xFU) |
Mask for 16 bytes alignment.
| #define XLOADER_FAILURE (u32)XST_FAILURE |
Alias for XST_FAILURE.
| #define XLOADER_IMAGE_SEARCH_OFFSET (0x8000U) |
32K
| #define XLOADER_IMG_INDEX_NOT_FOUND (0xFFFFFFFFU) |
Image Index Not found.
| #define XLOADER_IMG_STORE_INVALID_ADDR (0xFFFFFFFFFFFFFFFFUL) |
Invalid address in Image Store.
Referenced by XLoader_ReadImageStoreCfg().
| #define XLOADER_IMG_STORE_INVALID_SIZE (0x0U) |
Invalid size in Image Store.
Referenced by XLoader_ReadImageStoreCfg().
| #define XLOADER_INVALID_IMG_ID (0x0U) |
Invalid Img ID.
Referenced by XLoader_GetImageInfoEntry(), and XLoader_LoadImage().
| #define XLOADER_INVALID_UID (0x0U) |
Invalid UID.
| #define XLOADER_MAX_HANDOFF_CPUS (10U) |
< Subsystem related macros
Referenced by XLoader_UpdateHandoffParam().
| #define XLOADER_MAX_PDI_LIST (32U) |
Maximum number of PDIs.
| #define XLoader_MbPmcI2cHandshake (NULL) |
DDRMB - PMC I2C Handshake.
| #define XLOADER_MULTIBOOT_OFFSET_MASK (0x001FFFFFU) |
Mask for multiboot offset.
| #define XLOADER_PCR_NUMBER_MASK (0x0000FFFFU) |
Number mask value.
Referenced by XLoader_DataMeasurement().
| #define XLOADER_PDI_LOAD_COMPLETE (0x1U) |
< Status of PDI load
Referenced by XLoader_RestartImage().
| #define XLOADER_PDI_TYPE_FULL (0x1U) |
< Different PDI types
Referenced by XLoader_LoadImage(), XLoader_PdiInit(), XLoader_RestartImage(), and XLoader_ValidatePdiAuth().
| #define XLOADER_PDI_VERSION_1 (0x01030000U) |
< PDI version
| #define XLOADER_PDISRC_FLAGS_MASK (0xFU) |
< SD boot related macros
Referenced by XLoader_PdiInit().
| #define XLoader_Printf XPlmi_Printf |
Alias for XPlmi_Printf.
Referenced by XLoader_StartImage().
| #define XLOADER_RESP_CMD_EXEC_STATUS_INDEX (0U) |
Index of executed coammnd status.
| #define XLOADER_RESP_CMD_LOAD_PDI_STATUS_INDEX (1U) |
Index of PDI load status.
| #define XLOADER_SBI_INDEX (0U) |
< PDI Src index
| #define XLOADER_SD_MAX_BOOT_FILES_LIMIT (8192U) |
Maximum limit of boot files in SD filesystem.
| #define XLOADER_SD_RAWBOOT_MASK (0xF0000000U) |
< SD Raw boot
Referenced by XLoader_GetSDPdiSrcNAddr(), and XLoader_PdiInit().
| #define XLOADER_SHA3_LEN (48U) |
SHA3 hash length in bytes.
Referenced by XLoader_DataMeasurement(), XLoader_MaskGenFunc(), XLoader_MeasureNLoad(), XLoader_ProcessAuthEncPrtn(), XLoader_SecureEncInit(), and XLoader_VerifyHashNUpdateNext().
| #define XLOADER_SSIT_MONOLITIC XPLMI_SSIT_MONOLITIC |
< SLR Types
Referenced by XLoader_PdiInit(), and Xloader_SsitEoPdiSync().
| #define XLOADER_SUCCESS (u32)XST_SUCCESS |
Alias for XST_SUCCESS.
| #define XLOADER_TOTAL_CHUNK_SIZE (XLOADER_CHUNK_SIZE + 0x100U) |
Total chunk size.
| #define XLOADER_UFS_MAX_BOOT_FILES_LIMIT (8192U) |
Maximum limit of boot files in UFS filesystem.