dfeprach
Vitis Drivers API Documentation
Overview

Data Structures

struct  XDfePrach_Version
 Logicore version. More...
 
struct  XDfePrach_Trigger
 Trigger configuration. More...
 
struct  XDfePrach_TriggerCfg
 All IP triggers. More...
 
struct  XDfePrach_CCSequence
 Defines a CCID sequence. More...
 
struct  XDfePrach_ModelParameters
 PRACH model parameters. More...
 
struct  XDfePrach_Cfg
 Configuration. More...
 
struct  XDfePrach_Init
 Initialization, "one-time" configuration parameters. More...
 
struct  XDfePrach_InternalCarrierCfg
 Internal Configuration for a single CC. More...
 
struct  XDfePrach_CarrierCfg
 Configuration for a single CC. More...
 
struct  XDfePrach_CCCfg
 Full CC configuration. More...
 
struct  XDfePrach_NCO
 NCO Config. More...
 
struct  XDfePrach_DDCCfg
 Decimator Config. More...
 
struct  XDfePrach_Schedule
 Static Schedule for a RACH Channel. More...
 
struct  XDfePrach_InternalChannelCfg
 Full RC configuration. More...
 
struct  XDfePrach_MixerStatusOverflow
 PRACH status. More...
 
struct  XDfePrach_DecimatorStatusOverflow
 PRACH decimator overflow status. More...
 
struct  XDfePrach_MixerStatusOverrun
 PRACH mixer overflow status. More...
 
struct  XDfePrach_DecimatorStatusOverrun
 PRACH decimator overrun status. More...
 
struct  XDfePrach_Status
 PRACH mixer overrun status. More...
 
struct  XDfePrach_StatusMask
 Event status and interrupt mask. More...
 
struct  XDfePrach_Config
 PRACH Config Structure. More...
 
struct  XDfePrach
 PRACH driver object - global data storage. More...
 

Macros

#define XDFEPRACH_DRIVER_VERSION_MINOR   (7U)
 Driver's minor version number. More...
 
#define XDFEPRACH_DRIVER_VERSION_MAJOR   (1U)
 Driver's major version number. More...
 
#define XDFEPRACH_PHASE_INCREMENT_PER_HZ
 30720000 is the base sample rate More...
 
#define XDFEPRACH_ERROR_MARGIN   (0.01)
 Error margin in frequncy calculation. More...
 
#define XDFEPRACH_FREQ_MIN   (-(1 << 23))
 Minimum frequency value. More...
 
#define XDFEPRACH_FREQ_MAX   (1 << 23)
 Maximum frequency value. More...
 
#define XDFEPRACH_MAX_CCRATE   (3)
 CCRate maxixmum value. More...
 
#define XDFEPRACH_MAX_NUM_INSTANCES   (1U)
 Maximum number of driver instances running at the same time. More...
 
#define XST_SUCCESS   (0U)
 Success flag. More...
 
#define XST_FAILURE   (1U)
 Failure flag. More...
 
#define XDFEPRACH_NODE_NAME_MAX_LENGTH   (50U)
 Node name maximum length. More...
 
#define XDFEPRACH_CC_NUM_MAX   (16)
 Maximum CC number. More...
 
#define XDFEPRACH_RC_NUM_MAX   (16U)
 Maximum number of RACH channels. More...
 
#define XDFEPRACH_NCO_NUM_MAX   (16U)
 Maximum NCO number. More...
 
#define XDFEPRACH_ANT_NUM_MAX   (8U)
 Maximum anntena number. More...
 
#define XDFEPRACH_SEQ_LENGTH_MAX   (16U)
 Maximum CCID sequence length. More...
 
#define XDFEPRACH_BAND_ID_MAX   (3U)
 Maximum Band Id number. More...
 
#define XDFEPRACH_COMPATIBLE_STRING   "xlnx,xdfe-nr-prach-2.0"
 < More...
 
#define XDFEPRACH_PLATFORM_DEVICE_DIR   "/sys/bus/platform/devices/"
 Device location in a file system. More...
 
#define XDFEPRACH_COMPATIBLE_PROPERTY   "compatible"
 Device tree property. More...
 
#define XDFEPRACH_BUS_NAME   "platform"
 System bus name. More...
 
#define XDFEPRACH_BASEADDR_PROPERTY   "reg"
 Base address property. More...
 
#define XDFEPRACH_NUM_ANTENNA0_CFG   "xlnx,num-antenna0"
 Number of antenna 1-8. More...
 
#define XDFEPRACH_NUM_ANTENNA1_CFG   "xlnx,num-antenna1"
 Number of antenna 1-8. More...
 
#define XDFEPRACH_NUM_ANTENNA2_CFG   "xlnx,num-antenna2"
 Number of antenna 1-8. More...
 
#define XDFEPRACH_NUM_CC_PER_ANTENNA0_CFG   "xlnx,num-cc-per-antenna0"
 Maximum number of CC's per antenna 16. More...
 
#define XDFEPRACH_NUM_CC_PER_ANTENNA1_CFG   "xlnx,num-cc-per-antenna1"
 Maximum number of CC's per antenna 16. More...
 
#define XDFEPRACH_NUM_CC_PER_ANTENNA2_CFG   "xlnx,num-cc-per-antenna2"
 Maximum number of CC's per antenna 16. More...
 
#define XDFEPRACH_NUM_SLOT_CHANNELS0_CFG   "xlnx,num-slot-channels0"
 Number of Parallel Data Channels 1-4. More...
 
#define XDFEPRACH_NUM_SLOT_CHANNELS1_CFG   "xlnx,num-slot-channels1"
 Number of Parallel Data Channels 1-4. More...
 
#define XDFEPRACH_NUM_SLOT_CHANNELS2_CFG   "xlnx,num-slot-channels2"
 Number of Parallel Data Channels 1-4. More...
 
#define XDFEPRACH_NUM_SLOTS0_CFG   "xlnx,num-slots0"
 Number of Antenna TDM slots, per CC 1-8. More...
 
#define XDFEPRACH_NUM_SLOTS1_CFG   "xlnx,num-slots1"
 Number of Antenna TDM slots, per CC 1-8. More...
 
#define XDFEPRACH_NUM_SLOTS2_CFG   "xlnx,num-slots2"
 Number of Antenna TDM slots, per CC 1-8. More...
 
#define XDFEPRACH_NUM_RACH_LINES_CFG   "xlnx,num-rach-lanes"
 Number of RACH output Lanes 1-2. More...
 
#define XDFEPRACH_NUM_RACH_CHANNELS_CFG   "xlnx,num-rach-channels"
 Number of RACH Channels channels 1-16. More...
 
#define XDFEPRACH_HAS_CONTINUOUS_SCHED_CFG   "xlnx,is-always-on"
 The continuous scheduling is present. More...
 
#define XDFEPRACH_HAS_AXIS_CTRL_CFG   "xlnx,has-axis-ctrl"
 The AXIS dynamic scheduling control interface is present. More...
 
