hdcp22_tx_dp
Vitis Drivers API Documentation
xhdcp22_tx_dp.h File Reference

Data Structures

struct  XHdcp22_Tx_Dp_Config
 This typedef contains configuration information for the device. More...
 
struct  XHdcp22_Tx_Dp_Timer
 The current state and data for internal used timer. More...
 
struct  XHdcp22_Tx_Dp_PairingInfo
 This typedef contains the the used keys used for authentication with stored Km. More...
 
struct  XHdcp22_Tx_Dp_Info
 This typedef contains information about the HDCP22 transmitter. More...
 
struct  XHdcp22_Tx_Dp_LogItem
 This typedef is used to store logging events. More...
 
struct  XHdcp22_Tx_Dp_Log
 This typedef contains the HDCP22 log list. More...
 
struct  XHdcp22_Tx_Dp_Test
 This typedef contains the HDCP22 test parameters and settings. More...
 
struct  XHdcp22_Tx_Dp_RevocationList
 This structure contains the HDCP2 Revocation information. More...
 
struct  XHdcp22_Tx_Dp_Topology
 This structure contains the HDCP topology information. More...
 
struct  XHdcp22_Tx_Dp
 The XHdcpTx driver instance data. More...
 

Macros

#define XHDCP22_TX_H
 prevent circular inclusions by using protection macros More...
 
#define XHDCP22_TX_DEFAULT_RX_STATUS_POLLVALUE   10
 This value is the default polling interval defined in millseconds. More...
 
#define XHDCP22_TX_MAX_MESSAGE_SIZE   1+534
 Needed storage to transmit/receive messages to the HDCP2.2 receiver This includes 1 extra byte for the DDC address used. More...
 
#define XHDCP22_TX_REVOCATION_LIST_MAX_DEVICES   944
 Needed storage for the Device IDs in the revocation list. More...
 
#define XHDCP22_TX_MAX_STORED_PAIRINGINFO   2
 The list of maximum pairing info items to store. More...
 
#define XHDCP22_TX_LOG_BUFFER_SIZE   256
 The size of the log buffer. More...
 

Typedefs

typedef void(* XHdcp22_Tx_Dp_Callback )(void *CallbackRef)
 Callback type for status. More...
 
typedef int(* XHdcp22_Tx_DdcHandler )(u8 DeviceAddress, u16 ByteCount, u8 *BufferPtr, u8 Stop, void *RefPtr)
 Callback type used for calling DDC read and write functions. More...
 
typedef u32(* Xhdcp22_Tx_Dp_RdWrHandler )(void *HandlerRef, u32 offset, u8 *buf, u32 size)
 Type for pointer to four input function with a return value. More...
 

Enumerations

enum  XHdcp22_Tx_Dp_HandlerType { , XHDCP22_TX_HANDLER_DP_AUX_READ, XHDCP22_TX_HANDLER_DP_AUX_WRITE }
 These constants are used to identify callback functions. More...
 
enum  XHdcp22_Tx_Dp_StateType {
  XHDCP22_TX_STATE_H0, XHDCP22_TX_STATE_H1, XHDCP22_TX_STATE_A0, XHDCP22_TX_STATE_A1,
  XHDCP22_TX_STATE_A1_1, XHDCP22_TX_STATE_A1_NSK0, XHDCP22_TX_STATE_A1_NSK1, XHDCP22_TX_STATE_A1_SK0,
  XHDCP22_TX_STATE_A2, XHDCP22_TX_STATE_A2_1, XHDCP22_TX_STATE_A3, XHDCP22_TX_STATE_A4,
  XHDCP22_TX_STATE_A5, XHDCP22_TX_STATE_A6_A7_A8, XHDCP22_TX_STATE_A6, XHDCP22_TX_STATE_A7,
  XHDCP22_TX_STATE_A8, XHDCP22_TX_STATE_A9, XHDCP22_TX_STATE_A9_1, XHDCP22_TX_NUM_STATES
}
 These constants specify the different states in the internal state machine. More...
 
enum  XHdcp22_Tx_Dp_AuthenticationType {
  XHDCP22_TX_INCOMPATIBLE_RX, XHDCP22_TX_AUTHENTICATION_BUSY, XHDCP22_TX_AUTHENTICATED, XHDCP22_TX_UNAUTHENTICATED,
  XHDCP22_TX_REAUTHENTICATE_REQUESTED, XHDCP22_TX_DEVICE_IS_REVOKED, XHDCP22_TX_NO_SRM_LOADED
}
 These constants specify return values on polling with XHdcp22Tx_Dp_Poll. More...
 
enum  XHdcp22_Tx_Dp_ContentStreamType { XHDCP22_STREAMTYPE_0, XHDCP22_STREAMTYPE_1 }
 These constants are used to define the content stream type. More...
 
