| dfeprach Vitis Drivers API Documentation

- Overview
- Data Structures
- APIs
- File List
- Examples

Data Structures | Macros | Enumerations | Functions
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
XDfePrach * | XDfePrach_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)

Maximum Band Id number.

Referenced by XDfePrach_ClearEventStatus(), XDfePrach_GetEventStatus(), XDfePrach_GetInterruptMask(), and XDfePrach_SetInterruptMask().

#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_RC_NUM_MAX (16U)

Maximum number of RACH channels.

Referenced by XDfePrach_AddRCtoRCCfg(), XDfePrach_AddRCtoRCCfgDynamic(), XDfePrach_AddRCtoRCCfgMB(), XDfePrach_AddRCtoRCCfgMBDynamic(), XDfePrach_GetCurrentRCCfg(), XDfePrach_MoveRC(), XDfePrach_RemoveRCfromRCCfg(), XDfePrach_SetNextCfg(), XDfePrach_UpdateRCinRCCfg(), and XDfePrach_UpdateRCinRCCfgMB().

#define XDFEPRACH_SEQ_LENGTH_MAX (16U)

Maximum CCID sequence length.

#define XST_FAILURE (1U)

Failure flag.

Referenced by main(), XDfePrach_2CC3RCDynamicTestExample(), XDfePrach_2CC3RCReconfigureTestExample(), XDfePrach_2CC3RCTestExample(), XDfePrach_AddCCtoCCCfgMB(), XDfePrach_AddRCtoRCCfgMB(), XDfePrach_AddRCtoRCCfgMBDynamic(), XDfePrach_InstanceInit(), XDfePrach_MoveRC(), XDfePrach_SelfTestExample(), XDfePrach_SetNextCfg(), and XDfeSi570_SetMgtOscillator().

#define XST_SUCCESS (0U)

Success flag.

Referenced by main(), XDfePrach_2CC3RCDynamicTestExample(), XDfePrach_2CC3RCReconfigureTestExample(), XDfePrach_2CC3RCTestExample(), XDfePrach_AddCCtoCCCfgMB(), XDfePrach_AddRCtoRCCfgMB(), XDfePrach_AddRCtoRCCfgMBDynamic(), XDfePrach_InstanceInit(), XDfePrach_MoveRC(), XDfePrach_RemoveCCfromCCCfgMB(), XDfePrach_RemoveRCfromRCCfg(), XDfePrach_SelfTestExample(), XDfePrach_SetNextCfg(), XDfePrach_UpdateCCinCCCfgMB(), and XDfeSi570_SetMgtOscillator().

## Enumeration Type Documentation

enum XDfePrach_StateId

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

  InstancePtr | Pointer to the PRACH instance.
  EnableLowPower | Flag 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

  InstancePtr | Pointer to the PRACH instance.
  CCCfg | Component carrier (CC) configuration container.
  CCID | CC ID [0-15].
  CCSeqBitmap | CC slot position container.
  CarrierCfg | CC 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

  InstancePtr | Pointer to the PRACH instance.
  CCCfg | Component carrier (CC) configuration container.
  CCID | CC ID [0-15].
  CCSeqBitmap | CC slot position container.
  CarrierCfg | CC configuration container.
  BandId | Band 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

  InstancePtr | Pointer to the PRACH instance.
  CurrentRCCfg | Current RACH configuration container.
  CCID | CC ID [0-15].
  RCId | RC Id [0-15].
  RachChan | RACH channel [0-15].
  DdcCfg | DDC data container.
  NcoCfg | NCO data container.
  StaticSchedule | Schedule data container (ignore it if module parameter HAS_CONTINUOUS_SCHED == 1)
  NextCCCfg | CC 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

  InstancePtr | Pointer to the PRACH instance.
  CurrentRCCfg | Current RACH configuration container.
  CCID | CC ID [0-15].
  RCId | RC Id [0-15].
  RachChan | RACH channel [0-15].
  NextCCCfg | CC 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

  InstancePtr | Pointer to the PRACH instance.
  CurrentRCCfg | Current RACH configuration container.
  CCID | CC ID [0-15].
  RCId | RC Id [0-15].
  RachChan | RACH channel [0-15].
  DdcCfg | DDC data container.
  NcoCfg | NCO data container.
  StaticSchedule | Schedule data container (ignore it if module parameter HAS_CONTINUOUS_SCHED == 1)
  NextCCCfg | CC configuration container.
  BandId | Band 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

  InstancePtr | Pointer to the PRACH instance.
  CurrentRCCfg | Current RACH configuration container.
  CCID | CC ID [0-15].
  RCId | RC Id [0-15].
  RachChan | RACH channel [0-15].
  NextCCCfg | CC configuration container.
  BandId | Band 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

  InstancePtr | Pointer to the PRACH instance.