#define XDFEPRACH_HAS_IRQ_CFG   "xlnx,has-irq"
 The core has an IRQ port enabled. More...
 
#define XDFEPRACH_NUM_BANDS_CFG   "xlnx,has-irq"
 The core has an IRQ port enabled. More...
 

Enumerations

enum  XDfePrach_StateId {
  XDFEPRACH_STATE_NOT_READY = 0, XDFEPRACH_STATE_READY, XDFEPRACH_STATE_RESET, XDFEPRACH_STATE_CONFIGURED,
  XDFEPRACH_STATE_INITIALISED, XDFEPRACH_STATE_OPERATIONAL
}
 

Functions

XDfePrachXDfePrach_InstanceInit (const char *DeviceNodeName)
 API initialises an instance of the driver. More...
 
void XDfePrach_InstanceClose (XDfePrach *InstancePtr)
 API closes the instance of a PRACH driver and moves the state machine to a Not Ready state. More...
 
void XDfePrach_Reset (XDfePrach *InstancePtr)
 Resets PRACH and puts block into a reset state. More...
 
void XDfePrach_Configure (XDfePrach *InstancePtr, XDfePrach_Cfg *Cfg)
 Reads configuration from device tree/xparameters.h and IP registers. More...
 
void XDfePrach_Initialize (XDfePrach *InstancePtr, XDfePrach_Init *Init)
 DFE PRACH driver one time initialisation also moves the state machine to an Initialised state. More...
 
void XDfePrach_Activate (XDfePrach *InstancePtr, bool EnableLowPower)
 Activates PRACH and moves the state machine to an Activated state. More...
 
void XDfePrach_Deactivate (XDfePrach *InstancePtr)
 Deactivates PRACH and moves the state machine to Initialised state. More...
 
XDfePrach_StateId XDfePrach_GetStateID (XDfePrach *InstancePtr)
 Gets a state machine state id. More...
 
void XDfePrach_GetCurrentCCCfg (const XDfePrach *InstancePtr, XDfePrach_CCCfg *CurrCCCfg)
 Returns the current CC configuration. More...
 
void XDfePrach_GetEmptyCCCfg (const XDfePrach *InstancePtr, XDfePrach_CCCfg *CCCfg)
 Returns configuration structure CCCfg with CCCfg->Sequence.Length value set in XDfePrach_Configure(), array CCCfg->Sequence.CCID[] members are set to not used value (-1) and the other CCCfg members are set to 0. More...
 
void XDfePrach_GetCarrierCfgMB (const XDfePrach *InstancePtr, XDfePrach_CCCfg *CCCfg, s32 CCID, u32 *CCSeqBitmap, XDfePrach_CarrierCfg *CarrierCfg, const u32 BandId)
 Returns the current CCID carrier configuration from selected Band. More...
 
void XDfePrach_GetCarrierCfg (const XDfePrach *InstancePtr, XDfePrach_CCCfg *CCCfg, s32 CCID, u32 *CCSeqBitmap, XDfePrach_CarrierCfg *CarrierCfg)
 Returns the current CCID carrier configuration from Band 0. More...
 
void XDfePrach_SetAntennaCfgInCCCfg (const XDfePrach *InstancePtr, XDfePrach_CCCfg *CCCfg, u32 *AntennaCfg)
 Set antenna configuration in CC configuration container. More...
 
u32 XDfePrach_AddCCtoCCCfgMB (XDfePrach *InstancePtr, XDfePrach_CCCfg *CCCfg, s32 CCID, u32 CCSeqBitmap, const XDfePrach_CarrierCfg *CarrierCfg, const u32 BandId)
 Adds specified CCID, with specified configuration, to a local CC configuration structure for the chosen Band. More...
 
u32 XDfePrach_AddCCtoCCCfg (XDfePrach *InstancePtr, XDfePrach_CCCfg *CCCfg, s32 CCID, u32 CCSeqBitmap, const XDfePrach_CarrierCfg *CarrierCfg)
 Adds specified CCID, with specified configuration, to a local CC configuration structure on Band which Id = 0. More...
 
u32 XDfePrach_RemoveCCfromCCCfgMB (XDfePrach *InstancePtr, XDfePrach_CCCfg *CCCfg, s32 CCID, const u32 BandId)
 Removes specified CCID from a local CC configuration structure for selected band. More...
 
u32 XDfePrach_RemoveCCfromCCCfg (XDfePrach *InstancePtr, XDfePrach_CCCfg *CCCfg, s32 CCID)
 Removes specified CCID from a local CC configuration structure for BandId=0. More...
 
u32 XDfePrach_UpdateCCinCCCfgMB (const XDfePrach *InstancePtr, XDfePrach_CCCfg *CCCfg, s32 CCID, const XDfePrach_CarrierCfg *CarrierCfg, const u32 BandId)
 Updates specified CCID, with specified configuration to a local CC configuration structure for selected band. More...
 
u32 XDfePrach_UpdateCCinCCCfg (const XDfePrach *InstancePtr, XDfePrach_CCCfg *CCCfg, s32 CCID, const XDfePrach_CarrierCfg *CarrierCfg)
 Updates specified CCID, with specified configuration to a local CC configuration structure for BandId=0. More...
 
u32 XDfePrach_SetNextCfg (const XDfePrach *InstancePtr, const XDfePrach_CCCfg *NextCCCfg, XDfePrach_RCCfg *NextRCCfg)
 Writes local CC configuration to the shadow (NEXT) registers and triggers copying from shadow to operational registers. More...
 
void XDfePrach_GetCurrentRCCfg (const XDfePrach *InstancePtr, XDfePrach_RCCfg *RCCfg)
 Reads all of the RC configuration back. More...
 
void XDfePrach_GetEmptyRCCfg (const XDfePrach *InstancePtr, XDfePrach_RCCfg *RCCfg)
 Returns the empty CC configuration. More...
 
void XDfePrach_GetChannelCfg (const XDfePrach *InstancePtr, XDfePrach_RCCfg *RCCfg, s32 RCId, XDfePrach_ChannelCfg *ChannelCfg)
 Gets RACH channel configuration. More...
 
u32 XDfePrach_AddRCtoRCCfgMB (const XDfePrach *InstancePtr, XDfePrach_RCCfg *CurrentRCCfg, s32 CCID, u32 RCId, u32 RachChan, XDfePrach_DDCCfg *DdcCfg, XDfePrach_NCO *NcoCfg, XDfePrach_Schedule *StaticSchedule, XDfePrach_CCCfg *NextCCCfg, u32 BandId)
 Adds a new RC entry to the RC_CONFIGURATION. More...
 
u32 XDfePrach_AddRCtoRCCfgMBDynamic (const XDfePrach *InstancePtr, XDfePrach_RCCfg *CurrentRCCfg, s32 CCID, u32 RCId, u32 RachChan, XDfePrach_CCCfg *NextCCCfg, u32 BandId)
 Adds a new RC entry to the RC_CONFIGURATION in dynamic mode. More...
 