enum  XHdcp22_Tx_Dp_LogEvt {
  XHDCP22_TX_LOG_EVT_NONE, XHDCP22_TX_LOG_EVT_STATE, XHDCP22_TX_LOG_EVT_POLL_RESULT, XHDCP22_TX_LOG_EVT_ENABLED,
  XHDCP22_TX_LOG_EVT_RESET, XHDCP22_TX_LOG_EVT_ENCR_ENABLED, XHDCP22_TX_LOG_EVT_TEST_ERROR, XHDCP22_TX_LOG_EVT_DBG,
  XHDCP22_TX_LOG_EVT_LCCHK_COUNT, XHDCP22_TX_LOG_EVT_STRMMNGCHK_COUNT, XHDCP22_TX_LOG_EVT_USER, XHDCP22_TX_LOG_INVALID
}
 These constants are events as stored in the logging list. More...
 
enum  XHdcp22_Tx_Dp_Protocol { XHDCP22_TX_DP, XHDCP22_TX_HDMI }
 These constants are used to define the used protocol. More...
 
enum  XHdcp22_Tx_Dp_Mode { XHDCP22_TX_TRANSMITTER, XHDCP22_TX_REPEATER, XHDCP22_TX_CONVERTER }
 These constants are used to define the used mode. More...
 
enum  XHdcp22_Tx_Dp_TopologyField
 These constants are used to identify fields inside the topology structure. More...
 

Functions

XHdcp22_Tx_Dp_ConfigXHdcp22Tx_Dp_LookupConfig (u16 DeviceId)
 This function returns a reference to an XHdcp22_Tx_Dp_Config structure based on the core id, DeviceId. More...
 
int XHdcp22Tx_Dp_CfgInitialize (XHdcp22_Tx_Dp *InstancePtr, XHdcp22_Tx_Dp_Config *CfgPtr, UINTPTR EffectiveAddr)
 This function initializes the HDCP22 TX core. More...
 
int XHdcp22Tx_Dp_Reset (XHdcp22_Tx_Dp *InstancePtr)
 This function resets the state machine. More...
 
int XHdcp22Tx_Dp_ClearPairingInfo (XHdcp22_Tx_Dp *InstancePtr)
 This function clear the global pairing info structure, so every HDCP2.2 receiver will have to go through the 'no stored km' sequence to authenticate. More...
 
int XHdcp22Tx_Dp_Authenticate (XHdcp22_Tx_Dp *InstancePtr)
 This function is a called to start authentication. More...
 
int XHdcp22Tx_Dp_Poll (XHdcp22_Tx_Dp *InstancePtr)
 This function is a executed every time to trigger the state machine. More...
 
int XHdcp22Tx_Dp_Enable (XHdcp22_Tx_Dp *InstancePtr)
 This function enables the state machine and acts as a resume. More...
 
int XHdcp22Tx_Dp_Disable (XHdcp22_Tx_Dp *InstancePtr)
 This function disables the state machine and acts as a pause. More...
 
int XHdcp22Tx_Dp_EnableEncryption (XHdcp22_Tx_Dp *InstancePtr)
 This function enables HDMI stream encryption by enabling the cipher. More...
 
int XHdcp22Tx_Dp_DisableEncryption (XHdcp22_Tx_Dp *InstancePtr)
 This function disables HDMI stream encryption by disabling the cipher. More...
 
void XHdcp22Tx_Dp_EnableBlank (XHdcp22_Tx_Dp *InstancePtr)
 This function enables the blank output for the cipher. More...
 
void XHdcp22Tx_Dp_DisableBlank (XHdcp22_Tx_Dp *InstancePtr)
 This function disables the blank output for the cipher. More...
 
u8 XHdcp22Tx_Dp_IsEnabled (XHdcp22_Tx_Dp *InstancePtr)
 This function returns the current enabled state. More...
 
u8 XHdcp22Tx_Dp_IsEncryptionEnabled (XHdcp22_Tx_Dp *InstancePtr)
 This function returns the current encryption enabled state. More...
 
u8 XHdcp22Tx_Dp_IsInProgress (XHdcp22_Tx_Dp *InstancePtr)
 This function returns the current progress state. More...
 
u8 XHdcp22Tx_Dp_IsAuthenticated (XHdcp22_Tx_Dp *InstancePtr)
 This function returns the current authenticated state. More...
 
u8 XHdcp22Tx_Dp_IsDwnstrmCapable (XHdcp22_Tx_Dp *InstancePtr)
 This function checks if the downstream device HDCP2Version register is set. More...
 
u32 XHdcp22Tx_Dp_GetVersion (XHdcp22_Tx_Dp *InstancePtr)
 This function reads the version. More...
 
int XHdcp22Tx_Dp_SetCallback (XHdcp22_Tx_Dp *InstancePtr, XHdcp22_Tx_Dp_HandlerType HandlerType, void *CallbackFunc, void *CallbackRef)
 This function installs callback functions for the given HandlerType: More...
 
XTmrCtr * XHdcp22Tx_Dp_GetTimer (XHdcp22_Tx_Dp *InstancePtr)
 This function returns the pointer to the internal timer control instance needed for connecting the timer interrupt to an interrupt controller. More...
 
