hdcp1x
Vitis Drivers API Documentation
xhdcp1x.h File Reference

Data Structures

struct  XHdcp1x_Config
 This typedef contains configuration information for the HDCP core. More...
 
struct  XHdcp1x_CipherStats
 This typedef defines the statistics collected by a cipher instance. More...
 
struct  XHdcp1x_Cipher
 This typedef contains an instance of the HDCP cipher core. More...
 
struct  XHdcp1x_PortStats
 This typedef defines the statistics collected by a port instance. More...
 
struct  XHdcp1x_RepeaterExchange
 This typedef contains an instance of the HDCP Repeater values to exchanged between HDCP Tx and HDCP Rx. More...
 
struct  XHdcp1x_PortStruct
 This typedef contains an instance of the HDCP port. More...
 
struct  XHdcp1x_TxStats
 This typedef defines the statistics collected transmit port instance. More...
 
struct  XHdcp1x_RxStats
 This typedef defines the statistics collected receive port instance. More...
 
struct  XHdcp1x_RxEncyptionWatch
 This typedef is used to keep a tab on the changes in the encryption status of the HDCP receiver, depending on whether the incoming data non the receiver is HDCP protected or not. More...
 
struct  XHdcp1x_Tx
 This typedef contains the transmit HDCP interface. More...
 
struct  XHdcp1x_Rx
 This typedef contains the receive HDCP interface. More...
 
struct  XHdcp1x
 This typedef contains an instance of an HDCP interface. More...
 

Macros

#define XHDCP1X_H
 < Prevent circular inclusions by using protection macros More...
 
#define XHDCP1X_KSV_SIZE   5
 Size of each hdcp 1.4 Public Key in bytes. More...
 
#define XHDCP1X_RPTR_MAX_CASCADE   4
 Maximum depth that the Repeater can support on the downstream interface. More...
 
#define XHDCP1X_RPTR_MAX_DEVS_COUNT   32
 Maximum devices that can be cascaded to the Repeater. More...
 
#define XHdcp1x_SetCallBack   XHdcp1x_SetCallback
 Alternative name for the function to set callback for HDCP functions. More...
 
#define UNUSED(x)   ((void)x)
 Used to remove warnings for unused variables. More...
 
#define XHDCP1X_ADDITIONAL_DEBUG   0
 Adds extra functions for additional debugging. More...
 

Typedefs

typedef void(* XHdcp1x_Callback )(void *CallbackRef)
 This typedef defines the callback interface that is to be used for interrupts within this driver. More...
 
typedef void(* XHdcp1x_Printf )(const char *fmt,...)
 This typedef defines the function interface that is to be used for debug print statements within this driver. More...
 
typedef void(* XHdcp1x_LogMsg )(const char *fmt,...)
 This typedef defines the function interface that is to be used for debug log message statements within this driver. More...
 
typedef int(* XHdcp1x_RunDdcHandler )(u8 DeviceAddress, u16 ByteCount, u8 *BufferPtr, u8 Stop, void *RefPtr)
 Callback type used for calling DDC read and write functions. More...
 
typedef void(* XHdcp1x_SetDdcHandler )(void *HandlerRef, u32 Data)
 This typedef defines the function interface that is to be used for setting the DDC handler for HDMI implementation of HDCP functionality over HDMI within this driver. More...
 
typedef u32(* XHdcp1x_GetDdcHandler )(void *HandlerRef)
 This typedef defines the function interface that is to be used to get the DDC handler for implementation of HDCP functionality over HDMI within this driver. More...
 
typedef u64 XHdcp1x_Ksv
 This typedef defines a memory to store a Key Selection Vector (KSV) More...
 
typedef struct XHdcp1x_PortStruct XHdcp1x_Port
 This typedef contains an instance of the HDCP port. More...
 
typedef int(* XHdcp1x_TimerStart )(void *InstancePtr, u16 TmoInMs)
 This typedef defines the function interface that is to be used for starting a one shot timer on behalf of an HDCP interface within the underlying platform. More...
 
typedef int(* XHdcp1x_TimerStop )(void *InstancePtr)
 This typedef defines the function interface that is to be used for stopping a timer on behalf of an HDCP interface. More...
 
typedef int(* XHdcp1x_TimerDelay )(void *InstancePtr, u16 DelayInMs)
 This typedef defines the function interface that is to be used for performing a busy delay on behalf of an HDCP interface. More...
 
typedef int(* XHdcp1x_KsvRevokeCheck )(const XHdcp1x *InstancePtr, u64 Ksv)
 This typedef defines the function interface that is to be used for checking a specific KSV against the platforms revocation list. More...
 

