axipcie
Vitis Drivers API Documentation
xaxipcie.h File Reference

Data Structures

struct  XAxiPcie_Config
 This typedef contains IP hardware configuration information. More...
 
struct  XAxiPcie
 The XAxiPcie driver instance data. More...
 
struct  XAxiPcie_BarAddr
 The user is required to use this strucuture when reading or writing translation vector between local bus BARs and AXI PCIe BARs. More...
 

Macros

#define XAXIPCIE_VSEC1   0x00
 First VSEC Register. More...
 
#define XAXIPCIE_VSEC2   0x01
 Second VSEC Register. More...
 
#define XAxiPcie_IsLinkUp(InstancePtr)
 Check whether link is up or not. More...
 
#define XAxiPcie_IsEcamBusy(InstancePtr)
 Check whether ECAM is busy or not. More...
 

Functions

XAxiPcie_ConfigXAxiPcie_LookupConfig (u16 DeviceId)
 Lookup the device configuration based on the unique device ID. More...
 
int XAxiPcie_CfgInitialize (XAxiPcie *InstancePtr, XAxiPcie_Config *CfgPtr, UINTPTR EffectiveAddress)
 Initialize the XAxiPcie instance provided by the caller based on the given Config structure. More...
 
void XAxiPcie_GetVsecCapability (XAxiPcie *InstancePtr, u8 VsecNum, u16 *VsecIdPtr, u8 *VersionPtr, u16 *NextCapPtr)
 This API is used to read the VSEC Capability Register. More...
 
void XAxiPcie_GetVsecHeader (XAxiPcie *InstancePtr, u8 VsecNum, u16 *VsecIdPtr, u8 *RevisionPtr, u16 *LengthPtr)
 This API is used to read the VSEC Header Register. More...
 
void XAxiPcie_GetBridgeInfo (XAxiPcie *InstancePtr, u8 *Gen2Ptr, u8 *RootPortPtr, u8 *ECAMSizePtr)
 This API Reads the Bridge info register. More...
 
void XAxiPcie_GetRequesterId (XAxiPcie *InstancePtr, u8 *BusNumPtr, u8 *DevNumPtr, u8 *FunNumPtr, u8 *PortNumPtr)
 Read the Bus Location register. More...
 
void XAxiPcie_GetPhyStatusCtrl (XAxiPcie *InstancePtr, u32 *PhyState)
 This API is used to read the Phy Status/Control Register. More...
 
void XAxiPcie_GetRootPortStatusCtrl (XAxiPcie *InstancePtr, u32 *StatusPtr)
 Read Root Port Status/Control Register. More...
 
void XAxiPcie_SetRootPortStatusCtrl (XAxiPcie *InstancePtr, u32 StatusData)
 Write Value in Root Port Status/Control Register. More...
 
int XAxiPcie_SetRootPortMSIBase (XAxiPcie *InstancePtr, unsigned long long MsiBase)
 Write MSI Base Address to Root Port MSI Base Address Register. More...
 
void XAxiPcie_GetRootPortErrFIFOMsg (XAxiPcie *InstancePtr, u16 *ReqIdPtr, u8 *ErrType, u8 *ErrValid)
 Read Root Port Error FIFO Message. More...
 
void XAxiPcie_ClearRootPortErrFIFOMsg (XAxiPcie *InstancePtr)
 Clear Root Port Error FIFO Message. More...
 
int XAxiPcie_GetRootPortIntFIFOReg (XAxiPcie *InstancePtr, u16 *ReqIdPtr, u16 *MsiAddr, u8 *MsiInt, u8 *IntValid, u16 *MsiMsgData)
 Read Root Port Interrupt FIFO message Register 1 & 2. More...
 
void XAxiPcie_ClearRootPortIntFIFOReg (XAxiPcie *InstancePtr)
 Clear Root Port FIFO Interrupt message Register 1 & 2. More...
 
void XAxiPcie_GetLocalBusBar2PcieBar (XAxiPcie *InstancePtr, u8 BarNumber, XAxiPcie_BarAddr *BarAddrPtr)
 Read PCIe address translation vector that corresponds to one of AXI local bus bars passed by the caller. More...
 
void XAxiPcie_SetLocalBusBar2PcieBar (XAxiPcie *InstancePtr, u8 BarNumber, XAxiPcie_BarAddr *BarAddrPtr)
 Write PCIe address translation vector that corresponds to one of AXI local bus bars passed by the caller. More...
 
void XAxiPcie_ReadLocalConfigSpace (XAxiPcie *InstancePtr, u16 Offset, u32 *DataPtr)
 Read 32-bit value from one of this IP own configuration space. More...
 
void XAxiPcie_WriteLocalConfigSpace (XAxiPcie *InstancePtr, u16 Offset, u32 Data)
 Write 32-bit value to one of this IP own configuration space. More...
 
void XAxiPcie_ReadRemoteConfigSpace (XAxiPcie *InstancePtr, u8 Bus, u8 Device, u8 Function, u16 Offset, u32 *DataPtr)
 Read 32-bit value from external PCIe Function's configuration space. More...
 
void XAxiPcie_WriteRemoteConfigSpace (XAxiPcie *InstancePtr, u8 Bus, u8 Device, u8 Function, u16 Offset, u32 Data)
 Write 32-bit value to external PCIe function's configuration space. More...
 
void XAxiPcie_EnableGlobalInterrupt (XAxiPcie *InstancePtr)
 Enable the Global Interrupt. More...
 
void XAxiPcie_DisableGlobalInterrupt (XAxiPcie *InstancePtr)
 Disable the Global Interrupt. More...
 
void XAxiPcie_EnableInterrupts (XAxiPcie *InstancePtr, u32 EnableMask)
 Enable the IP interrupt bits passed into "EnableMask". More...
 
void XAxiPcie_DisableInterrupts (XAxiPcie *InstancePtr, u32 DisableMask)
 Disable the IP interrupt bits passed into "DisableMask". More...
 
void XAxiPcie_GetEnabledInterrupts (XAxiPcie *InstancePtr, u32 *EnabledMaskPtr)
 Get the currently enabled interrupt bits of the IP and pass them back to the caller into "EnabledMask". More...
 
void XAxiPcie_GetPendingInterrupts (XAxiPcie *InstancePtr, u32 *PendingMaskPtr)
 Get the currently pending interrupt bits of the IP and pass them back to the caller into "PendingMask". More...
 
void XAxiPcie_ClearPendingInterrupts (XAxiPcie *InstancePtr, u32 ClearMask)
 Clear the currently pending interrupt bits of the IP passed from the caller into "ClearMask". More...