u32 XDfePrach_AddRCtoRCCfg (const XDfePrach *InstancePtr, XDfePrach_RCCfg *CurrentRCCfg, s32 CCID, u32 RCId, u32 RachChan, XDfePrach_DDCCfg *DdcCfg, XDfePrach_NCO *NcoCfg, XDfePrach_Schedule *StaticSchedule, XDfePrach_CCCfg *NextCCCfg)
 Adds a new RC entry to the RC_CONFIGURATION. More...
 
u32 XDfePrach_AddRCtoRCCfgDynamic (const XDfePrach *InstancePtr, XDfePrach_RCCfg *CurrentRCCfg, s32 CCID, u32 RCId, u32 RachChan, XDfePrach_CCCfg *NextCCCfg)
 Adds a new RC entry to the RC_CONFIGURATION in dynamic mode. More...
 
u32 XDfePrach_RemoveRCfromRCCfg (const XDfePrach *InstancePtr, XDfePrach_RCCfg *CurrentRCCfg, u32 RCId)
 Removes an RC configuration entry from the RC_CONFIGURATION. More...
 
void XDfePrach_UpdateRCinRCCfgMB (const XDfePrach *InstancePtr, XDfePrach_RCCfg *CurrentRCCfg, s32 CCID, u32 RCId, u32 RachChan, XDfePrach_DDCCfg *DdcCfg, XDfePrach_NCO *NcoCfg, XDfePrach_Schedule *StaticSchedule, XDfePrach_CCCfg *NextCCCfg, u32 BandId)
 Updates an RC entry to the RC_CONFIGURATION on a selected band. More...
 
void XDfePrach_UpdateRCinRCCfg (const XDfePrach *InstancePtr, XDfePrach_RCCfg *CurrentRCCfg, s32 CCID, u32 RCId, u32 RachChan, XDfePrach_DDCCfg *DdcCfg, XDfePrach_NCO *NcoCfg, XDfePrach_Schedule *StaticSchedule, XDfePrach_CCCfg *NextCCCfg)
 Updates an RC entry to the RC_CONFIGURATION on band id 0. More...
 
u32 XDfePrach_MoveRC (const XDfePrach *InstancePtr, u32 RCId, u32 ToChannel)
 Moves the specified RCID from one NCO & Decimation Channel to another NCO Decimation Channel. More...
 
void XDfePrach_GetTriggersCfg (const XDfePrach *InstancePtr, XDfePrach_TriggerCfg *TriggerCfg)
 Returns the current trigger configuration. More...
 
void XDfePrach_SetTriggersCfg (const XDfePrach *InstancePtr, XDfePrach_TriggerCfg *TriggerCfg)
 Sets trigger configuration. More...
 
void XDfePrach_GetCC (const XDfePrach *InstancePtr, bool Next, s32 CCID, XDfePrach_CarrierCfg *CarrierCfg)
 Gets the specified CCID carrier configuration from either Current or Next for band id 0. More...
 
void XDfePrach_GetCCMB (const XDfePrach *InstancePtr, bool Next, s32 CCID, XDfePrach_CarrierCfg *CarrierCfg, u32 BandId)
 Gets the specified CCID carrier configuration from either Current or Next for selected band in multi-band mode. More...
 
void XDfePrach_GetStatus (const XDfePrach *InstancePtr, XDfePrach_Status *Status)
 Gets the PRACH Status. More...
 
void XDfePrach_ClearStatus (const XDfePrach *InstancePtr)
 Clears the PRACH status registers. More...
 
void XDfePrach_CapturePhase (const XDfePrach *InstancePtr)
 Captures phase for all phase accumulators in associated AXI-lite registers. More...
 
void XDfePrach_GetCapturePhase (const XDfePrach *InstancePtr, u32 RachChan, XDfePrach_NCO *CapturedPhase)
 Reads the captured phase for a given Rach Channel. More...
 
void XDfePrach_SetTUserDelay (const XDfePrach *InstancePtr, u32 Delay)
 Sets the delay, which will be added to TUSER and TLAST (delay matched through the IP). More...
 
void XDfePrach_SetTUserDelayMB (const XDfePrach *InstancePtr, u32 Delay, u32 BandId)
 Sets the delay of specified band in multiband mode, which will be added to TUSER and TLAST (delay matched through the IP). More...
 
u32 XDfePrach_GetTUserDelay (const XDfePrach *InstancePtr)
 Reads the delay, which will be added to TUSER and TLAST (delay matched through the IP). More...
 
u32 XDfePrach_GetTUserDelayMB (const XDfePrach *InstancePtr, u32 BandId)
 Reads the delay of specified band in multiband mode, which will be added to TUSER and TLAST (delay matched through the IP). More...
 
u32 XDfePrach_GetTDataDelay (const XDfePrach *InstancePtr)
 Returns data latency. More...
 
u32 XDfePrach_GetTDataDelayMB (const XDfePrach *InstancePtr, u32 BandId)
 Returns data latency of specified band in multiband mode. More...
 
void XDfePrach_GetVersions (const XDfePrach *InstancePtr, XDfePrach_Version *SwVersion, XDfePrach_Version *HwVersion)
 This API gets the driver and HW design version. More...
 
void XDfePrach_GetInterruptMask (const XDfePrach *InstancePtr, XDfePrach_InterruptMask *Mask)
 Gets interrupt mask status. More...
 
void XDfePrach_SetInterruptMask (const XDfePrach *InstancePtr, const XDfePrach_InterruptMask *Mask)
 Sets interrupt mask. More...
 
void XDfePrach_GetEventStatus (const XDfePrach *InstancePtr, XDfePrach_StatusMask *Status)
 Gets event status. More...
 
void XDfePrach_ClearEventStatus (const XDfePrach *InstancePtr, const XDfePrach_StatusMask *Status)
 Clears event status. More...
 

Macro Definition Documentation

#define XDFEPRACH_ANT_NUM_MAX   (8U)

Maximum anntena number.

Referenced by XDfePrach_SetAntennaCfgInCCCfg().

#define XDFEPRACH_BAND_ID_MAX   (3U)
#define XDFEPRACH_BASEADDR_PROPERTY   "reg"

Base address property.

#define XDFEPRACH_BUS_NAME   "platform"

System bus name.

#define XDFEPRACH_CC_NUM_MAX   (16)

Maximum CC number.

Referenced by XDfePrach_GetEmptyCCCfg().

#define XDFEPRACH_COMPATIBLE_PROPERTY   "compatible"

Device tree property.

#define XDFEPRACH_COMPATIBLE_STRING   "xlnx,xdfe-nr-prach-2.0"

<

Device name property.

#define XDFEPRACH_DRIVER_VERSION_MAJOR   (1U)

Driver's major version number.

