v_sdirx
Xilinx SDK Drivers API Documentation
xv_sdirx.h File Reference

Overview

MODIFICATION HISTORY:
Ver   Who    Date     Changes

1.0 jsr 07/17/17 Initial release.

Data Structures

struct  XV_SdiRx_Config
 This typedef contains configuration information for the SDI RX core. More...
 
struct  XV_SdiRx_Stream
 This typedef contains SDI RX stream specific data structure. More...
 
struct  XV_SdiRx
 The XSdiRx driver instance data. More...
 

Macros

#define XV_SDIRX_H_
 Prevent circular inclusions by using protection macros. More...
 

Enumerations

Handler Types
enum  XV_SdiRx_HandlerType
 These constants specify different types of handler and used to differentiate interrupt requests from peripheral. More...
 
SDI Transport Mode
enum  XV_SdiRx_Modes
 
SDI Debug Settings
enum  XV_SdiRx_DebugSelId
 
SDI Transport Family Encoding
enum  XV_SdiRx_Family_Encoding
 
enum  XV_SdiRx_SearchMode {
  XV_SDIRX_SINGLESEARCHMODE_HD = 0, XV_SDIRX_SINGLESEARCHMODE_SD = 1, XV_SDIRX_SINGLESEARCHMODE_3G = 2, XV_SDIRX_SINGLESEARCHMODE_6G = 4,
  XV_SDIRX_SINGLESEARCHMODE_12GI = 5, XV_SDIRX_SINGLESEARCHMODE_12GF = 6
}
 SDI Search Modes. More...
 
enum  XV_SdiRx_SupportedModes {
  XV_SDIRX_SUPPORT_HD = 1, XV_SDIRX_SUPPORT_SD = 2, XV_SDIRX_SUPPORT_3G = 4, XV_SDIRX_SUPPORT_6G = 8,
  XV_SDIRX_SUPPORT_12GI = 16, XV_SDIRX_SUPPORT_12GF = 32
}
 SDI Supported Modes. More...
 

SDI Transport Rate

#define XV_SdiRx_GetVersion(InstancePtr)   XV_SdiRx_ReadReg((InstancePtr)->Config.BaseAddress, (XV_SDIRX_VER_OFFSET))
 This macro reads the RX version. More...
 
#define XV_SdiRx_VidLckIntrClr(InstancePtr)
 
#define XV_SdiRx_VidUnlckIntrClr(InstancePtr)
 
enum  XV_SdiRx_FrameRate
 
typedef void(* XV_SdiRx_Callback) (void *CallbackRef)
 Callback type for interrupt. More...
 
XV_SdiRx_ConfigXV_SdiRx_LookupConfig (u16 DeviceId)
 This function returns a reference to an XV_SdiRx_Config structure based on the core id, DeviceId. More...
 
int XV_SdiRx_CfgInitialize (XV_SdiRx *InstancePtr, XV_SdiRx_Config *CfgPtr, UINTPTR EffectiveAddr)
 This function initializes the SDI RX core. More...
 
void XV_SdiRx_ResetStream (XV_SdiRx *InstancePtr)
 This function clears the SDI RX stream variables and sets them to the defaults. More...
 
u32 XV_SdiRx_GetPayloadId (XV_SdiRx *InstancePtr, u8 DataStream)
 This function returns incoming stream's incoming SDI payload ID. More...
 
u32 XV_SdiRx_WaitforPayLoad (XV_SdiRx *InstancePtr)
 This function is used to wait for the payload valid bit to be set. More...
 
u32 XV_SdiRx_GetSdiMode (XV_SdiRx *InstancePtr)
 This function returns the current SDI transport mode detected. More...
 
void XV_SdiRx_FramerEnable (XV_SdiRx *InstancePtr)
 This function enables the framer function. More...
 
void XV_SdiRx_FramerDisable (XV_SdiRx *InstancePtr)
 This function disables the framer function. More...
 
