![]() |
xilloader
Vitis Drivers API Documentation
|
MODIFICATION HISTORY:
Ver Who Date Changes
1.00 bm 07/06/2022 Initial release bm 07/13/2022 Retain critical data structures after In-Place PLM Update bm 07/18/2022 Shutdown modules gracefully during update dc 07/20/2022 Added support for data measurement. har 08/29/2022 Updated secure chunk size from 16K to 32K 1.01 ng 11/11/2022 Fixed doxygen file name error kal 01/05/2023 Added XLoader_SecureConfigMeasurement function sk 02/22/2023 Added EoPDI SYNC dummy stub dd 03/28/2023 Updated doxygen comments sk 04/28/2023 Added define for Image Store as PDI source sk 05/31/2023 Reassign PDI inst DS id for BootPDI info DS sk 06/12/2023 Removed XLoader_GetPdiInstance function declaration sk 07/07/2023 Added function declaration for Config Jtag State Moved minor error codes to plat headers Added error codes for Invalid JTAG Config Request kpt 07/10/2023 Added IPI support to read DDR crypto status sk 07/10/2023 Removed TCM Address, Offset defines sk 07/31/2023 Added error code for Image Store feature ro 08/01/2023 Added error codes for DDR initialization mss 06/11/2023 Added XLOADER_ERR_INVALID_READBACK_PDI_DEST_ADDR, XLOADER_ERR_INVALID_DEST_IMGINFOTBL_ADDRESS and XLOADER_ERR_INVALID_IMAGE_STORE_ADDRESS error code macro 2.00 ng 01/26/2024 Updated minor error codes kpt 02/19/2024 Add support to extend secure state to SWPCR mss 04/12/2024 Added XLoader_DumpDdrmcRegisters function prototype mss 05/03/2024 Fixed doxygen warnings kal 06/29/2024 Rename XLoader_LoadPsmElf to XLoader_LoadLpdAndPsmElf pre 08/22/2024 Added error codes related to XLoader_CfiSelectiveRead command obs 09/30/2024 Fixed Doxygen Warnings pre 10/22/2024 Added XLOADER_ERR_CMD_NOT_SUPPORTED error code bm 11/11/2024 Move I2C Handshake feature to common code tri 03/01/2025 Added XLOADER_MEASURE_LAST macro tri 03/13/2025 Added XLoader_MeasureNLoad prototype sk 03/17/2025 Added define for RPU cluster C
Data Structures | |
| struct | Xloader_DdrmcRegisters |
| Structure to store DDRMC registers and there memory offsets. More... | |
Macros | |
| #define | XLOADER_SECURE_CHUNK_SIZE (0x8000U) |
| Secure chunk size 32K. More... | |
| #define | XLOADER_PDI_SRC_JTAG (0x0U) |
| PDI source JTAG. More... | |
| #define | XLOADER_PDI_SRC_QSPI24 (0x1U) |
| PDI source QSPI24. More... | |
| #define | XLOADER_PDI_SRC_QSPI32 (0x2U) |
| PDI source QSPI32. More... | |
| #define | XLOADER_PDI_SRC_SDLS_B0 (0x3U) |
| PDI source SDLS_B0. More... | |
| #define | XLOADER_PDI_SRC_EMMC0 (0x4U) |
| PDI source EMMC0. More... | |
| #define | XLOADER_PDI_SRC_SD_B1 (0x5U) |
| PDI source SD_B1. More... | |
| #define | XLOADER_PDI_SRC_EMMC1 (0x6U) |
| PDI source EMMC1. More... | |
| #define | XLOADER_PDI_SRC_USB (0x7U) |
| PDI source USB. More... | |
| #define | XLOADER_PDI_SRC_OSPI (0x8U) |
| PDI source OSPI. More... | |
| #define | XLOADER_PDI_SRC_SBI (0x9U) |
| PDI source SBI. More... | |
| #define | XLOADER_PDI_SRC_SMAP (0xAU) |
| PDI source SMAP. More... | |
| #define | XLOADER_PDI_SRC_UFS (0xBU) |
| PDI source PCIE used for now as UFS. More... | |
| #define | XLOADER_PDI_SRC_PCIE (0xBU) |
| PDI source PCIE. More... | |
| #define | XLOADER_PDI_SRC_SDLS_B1 (0xEU) |
| PDI source SDLS_B1. More... | |
| #define | XLOADER_PDI_SRC_DDR (0xFU) |
| PDI source DDR. More... | |
| #define | XLOADER_PDI_SRC_IS (0x10U) |
| PDI source Image Store. More... | |
| #define | XLOADER_PDI_SRC_INVALID (0xFFU) |
| PDI source invalid. More... | |
| #define | XLOADER_APU_CLUSTER0 (0U) |
| APU cluster 0. More... | |
| #define | XLOADER_APU_CLUSTER1 (1U) |
| APU cluster 1. More... | |
| #define | XLOADER_APU_CLUSTER2 (2U) |
| APU cluster 2. More... | |
| #define | XLOADER_APU_CLUSTER3 (3U) |
| APU cluster 3. More... | |
| #define | XLOADER_APU_CORE0 (0U) |
| APU core 0. More... | |
| #define | XLOADER_APU_CORE1 (1U) |
| APU core 1. More... | |
| #define | XLOADER_APU_CORE2 (2U) |
| APU core 2. More... | |
| #define | XLOADER_APU_CORE3 (3U) |
| APU core 3. More... | |
| #define | XLOADER_RPU_CLUSTERA_IDX (0U) |
| RPU cluster A. More... | |
| #define | XLOADER_RPU_CLUSTERB_IDX (1U) |
| RPU cluster B. More... | |
| #define | XLOADER_RPU_CLUSTERC_IDX (2U) |
| RPU cluster C. More... | |
| #define | XLOADER_RPU_CORE0 (0U) |
| RPU core 0. More... | |
| #define | XLOADER_RPU_CORE1 (1U) |
| RPU core 1. More... | |
| #define | XLOADER_IMAGE_INFO_DS_ID (0x01U) |
| Image information data structure Id. More... | |
| #define | XLOADER_BOOTPDI_INFO_DS_ID (0x02U) |
| Boot PDI Info data structure Id. More... | |
| #define | XLOADER_PDI_LIST_DS_ID (0x03U) |
| PDI list data structure Id. More... | |
| #define | XLOADER_ATF_HANDOFF_PARAMS_DS_ID (0x04U) |
| ATF handoff parameters data structure Id. More... | |
| #define | XLOADER_IMAGE_INFO_PTR_DS_ID (0x05U) |
| Image information data structure Id. More... | |
| #define | XLOADER_SHA3_1_DEVICE_ID (1U) |
| SHA3_1 device Id. More... | |
| #define | XLOADER_MEASURE_START (0U) |
| Data measure start. More... | |
| #define | XLOADER_MEASURE_UPDATE (1U) |
| Data measure update. More... | |
| #define | XLOADER_MEASURE_FINISH (2U) |
| Data measure finish. More... | |
| #define | XLOADER_VERSAL_2VE_2VM_PDI_VERSION_1 (0x00010000U) |
| PDI Version. More... | |
| #define | XLOADER_GET_PDISRC_INFO() |
| Get PDI source info. More... | |
| #define | XLoader_VerifyDataAuth NULL |
| Reserved. More... | |
Functions | |
| XLoader_ImageInfoTbl * | XLoader_GetImageInfoTbl (void) |
| This function provides ImageInfoTbl pointer. More... | |
| int | XLoader_StartImage (XilPdi *PdiPtr) |
| This function is used to start the subsystems in the PDI. More... | |
| int | XLoader_GetSDPdiSrcNAddr (u32 SecBootMode, XilPdi *PdiPtr, u32 *PdiSrc, u64 *PdiAddr) |
| This function is used to get PdiSrc and PdiAddr for Secondary SD boot modes. More... | |
| int | XLoader_UpdateHandoffParam (XilPdi *PdiPtr) |
| This function is used to update the handoff parameters. More... | |
| int | XLoader_ProcessDeferredError (void) |
| This function checks if MJTAG workaround is required. More... | |
| int | XLoader_ProcessElf (XilPdi *PdiPtr, const XilPdi_PrtnHdr *PrtnHdr, XLoader_PrtnParams *PrtnParams, XLoader_SecureParams *SecureParams) |
| This function copies the elf partitions to specified destinations. More... | |
| XLoader_ImageStore * | XLoader_GetPdiList (void) |
| This function provides pointer to PdiList. More... | |
| int | XLoader_UpdateHandler (XPlmi_ModuleOp Op) |
| This function provides update handler for xilloader. More... | |
| int | XLoader_PlatInit (void) |
| This function initializes the loader with platform specific initializations. More... | |
| int | XLoader_HdrMeasurement (XilPdi *PdiPtr) |
| This function measures the PDI's meta header data by calculating the hash using SHA3. More... | |
| int | XLoader_DataMeasurement (XLoader_ImageMeasureInfo *ImageInfo) |
| This function measures the data by calculating SHA3 hash. More... | |
| int | XLoader_SecureConfigMeasurement (XLoader_SecureParams *SecurePtr, u32 PcrInfo, u32 *DigestIndex, u32 OverWrite) |
| This function measures the Secure Configuration that is SPK, SPK ID and Encryption Revoke ID and extends to the specified PCR. More... | |
| XilBootPdiInfo * | XLoader_GetBootPdiInfo (void) |
| This function provides pointer to BootPDI Info. More... | |
| int | XLoader_ConfigureJtagState (XPlmi_Cmd *Cmd) |
| This function enables or disable Jtag Access Command payload parameters are. More... | |
| int | XLoader_ReadDdrCryptoPerfCounters (XPlmi_Cmd *Cmd) |
| This function reads DDR crypto performance counters of given DDR device id. More... | |
| int | XLoader_LoadLpdAndPsmElf (void) |
| This function will load the LPD and PSM ELF file from DDR. More... | |
| int | XLoader_CheckAndUpdateSecureState (void) |
| This function checks and updates the secure state configuration. More... | |
| int | XLoader_MeasureNLoad (XilPdi *PdiPtr) |
| This function measures the partion hashes. More... | |
| int | XLoader_DumpDdrmcRegisters (void) |
| This function prints DDRMC register details. More... | |
| #define XLOADER_APU_CLUSTER0 (0U) |
APU cluster 0.
| #define XLOADER_APU_CLUSTER1 (1U) |
APU cluster 1.
| #define XLOADER_APU_CLUSTER2 (2U) |
APU cluster 2.
| #define XLOADER_APU_CLUSTER3 (3U) |
APU cluster 3.
| #define XLOADER_APU_CORE0 (0U) |
APU core 0.
| #define XLOADER_APU_CORE1 (1U) |
APU core 1.
| #define XLOADER_APU_CORE2 (2U) |
APU core 2.
| #define XLOADER_APU_CORE3 (3U) |
APU core 3.
| #define XLOADER_ATF_HANDOFF_PARAMS_DS_ID (0x04U) |
ATF handoff parameters data structure Id.
| #define XLOADER_BOOTPDI_INFO_DS_ID (0x02U) |
Boot PDI Info data structure Id.
| #define XLOADER_GET_PDISRC_INFO | ( | ) |
Get PDI source info.
Referenced by XLoader_PdiInit().
| #define XLOADER_IMAGE_INFO_DS_ID (0x01U) |
Image information data structure Id.
| #define XLOADER_IMAGE_INFO_PTR_DS_ID (0x05U) |
Image information data structure Id.
| #define XLOADER_MEASURE_FINISH (2U) |
Data measure finish.
Referenced by XLoader_DataMeasurement(), XLoader_HdrMeasurement(), and XLoader_MeasureNLoad().
| #define XLOADER_MEASURE_START (0U) |
Data measure start.
Referenced by XLoader_DataMeasurement(), XLoader_HdrMeasurement(), and XLoader_MeasureNLoad().
| #define XLOADER_MEASURE_UPDATE (1U) |
Data measure update.
Referenced by XLoader_DataMeasurement(), XLoader_HdrMeasurement(), XLoader_MeasureNLoad(), and XLoader_PrtnCopy().
| #define XLOADER_PDI_LIST_DS_ID (0x03U) |
PDI list data structure Id.
| #define XLOADER_PDI_SRC_DDR (0xFU) |
PDI source DDR.
| #define XLOADER_PDI_SRC_EMMC0 (0x4U) |
PDI source EMMC0.
| #define XLOADER_PDI_SRC_EMMC1 (0x6U) |
PDI source EMMC1.
| #define XLOADER_PDI_SRC_INVALID (0xFFU) |
PDI source invalid.
| #define XLOADER_PDI_SRC_IS (0x10U) |
PDI source Image Store.
| #define XLOADER_PDI_SRC_JTAG (0x0U) |
PDI source JTAG.
Referenced by XLoader_LoadImage(), XLoader_PerformInternalPOR(), XLoader_RestartImage(), and XLoader_SkipMJtagWorkAround().
| #define XLOADER_PDI_SRC_OSPI (0x8U) |
PDI source OSPI.
| #define XLOADER_PDI_SRC_PCIE (0xBU) |
PDI source PCIE.
| #define XLOADER_PDI_SRC_QSPI24 (0x1U) |
PDI source QSPI24.
| #define XLOADER_PDI_SRC_QSPI32 (0x2U) |
PDI source QSPI32.
| #define XLOADER_PDI_SRC_SBI (0x9U) |
PDI source SBI.
| #define XLOADER_PDI_SRC_SD_B1 (0x5U) |
PDI source SD_B1.
| #define XLOADER_PDI_SRC_SDLS_B0 (0x3U) |
PDI source SDLS_B0.
| #define XLOADER_PDI_SRC_SDLS_B1 (0xEU) |
PDI source SDLS_B1.
| #define XLOADER_PDI_SRC_SMAP (0xAU) |
PDI source SMAP.
Referenced by XLoader_PerformInternalPOR(), and XLoader_RestartImage().
| #define XLOADER_PDI_SRC_UFS (0xBU) |
PDI source PCIE used for now as UFS.
| #define XLOADER_PDI_SRC_USB (0x7U) |
PDI source USB.
Referenced by XLoader_PdiInit().
| #define XLOADER_RPU_CLUSTERA_IDX (0U) |
RPU cluster A.
| #define XLOADER_RPU_CLUSTERB_IDX (1U) |
RPU cluster B.
| #define XLOADER_RPU_CLUSTERC_IDX (2U) |
RPU cluster C.
| #define XLOADER_RPU_CORE0 (0U) |
RPU core 0.
| #define XLOADER_RPU_CORE1 (1U) |
RPU core 1.
| #define XLOADER_SECURE_CHUNK_SIZE (0x8000U) |
Secure chunk size 32K.
Referenced by XLoader_ReadAndVerifySecureHdrs(), and XLoader_SecureCopy().
| #define XLOADER_SHA3_1_DEVICE_ID (1U) |
SHA3_1 device Id.
| #define XLoader_VerifyDataAuth NULL |
Reserved.
| #define XLOADER_VERSAL_2VE_2VM_PDI_VERSION_1 (0x00010000U) |
PDI Version.
| anonymous enum |
| int XLoader_DumpDdrmcRegisters | ( | void | ) |
This function prints DDRMC register details.
Get DDRMC UB Base address
Read PCSR Control
Skip DDRMC dump if PComplete is zero
References XLoader_DdrInit(), and XLOADER_PDI_SRC_DDR.
Referenced by XLoader_ProcessDeferredError().