Referenced by XDfePrach_GetVersions().

#define XDFEPRACH_DRIVER_VERSION_MINOR   (7U)

Driver's minor version number.

Referenced by XDfePrach_GetVersions().

#define XDFEPRACH_ERROR_MARGIN   (0.01)

Error margin in frequncy calculation.

#define XDFEPRACH_FREQ_MAX   (1 << 23)

Maximum frequency value.

#define XDFEPRACH_FREQ_MIN   (-(1 << 23))

Minimum frequency value.

#define XDFEPRACH_HAS_AXIS_CTRL_CFG   "xlnx,has-axis-ctrl"

The AXIS dynamic scheduling control interface is present.

#define XDFEPRACH_HAS_CONTINUOUS_SCHED_CFG   "xlnx,is-always-on"

The continuous scheduling is present.

#define XDFEPRACH_HAS_IRQ_CFG   "xlnx,has-irq"

The core has an IRQ port enabled.

#define XDFEPRACH_MAX_CCRATE   (3)

CCRate maxixmum value.

#define XDFEPRACH_MAX_NUM_INSTANCES   (1U)

Maximum number of driver instances running at the same time.

#define XDFEPRACH_NCO_NUM_MAX   (16U)

Maximum NCO number.

#define XDFEPRACH_NODE_NAME_MAX_LENGTH   (50U)

Node name maximum length.

Referenced by XDfePrach_InstanceInit().

#define XDFEPRACH_NUM_ANTENNA0_CFG   "xlnx,num-antenna0"

Number of antenna 1-8.

#define XDFEPRACH_NUM_ANTENNA1_CFG   "xlnx,num-antenna1"

Number of antenna 1-8.

#define XDFEPRACH_NUM_ANTENNA2_CFG   "xlnx,num-antenna2"

Number of antenna 1-8.

#define XDFEPRACH_NUM_BANDS_CFG   "xlnx,has-irq"

The core has an IRQ port enabled.

#define XDFEPRACH_NUM_CC_PER_ANTENNA0_CFG   "xlnx,num-cc-per-antenna0"

Maximum number of CC's per antenna 16.

#define XDFEPRACH_NUM_CC_PER_ANTENNA1_CFG   "xlnx,num-cc-per-antenna1"

Maximum number of CC's per antenna 16.

#define XDFEPRACH_NUM_CC_PER_ANTENNA2_CFG   "xlnx,num-cc-per-antenna2"

Maximum number of CC's per antenna 16.

#define XDFEPRACH_NUM_RACH_CHANNELS_CFG   "xlnx,num-rach-channels"

Number of RACH Channels channels 1-16.

#define XDFEPRACH_NUM_RACH_LINES_CFG   "xlnx,num-rach-lanes"

Number of RACH output Lanes 1-2.

#define XDFEPRACH_NUM_SLOT_CHANNELS0_CFG   "xlnx,num-slot-channels0"

Number of Parallel Data Channels 1-4.

#define XDFEPRACH_NUM_SLOT_CHANNELS1_CFG   "xlnx,num-slot-channels1"

Number of Parallel Data Channels 1-4.

#define XDFEPRACH_NUM_SLOT_CHANNELS2_CFG   "xlnx,num-slot-channels2"

Number of Parallel Data Channels 1-4.

#define XDFEPRACH_NUM_SLOTS0_CFG   "xlnx,num-slots0"

Number of Antenna TDM slots, per CC 1-8.

#define XDFEPRACH_NUM_SLOTS1_CFG   "xlnx,num-slots1"

Number of Antenna TDM slots, per CC 1-8.

#define XDFEPRACH_NUM_SLOTS2_CFG   "xlnx,num-slots2"

Number of Antenna TDM slots, per CC 1-8.

#define XDFEPRACH_PHASE_INCREMENT_PER_HZ
Value:
((double)((u64)1 << 32) / \
30720000)

30720000 is the base sample rate

#define XDFEPRACH_PLATFORM_DEVICE_DIR   "/sys/bus/platform/devices/"

Device location in a file system.

#define XDFEPRACH_SEQ_LENGTH_MAX   (16U)

Maximum CCID sequence length.

Enumeration Type Documentation

Enumerator
XDFEPRACH_STATE_NOT_READY 

Not ready state.

XDFEPRACH_STATE_READY 

Ready state.

XDFEPRACH_STATE_RESET 

Reset state.

XDFEPRACH_STATE_CONFIGURED 

Configured state.

XDFEPRACH_STATE_INITIALISED 

Initialised state.

XDFEPRACH_STATE_OPERATIONAL 

Operational state.

Function Documentation

void XDfePrach_Activate ( XDfePrach InstancePtr,
bool  EnableLowPower 
)

Activates PRACH and moves the state machine to an Activated state.

Parameters
InstancePtrPointer to the PRACH instance.
EnableLowPowerFlag indicating low power.

References XDfePrach::StateId, XDFEPRACH_STATE_INITIALISED, and XDFEPRACH_STATE_OPERATIONAL.

Referenced by XDfePrach_2CC3RCDynamicTestExample(), XDfePrach_2CC3RCReconfigureTestExample(), XDfePrach_2CC3RCTestExample(), and XDfePrach_SelfTestExample().

u32 XDfePrach_AddCCtoCCCfg ( XDfePrach InstancePtr,
XDfePrach_CCCfg CCCfg,
s32  CCID,
u32  CCSeqBitmap,
const XDfePrach_CarrierCfg CarrierCfg 
)

Adds specified CCID, with specified configuration, to a local CC configuration structure on Band which Id = 0.

If there is insufficient capacity for the new CC the function will return an error. Initiates CC update (enable CCUpdate trigger TUSER Single Shot).

The returned CCCfg.Sequence is translated as there is no explicit indication that SEQUENCE[i] is not used - 0 can define the slot as either used or not used. Sequence data that is returned in the CCIDSequence is not the same as what is written in the registers. The translation is:

  • CCIDSequence.CCID[i] = -1 - if [i] is unused slot
  • CCIDSequence.CCID[i] = CCID - if [i] is used slot
  • a returned CCIDSequence->Length = length in register + 1
Parameters
InstancePtrPointer to the PRACH instance.
CCCfgComponent carrier (CC) configuration container.
CCIDCC ID [0-15].
CCSeqBitmapCC slot position container.
CarrierCfgCC configuration container.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE if error occurs.

References XDfePrach::StateId, XDfePrach_AddCCtoCCCfgMB(), and XDFEPRACH_STATE_OPERATIONAL.

Referenced by XDfePrach_2CC3RCDynamicTestExample(), XDfePrach_2CC3RCReconfigureTestExample(), and XDfePrach_2CC3RCTestExample().

u32 XDfePrach_AddCCtoCCCfgMB ( XDfePrach InstancePtr,
XDfePrach_CCCfg CCCfg,
s32  CCID,
u32  CCSeqBitmap,
const XDfePrach_CarrierCfg CarrierCfg,
const u32  BandId 
)