void XV_SdiRx_SetEdhErrCntTrigger (XV_SdiRx *InstancePtr, u32 Enable)
 This function sets the type of EDH errors which will trigger the error count. More...
 
void XV_SdiRx_EnableMode (XV_SdiRx *InstancePtr, XV_SdiRx_SupportedModes SupportModes)
 This function enables the modes which the SDI RX core will try to lock on. More...
 
void XV_SdiRx_DisableMode (XV_SdiRx *InstancePtr, XV_SdiRx_SupportedModes RemoveModes)
 This function disables the modes which the SDI RX core will try to lock on. More...
 
void XV_SdiRx_Start (XV_SdiRx *InstancePtr, XV_SdiRx_SearchMode Mode)
 This function enables SDI RX core's modes detection function. More...
 
int XV_SdiRx_Stop (XV_SdiRx *InstancePtr)
 This function stops SDI RX core's modes detection. More...
 
u32 XV_SdiRx_ReportDetectedError (XV_SdiRx *InstancePtr)
 This function reports detected CRC or EDH errors count. More...
 
void XV_SdiRx_SetVidLckWindow (XV_SdiRx *InstancePtr, u32 Data)
 This function sets the clock period for video lock signal to be asserted before video lock interrupt is triggered. More...
 
void XV_SdiRx_VidBridgeEnable (XV_SdiRx *InstancePtr)
 This function enables the video bridge. More...
 
void XV_SdiRx_VidBridgeDisable (XV_SdiRx *InstancePtr)
 This function disables the video bridge. More...
 
void XV_SdiRx_Axi4sBridgeEnable (XV_SdiRx *InstancePtr)
 This function enable the AXI4S Bridge. More...
 
void XV_SdiRx_Axi4sBridgeDisable (XV_SdiRx *InstancePtr)
 This function disables the AXI4S Bridge. More...
 
void XV_SdiRx_DebugInfo (XV_SdiRx *InstancePtr, XV_SdiRx_DebugSelId SelId)
 This function prints debug information of Stream 0 on STDIO/Uart console. More...
 
u32 XV_SdiRx_SelfTest (XV_SdiRx *InstancePtr)
 Runs a self-test on the driver/device. More...
 
u32 XV_SdiRx_GetIntrEnable (XV_SdiRx *InstancePtr)
 This function will get the interrupt mask set (enabled) in the SDI Rx core. More...
 
u32 XV_SdiRx_GetIntrStatus (XV_SdiRx *InstancePtr)
 This function will get the list of interrupts pending in the Interrupt Status Register of the SDI Rx core. More...
 
void XV_SdiRx_InterruptClear (XV_SdiRx *InstancePtr, u32 Mask)
 This function will clear the interrupts set in the Interrupt Status Register of the SDI Rx core. More...
 
void XV_SdiRx_IntrHandler (void *InstancePtr)
 This function is the interrupt handler for the SDI RX driver. More...
 
int XV_SdiRx_SetCallback (XV_SdiRx *InstancePtr, u32 HandlerType, void *CallbackFunc, void *CallbackRef)
 This function installs an asynchronous callback function for the given HandlerType: More...
 
void XV_SdiRx_IntrDisable (XV_SdiRx *InstancePtr, u32 Mask)
 This function disables the selected interrupt. More...
 
void XV_SdiRx_IntrEnable (XV_SdiRx *InstancePtr, u32 Mask)
 This function enables the selected interrupt. More...
 

Macro Definition Documentation

◆ XV_SdiRx_GetVersion

#define XV_SdiRx_GetVersion (   InstancePtr)    XV_SdiRx_ReadReg((InstancePtr)->Config.BaseAddress, (XV_SDIRX_VER_OFFSET))

This macro reads the RX version.

Parameters
InstancePtris a pointer to the XSdi_RX core instance.
Returns
RX version.

*note C-style signature: u32 XV_SdiRx_GetVersion(XV_SdiRx *InstancePtr)

◆ XV_SDIRX_H_

#define XV_SDIRX_H_

