prc
Xilinx SDK Drivers API Documentation
xprc.h File Reference

Data Structures

struct  XPrc
 The XPrc instance data structure. More...
 

Macros

#define XPrc_GetNumberOfVsms(InstancePtr)   (InstancePtr)->Config.NumberOfVsms
 This macro is used to get the Number of Virtual Socket Managers. More...
 
#define XPrc_GetRequiresClearBitstreams(InstancePtr)   (InstancePtr)->Config.RequiresClearBitstreams
 This macro is used to find if Clearing Bitstreams are required. More...
 
#define XPrc_GetCpArbitrationProtocol(InstancePtr)   (InstancePtr)->Config.Cp_Arbitration_Protocol
 This macro is used to get the CAP Arbitration protocol. More...
 
#define XPrc_GetHasAxiLiteIf(InstancePtr)   (InstancePtr)->Config.Has_Axi_Lite_If
 This macro is used to discover if the AXI4-Lite register interface is enabled or disabled. More...
 
#define XPrc_GetResetActiveLevel(InstancePtr)   (InstancePtr)->Config.Reset_Active_Level
 This macro is used to discover if the core's reset is active low (0) or active high (1). More...
 
#define XPrc_GetCpFifoDepth(InstancePtr)   (InstancePtr)->Config.Cp_Fifo_Depth
 This macro returns the depth of FIFO in the fetch path. More...
 
#define XPrc_GetCpFifoType(InstancePtr)   (InstancePtr)->Config.Cp_Fifo_Type
 This macro returns the type of the FIFO in the fetch path. More...
 
#define XPrc_GetCpFamily(InstancePtr)   (InstancePtr)->Config.Cp_Family
 This macro returns the family type of the device being managed. More...
 
#define XPrc_GetCdcStages(InstancePtr)   (InstancePtr)->Config.Cdc_Stages
 This macro returns the number of synchronization stages used when crossing between clock domains. More...
 
#define XPrc_GetCpCompression(InstancePtr)   (InstancePtr)->Config.Cp_Compression
 This macro tells the PRC whether partial bitstreams are compressed or not. More...
 
#define XPrc_GetRegVsmMsb(InstancePtr)   (InstancePtr)->Config.RegVsmMsb
 This macro is used to get the Virtual Socket Manager Select MSB. More...
 
#define XPrc_GetRegVsmLsb(InstancePtr)   (InstancePtr)->Config.RegVsmLsb
 This macro is used to get the Virtual Socket Manager Select LSB. More...
 
#define XPrc_GetRegBankMsb(InstancePtr)   (InstancePtr)->Config.RegBankMsb
 This macro is used to get the Bank Select MSB. More...
 
#define XPrc_GetRegBankLsb(InstancePtr)   (InstancePtr)->Config.RegBankLsb
 This macro is used to get the Bank Select LSB. More...
 
#define XPrc_GetRegSelectMsb(InstancePtr)   (InstancePtr)->Config.RegSelectMsb
 This macro is used to get the Register Select MSB. More...
 
#define XPrc_GetRegSelectLsb(InstancePtr)   (InstancePtr)->Config.RegSelectLsb
 This macro is used to get the Register Select LSB. More...
 
#define XPrc_GetNumRms(InstancePtr, VsmId)   (InstancePtr)->Config.NumberOfRms[VsmId]
 This macro is used to get the number of Reconfigurable Modules in a VSM. More...
 
#define XPrc_GetNumRmsAllocated(InstancePtr, VsmId)   (InstancePtr)->Config.NumberOfRmsAllocated[VsmId]
 This macro returns the number of Reconfigurable Modules that have been allocated in this VSM. More...
 
#define XPrc_GetStartInShutdown(InstancePtr, VsmId)   (InstancePtr)->Config.Start_In_Shutdown[VsmId]
 This macro returns if the VSM starts in the Shutdown state. More...
 
#define XPrc_GetNumTriggersAllocated(InstancePtr, VsmId)   (InstancePtr)->Config.No_Of_Triggers_Allocated[VsmId]
 This macro returns the number of triggers that the Virtual Socket Manager has. More...
 
#define XPrc_GetShutdownOnError(InstancePtr, VsmId)   (InstancePtr)->Config.Shutdown_On_Error[VsmId]
 This macro returns whether the VSM will enter the shutdown state if an error is detected. More...
 
#define XPrc_GetHasPorRm(InstancePtr, VsmId)   (InstancePtr)->Config.Has_Por_Rm[VsmId]
 This macro returns whether the VSM contains an RM in the initial configuration bitstream. More...
 
#define XPrc_GetPorRm(InstancePtr, VsmId)   (InstancePtr)->Config.Por_Rm[VsmId]
 This macro returns the RM in the initial configuration bitstream for this VSM. More...
 
#define XPrc_GetHasAxisStatus(InstancePtr, VsmId)   (InstancePtr)->Config.Has_Axis_Status[VsmId]
 This macro returns 1 if the AXI4-Stream Status Channel is enabled for this VSM, and 0 if it's disabled. More...
 
