hdcp22_tx
Vitis Drivers API Documentation
xhdcp22_tx.h File Reference

Data Structures

struct  XHdcp22_Tx_Config
 This typedef contains configuration information for the device. More...
 
struct  XHdcp22_Tx_Timer
 The current state and data for internal used timer. More...
 
struct  XHdcp22_Tx_PairingInfo
 This typedef contains the the used keys used for authentication with stored Km. More...
 
struct  XHdcp22_Tx_Info
 This typedef contains information about the HDCP22 transmitter. More...
 
struct  XHdcp22_Tx_LogItem
 This typedef is used to store logging events. More...
 
struct  XHdcp22_Tx_Log
 This typedef contains the HDCP22 log list. More...
 
struct  XHdcp22_Tx_Test
 This typedef contains the HDCP22 test parameters and settings. More...
 
struct  XHdcp22_Tx_RevocationList
 This structure contains the HDCP2 Revocation information. More...
 
struct  XHdcp22_Tx_Topology
 This structure contains the HDCP topology information. More...
 
struct  XHdcp22_Tx
 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_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...
 

Enumerations

enum  XHdcp22_Tx_HandlerType
 These constants are used to identify callback functions. More...
 
enum  XHdcp22_Tx_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_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_Poll. More...
 
enum  XHdcp22_Tx_ContentStreamType { XHDCP22_STREAMTYPE_0, XHDCP22_STREAMTYPE_1 }
 These constants are used to define the content stream type. More...
 
enum  XHdcp22_Tx_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_Protocol { XHDCP22_TX_HDMI, XHDCP22_TX_DP }
 These constants are used to define the used protocol. More...
 
enum  XHdcp22_Tx_Mode { XHDCP22_TX_TRANSMITTER, XHDCP22_TX_REPEATER, XHDCP22_TX_CONVERTER }
 These constants are used to define the used mode. More...
 
enum  XHdcp22_Tx_TopologyField
 These constants are used to identify fields inside the topology structure. More...
 

Functions

XHdcp22_Tx_ConfigXHdcp22Tx_LookupConfig (u16 DeviceId)
 This function returns a reference to an XHdcp22_Tx_Config structure based on the core id, DeviceId. More...
 
int XHdcp22Tx_CfgInitialize (XHdcp22_Tx *InstancePtr, XHdcp22_Tx_Config *CfgPtr, UINTPTR EffectiveAddr)
 This function initializes the HDCP22 TX core. More...
 
int XHdcp22Tx_Reset (XHdcp22_Tx *InstancePtr)
 This function resets the state machine. More...
 