void XHdcp22Tx_Dp_LogReset (XHdcp22_Tx_Dp *InstancePtr, u8 Verbose)
 This function clears the log pointers. More...
 
void XHdcp22Tx_Dp_LogWr (XHdcp22_Tx_Dp *InstancePtr, XHdcp22_Tx_Dp_LogEvt Evt, u16 Data)
 This function writes HDCP TX logs into buffer. More...
 
XHdcp22_Tx_Dp_LogItemXHdcp22Tx_Dp_LogRd (XHdcp22_Tx_Dp *InstancePtr)
 This function provides the log information from the log buffer. More...
 
void XHdcp22Tx_Dp_LogDisplay (XHdcp22_Tx_Dp *InstancePtr)
 This function prints the content of log buffer. More...
 
u32 XHdcp22Tx_Dp_LogGetTimeUSecs (XHdcp22_Tx_Dp *InstancePtr)
 This function returns the time expired since a log reset was called. More...
 
void XHdcp22Tx_Dp_SetMessagePollingValue (XHdcp22_Tx_Dp *InstancePtr, u32 PollingValue)
 This function can be used to change the polling value. More...
 
void XHdcp22Tx_Dp_Info (XHdcp22_Tx_Dp *InstancePtr)
 This function prints the state machine information. More...
 
void XHdcp22Tx_Dp_LoadLc128 (XHdcp22_Tx_Dp *InstancePtr, const u8 *Lc128Ptr)
 This function is used to load the Lc128 value by copying the contents of the array referenced by Lc128Ptr into the cipher. More...
 
int XHdcp22Tx_Dp_LoadRevocationTable (XHdcp22_Tx_Dp *InstancePtr, const u8 *SrmPtr)
 This function is used to load the system renewability messages (SRMs) which carries the Receiver ID revocation list. More...
 
XHdcp22_Tx_Dp_RevocationListXHdcp22Tx_Dp_GetRevocationReceiverIdList (XHdcp22_Tx_Dp *InstancePtr)
 This function returns a pointer to the Revocation Receiver ID list. More...
 
u8 XHdcp22Tx_Dp_IsDeviceRevoked (XHdcp22_Tx_Dp *InstancePtr, u8 *RecvIdPtr)
 This function searches for the specified ReceiverID in the revocation list. More...
 
void XHdcp22Tx_Dp_RevokeReceiverId (XHdcp22_Tx_Dp *InstancePtr, u8 *ReceiverIdPtr)
 This function adds a ReceiverID to RevocationList. More...
 
XHdcp22_Tx_Dp_TopologyXHdcp22Tx_Dp_GetTopology (XHdcp22_Tx_Dp *InstancePtr)
 This function returns a pointer to the downstream topology structure. More...
 
u8 * XHdcp22Tx_Dp_GetTopologyReceiverIdList (XHdcp22_Tx_Dp *InstancePtr)
 This function returns a pointer to the ReceiverID list in the repeater topology structure. More...
 
u32 XHdcp22Tx_Dp_GetTopologyField (XHdcp22_Tx_Dp *InstancePtr, XHdcp22_Tx_Dp_TopologyField Field)
 This function is used to get various fields inside the topology structure. More...
 
u8 XHdcp22Tx_Dp_IsRepeater (XHdcp22_Tx_Dp *InstancePtr)
 This function returns the current repeater mode status. More...
 
void XHdcp22Tx_Dp_SetRepeater (XHdcp22_Tx_Dp *InstancePtr, u8 Set)
 This function sets the repeater mode status. More...
 
void XHdcp22Tx_Dp_SetContentStreamType (XHdcp22_Tx_Dp *InstancePtr, XHdcp22_Tx_Dp_ContentStreamType StreamType)
 This function sets the Content Stream Type. More...
 
void XHdcp22Tx_Dp_timer_attach (XHdcp22_Tx_Dp *InstancePtr, XTmrCtr *TmrCtrPtr)
 This function is to attache the HDCP22 timer instance to DP TX subsystem's timer. More...
 
void XHdcp22Tx_Dp_SetHdcp22OverProtocol (XHdcp22_Tx_Dp *InstancePtr, XHdcp22_Tx_Dp_Protocol protocol)
 This function is to set the protocol (HDMI/DP) over which HDCP22 is happening. More...
 
void XHdcp22Tx_Dp_TimerHandler (void *CallbackRef, u8 TmrCntNumber)
 This function handles timer interrupts. More...
 
void XHdcp22Tx_Dp_Handle_Cp_Irq (XHdcp22_Tx_Dp *InstancePtr)
 This function is to read the RX_STATUS when a cp_irq recieved. More...
 
int XHdcp22Tx_Dp_SetLaneCount (XHdcp22_Tx_Dp *InstancePtr, u8 LaneCount)
 This function set the lane count of an hdcp22 interface. More...