#define XPrc_GetHasAxisControl(InstancePtr, VsmId)   (InstancePtr)->Config.Has_Axis_Control[VsmId]
 This macro returns 1 if the AXI4-Stream Control Channel is enabled for this VSM, and 0 if it's disabled. More...
 
#define XPrc_GetSkipRmStartupAfterReset(InstancePtr, VsmId)   (InstancePtr)->Config.Skip_Rm_Startup_After_Reset[VsmId]
 This macro returns whether the VSM will skip the Reconfigurable Module startup steps after a reset. More...
 
#define XPrc_GetNumHwTriggers(InstancePtr, VsmId)   (InstancePtr)->Config.Num_Hw_Triggers[VsmId]
 This macro returns the number of hardware triggers that the VSM has. More...
 
Please define XPRC_DEBUG macro to get debug prints of the driver and

define XPRC_DEBUG_CORE to get debug prints of the core.

#define XPRC_DEBUG_GENERAL   (0x00000001)
 
#define xprc_dbg_current_types   0
 
#define xprc_dbgcore_current_types   0
 
#define xprc_printf(type,...)
 
#define xprc_core_printf(type,...)
 
Virtual Socket Manager Registers
#define XPRC_MAX_NUMBER_OF_VSMS   (32)
 Maximum Number Of Vsms. More...
 
#define XPRC_VSM_NUM_GENERAL_REGISTERS   (2)
 Number Of General registers. More...
 
#define XPRC_VSM_REGISTERS_PER_TRIGGER   (1)
 Registers per Trigger. More...
 
#define XPRC_VSM_REGISTERS_PER_RM   (2)
 Registers per Rm. More...
 
#define XPRC_VSM_REGISTERS_PER_BS   (3)
 Registers per Bs. More...
 
Control Registers
#define XPRC_CR_VS_FULL   (1)
 Virtual Socket In Full State. More...
 
#define XPRC_CR_VS_EMPTY   (0)
 Virtual Socket In Empty State. More...
 
#define XPRC_CR_DEFAULT_BYTE   (0)
 Byte field Information for Control register Commands. More...
 
#define XPRC_CR_DEFAULT_HALFWORD   (0)
 Halfword field information for Control register Commands. More...
 
Status Registers
#define XPRC_SR_SHUTDOWN_ON   (1)
 Vsm In Shutdown State. More...
 
#define XPRC_SR_SHUTDOWN_OFF   (0)
 Vsm not In Shutdown State. More...
 
Software Trigger Registers
#define XPRC_SW_TRIGGER_PENDING   (1)
 Software Trigger is Pending. More...
 
#define XPRC_NO_SW_TRIGGER_PENDING   (0)
 Software Trigger is not Pending. More...
 
RM Control Registers
#define XPRC_RM_CR_MAX_RESETDURATION   (256)
 Maximum Number of Reset duration. More...
 
Register Table Row
#define XPRC_REG_TABLE_ROW   (0)
 Register Table Row. More...
 
Cp_Fifo_Type
#define CP_FIFO_TYPE_LUTRAM   (0)
 Fifo Value for Lutram. More...
 
#define CP_FIFO_TYPE_BLOCKRAM   (1)
 Fifo Value for Blockram. More...
 

Functions

XPrc_Config * XPrc_LookupConfig (u16 DeviceId)
 This function Looks for the device configuration based on the unique device ID. More...
 
s32 XPrc_CfgInitialize (XPrc *InstancePtr, XPrc_Config *ConfigPtr, u32 EffectiveAddr)
 This function initializes a PRC instance. More...
 
void XPrc_SendShutdownCommand (XPrc *InstancePtr, u16 VsmId)
 This function instructs the Virtual Socket Manager to enter the shutdown state. More...
 
void XPrc_SendRestartWithNoStatusCommand (XPrc *InstancePtr, u16 VsmId)
 This function is used to restart a Virtual Socket Manager in shutdown if the Virtual Socket has not been modified during shutdown. More...
 
void XPrc_SendRestartWithStatusCommand (XPrc *InstancePtr, u16 VsmId, u8 Full, u16 RmId)
 This function is used to restart a Virtual Socket Manager in shutdown if the Virtual Socket has been modified during shutdown. More...
 
void XPrc_SendProceedCommand (XPrc *InstancePtr, u16 VsmId)
 This function instructs the Virtual Socket Manager to proceed with processing the Reconfigurable Module. More...
 
void XPrc_SendUserControlCommand (XPrc *InstancePtr, u16 VsmId, u8 Rm_Shutdown_Req, u8 Rm_Decouple, u8 Sw_Shutdown_Req, u8 Sw_Startup_Req, u8 Rm_Reset)
 This function is used to set the values of Rm_Shutdown_Req, Rm_Decouple, Sw_Shutdown_Req, Sw_Startup_Req, Rm_Reset signals. More...
 
u32 XPrc_ReadStatusReg (XPrc *InstancePtr, u16 VsmId)
 This function is used to read the VSM's Status Register. More...
 
