hdcp22_rx: xhdcp22_rx.h File Reference

| hdcp22_rx Xilinx SDK Drivers API Documentation

- Overview
- Data Structures
- APIs
- File List

Data Structures | Macros | Typedefs | Enumerations | Functions
xhdcp22_rx.h File Reference

## Data Structures
struct | XHdcp22_Rx_TestDdcReg
| This typedef is the test DDC register definition. More...
struct | XHdcp22_Rx_Test
| This typedef is the test structure used for standalone driver testing. More...
struct | XHdcp22_Rx_Handles
| This typedef is used to store handles to function pointers. More...
struct | XHdcp22_Rx_Parameters
| This typedef is used to store temporary parameters for computations. More...
struct | XHdcp22_Rx_LogItem
| This typedef is used to store logging events. More...
struct | XHdcp22_Rx_Log
| This typedef contains the HDCP22 log list. More...
struct | XHdcp22_Rx_Info
| This typedef provides information about status of HDCP-RX authentication. More...
struct | XHdcp22_Rx_Topology
| This typedef is the repeater topology table used to communicate topology information to the receiver upstream interface. More...
struct | XHdcp22_Rx_Config
| This typedef contains configuration information for the device. More...
struct | XHdcp22_Rx
| The XHdcp driver instance data. More...

## Macros
#define | XHDCP22_RX_MAX_MESSAGE_SIZE 534
| Maximum message size. More...
#define | XHDCP22_RX_LOG_BUFFER_SIZE 256
| The size of the log buffer. More...
#define | XHDCP22_RX_ENCRYPTION_STATUS_INTERVAL 1000
| 1sec encryption status check interval More...
#define | XHDCP22_RX_REPEATERAUTH_ACK_INTERVAL 2000
| 2sec RepeaterAuth Ack interval More...

## Typedefs
typedef void *(* | XHdcp22_Rx_StateFunc )(void *InstancePtr)
| Type for pointer to state function. More...
typedef void(* | XHdcp22_Rx_RunHandler )(void *HandlerRef)
| Type for pointer to single input function. More...
typedef void(* | XHdcp22_Rx_SetHandler )(void *HandlerRef, u32 Data)
| Type for pointer to two input function. More...
typedef u32(* | XHdcp22_Rx_GetHandler )(void *HandlerRef)
| Type for pointer to single input function with a return value. More...