void XDfePrach_ClearEventStatus | ( | const XDfePrach * | InstancePtr,
|  | const XDfePrach_StatusMask * | Status
| ) |  |

Clears event status.

Parameters

  InstancePtr | Pointer to the PRACH instance.
  Status | Clear event status container. 0 - does not clear corresponding event status 1 - clear corresponding event status

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.

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

void XDfePrach_ClearStatus | ( | const XDfePrach * | InstancePtr | ) |

Clears the PRACH status registers.

Parameters

  InstancePtr | Pointer to the PRACH instance.

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

void XDfePrach_Configure | ( | XDfePrach * | InstancePtr,
|  | XDfePrach_Cfg * | Cfg
| ) |  |

Reads configuration from device tree/xparameters.h and IP registers.

Removes S/W reset and moves the state machine to a Configured state.

Parameters

  InstancePtr | Pointer to the PRACH instance.
  Cfg | Configuration data container.

References XDfePrach::Config, XDfePrach_ModelParameters::HasAxisCtrl, XDfePrach_Config::HasAxisCtrl, XDfePrach_ModelParameters::HasContinuousSched, XDfePrach_Config::HasContinuousSched, XDfePrach_ModelParameters::HasIrq, XDfePrach_Config::HasIrq, XDfePrach_Version::Major, XDfePrach_Version::Minor, XDfePrach_Cfg::ModelParams, XDfePrach_ModelParameters::NumAntenna, XDfePrach_Config::NumAntenna, XDfePrach_ModelParameters::NumAntennaChannels, XDfePrach_Config::NumAntennaChannels, XDfePrach_ModelParameters::NumAntennaSlots, XDfePrach_Config::NumAntennaSlots, XDfePrach_ModelParameters::NumBands, XDfePrach_Config::NumBands, XDfePrach_ModelParameters::NumCCPerAntenna, XDfePrach_Config::NumCCPerAntenna, XDfePrach_ModelParameters::NumRachChannels, XDfePrach_Config::NumRachChannels, XDfePrach_ModelParameters::NumRachLanes, XDfePrach_Config::NumRachLanes, XDfePrach_Version::Patch, XDfePrach_Version::Revision, XDfePrach::StateId, XDfePrach_Cfg::Version, XDFEPRACH_STATE_CONFIGURED, and XDFEPRACH_STATE_RESET.

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

void XDfePrach_Deactivate | ( | XDfePrach * | InstancePtr | ) |

Deactivates PRACH and moves the state machine to Initialised state.

Parameters

  InstancePtr | Pointer 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

  InstancePtr | Pointer to the PRACH instance.
  RachChan | RACH channel Id [0-15].
  CapturedPhase | NCO 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

  InstancePtr | Pointer to the PRACH instance.
  CCCfg | Component carrier (CC) configuration container.
  CCID | CC ID [0-15].
  CCSeqBitmap | CC slot position container.
  CarrierCfg | CC 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

  InstancePtr | Pointer to the PRACH instance.
  CCCfg | Component carrier (CC) configuration container.
  CCID | CC ID [0-15].
  CCSeqBitmap | CC slot position container.
  CarrierCfg | CC configuration container.
  BandId | Band 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

  InstancePtr | Pointer to the PRACH instance.
  Next | Boolean flag indicating NEXT or CURRENT register.
  CCID | CC Id [0-15].
  CarrierCfg | Carrier 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

  InstancePtr | Pointer to the PRACH instance.
  Next | Boolean flag indicating NEXT or CURRENT register.
  CCID | CC Id [0-15].
  CarrierCfg | Carrier configuration container.
  BandId | Band 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

  InstancePtr | Pointer to the PRACH instance.
  RCCfg | RC configuration container.
  RCId | Chosen RACH channel Id [0-15].
  ChannelCfg | RACH channel container.

void XDfePrach_GetCurrentCCCfg | ( | const XDfePrach * | InstancePtr,
|  | XDfePrach_CCCfg * | CurrCCCfg
| ) |  |

Returns the current CC configuration.

Parameters

  InstancePtr | Pointer to the PRACH instance.
  CurrCCCfg | CC 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

  InstancePtr | Pointer to the PRACH instance.
  RCCfg | RC 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

  InstancePtr | Pointer to the PRACH instance.
  CCCfg | CC 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

  InstancePtr | Pointer to the PRACH instance.
  RCCfg | RC configuration container.

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