Prevent circular inclusions by using protection macros.

Typedef Documentation

◆ XV_SdiRx_Callback

typedef void(* XV_SdiRx_Callback) (void *CallbackRef)

Callback type for interrupt.

Parameters
CallbackRefis a callback reference passed in by the upper layer when setting the callback functions, and passed back to the upper layer when the callback is invoked.
Returns
None.
Note
None.

Enumeration Type Documentation

◆ XV_SdiRx_HandlerType

These constants specify different types of handler and used to differentiate interrupt requests from peripheral.

◆ XV_SdiRx_SearchMode

SDI Search Modes.

Enumerator
XV_SDIRX_SINGLESEARCHMODE_HD 

Sdi HD.

XV_SDIRX_SINGLESEARCHMODE_SD 

Sdi SD.

XV_SDIRX_SINGLESEARCHMODE_3G 

Sdi 3G.

XV_SDIRX_SINGLESEARCHMODE_6G 

Sdi 6G.

XV_SDIRX_SINGLESEARCHMODE_12GI 

Sdi 12G Integer Framerate.

XV_SDIRX_SINGLESEARCHMODE_12GF 

Sdi 12G Fractional Framerate.

◆ XV_SdiRx_SupportedModes

SDI Supported Modes.

Enumerator
XV_SDIRX_SUPPORT_HD 

Sdi HD.

XV_SDIRX_SUPPORT_SD 

Sdi SD.

XV_SDIRX_SUPPORT_3G 

Sdi 3G.

XV_SDIRX_SUPPORT_6G 

Sdi 6G.

XV_SDIRX_SUPPORT_12GI 

Sdi 12G Integer Framerate.

XV_SDIRX_SUPPORT_12GF 

Sdi 12G Fractional Framerate.

Function Documentation

◆ XV_SdiRx_Axi4sBridgeDisable()

void XV_SdiRx_Axi4sBridgeDisable ( XV_SdiRx InstancePtr)

This function disables the AXI4S Bridge.

Parameters
InstancePtris a pointer to the XV_SdiRx core instance.
Returns
None.
Note
None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.

◆ XV_SdiRx_Axi4sBridgeEnable()

void XV_SdiRx_Axi4sBridgeEnable ( XV_SdiRx InstancePtr)

This function enable the AXI4S Bridge.

Parameters
InstancePtris a pointer to the XV_SdiRx core instance.
Returns
None.
Note
None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.

◆ XV_SdiRx_CfgInitialize()

int XV_SdiRx_CfgInitialize ( XV_SdiRx InstancePtr,
XV_SdiRx_Config CfgPtr,
UINTPTR  EffectiveAddr 
)

This function initializes the SDI RX core.

This function must be called prior to using the SDI RX core. Initialization of the SDI RX includes setting up the instance data, and ensuring the hardware is in a quiescent state.

Parameters
InstancePtris a pointer to the XV_SdiRx core instance.
CfgPtrpoints to the configuration structure associated with the SDI RX core.
EffectiveAddris the base address of the device. If address translation is being used, then this parameter must reflect the virtual base address. Otherwise, the physical address should be used.
Returns
  • XST_SUCCESS if XV_SdiRx_CfgInitialize was successful.
  • XST_FAILURE if XV_SdiRx_CfgInitialize was unsuccessful.
Note
None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx::StreamDownCallback.

◆ XV_SdiRx_DebugInfo()

void XV_SdiRx_DebugInfo ( XV_SdiRx InstancePtr,
XV_SdiRx_DebugSelId  SelId 
)

This function prints debug information of Stream 0 on STDIO/Uart console.

Parameters
InstancePtris a pointer to the XV_SdiRx core instance.
SelIdspecifies which debug information to be printed out
Returns
None.
Note
None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, XV_SdiRx::Stream, XV_SdiRx_Stream::Video, and XV_SdiRx_ReadReg.

◆ XV_SdiRx_DisableMode()