## Enumerations
enum | XHdcp22_Rx_Protocol { XHDCP22_RX_HDMI, XHDCP22_RX_DP }
| These constants are used to define the protocol. More...
enum | XHdcp22_Rx_Mode { XHDCP22_RX_RECEIVER, XHDCP22_RX_REPEATER, XHDCP22_RX_CONVERTER }
| These constants are used to define the mode. More...
enum | XHdcp22_Rx_HandlerType { XHDCP22_RX_HANDLER_UNDEFINED, XHDCP22_RX_HANDLER_DDC_SETREGADDR, XHDCP22_RX_HANDLER_DDC_SETREGDATA, XHDCP22_RX_HANDLER_DDC_GETREGDATA, XHDCP22_RX_HANDLER_DDC_GETWBUFSIZE, XHDCP22_RX_HANDLER_DDC_GETRBUFSIZE, XHDCP22_RX_HANDLER_DDC_ISWBUFEMPTY, XHDCP22_RX_HANDLER_DDC_ISRBUFEMPTY, XHDCP22_RX_HANDLER_DDC_CLEARRBUF, XHDCP22_RX_HANDLER_DDC_CLEARWBUF, XHDCP22_RX_HANDLER_AUTHENTICATED, XHDCP22_RX_HANDLER_UNAUTHENTICATED, XHDCP22_RX_HANDLER_AUTHENTICATION_REQUEST, XHDCP22_RX_HANDLER_TOPOLOGY_UPDATE, XHDCP22_RX_HANDLER_STREAM_MANAGE_REQUEST, XHDCP22_RX_HANDLER_ENCRYPTION_UPDATE, XHDCP22_RX_HANDLER_INVALID }
| These constants are used to identify callback functions. More...
enum | XHdcp22_Rx_StateType { XHDCP22_RX_STATE_UNDEFINED = 0x000, XHDCP22_RX_STATE_B0_WAIT_AKEINIT = 0xB00, XHDCP22_RX_STATE_B1_SEND_AKESENDCERT = 0xB10, XHDCP22_RX_STATE_B1_WAIT_AKEKM = 0xB11, XHDCP22_RX_STATE_B1_SEND_AKESENDHPRIME = 0xB12, XHDCP22_RX_STATE_B1_SEND_AKESENDPAIRINGINFO = 0xB13, XHDCP22_RX_STATE_B1_WAIT_LCINIT = 0xB14, XHDCP22_RX_STATE_B2_SEND_LCSENDLPRIME = 0xB20, XHDCP22_RX_STATE_B2_WAIT_SKESENDEKS = 0xB21, XHDCP22_RX_STATE_B3_COMPUTE_KS = 0xB30, XHDCP22_RX_STATE_B4_AUTHENTICATED = 0xB40, XHDCP22_RX_STATE_C4_WAIT_FOR_DOWNSTREAM = 0xC40, XHDCP22_RX_STATE_C5_SEND_RECEIVERIDLIST = 0xC50, XHDCP22_RX_STATE_C5_SEND_RECEIVERIDLIST_DONE = 0xC51, XHDCP22_RX_STATE_C6_VERIFY_RECEIVERIDLISTACK = 0xC60, XHDCP22_RX_STATE_C7_WAIT_STREAM_MANAGEMENT = 0xC70, XHDCP22_RX_STATE_C7_SEND_STREAM_READY = 0xC71, XHDCP22_RX_STATE_C7_SEND_STREAM_READY_DONE = 0xC72, XHDCP22_RX_STATE_C8_AUTHENTICATED = 0xC80, XHDCP22_RX_STATE_INVALID }
| These constants are the authentication and key exchange states. More...
enum | XHdcp22_Rx_AuthenticationType { XHDCP22_RX_UNAUTHENTICATED, XHDCP22_RX_AUTHENTICATION_BUSY, XHDCP22_RX_AUTHENTICATED, XHDCP22_RX_REAUTHENTICATE_REQUESTED }
| These constants define the authentication status. More...
enum | XHdcp22_Rx_LogEvt { , XHDCP22_RX_LOG_EVT_INFO, XHDCP22_RX_LOG_EVT_INFO_STATE, XHDCP22_RX_LOG_EVT_INFO_MESSAGE, XHDCP22_RX_LOG_EVT_DEBUG, XHDCP22_RX_LOG_EVT_ERROR, XHDCP22_RX_LOG_EVT_USER, XHDCP22_RX_LOG_EVT_INVALID }
| These constants are the general logging events. More...
enum | XHdcp22_Rx_TopologyField
| These constants are used to identify fields inside the topology structure. More...