void XDfePrach_GetEventStatus | ( | const XDfePrach * | InstancePtr,
|  | XDfePrach_StatusMask * | Status
| ) |  |

Gets event status.

Parameters

  InstancePtr | Pointer to the PRACH instance.
  Status | Event status container.

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.

void XDfePrach_GetInterruptMask | ( | const XDfePrach * | InstancePtr,
|  | XDfePrach_InterruptMask * | Mask
| ) |  |

Gets interrupt mask status.

Parameters

  InstancePtr | Pointer to the PRACH instance.
  Mask | Interrupt masks container.

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.

XDfePrach_StateId XDfePrach_GetStateID | ( | XDfePrach * | InstancePtr | ) |

Gets a state machine state id.

Parameters

  InstancePtr | Pointer to the PRACH instance.

Returns
  State machine StateID

References XDfePrach::StateId.

void XDfePrach_GetStatus | ( | const XDfePrach * | InstancePtr,
|  | XDfePrach_Status * | Status
| ) |  |

Gets the PRACH Status.

Parameters

  InstancePtr | Pointer to the PRACH instance.
  Status | Status data container.

References XDfePrach_DecimatorStatusOverflow::DecimatorOverflow, XDfePrach_Status::DecimatorOverflow, XDfePrach_DecimatorStatusOverrun::DecimatorOverrun, XDfePrach_Status::DecimatorOverrun, XDfePrach_MixerStatusOverflow::FirstAntennaOverflowing, XDfePrach_DecimatorStatusOverflow::FirstAntennaOverflowing, XDfePrach_MixerStatusOverrun::FirstAntennaOverruning, XDfePrach_DecimatorStatusOverrun::FirstAntennaOverruning, XDfePrach_MixerStatusOverflow::FirstRCIdOverflowing, XDfePrach_DecimatorStatusOverflow::FirstRCIdOverflowing, XDfePrach_MixerStatusOverrun::FirstRCIdOverruning, XDfePrach_DecimatorStatusOverrun::FirstRCIdOverruning, XDfePrach_MixerStatusOverflow::MixerOverflow, XDfePrach_Status::MixerOverflow, XDfePrach_MixerStatusOverrun::MixerOverrun, XDfePrach_Status::MixerOverrun, XDfePrach::StateId, and XDFEPRACH_STATE_OPERATIONAL.

u32 XDfePrach_GetTDataDelay | ( | const XDfePrach * | InstancePtr | ) |

Returns data latency.

Parameters

  InstancePtr | Pointer 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

  InstancePtr | Pointer to the PRACH instance.
  BandId | Band Id.

Returns
  Data latency value.

void XDfePrach_GetTriggersCfg | ( | const XDfePrach * | InstancePtr,
|  | XDfePrach_TriggerCfg * | TriggerCfg
| ) |  |

Returns the current trigger configuration.

Parameters

  InstancePtr | Pointer to the PRACH instance.
  TriggerCfg | Trigger configuration container.

References XDfePrach_TriggerCfg::Activate, XDfePrach::Config, XDfePrach_TriggerCfg::FrameInit, XDfePrach_TriggerCfg::LowPower, XDfePrach_Trigger::Mode, XDfePrach_Config::NumBands, XDfePrach_TriggerCfg::RachUpdate, XDfePrach::StateId, XDfePrach_Trigger::StateOutput, XDfePrach_Trigger::TriggerEnable, XDfePrach_Trigger::TUSERBit, XDfePrach_Trigger::TuserEdgeLevel, and XDFEPRACH_STATE_NOT_READY.

u32 XDfePrach_GetTUserDelay | ( | const XDfePrach * | InstancePtr | ) |

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

Parameters

  InstancePtr | Pointer 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

  InstancePtr | Pointer to the PRACH instance.
  BandId | Band Id.

Returns
  Delay value

void XDfePrach_GetVersions | ( | const XDfePrach * | InstancePtr,
|  | XDfePrach_Version * | SwVersion,
|  | XDfePrach_Version * | HwVersion
| ) |  |

This API gets the driver and HW design version.

Parameters

  InstancePtr | Pointer to the PRACH instance.
  SwVersion | Driver version number.
  HwVersion | HW version number.