void XV_SdiRx_DisableMode ( XV_SdiRx InstancePtr,
XV_SdiRx_SupportedModes  RemoveModes 
)

This function disables the modes which the SDI RX core will try to lock on.

Parameters
InstancePtris a pointer to the XV_SdiRx core instance.
RemoveModesspecifies which SDI mode is to be removed from SDI mode detection logic.
Returns
None.
Note
None.

◆ XV_SdiRx_EnableMode()

void XV_SdiRx_EnableMode ( XV_SdiRx InstancePtr,
XV_SdiRx_SupportedModes  SupportModes 
)

This function enables the modes which the SDI RX core will try to lock on.

Parameters
InstancePtris a pointer to the XV_SdiRx core instance.
SupportModesspecifies which SDI mode is to be supported from SDI mode detection logic.
Returns
None.
Note
XV_SDIRX_MULTISEARCHMODE must be selected in the XV_SdiRx_Start function.

◆ XV_SdiRx_FramerDisable()

void XV_SdiRx_FramerDisable ( XV_SdiRx InstancePtr)

This function disables the framer function.

Parameters
InstancePtris a pointer to the XV_SdiRx core instance.
Returns
None.
Note
None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.

◆ XV_SdiRx_FramerEnable()

void XV_SdiRx_FramerEnable ( XV_SdiRx InstancePtr)

This function enables the framer function.

When enabled, the framer automatically readjusts the output word alignment to match the alignment of each timing reference signal (TRS).

Parameters
InstancePtris a pointer to the XV_SdiRx core instance.
Returns
None.
Note
None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.

◆ XV_SdiRx_GetIntrEnable()

u32 XV_SdiRx_GetIntrEnable ( XV_SdiRx InstancePtr)

This function will get the interrupt mask set (enabled) in the SDI Rx core.

Parameters
InstancePtris the XV_SdiRx instance to operate on
Returns
Interrupt Mask with bits set for corresponding interrupt in Interrupt enable register
Note
None

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.

◆ XV_SdiRx_GetIntrStatus()

u32 XV_SdiRx_GetIntrStatus ( XV_SdiRx InstancePtr)

This function will get the list of interrupts pending in the Interrupt Status Register of the SDI Rx core.

Parameters
InstancePtris the XV_SdiRx instance to operate on
Returns
Interrupt Mask with bits set for corresponding interrupt in Interrupt Status register
Note
None

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.

Referenced by XV_SdiRx_IntrHandler().

◆ XV_SdiRx_GetPayloadId()

u32 XV_SdiRx_GetPayloadId ( XV_SdiRx InstancePtr,
u8  DataStream 
)

This function returns incoming stream's incoming SDI payload ID.

Parameters
InstancePtris a pointer to the XV_SdiRx core instance.
DataStreamspecifies which payload ID is to be returned.
Returns
SDI payload ID
Note
None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.

◆ XV_SdiRx_GetSdiMode()

u32 XV_SdiRx_GetSdiMode ( XV_SdiRx InstancePtr)

This function returns the current SDI transport mode detected.

Parameters
InstancePtris a pointer to the XV_SdiRx core instance.
Returns
SDI transport mode
Note
None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.

Referenced by XV_SdiRx_ReportDetectedError().

◆ XV_SdiRx_InterruptClear()

void XV_SdiRx_InterruptClear ( XV_SdiRx InstancePtr,
u32  Mask 
)

This function will clear the interrupts set in the Interrupt Status Register of the SDI Rx core.

Parameters
InstancePtris the XV_SdiRx instance to operate on
Maskis Interrupt Mask with bits set for corresponding interrupt to be cleared in the Interrupt Status register
Returns
None
Note
None

◆ XV_SdiRx_IntrDisable()

void XV_SdiRx_IntrDisable ( XV_SdiRx InstancePtr,
u32  Mask 
)

This function disables the selected interrupt.

Parameters
InstancePtris a pointer to the XV_SdiRx core instance.
Maskis the interrupt mask which need to be disabled in core.
Returns
None.
Note
None.