## Functions
XHdcp22_Rx_Config * | XHdcp22Rx_LookupConfig (u16 DeviceId)
| This function returns a reference to an XHdcp22_Rx_Config structure based on the core id, DeviceId. More...
int | XHdcp22Rx_CfgInitialize (XHdcp22_Rx *InstancePtr, XHdcp22_Rx_Config *ConfigPtr, UINTPTR EffectiveAddr)
| Initialize the instance provided by the caller based on the given configuration data. More...
int | XHdcp22Rx_Enable (XHdcp22_Rx *InstancePtr)
| This function enables the HDCP22-RX state machine. More...
int | XHdcp22Rx_Disable (XHdcp22_Rx *InstancePtr)
| This function disables the HDCP22-RX state machine. More...
int | XHdcp22Rx_Reset (XHdcp22_Rx *InstancePtr)
| This function resets the HDCP22-RX system to the default state. More...
int | XHdcp22Rx_Poll (XHdcp22_Rx *InstancePtr)
| This function executes the HDCP22-RX state machine. More...
int | XHdcp22Rx_SetCallback (XHdcp22_Rx *InstancePtr, XHdcp22_Rx_HandlerType HandlerType, void *CallbackFunc, void *CallbackRef)
| This function installs callback functions for the given HandlerType: More...
u32 | XHdcp22Rx_GetVersion (XHdcp22_Rx *InstancePtr)
| This function reads the version. More...
XTmrCtr * | XHdcp22Rx_GetTimer (XHdcp22_Rx *InstancePtr)
| This function returns the pointer to the internal timer control instance needed for connecting the timer interrupt to an interrupt controller. More...
u8 | XHdcp22Rx_IsEnabled (XHdcp22_Rx *InstancePtr)
| This function checks if the HDCP22-RX state machine is enabled. More...
u8 | XHdcp22Rx_IsEncryptionEnabled (XHdcp22_Rx *InstancePtr)
| This function checks if the HDCP22-RX cipher encryption is enabled. More...
u8 | XHdcp22Rx_IsInProgress (XHdcp22_Rx *InstancePtr)
| This function checks if the HDCP22-RX state machine is enabled but not yet in the Authenticated state. More...
u8 | XHdcp22Rx_IsAuthenticated (XHdcp22_Rx *InstancePtr)
| This function checks if the HDCP22-RX state machine is in the Authenticated state. More...
u8 | XHdcp22Rx_IsError (XHdcp22_Rx *InstancePtr)
| This function checks if the HDCP22-RX state machine has detected an error condition. More...
void | XHdcp22Rx_Info (XHdcp22_Rx *InstancePtr)
| This function prints the state machine information. More...
void | XHdcp22Rx_SetLinkError (XHdcp22_Rx *InstancePtr)
| This function is called when 50 consecutive data island ECC errors are detected indicating a link integrity problem. More...
void | XHdcp22Rx_SetDdcError (XHdcp22_Rx *InstancePtr)
| This function is called when a DDC read/write burst stops prior to completing the expected message size. More...
void | XHdcp22Rx_SetWriteMessageAvailable (XHdcp22_Rx *InstancePtr)
| This function is called when a complete message is available in the write message buffer. More...
void | XHdcp22Rx_SetReadMessageComplete (XHdcp22_Rx *InstancePtr)
| This function is called when a message has been read out of the read message buffer. More...
void | XHdcp22Rx_LoadLc128 (XHdcp22_Rx *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...
void | XHdcp22Rx_LoadPublicCert (XHdcp22_Rx *InstancePtr, const u8 *PublicCertPtr)
| This function is used to load the public certificate. More...
int | XHdcp22Rx_LoadPrivateKey (XHdcp22_Rx *InstancePtr, const u8 *PrivateKeyPtr)
| This function is used to load the private key. More...
void | XHdcp22Rx_LogReset (XHdcp22_Rx *InstancePtr, u8 Verbose)
| This function clears the log pointers. More...
u32 | XHdcp22Rx_LogGetTimeUSecs (XHdcp22_Rx *InstancePtr)
| This function returns the time expired since a log reset was called. More...
void | XHdcp22Rx_LogWr (XHdcp22_Rx *InstancePtr, u16 Evt, u16 Data)
| This function writes HDCP22-RX log event into buffer. More...
XHdcp22_Rx_LogItem * | XHdcp22Rx_LogRd (XHdcp22_Rx *InstancePtr)
| This function provides the log information from the log buffer. More...
void | XHdcp22Rx_LogDisplay (XHdcp22_Rx *InstancePtr)
| This function prints the contents of the log buffer. More...
void | XHdcp22Rx_SetTopology (XHdcp22_Rx *InstancePtr, const XHdcp22_Rx_Topology *TopologyPtr)
| This function copies a complete repeater topology table into the instance repeater topology table. More...
void | XHdcp22Rx_SetTopologyReceiverIdList (XHdcp22_Rx *InstancePtr, const u8 *ListPtr, u32 ListSize)
| This function copies the RECEIVER_ID_LIST into the repeater topology table. More...
void | XHdcp22Rx_SetTopologyField (XHdcp22_Rx *InstancePtr, XHdcp22_Rx_TopologyField Field, u8 Value)
| This function is used to set various fields inside the topology structure. More...
void | XHdcp22Rx_SetTopologyUpdate (XHdcp22_Rx *InstancePtr)
| This function is used to indicate that the topology table has been updated and is ready for upstream propagation. More...
void | XHdcp22Rx_SetRepeater (XHdcp22_Rx *InstancePtr, u8 Set)
| This function sets the repeater mode status. More...
u8 | XHdcp22Rx_IsRepeater (XHdcp22_Rx *InstancePtr)
| This function returns the current repeater mode status. More...
u8 | XHdcp22Rx_GetContentStreamType (XHdcp22_Rx *InstancePtr)
| This function is gets the type information received from the RepeaterAuth_Stream_Manage message for downstream propagation of management information. More...