Enumerations

enum  XHdcp1x_Rx_StateType
 This enumerates the State Types for HDCP Receiver state machine. More...
 
enum  XHdcp1x_Tx_StateType
 This enumerates the Event Types for HDCP Transmitter state machine. More...
 
enum  XHdcp1x_HandlerType
 These constants are used to identify callback functions. More...
 
enum  XHdcp1x_RepeaterStateMachineHandlerType
 This enumerates the call back for the HDCP Repeater Tx state machine. More...
 
enum  XHdcp1x_TopologyField
 These constants are used to identify fields inside the topology structure. More...
 

Functions

XHdcp1x_ConfigXHdcp1x_LookupConfig (u16 DeviceId)
 This function returns a reference to an XHdcp1x_Config structure based on specified device ID. More...
 
int XHdcp1x_CfgInitialize (XHdcp1x *InstancePtr, const XHdcp1x_Config *CfgPtr, void *PhyIfPtr, UINTPTR EffectiveAddr)
 This function retrieves the configuration for this HDCP instance and fills in the InstancePtr->Config structure. More...
 
int XHdcp1x_SelfTest (XHdcp1x *InstancePtr)
 This function self tests an HDCP interface. More...
 
int XHdcp1x_Poll (XHdcp1x *InstancePtr)
 This function polls an HDCP interface. More...
 
int XHdcp1x_DownstreamReady (XHdcp1x *InstancePtr)
 This function posts a DOWNSTREAMREADY event to an HDCP interface. More...
 
int XHdcp1x_GetRepeaterInfo (XHdcp1x *InstancePtr, XHdcp1x_RepeaterExchange *RepeaterInfoPtr)
 This function copies the V'H0, V'H1, V'H2, V'H3, V'H4, KSVList and BInfo values in the HDCP RX HDCP Instance for Repeater validation . More...
 
int XHdcp1x_SetRepeater (XHdcp1x *InstancePtr, u8 State)
 This function sets the Repeater functionality for an HDCP interface. More...
 
int XHdcp1x_Reset (XHdcp1x *InstancePtr)
 This function resets an HDCP interface. More...
 
int XHdcp1x_Enable (XHdcp1x *InstancePtr)
 This function enables an HDCP interface. More...
 
int XHdcp1x_Disable (XHdcp1x *InstancePtr)
 This function disables an HDCP interface. More...
 
int XHdcp1x_SetPhysicalState (XHdcp1x *InstancePtr, int IsUp)
 This function updates the state of the underlying physical interface. More...
 
int XHdcp1x_SetLaneCount (XHdcp1x *InstancePtr, int LaneCount)
 This function sets the lane count of a hdcp interface. More...
 
int XHdcp1x_Authenticate (XHdcp1x *InstancePtr)
 This function initiates authentication of an HDCP interface. More...
 
int XHdcp1x_ReadDownstream (XHdcp1x *InstancePtr)
 This function initiates downstream read of READY bit and consequently the second part of Repeater authentication. More...
 
int XHdcp1x_IsInProgress (const XHdcp1x *InstancePtr)
 This function queries an interface to determine if authentication is in progress. More...
 
int XHdcp1x_IsAuthenticated (const XHdcp1x *InstancePtr)
 This function queries an interface to determine if it has successfully completed authentication. More...
 
int XHdcp1x_IsInComputations (const XHdcp1x *InstancePtr)
 This function queries an interface to determine if it is in the state of computations or not. More...
 
int XHdcp1x_IsInWaitforready (const XHdcp1x *InstancePtr)
 This function queries an interface to determine if it is in the wait-for-ready state or not. More...
 
int XHdcp1x_IsDwnstrmCapable (const XHdcp1x *InstancePtr)
 This function queries the device connected to the downstream interface to determine if it supports hdcp or not. More...
 
int XHdcp1x_IsEnabled (const XHdcp1x *InstancePtr)
 This function queries an interface to determine if it is enabled. More...
 
u64 XHdcp1x_GetEncryption (const XHdcp1x *InstancePtr)
 This function retrieves the current encryption map of the video streams traversing an hdcp interface. More...
 
int XHdcp1x_IsEncrypted (const XHdcp1x *InstancePtr)
 This function determines if the video stream is encrypted. More...
 
int XHdcp1x_EnableEncryption (XHdcp1x *InstancePtr, u64 Map)
 This function enables encryption on a series of streams within an HDCP interface. More...
 
int XHdcp1x_DisableEncryption (XHdcp1x *InstancePtr, u64 Map)
 This function disables encryption on a series of streams within an HDCP interface. More...
 