u8 XPrc_IsVsmInShutdown (XPrc *InstancePtr, u32 VsmIdOrStatus)
 This function is used to identify whether a VSM is in the Shutdown state or not. More...
 
u32 XPrc_GetVsmState (XPrc *InstancePtr, u32 VsmIdOrStatus)
 This function is used to get a VSM's state. More...
 
u32 XPrc_GetVsmErrorStatus (XPrc *InstancePtr, u32 VsmIdOrStatus)
 This function is used to get a VSM's Error Status. More...
 
u32 XPrc_GetRmIdFromStatus (XPrc *InstancePtr, u32 VsmIdOrStatus)
 This function is used to extract the identifier of a Reconfigurable Module from a VSM's status register. More...
 
u32 XPrc_GetBsIdFromStatus (XPrc *InstancePtr, u32 VsmIdOrStatus)
 This function is used to extract the identifier of a Bitstream from a VSM's status register. More...
 
void XPrc_SendSwTrigger (XPrc *InstancePtr, u16 VsmId, u16 TriggerId)
 This function sends a software trigger to a Virtual Socket Manager. More...
 
u8 XPrc_IsSwTriggerPending (XPrc *InstancePtr, u16 VsmId, u16 *TriggerId)
 This function is used to find out if there is a Software Trigger pending in a VSM. More...
 
void XPrc_SetTriggerToRmMapping (XPrc *InstancePtr, u16 VsmId, u16 TriggerId, u16 RmId)
 This function is used to set a Trigger to Reconfigurable Module mapping in a Virtual Socket Manager. More...
 
u32 XPrc_GetTriggerToRmMapping (XPrc *InstancePtr, u16 VsmId, u16 TriggerId)
 This function gets a Trigger to Reconfigurable Module mapping in a Virtual Socket Manager. More...
 
void XPrc_SetRmBsIndex (XPrc *InstancePtr, u16 VsmId, u16 RmId, u16 BsIndex)
 This function sets the BS_INDEX field in the RM_BS_INDEX register to specify which row of the Bitstream Information tables holds the partial bitstream for the Reconfigurable Module in the Virtual Socket Manager. More...
 
void XPrc_SetRmClearingBsIndex (XPrc *InstancePtr, u16 VsmId, u16 RmId, u16 ClearingBsIndex)
 This function set the CLEAR_BS_INDEX field in the RM_BS_INDEX register to specify which row of the BS Information tables holds the clearing bitstream for the Reconfigurable Module in the Virtual Socket Manager. More...
 
u32 XPrc_GetRmBsIndex (XPrc *InstancePtr, u16 VsmId, u16 RmId)
 This function get the BS_INDEX field from the RM_BS_INDEX register for the Reconfigurable Module in the Virtual Socket Manager. More...
 
u16 XPrc_GetRmClearingBsIndex (XPrc *InstancePtr, u16 VsmId, u16 RmId)
 This function get the CLEAR_BS_INDEX field from the RM_BS_INDEX register for the Reconfigurable Module in the Virtual Socket Manager. More...
 
void XPrc_SetRmControl (XPrc *InstancePtr, u16 VsmId, u16 RmId, u8 ShutdownRequired, u8 StartupRequired, u8 ResetRequired, u8 ResetDuration)
 This function set the control information for Reconfigurable Module. More...
 
void XPrc_GetRmControl (XPrc *InstancePtr, u16 VsmId, u16 RmId, u8 *ShutdownRequired, u8 *StartupRequired, u8 *ResetRequired, u8 *ResetDuration)
 This function get the control information for Reconfigurable Module. More...
 
void XPrc_SetBsId (XPrc *InstancePtr, u16 VsmId, u16 BsIndex, u16 BsId)
 This function sets the Bitstream Identifier. More...
 
u32 XPrc_GetBsId (XPrc *InstancePtr, u16 VsmId, u16 BsIndex)
 This function get the Bitstream Identifier. More...
 
void XPrc_SetBsSize (XPrc *InstancePtr, u16 VsmId, u16 BsIndex, u32 BsSize)
 This function sets the Bitstream size in bytes. More...
 
u32 XPrc_GetBsSize (XPrc *InstancePtr, u16 VsmId, u16 BsIndex)
 This function get the Bitstream size in bytes. More...
 
void XPrc_SetBsAddress (XPrc *InstancePtr, u16 VsmId, u16 BsIndex, u32 BsAddress)
 This function sets the Address of the Bitstream. More...
 
u32 XPrc_GetBsAddress (XPrc *InstancePtr, u16 VsmId, u16 BsIndex)
 This function get the Address of the Bitstream. More...
 
u32 XPrc_GetRegisterAddress (XPrc *InstancePtr, u32 VsmId, u8 RegisterType, u16 TableRow)
 The register offsets for the PRC are dynamic. More...
 
void XPrc_PrintVsmStatus (XPrc *InstancePtr, u32 VsmIdOrStatus, char *Prefix)
 This function is used to Print the VSM Status. More...
 
s32 XPrc_SelfTest (XPrc *InstancePtr)
 This function runs a self-test on the PRC driver. More...