xilplmi
Vitis Drivers API Documentation
xplmi_dma.c File Reference

Overview

This is the file which contains PMC DMA interface code for the PLM.

MODIFICATION HISTORY:
Ver   Who  Date        Changes


1.00 kc 02/21/2017 Initial release 1.01 bsv 04/18/2019 Added APIs to support non blocking DMA vnsl 04/22/2019 Added API to get DMA instance kc 05/17/2019 Added ECC initiation function using PMC DMA 1.02 bsv 04/04/2020 Code clean up bsv 04/07/2020 Renamed DMA to PMCDMA 1.03 bm 09/02/2020 Add XPlmi_MemSet API bm 09/23/2020 Fix XPlmi_InitNVerifyMem for 64-bit address bsv 09/30/2020 Added parallel DMA support for SBI, JTAG, SMAP and PCIE boot modes bm 10/14/2020 Code clean up td 10/19/2020 MISRA C Fixes 1.04 td 11/23/2020 MISRA C Rule 17.8 Fixes ma 03/24/2021 Reduced minimum digits of time stamp decimals to 3 1.05 td 07/08/2021 Fix doxygen warnings bsv 08/02/2021 Code clean up to reduce size bsv 08/13/2021 Code clean to reduce elf size by optimizing memset APIs bsv 08/15/2021 Removed unwanted goto statements bsv 08/22/2021 Fix bug in XPlmi_MemSetBytes ma 08/30/2021 Added XPlmi_SsitWaitForDmaDone function for SSIT cases 1.06 kpt 10/25/2021 Resolved Divide by Zero exception in XPlmi_MemSet am 11/24/2021 Fixed doxygen warning ma 12/17/2021 Do not check for SSIT errors in XPlmi_SsitWaitForDmaDone function ma 01/17/2022 Enable SLVERR for PMC DMA bm 01/20/2022 Fix compilation warnings in Xil_SMemCpy skd 03/03/2022 Minor bug fix in XPlmi_MemCpy64 1.07 bm 07/06/2022 Refactor versal and versal_net code 1.08 bm 11/07/2022 Clear SSS Cfg Error in SSSCfgSbiDma for Versal Net dd 03/28/2023 Updated doxygen comments ng 03/30/2023 Updated algorithm and return values in doxygen comments 1.09 ng 07/06/2023 Added support for SDT flow am 08/23/2023 Fixed doxygen comment for XPlmi_DmaXfr Len in words ng 01/28/2024 optimized u8 variables mss 03/13/2024 MISRA-C violatiom Rule 17.8 fixed bm 07/15/2024 Fixed Memset logic by using source buffer in PPU RAM       obs  01/27/2025 Changed DMA WaitForDone calls to use APIs which support timeout 1.10 vss 02/11/2025 Updated SSS configuration correctly. ma 03/19/2025 Remove clearing the SSS configuration for SBI->DMA1

 

Macros

#define XPLMI_XCSUDMA_DEST_CTRL_OFFSET   (0x80CU)
 CSUDMA destination control offset. More...
 

Functions

int XPlmi_DmaInit (void)
 This function will initialize the DMA driver instances. More...
 
XPmcDma * XPlmi_GetDmaInstance (u32 DeviceId)
 This function returns DMA instance. More...
 
int XPlmi_WaitForNonBlkDma (u32 DmaFlags)
 This function is used to wait on non blocking DMA. More...
 
int XPlmi_WaitForNonBlkSrcDma (u32 DmaFlags)
 This function is used set wait on non blocking DMA. More...
 
int XPlmi_WaitForNonBlkDestDma (u32 DmaFlags)
 This function is used set wait on non blocking DMA. More...
 
int XPlmi_SbiDmaXfer (u64 DestAddr, u32 Len, u32 Flags)
 This function is used to transfer the data from SBI to DMA. More...
 
int XPlmi_DmaSbiXfer (u64 SrcAddr, u32 Len, u32 Flags)
 This function is used to transfer the data from DMA to SBI. More...
 
int XPlmi_DmaXfr (u64 SrcAddr, u64 DestAddr, u32 Len, u32 Flags)
 This function is used to initiate and complete the DMA to DMA transfer. More...
 
int XPlmi_EccInit (u64 Addr, u32 Len)
 This function is used to initialize the ECC memory. More...
 
int XPlmi_MemSet (u64 DestAddress, u32 Val, u32 Len)
 This function is used to Set the memory with a value. More...
 
int XPlmi_InitNVerifyMem (u64 Addr, u32 Len)
 This function initializes the memory using PZM and verifies by reading back initialized memory. More...
 
void XPlmi_SetMaxOutCmds (u8 Val)
 This function is used to set the MaxOutCmds variable. More...
 
int XPlmi_MemSetBytes (void *const DestPtr, u32 DestLen, u8 Val, u32 Length)
 This function is used to Set the memory with a value. More...
 
int XPlmi_MemCpy64 (u64 DestAddress, u64 SrcAddress, u32 Length)
 This function can copy the content of memory for both 32 and 64-bit address space. More...