Adds specified CCID, with specified configuration, to a local CC configuration structure for the chosen Band.

If there is insufficient capacity for the new CC the function will return an error. Initiates CC update (enable CCUpdate trigger TUSER Single Shot).

The returned CCCfg.Sequence is translated as there is no explicit indication that SEQUENCE[i] is not used - 0 can define the slot as either used or not used. Sequence data that is returned in the CCIDSequence is not the same as what is written in the registers. The translation is:

  • CCIDSequence.CCID[i] = -1 - if [i] is unused slot
  • CCIDSequence.CCID[i] = CCID - if [i] is used slot
  • a returned CCIDSequence->Length = length in register + 1
Parameters
InstancePtrPointer to the PRACH instance.
CCCfgComponent carrier (CC) configuration container.
CCIDCC ID [0-15].
CCSeqBitmapCC slot position container.
CarrierCfgCC configuration container.
BandIdBand Id.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE if error occurs.

References XDfePrach_CCCfg::CarrierCfg, XDfePrach_InternalCarrierCfg::CCRate, XDfePrach_InternalCarrierCfg::Enable, XDfePrach_InternalCarrierCfg::SCS, XDfePrach_CarrierCfg::SCS, XDfePrach_CCCfg::Sequence, XDfePrach::StateId, XDFEPRACH_STATE_OPERATIONAL, XST_FAILURE, and XST_SUCCESS.

Referenced by XDfePrach_AddCCtoCCCfg().

u32 XDfePrach_AddRCtoRCCfg ( const XDfePrach InstancePtr,
XDfePrach_RCCfg *  CurrentRCCfg,
s32  CCID,
u32  RCId,
u32  RachChan,
XDfePrach_DDCCfg DdcCfg,
XDfePrach_NCO NcoCfg,
XDfePrach_Schedule StaticSchedule,
XDfePrach_CCCfg NextCCCfg 
)

Adds a new RC entry to the RC_CONFIGURATION.

RCId must be same as the physical channel RachChan on a band id = 0.

Parameters
InstancePtrPointer to the PRACH instance.
CurrentRCCfgCurrent RACH configuration container.
CCIDCC ID [0-15].
RCIdRC Id [0-15].
RachChanRACH channel [0-15].
DdcCfgDDC data container.
NcoCfgNCO data container.
StaticScheduleSchedule data container (ignore it if module parameter HAS_CONTINUOUS_SCHED == 1)
NextCCCfgCC configuration container.
Returns
  • XST_SUCCESS on success
  • XST_FAILURE on failure
Note
This API must be executed only after all CC configuration are done with the API XDfePrach_AddCCtoCCCfg.

References XDfePrach::StateId, XDfePrach_AddRCtoRCCfgMB(), XDFEPRACH_RC_NUM_MAX, and XDFEPRACH_STATE_OPERATIONAL.

Referenced by XDfePrach_2CC3RCDynamicTestExample(), XDfePrach_2CC3RCReconfigureTestExample(), and XDfePrach_2CC3RCTestExample().

u32 XDfePrach_AddRCtoRCCfgDynamic ( const XDfePrach InstancePtr,
XDfePrach_RCCfg *  CurrentRCCfg,
s32  CCID,
u32  RCId,
u32  RachChan,
XDfePrach_CCCfg NextCCCfg 
)

Adds a new RC entry to the RC_CONFIGURATION in dynamic mode.

RCId must be same as the physical channel RachChan on a band id = 0.

Parameters
InstancePtrPointer to the PRACH instance.
CurrentRCCfgCurrent RACH configuration container.
CCIDCC ID [0-15].
RCIdRC Id [0-15].
RachChanRACH channel [0-15].
NextCCCfgCC configuration container.
Returns
  • XST_SUCCESS on success
  • XST_FAILURE on failure
Note
This API must be executed only after all CC configuration are done with the API XDfePrach_AddCCtoCCCfg.

References XDfePrach::Config, XDfePrach_Config::HasAxisCtrl, XDfePrach::StateId, XDfePrach_AddRCtoRCCfgMBDynamic(), XDFEPRACH_RC_NUM_MAX, and XDFEPRACH_STATE_OPERATIONAL.

u32 XDfePrach_AddRCtoRCCfgMB ( const XDfePrach InstancePtr,
XDfePrach_RCCfg *  CurrentRCCfg,
s32  CCID,
u32  RCId,
u32  RachChan,
XDfePrach_DDCCfg DdcCfg,
XDfePrach_NCO NcoCfg,
XDfePrach_Schedule StaticSchedule,
XDfePrach_CCCfg NextCCCfg,
u32  BandId 
)

Adds a new RC entry to the RC_CONFIGURATION.

RCId must be same as the physical channel RachChan on a selected band.

Parameters
InstancePtrPointer to the PRACH instance.
CurrentRCCfgCurrent RACH configuration container.
CCIDCC ID [0-15].
RCIdRC Id [0-15].
RachChanRACH channel [0-15].
DdcCfgDDC data container.
NcoCfgNCO data container.
StaticScheduleSchedule data container (ignore it if module parameter HAS_CONTINUOUS_SCHED == 1)
NextCCCfgCC configuration container.
BandIdBand id.
Returns
  • XST_SUCCESS on success
  • XST_FAILURE on failure
Note
This API must be executed only after all CC configuration are done with the API XDfePrach_AddCCtoCCCfg.

References XDfePrach::Config, XDfePrach_Config::NumBands, XDfePrach::StateId, XDFEPRACH_RC_NUM_MAX, XDFEPRACH_STATE_OPERATIONAL, XST_FAILURE, and XST_SUCCESS.

Referenced by XDfePrach_AddRCtoRCCfg().

u32 XDfePrach_AddRCtoRCCfgMBDynamic ( const XDfePrach InstancePtr,
XDfePrach_RCCfg *  CurrentRCCfg,
s32  CCID,
u32  RCId,
u32  RachChan,
XDfePrach_CCCfg NextCCCfg,
u32  BandId 
)

Adds a new RC entry to the RC_CONFIGURATION in dynamic mode.

RCId must be same as the physical channel RachChan on a selected band.

Parameters
InstancePtrPointer to the PRACH instance.
CurrentRCCfgCurrent RACH configuration container.
CCIDCC ID [0-15].
RCIdRC Id [0-15].
RachChanRACH channel [0-15].
NextCCCfgCC configuration container.
BandIdBand id.
Returns
  • XST_SUCCESS on success
  • XST_FAILURE on failure
Note
This API must be executed only after all CC configuration are done with the API XDfePrach_AddCCtoCCCfg.

References XDfePrach::Config, XDfePrach_Config::HasAxisCtrl, XDfePrach_Config::NumBands, XDfePrach::StateId, XDFEPRACH_RC_NUM_MAX, XDFEPRACH_STATE_OPERATIONAL, XST_FAILURE, and XST_SUCCESS.