◆ XV_SdiRx_IntrEnable()

void XV_SdiRx_IntrEnable ( XV_SdiRx InstancePtr,
u32  Mask 
)

This function enables the selected interrupt.

Parameters
InstancePtris a pointer to the XV_SdiRx core instance.
Maskis the interrupt mask which need to be enabled in core.
Returns
None.
Note
None.

◆ XV_SdiRx_IntrHandler()

void XV_SdiRx_IntrHandler ( void *  InstancePtr)

This function is the interrupt handler for the SDI RX driver.

This handler reads the pending interrupt for video lock or video unlock interrupts, determines the source of the interrupts, clears the interrupts and calls callbacks accordingly.

The application is responsible for connecting this function to the interrupt system. Application beyond this driver is also responsible for providing callbacks to handle interrupts and installing the callbacks using XV_SdiRx_SetCallback() during initialization phase. An example delivered with this driver demonstrates how this could be done.

Parameters
InstancePtris a pointer to the XV_SdiRx instance that just interrupted.
Returns
None.
Note
None.

References XV_SdiRx::IsReady, and XV_SdiRx_GetIntrStatus().

◆ XV_SdiRx_LookupConfig()

XV_SdiRx_Config* XV_SdiRx_LookupConfig ( u16  DeviceId)

This function returns a reference to an XV_SdiRx_Config structure based on the core id, DeviceId.

The return value will refer to an entry in the device configuration table defined in the xv_sdirx_g.c file.

Parameters
DeviceIdis the unique core ID of the SDI RX core for the lookup operation.
Returns
XV_SdiRx_LookupConfig returns a reference to a config record in the configuration table (in xv_sdirx_g.c) corresponding to DeviceId, or NULL if no match is found.
Note
None.

◆ XV_SdiRx_ReportDetectedError()

u32 XV_SdiRx_ReportDetectedError ( XV_SdiRx InstancePtr)

This function reports detected CRC or EDH errors count.

Parameters
InstancePtris a pointer to the XV_SdiRx core instance.
Returns
CRC/EDH Error count
Note
None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, XV_SdiRx_GetSdiMode(), and XV_SdiRx_ReadReg.

◆ XV_SdiRx_ResetStream()

void XV_SdiRx_ResetStream ( XV_SdiRx InstancePtr)

This function clears the SDI RX stream variables and sets them to the defaults.

Parameters
InstancePtris a pointer to the XV_SdiRx core instance.
Returns
None.
Note
This is required after a reset or init.

◆ XV_SdiRx_SetCallback()

int XV_SdiRx_SetCallback ( XV_SdiRx InstancePtr,
u32  HandlerType,
void *  CallbackFunc,
void *  CallbackRef 
)

This function installs an asynchronous callback function for the given HandlerType:

HandlerType                             Callback Function Type
-------------------------               ---------------------------------------
(XV_SDIRX_HANDLER_STREAM_DOWN)  StreamDownCallback
(XV_SDIRX_HANDLER_STREAM_UP)            StreamUpCallback
(XV_SDIRX_HANDLER_OVERFLOW)             OverFlowCallback
(XV_SDIRX_HANDLER_UNDERFLOW)            UnderFlowCallback
Parameters
InstancePtris a pointer to the SDI RX core instance.
HandlerTypespecifies the type of handler.
CallbackFuncis the address of the callback function.
CallbackRefis a user data item that will be passed to the callback function when it is invoked.
Returns
  • XST_SUCCESS if callback function installed successfully.
  • XST_INVALID_PARAM when HandlerType is invalid.
Note
Invoking this function for a handler that already has been installed replaces it with the new handler.

◆ XV_SdiRx_SetEdhErrCntTrigger()

void XV_SdiRx_SetEdhErrCntTrigger ( XV_SdiRx InstancePtr,
u32  Enable 
)

This function sets the type of EDH errors which will trigger the error count.