References XDfePrach_Version::Major, XDfePrach_Version::Minor, XDfePrach_Version::Patch, XDfePrach_Version::Revision, XDfePrach::StateId, XDFEPRACH_DRIVER_VERSION_MAJOR, XDFEPRACH_DRIVER_VERSION_MINOR, and XDFEPRACH_STATE_NOT_READY.

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

void XDfePrach_Initialize | ( | XDfePrach * | InstancePtr,
|  | XDfePrach_Init * | Init
| ) |  |

DFE PRACH driver one time initialisation also moves the state machine to an Initialised state.

Parameters

  InstancePtr | Pointer to the PRACH instance.
  Init | Initialisation data container.

References XDfePrach::Config, XDfePrach_Init::EnableStaticSchedule, XDfePrach_Init::EnableUseFreqOffset, XDfePrach_CCSequence::Length, XDfePrach::NotUsedCCID, XDfePrach_Config::NumBands, XDfePrach_Init::Sequence, XDfePrach::SequenceLength, XDfePrach::StateId, XDFEPRACH_STATE_CONFIGURED, and XDFEPRACH_STATE_INITIALISED.

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

void XDfePrach_InstanceClose | ( | XDfePrach * | InstancePtr | ) |

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

Parameters

  InstancePtr | Pointer 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

  DeviceNodeName | Device 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

  InstancePtr | Pointer to the PRACH instance.
  RCId | RC Id [0-15].
  ToChannel | Destination 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

  InstancePtr | Pointer to the PRACH instance.
  CCCfg | Component carrier (CC) configuration container.
  CCID | CC 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

  InstancePtr | Pointer to the PRACH instance.
  CCCfg | Component carrier (CC) configuration container.
  CCID | CC ID [0-15].
  BandId | Band 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

  InstancePtr | Pointer to the PRACH instance.
  CurrentRCCfg | Current RACH configuration container.
  RCId | RC 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

  InstancePtr | Pointer 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

  InstancePtr | Pointer to the PRACH instance.
  CCCfg | CC configuration container.
  AntennaCfg | Array 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

  InstancePtr | Pointer to the PRACH instance.
  Mask | Interrupt 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

  InstancePtr | Pointer to the PRACH instance.
  NextCCCfg | CC configuration container.
  NextRCCfg | RC 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_SetTriggersCfg | ( | const XDfePrach * | InstancePtr,
|  | XDfePrach_TriggerCfg * | TriggerCfg
| ) |  |

Sets trigger configuration.

Parameters

  InstancePtr | Pointer to the PRACH instance.
  TriggerCfg | Trigger configuration container.

References XDfePrach_TriggerCfg::Activate, XDfePrach::Config, XDfePrach_TriggerCfg::FrameInit, XDfePrach_TriggerCfg::LowPower, XDfePrach_Trigger::Mode, XDfePrach_Config::NumBands, XDfePrach_TriggerCfg::RachUpdate, XDfePrach::StateId, XDfePrach_Trigger::StateOutput, XDfePrach_Trigger::TriggerEnable, XDfePrach_Trigger::TUSERBit, XDfePrach_Trigger::TuserEdgeLevel, and XDFEPRACH_STATE_INITIALISED.

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

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

  InstancePtr | Pointer to the PRACH instance.
  Delay | Requested 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

  InstancePtr | Pointer to the PRACH instance.
  Delay | Requested delay variable.
  BandId | Band 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

  InstancePtr | Pointer to the PRACH instance.
  CCCfg | Component carrier (CC) configuration container.
  CCID | CC ID [0-15].
  CarrierCfg | CC 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

  InstancePtr | Pointer to the PRACH instance.
  CCCfg | Component carrier (CC) configuration container.
  CCID | CC ID [0-15].
  CarrierCfg | CC configuration container.
  BandId | Band 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

  InstancePtr | Pointer to the PRACH instance.
  CurrentRCCfg | Current RACH configuration container.
  CCID | CC Id [0-15].
  RCId | RC Id [0-15].
  RachChan | RACH channel [0-15].
  DdcCfg | DDC data container.
  NcoCfg | NCO data container.
  StaticSchedule | Schedule data container.
  NextCCCfg | CC 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

  InstancePtr | Pointer to the PRACH instance.
  CurrentRCCfg | Current RACH configuration container.
  CCID | CC Id [0-15].
  RCId | RC Id [0-15].
  RachChan | RACH channel [0-15].
  DdcCfg | DDC data container.
  NcoCfg | NCO data container.
  StaticSchedule | Schedule data container (ignore it if module parameter HAS_CONTINUOUS_SCHED == 1)
  NextCCCfg | CC configuration container.
  BandId | Band 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().