int XHdcp22Tx_ClearPairingInfo (XHdcp22_Tx *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_Authenticate (XHdcp22_Tx *InstancePtr)
 This function is a called to start authentication. More...
 
int XHdcp22Tx_Poll (XHdcp22_Tx *InstancePtr)
 This function is a executed every time to trigger the state machine. More...
 
int XHdcp22Tx_Enable (XHdcp22_Tx *InstancePtr)
 This function enables the state machine and acts as a resume. More...
 
int XHdcp22Tx_Disable (XHdcp22_Tx *InstancePtr)
 This function disables the state machine and acts as a pause. More...
 
int XHdcp22Tx_EnableEncryption (XHdcp22_Tx *InstancePtr)
 This function enables HDMI stream encryption by enabling the cipher. More...
 
int XHdcp22Tx_DisableEncryption (XHdcp22_Tx *InstancePtr)
 This function disables HDMI stream encryption by disabling the cipher. More...
 
void XHdcp22Tx_EnableBlank (XHdcp22_Tx *InstancePtr)
 This function enables the blank output for the cipher. More...
 
void XHdcp22Tx_DisableBlank (XHdcp22_Tx *InstancePtr)
 This function disables the blank output for the cipher. More...
 
u8 XHdcp22Tx_IsEnabled (XHdcp22_Tx *InstancePtr)
 This function returns the current enabled state. More...
 
u8 XHdcp22Tx_IsEncryptionEnabled (XHdcp22_Tx *InstancePtr)
 This function returns the current encryption enabled state. More...
 
u8 XHdcp22Tx_IsInProgress (XHdcp22_Tx *InstancePtr)
 This function returns the current progress state. More...
 
u8 XHdcp22Tx_IsAuthenticated (XHdcp22_Tx *InstancePtr)
 This function returns the current authenticated state. More...
 
u8 XHdcp22Tx_IsDwnstrmCapable (XHdcp22_Tx *InstancePtr)
 This function checks if the downstream device HDCP2Version register is set. More...
 
u32 XHdcp22Tx_GetVersion (XHdcp22_Tx *InstancePtr)
 This function reads the version. More...
 
int XHdcp22Tx_SetCallback (XHdcp22_Tx *InstancePtr, XHdcp22_Tx_HandlerType HandlerType, void *CallbackFunc, void *CallbackRef)
 This function installs callback functions for the given HandlerType: More...
 
XTmrCtr * XHdcp22Tx_GetTimer (XHdcp22_Tx *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_LogReset (XHdcp22_Tx *InstancePtr, u8 Verbose)
 This function clears the log pointers. More...
 
void XHdcp22Tx_LogWr (XHdcp22_Tx *InstancePtr, XHdcp22_Tx_LogEvt Evt, u16 Data)
 This function writes HDCP TX logs into buffer. More...
 
XHdcp22_Tx_LogItemXHdcp22Tx_LogRd (XHdcp22_Tx *InstancePtr)
 This function provides the log information from the log buffer. More...
 
void XHdcp22Tx_LogDisplay (XHdcp22_Tx *InstancePtr)
 This function prints the content of log buffer. More...
 
u32 XHdcp22Tx_LogGetTimeUSecs (XHdcp22_Tx *InstancePtr)
 This function returns the time expired since a log reset was called. More...
 
void XHdcp22Tx_SetMessagePollingValue (XHdcp22_Tx *InstancePtr, u32 PollingValue)
 This function can be used to change the polling value. More...
 
void XHdcp22Tx_Info (XHdcp22_Tx *InstancePtr)
 This function prints the state machine information. More...
 
void XHdcp22Tx_LoadLc128 (XHdcp22_Tx *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_LoadRevocationTable (XHdcp22_Tx *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_RevocationListXHdcp22Tx_GetRevocationReceiverIdList (XHdcp22_Tx *InstancePtr)
 This function returns a pointer to the Revocation Receiver ID list. More...
 
u8 XHdcp22Tx_IsDeviceRevoked (XHdcp22_Tx *InstancePtr, u8 *RecvIdPtr)
 This function searches for the specified ReceiverID in the revocation list. More...
 
void XHdcp22Tx_RevokeReceiverId (XHdcp22_Tx *InstancePtr, u8 *ReceiverIdPtr)
 This function adds a ReceiverID to RevocationList. More...
 
XHdcp22_Tx_TopologyXHdcp22Tx_GetTopology (XHdcp22_Tx *InstancePtr)
 This function returns a pointer to the downstream topology structure. More...
 
u8 * XHdcp22Tx_GetTopologyReceiverIdList (XHdcp22_Tx *InstancePtr)
 This function returns a pointer to the ReceiverID list in the repeater topology structure. More...
 
u32 XHdcp22Tx_GetTopologyField (XHdcp22_Tx *InstancePtr, XHdcp22_Tx_TopologyField Field)
 This function is used to get various fields inside the topology structure. More...
 
u8 XHdcp22Tx_IsRepeater (XHdcp22_Tx *InstancePtr)
 This function returns the current repeater mode status. More...
 
void XHdcp22Tx_SetRepeater (XHdcp22_Tx *InstancePtr, u8 Set)
 This function sets the repeater mode status. More...
 
void XHdcp22Tx_SetContentStreamType (XHdcp22_Tx *InstancePtr, XHdcp22_Tx_ContentStreamType StreamType)
 This function sets the Content Stream Type. More...