int XHdcp1x_SetKeySelect (XHdcp1x *InstancePtr, u8 KeySelect)
 This function sets the key selection vector that is to be used by the HDCP cipher. More...
 
void XHdcp1x_HandleTimeout (void *InstancePtr)
 This function handles a timeout on an HDCP interface. More...
 
int XHdcp1x_SetCallback (XHdcp1x *InstancePtr, XHdcp1x_HandlerType HandlerType, void *CallbackFunc, void *CallbackRef)
 This function installs callback functions for the given HandlerType. More...
 
void XHdcp1x_CipherIntrHandler (void *InstancePtr)
 This function is the cipher interrupt handler for the HDCP module. More...
 
void XHdcp1x_PortIntrHandler (void *InstancePtr, u32 IntCause)
 This function is the port interrupt handler for the HDCP module. More...
 
void XHdcp1x_SetDebugPrintf (XHdcp1x_Printf PrintfFunc)
 This function sets the debug printf function for the module. More...
 
void XHdcp1x_SetDebugLogMsg (XHdcp1x_LogMsg LogFunc)
 This function sets the debug log message function for the module. More...
 
void XHdcp1x_SetKsvRevokeCheck (XHdcp1x_KsvRevokeCheck RevokeCheckFunc)
 This function sets the KSV revocation list check function for the module. More...
 
void XHdcp1x_SetTimerStart (XHdcp1x *InstancePtr, XHdcp1x_TimerStart TimerStartFunc)
 This function sets timer start function for the module. More...
 
void XHdcp1x_SetTimerStop (XHdcp1x *InstancePtr, XHdcp1x_TimerStop TimerStopFunc)
 This function sets timer stop function for the module. More...
 
void XHdcp1x_SetTimerDelay (XHdcp1x *InstancePtr, XHdcp1x_TimerDelay TimerDelayFunc)
 This function sets timer busy delay function for the module. More...
 
u32 XHdcp1x_GetDriverVersion (void)
 This function retrieves the version of the HDCP driver software. More...
 
u32 XHdcp1x_GetVersion (const XHdcp1x *InstancePtr)
 This function retrieves the cipher version of an HDCP interface. More...
 
void XHdcp1x_Info (const XHdcp1x *InstancePtr)
 This function performs a debug display of an HDCP instance. More...
 
void XHdcp1x_ProcessAKsv (XHdcp1x *InstancePtr)
 This function processes the AKsv. More...
 
void * XHdcp1x_GetTopology (XHdcp1x *InstancePtr)
 This function returns a pointer to the downstream Topology structure. More...
 
void XHdcp1x_DisableBlank (XHdcp1x *InstancePtr)
 This function disables the blank output for the cipher. More...
 
void XHdcp1x_EnableBlank (XHdcp1x *InstancePtr)
 This function enables the blank output for the cipher. More...
 
void XHdcp1x_SetTopologyField (XHdcp1x *InstancePtr, XHdcp1x_TopologyField Field, u8 Value)
 This function is used to set various fields inside the topology structure. More...
 
u32 XHdcp1x_GetTopologyField (XHdcp1x *InstancePtr, XHdcp1x_TopologyField Field)
 This function is used to get various fields inside the topology structure. More...
 
u8 * XHdcp1x_GetTopologyKSVList (XHdcp1x *InstancePtr)
 This function returns the value of KSV List read in the downstream interface of the repeater topology. More...
 
u8 * XHdcp1x_GetTopologyBKSV (XHdcp1x *InstancePtr)
 This function returns the value of KSV of the device attached to the downstream interface of the repeater. More...
 
int XHdcp1x_IsRepeater (XHdcp1x *InstancePtr)
 This function return if the HDCP interface is a repeater in case of Rx or is connected to a repeater in case of Tx. More...
 
void XHdcp1x_SetTopology (XHdcp1x *InstancePtr, const XHdcp1x_RepeaterExchange *TopologyPtr)
 This function sets the RepeaterInfo value int the HDCP RX instance. More...
 
void XHdcp1x_SetTopologyKSVList (XHdcp1x *InstancePtr, u8 *ListPtr, u32 ListSize)
 This function sets the KSVList value(s) in the HDCP RX KSV Fifo register space for the upstream interface to read. More...
 
void XHdcp1x_SetTopologyUpdate (XHdcp1x *InstancePtr)
 This function does the necessary actions to update HDCP after the topology has been set. More...
 
void XHdcp1x_SetHdmiMode (XHdcp1x *InstancePtr, u8 Value)
 This function set the HDMI_MODE in the BStatus register of the HDMI DDC space. More...