Parameters
InstancePtris a pointer to the XV_SdiRx core instance.
Enablespecifies the type of EDH errors to be allowed to increment the error counter.
  • Bit 0 = ANC EDH error
  • Bit 1 = ANC EDA error
  • Bit 2 = ANC IDH error
  • Bit 3 = ANC IDA error
  • Bit 4 = ANC UES error
  • Bit 5 = FF EDH error
  • Bit 6 = FF EDA error
  • Bit 7 = FF IDH error
  • Bit 8 = FF IDA error
  • Bit 9 = FF UES error
  • Bit 10 = AP EDH error
  • Bit 11 = AP EDA error
  • Bit 12 = AP IDH error
  • Bit 13 = AP IDA error
  • Bit 14 = AP UES error
  • Bit 15 = EDH packet checksum-error
Returns
None.
Note
None.

◆ XV_SdiRx_SetVidLckWindow()

void XV_SdiRx_SetVidLckWindow ( XV_SdiRx InstancePtr,
u32  Data 
)

This function sets the clock period for video lock signal to be asserted before video lock interrupt is triggered.

Parameters
InstancePtris a pointer to the XV_SdiRx core instance.
Dataspecifies the clock period.
Returns
None.
Note
None.

References XV_SdiRx_WriteReg.

◆ XV_SdiRx_Start()

void XV_SdiRx_Start ( XV_SdiRx InstancePtr,
XV_SdiRx_SearchMode  Mode 
)

This function enables SDI RX core's modes detection function.

Parameters
InstancePtris a pointer to the XV_SdiRx core instance.
Modespecifies the mode of SDI modes searching operation.
  • 0 = XV_SDIRX_SINGLESEARCHMODE_HD
  • 1 = XV_SDIRX_SINGLESEARCHMODE_SD
  • 2 = XV_SDIRX_SINGLESEARCHMODE_3G
  • 4 = XV_SDIRX_SINGLESEARCHMODE_6G
  • 5 = XV_SDIRX_SINGLESEARCHMODE_12GI
  • 6 = XV_SDIRX_SINGLESEARCHMODE_12GF
  • 10 = XV_SDIRX_MULTISEARCHMODE where the supported modes will be enabled by XV_SdiRx_EnableMode function
Returns
None.
Note
None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.

◆ XV_SdiRx_Stop()

int XV_SdiRx_Stop ( XV_SdiRx InstancePtr)

This function stops SDI RX core's modes detection.

Parameters
InstancePtris a pointer to the XV_SdiRx core instance.
Returns
  • XST_SUCCESS if SDI Rx stop is successful.
  • XST_FAILURE if SDI Rx stop is unsuccessful
Note
None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.

Referenced by XV_SdiRx_SelfTest().

◆ XV_SdiRx_VidBridgeDisable()

void XV_SdiRx_VidBridgeDisable ( XV_SdiRx InstancePtr)

This function disables the video bridge.

Parameters
InstancePtris a pointer to the XV_SdiRx core instance.
Returns
None.
Note
None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.

◆ XV_SdiRx_VidBridgeEnable()

void XV_SdiRx_VidBridgeEnable ( XV_SdiRx InstancePtr)

This function enables the video bridge.

Parameters
InstancePtris a pointer to the XV_SdiRx core instance.
Returns
None.
Note
None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.

◆ XV_SdiRx_WaitforPayLoad()

u32 XV_SdiRx_WaitforPayLoad ( XV_SdiRx InstancePtr)

This function is used to wait for the payload valid bit to be set.

This has to be called from application based on the callback indication of the video lock interrupt handler. Without this function being called, it may be guaranteed that payload bits are valid after video lock interrupt occured.

Parameters
InstancePtris a pointer to the XV_SdiRx core instance.
Returns
  • XST_FAILURE if the payload valid bits are not set.
  • XST_SUCCESS if ST352 registers are read and loaded to Rx structures
Note
None.

References XV_SdiRx_Config::BaseAddress, XV_SdiRx::Config, and XV_SdiRx_ReadReg.