Referenced by XDfePrach_AddRCtoRCCfgDynamic().

void XDfePrach_CapturePhase ( const XDfePrach InstancePtr)

Captures phase for all phase accumulators in associated AXI-lite registers.

Parameters
InstancePtrPointer to the PRACH instance.
void XDfePrach_ClearEventStatus ( const XDfePrach InstancePtr,
const XDfePrach_StatusMask Status 
)
void XDfePrach_ClearStatus ( const XDfePrach InstancePtr)

Clears the PRACH status registers.

Parameters
InstancePtrPointer to the PRACH instance.

References XDfePrach::StateId, XDfePrach_ClearEventStatus(), and XDFEPRACH_STATE_OPERATIONAL.

void XDfePrach_Deactivate ( XDfePrach InstancePtr)

Deactivates PRACH and moves the state machine to Initialised state.

Parameters
InstancePtrPointer to the PRACH instance.

References XDfePrach::StateId, XDFEPRACH_STATE_INITIALISED, and XDFEPRACH_STATE_OPERATIONAL.

Referenced by XDfePrach_2CC3RCDynamicTestExample(), XDfePrach_2CC3RCReconfigureTestExample(), XDfePrach_2CC3RCTestExample(), and XDfePrach_SelfTestExample().

void XDfePrach_GetCapturePhase ( const XDfePrach InstancePtr,
u32  RachChan,
XDfePrach_NCO CapturedPhase 
)

Reads the captured phase for a given Rach Channel.

Parameters
InstancePtrPointer to the PRACH instance.
RachChanRACH channel Id [0-15].
CapturedPhaseNCO data container.

References XDfePrach_NCO::DualModCount, XDfePrach_NCO::DualModSel, and XDfePrach_NCO::PhaseAcc.

void XDfePrach_GetCarrierCfg ( const XDfePrach InstancePtr,
XDfePrach_CCCfg CCCfg,
s32  CCID,
u32 *  CCSeqBitmap,
XDfePrach_CarrierCfg CarrierCfg 
)

Returns the current CCID carrier configuration from Band 0.

Parameters
InstancePtrPointer to the PRACH instance.
CCCfgComponent carrier (CC) configuration container.
CCIDCC ID [0-15].
CCSeqBitmapCC slot position container.
CarrierCfgCC configuration container.

References XDfePrach_GetCarrierCfgMB().

void XDfePrach_GetCarrierCfgMB ( const XDfePrach InstancePtr,
XDfePrach_CCCfg CCCfg,
s32  CCID,
u32 *  CCSeqBitmap,
XDfePrach_CarrierCfg CarrierCfg,
const u32  BandId 
)

Returns the current CCID carrier configuration from selected Band.

Parameters
InstancePtrPointer to the PRACH instance.
CCCfgComponent carrier (CC) configuration container.
CCIDCC ID [0-15].
CCSeqBitmapCC slot position container.
CarrierCfgCC configuration container.
BandIdBand Id.

References XDfePrach_CCCfg::CarrierCfg, XDfePrach_CCSequence::CCID, XDfePrach_CCSequence::Length, XDfePrach_InternalCarrierCfg::SCS, XDfePrach_CarrierCfg::SCS, and XDfePrach_CCCfg::Sequence.

Referenced by XDfePrach_GetCarrierCfg().

void XDfePrach_GetCC ( const XDfePrach InstancePtr,
bool  Next,
s32  CCID,
XDfePrach_CarrierCfg CarrierCfg 
)

Gets the specified CCID carrier configuration from either Current or Next for band id 0.

Parameters
InstancePtrPointer to the PRACH instance.
NextBoolean flag indicating NEXT or CURRENT register.
CCIDCC Id [0-15].
CarrierCfgCarrier configuration container.

References XDfePrach_GetCCMB().

void XDfePrach_GetCCMB ( const XDfePrach InstancePtr,
bool  Next,
s32  CCID,
XDfePrach_CarrierCfg CarrierCfg,
u32  BandId 
)

Gets the specified CCID carrier configuration from either Current or Next for selected band in multi-band mode.

Parameters
InstancePtrPointer to the PRACH instance.
NextBoolean flag indicating NEXT or CURRENT register.
CCIDCC Id [0-15].
CarrierCfgCarrier configuration container.
BandIdBand Id.

References XDfePrach_CarrierCfg::SCS.

Referenced by XDfePrach_GetCC().

void XDfePrach_GetChannelCfg ( const XDfePrach InstancePtr,
XDfePrach_RCCfg *  RCCfg,
s32  RCId,
XDfePrach_ChannelCfg *  ChannelCfg 
)

Gets RACH channel configuration.

Parameters
InstancePtrPointer to the PRACH instance.
RCCfgRC configuration container.
RCIdChosen RACH channel Id [0-15].
ChannelCfgRACH channel container.
void XDfePrach_GetCurrentCCCfg ( const XDfePrach InstancePtr,
XDfePrach_CCCfg CurrCCCfg 
)

Returns the current CC configuration.

Parameters
InstancePtrPointer to the PRACH instance.
CurrCCCfgCC configuration container.

References XDfePrach::Config, and XDfePrach_Config::NumBands.

Referenced by XDfePrach_MoveRC().

void XDfePrach_GetCurrentRCCfg ( const XDfePrach InstancePtr,
XDfePrach_RCCfg *  RCCfg 
)

Reads all of the RC configuration back.

Parameters
InstancePtrPointer to the PRACH instance.
RCCfgRC configuration container.

References XDFEPRACH_RC_NUM_MAX.

Referenced by XDfePrach_MoveRC().

void XDfePrach_GetEmptyCCCfg ( const XDfePrach InstancePtr,
XDfePrach_CCCfg CCCfg 
)

Returns configuration structure CCCfg with CCCfg->Sequence.Length value set in XDfePrach_Configure(), array CCCfg->Sequence.CCID[] members are set to not used value (-1) and the other CCCfg members are set to 0.

Parameters
InstancePtrPointer to the PRACH instance.
CCCfgCC configuration container.

References XDfePrach_CCSequence::CCID, XDfePrach::Config, XDfePrach_CCSequence::Length, XDfePrach_Config::NumBands, XDfePrach_CCCfg::Sequence, XDfePrach::SequenceLength, and XDFEPRACH_CC_NUM_MAX.

Referenced by XDfePrach_2CC3RCDynamicTestExample(), XDfePrach_2CC3RCReconfigureTestExample(), and XDfePrach_2CC3RCTestExample().

void XDfePrach_GetEmptyRCCfg ( const XDfePrach InstancePtr,
XDfePrach_RCCfg *  RCCfg 
)

Returns the empty CC configuration.

Parameters
InstancePtrPointer to the PRACH instance.
RCCfgRC configuration container.

Referenced by XDfePrach_2CC3RCDynamicTestExample(), XDfePrach_2CC3RCReconfigureTestExample(), and XDfePrach_2CC3RCTestExample().

XDfePrach_StateId XDfePrach_GetStateID ( XDfePrach InstancePtr)

Gets a state machine state id.

Parameters
InstancePtrPointer to the PRACH instance.
Returns
State machine StateID

References XDfePrach::StateId.

u32 XDfePrach_GetTDataDelay ( const XDfePrach InstancePtr)

Returns data latency.

Parameters
InstancePtrPointer to the PRACH instance.
Returns
Data latency value.
u32 XDfePrach_GetTDataDelayMB ( const XDfePrach InstancePtr,
u32  BandId 
)

Returns data latency of specified band in multiband mode.

Parameters
InstancePtrPointer to the PRACH instance.
BandIdBand Id.
Returns
Data latency value.
void XDfePrach_GetTriggersCfg ( const XDfePrach InstancePtr,
XDfePrach_TriggerCfg TriggerCfg 
)
u32 XDfePrach_GetTUserDelay ( const XDfePrach InstancePtr)

Reads the delay, which will be added to TUSER and TLAST (delay matched through the IP).

Parameters
InstancePtrPointer to the PRACH instance.
Returns
Delay value
u32 XDfePrach_GetTUserDelayMB ( const XDfePrach InstancePtr,
u32  BandId 
)

Reads the delay of specified band in multiband mode, which will be added to TUSER and TLAST (delay matched through the IP).

Parameters
InstancePtrPointer to the PRACH instance.
BandIdBand Id.
Returns
Delay value
void XDfePrach_GetVersions ( const XDfePrach InstancePtr,
XDfePrach_Version SwVersion,
XDfePrach_Version HwVersion 
)
void XDfePrach_Initialize ( XDfePrach InstancePtr,
XDfePrach_Init Init 
)
void XDfePrach_InstanceClose ( XDfePrach InstancePtr)

API closes the instance of a PRACH driver and moves the state machine to a Not Ready state.

Parameters
InstancePtrPointer to the PRACH instance.

References XDfePrach::Device, XDfePrach::NodeName, XDfePrach::StateId, and XDFEPRACH_STATE_NOT_READY.

Referenced by XDfePrach_2CC3RCDynamicTestExample(), XDfePrach_2CC3RCReconfigureTestExample(), XDfePrach_2CC3RCTestExample(), and XDfePrach_SelfTestExample().

XDfePrach * XDfePrach_InstanceInit ( const char *  DeviceNodeName)

API initialises an instance of the driver.

Traverse "/sys/bus/platform/device" directory (in Linux), to find registered PRACH device with the name DeviceNodeName. The first available slot in the instance array XDfePrach_Prach[] will be taken as a DeviceNodeName object. On success it moves the state machine to a Ready state, while on failure stays in a Not Ready state.

Parameters
DeviceNodeNameDevice node name.
Returns
  • Pointer to the instance if successful.
  • NULL on error.

References XDfePrach::Device, XDfePrach::NodeName, XDfePrach::StateId, XDFEPRACH_NODE_NAME_MAX_LENGTH, XDFEPRACH_STATE_NOT_READY, XDFEPRACH_STATE_READY, XST_FAILURE, and XST_SUCCESS.

Referenced by XDfePrach_2CC3RCDynamicTestExample(), XDfePrach_2CC3RCReconfigureTestExample(), XDfePrach_2CC3RCTestExample(), and XDfePrach_SelfTestExample().

u32 XDfePrach_MoveRC ( const XDfePrach InstancePtr,
u32  RCId,
u32  ToChannel 
)

Moves the specified RCID from one NCO & Decimation Channel to another NCO Decimation Channel.

Parameters
InstancePtrPointer to the PRACH instance.
RCIdRC Id [0-15].
ToChannelDestination channel Id [0-15].
Returns
  • XST_SUCCESS on success
  • XST_FAILURE on failure
Note
Clear event status with XDfePrach_ClearEventStatus() before running this API.

References XDfePrach::StateId, XDfePrach_GetCurrentCCCfg(), XDfePrach_GetCurrentRCCfg(), XDFEPRACH_RC_NUM_MAX, XDfePrach_SetNextCfg(), XDFEPRACH_STATE_OPERATIONAL, XST_FAILURE, and XST_SUCCESS.

u32 XDfePrach_RemoveCCfromCCCfg ( XDfePrach InstancePtr,
XDfePrach_CCCfg CCCfg,
s32  CCID 
)

Removes specified CCID from a local CC configuration structure for BandId=0.

Parameters
InstancePtrPointer to the PRACH instance.
CCCfgComponent carrier (CC) configuration container.
CCIDCC ID [0-15].
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE if error occurs.
Note
For a sequence conversion see XDfePrach_AddCCtoCCCfg() comment.

References XDfePrach_RemoveCCfromCCCfgMB().

u32 XDfePrach_RemoveCCfromCCCfgMB ( XDfePrach InstancePtr,
XDfePrach_CCCfg CCCfg,
s32  CCID,
const u32  BandId 
)

Removes specified CCID from a local CC configuration structure for selected band.

Parameters
InstancePtrPointer to the PRACH instance.
CCCfgComponent carrier (CC) configuration container.
CCIDCC ID [0-15].
BandIdBand Id.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE if error occurs.
Note
For a sequence conversion see XDfePrach_AddCCtoCCCfg() comment.

References XDfePrach_CCCfg::CarrierCfg, XDfePrach_InternalCarrierCfg::Enable, XDfePrach_CCCfg::Sequence, and XST_SUCCESS.

Referenced by XDfePrach_RemoveCCfromCCCfg().

u32 XDfePrach_RemoveRCfromRCCfg ( const XDfePrach InstancePtr,
XDfePrach_RCCfg *  CurrentRCCfg,
u32  RCId 
)

Removes an RC configuration entry from the RC_CONFIGURATION.

RCId must be same as the physical channel RachChan.

Parameters
InstancePtrPointer to the PRACH instance.
CurrentRCCfgCurrent RACH configuration container.
RCIdRC Id [0-15].
Returns
  • XST_SUCCESS on success
  • XST_FAILURE on failure

References XDfePrach::StateId, XDFEPRACH_RC_NUM_MAX, XDFEPRACH_STATE_OPERATIONAL, and XST_SUCCESS.

Referenced by XDfePrach_2CC3RCReconfigureTestExample().

void XDfePrach_Reset ( XDfePrach InstancePtr)

Resets PRACH and puts block into a reset state.

Parameters
InstancePtrPointer to the PRACH instance.

References XDfePrach::StateId, XDFEPRACH_STATE_NOT_READY, and XDFEPRACH_STATE_RESET.

Referenced by XDfePrach_2CC3RCDynamicTestExample(), XDfePrach_2CC3RCReconfigureTestExample(), XDfePrach_2CC3RCTestExample(), and XDfePrach_SelfTestExample().

void XDfePrach_SetAntennaCfgInCCCfg ( const XDfePrach InstancePtr,
XDfePrach_CCCfg CCCfg,
u32 *  AntennaCfg 
)

Set antenna configuration in CC configuration container.

Parameters
InstancePtrPointer to the PRACH instance.
CCCfgCC configuration container.
AntennaCfgArray of all antenna configurations.

References XDfePrach_CCCfg::AntennaCfg, and XDFEPRACH_ANT_NUM_MAX.

void XDfePrach_SetInterruptMask ( const XDfePrach InstancePtr,
const XDfePrach_InterruptMask Mask 
)

Sets interrupt mask.

Parameters
InstancePtrPointer to the PRACH instance.
MaskInterrupt mask flags container.
  • 0 - does not mask corresponding interrupt
  • 1 - masks corresponding interrupt

References XDfePrach_StatusMask::CCSequenceError, XDfePrach_StatusMask::DecimatorOverflow, XDfePrach_StatusMask::DecimatorOverrun, XDfePrach_StatusMask::FrameError, XDfePrach_StatusMask::FrameInitTrigger, XDfePrach_StatusMask::MixerOverflow, XDfePrach_StatusMask::RachUpdate, XDfePrach_StatusMask::SelectorOverrun, and XDFEPRACH_BAND_ID_MAX.

u32 XDfePrach_SetNextCfg ( const XDfePrach InstancePtr,
const XDfePrach_CCCfg NextCCCfg,
XDfePrach_RCCfg *  NextRCCfg 
)

Writes local CC configuration to the shadow (NEXT) registers and triggers copying from shadow to operational registers.

Parameters
InstancePtrPointer to the PRACH instance.
NextCCCfgCC configuration container.
NextRCCfgRC configuration container.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE if error occurs.

References XDfePrach::Config, XDfePrach_Config::NumBands, XDFEPRACH_RC_NUM_MAX, XST_FAILURE, and XST_SUCCESS.

Referenced by XDfePrach_2CC3RCDynamicTestExample(), XDfePrach_2CC3RCReconfigureTestExample(), XDfePrach_2CC3RCTestExample(), and XDfePrach_MoveRC().

void XDfePrach_SetTUserDelay ( const XDfePrach InstancePtr,
u32  Delay 
)

Sets the delay, which will be added to TUSER and TLAST (delay matched through the IP).

Parameters
InstancePtrPointer to the PRACH instance.
DelayRequested delay variable.

References XDfePrach::StateId, and XDFEPRACH_STATE_INITIALISED.

void XDfePrach_SetTUserDelayMB ( const XDfePrach InstancePtr,
u32  Delay,
u32  BandId 
)

Sets the delay of specified band in multiband mode, which will be added to TUSER and TLAST (delay matched through the IP).

Parameters
InstancePtrPointer to the PRACH instance.
DelayRequested delay variable.
BandIdBand Id.

References XDfePrach::StateId, and XDFEPRACH_STATE_INITIALISED.

u32 XDfePrach_UpdateCCinCCCfg ( const XDfePrach InstancePtr,
XDfePrach_CCCfg CCCfg,
s32  CCID,
const XDfePrach_CarrierCfg CarrierCfg 
)

Updates specified CCID, with specified configuration to a local CC configuration structure for BandId=0.

If there is insufficient capacity for the new CC the function will return an error.

Parameters
InstancePtrPointer to the PRACH instance.
CCCfgComponent carrier (CC) configuration container.
CCIDCC ID [0-15].
CarrierCfgCC configuration container.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE if error occurs.

References XDfePrach_UpdateCCinCCCfgMB().

u32 XDfePrach_UpdateCCinCCCfgMB ( const XDfePrach InstancePtr,
XDfePrach_CCCfg CCCfg,
s32  CCID,
const XDfePrach_CarrierCfg CarrierCfg,
const u32  BandId 
)

Updates specified CCID, with specified configuration to a local CC configuration structure for selected band.

If there is insufficient capacity for the new CC the function will return an error.

Parameters
InstancePtrPointer to the PRACH instance.
CCCfgComponent carrier (CC) configuration container.
CCIDCC ID [0-15].
CarrierCfgCC configuration container.
BandIdBand Id.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE if error occurs.

References XDfePrach_CCCfg::CarrierCfg, XDfePrach_InternalCarrierCfg::SCS, XDfePrach_CarrierCfg::SCS, and XST_SUCCESS.

Referenced by XDfePrach_UpdateCCinCCCfg().

void XDfePrach_UpdateRCinRCCfg ( const XDfePrach InstancePtr,
XDfePrach_RCCfg *  CurrentRCCfg,
s32  CCID,
u32  RCId,
u32  RachChan,
XDfePrach_DDCCfg DdcCfg,
XDfePrach_NCO NcoCfg,
XDfePrach_Schedule StaticSchedule,
XDfePrach_CCCfg NextCCCfg 
)

Updates an RC entry to the RC_CONFIGURATION on band id 0.

Parameters
InstancePtrPointer to the PRACH instance.
CurrentRCCfgCurrent RACH configuration container.
CCIDCC Id [0-15].
RCIdRC Id [0-15].
RachChanRACH channel [0-15].
DdcCfgDDC data container.
NcoCfgNCO data container.
StaticScheduleSchedule data container.
NextCCCfgCC configuration container.
Note
This API must be executed only after all CC configuration are done with the API XDfePrach_AddCCtoCCCfg and XDfePrach_UpdateCCinCCCfg.

References XDfePrach::StateId, XDFEPRACH_RC_NUM_MAX, XDFEPRACH_STATE_OPERATIONAL, and XDfePrach_UpdateRCinRCCfgMB().

void XDfePrach_UpdateRCinRCCfgMB ( const XDfePrach InstancePtr,
XDfePrach_RCCfg *  CurrentRCCfg,
s32  CCID,
u32  RCId,
u32  RachChan,
XDfePrach_DDCCfg DdcCfg,
XDfePrach_NCO NcoCfg,
XDfePrach_Schedule StaticSchedule,
XDfePrach_CCCfg NextCCCfg,
u32  BandId 
)

Updates an RC entry to the RC_CONFIGURATION on a selected band.

Parameters
InstancePtrPointer to the PRACH instance.
CurrentRCCfgCurrent RACH configuration container.
CCIDCC Id [0-15].
RCIdRC Id [0-15].
RachChanRACH channel [0-15].
DdcCfgDDC data container.
NcoCfgNCO data container.
StaticScheduleSchedule data container (ignore it if module parameter HAS_CONTINUOUS_SCHED == 1)
NextCCCfgCC configuration container.
BandIdBand id.
Note
This API must be executed only after all CC configuration are done with the API XDfePrach_AddCCtoCCCfg and XDfePrach_UpdateCCinCCCfg.

References XDfePrach::StateId, XDFEPRACH_RC_NUM_MAX, and XDFEPRACH_STATE_OPERATIONAL.

Referenced by XDfePrach_UpdateRCinRCCfg().