hdcp1x
Vitis Drivers API Documentation
Overview

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...
 
struct  XHdcp1x_PortPhyIfAdaptorS
 The typedef defines the HDCP port adaptor table. More...
 

Macros

#define DRIVER_VERSION   (0x00010023ul)
 This defines the version of the software driver. More...
 
#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...
 
#define XHDCP1X_CIPHER_H
 < Prevent circular inclusions by using protection macros More...
 
#define HDCP1X_CIPHER_BIT_REPEATER_ENABLE   (1 << 8)
 Bit in the cipher Bz register to indicate Repeater. More...
 
#define XHDCP1X_DEBUG_H
 < Prevent circular inclusions by using protection macros More...
 
#define XHDCP1X_DEBUG_PRINTF   if (XHdcp1xDebugPrintf != NULL) XHdcp1xDebugPrintf
 Instance of the function interface used for debug print statements. More...
 
#define XHDCP1X_DEBUG_LOGMSG   if (XHdcp1xDebugLogMsg != NULL) XHdcp1xDebugLogMsg
 Instance of the function interface used for debug log messages. More...
 
#define XHDCP1X_HW_H
 < Prevent circular inclusions by using protection macros More...
 
#define XHDCP1X_CIPHER_REG_VERSION   (0x0000u)
 Version register offset. More...
 
#define XHDCP1X_CIPHER_REG_TYPE   (0x0004u)
 Type register offset. More...
 
#define XHDCP1X_CIPHER_REG_SCRATCH   (0x0008u)
 Scratch pad register offset. More...
 
#define XHDCP1X_CIPHER_REG_CONTROL   (0x000Cu)
 Control register offset. More...
 
#define XHDCP1X_CIPHER_REG_STATUS   (0x0010u)
 Status register offset. More...
 
#define XHDCP1X_CIPHER_REG_INTERRUPT_MASK   (0x0014u)
 Interrupt Mask register offset. More...
 
#define XHDCP1X_CIPHER_REG_INTERRUPT_STATUS   (0x0018u)
 Interrupt Status register offset. More...
 
#define XHDCP1X_CIPHER_REG_ENCRYPT_ENABLE_H   (0x0020u)
 Encryption Enable (High) register offset. More...
 
#define XHDCP1X_CIPHER_REG_ENCRYPT_ENABLE_L   (0x0024u)
 Encryption Enable (Low) register offset. More...
 
#define XHDCP1X_CIPHER_REG_KEYMGMT_CONTROL   (0x002Cu)
 Key Management Control register offset. More...
 
#define XHDCP1X_CIPHER_REG_KEYMGMT_STATUS   (0x0030u)
 Key Management Status register offset. More...
 
#define XHDCP1X_CIPHER_REG_KSV_LOCAL_H   (0x0038u)
 Local KSV (High) register offset. More...
 
#define XHDCP1X_CIPHER_REG_KSV_LOCAL_L   (0x003Cu)
 Local KSV (Low) register offset. More...
 
#define XHDCP1X_CIPHER_REG_KSV_REMOTE_H   (0x0040u)
 Remote KSV (High) offset. More...
 
#define XHDCP1X_CIPHER_REG_KSV_REMOTE_L   (0x0044u)
 Remote KSV (Low) register offset. More...
 
#define XHDCP1X_CIPHER_REG_Km_H   (0x0048u)
 Km (High) register offset. More...
 
#define XHDCP1X_CIPHER_REG_Km_L   (0x004Cu)
 Km (Low) register offset. More...
 
#define XHDCP1X_CIPHER_REG_CIPHER_CONTROL   (0x0050u)
 Cipher Control register offset. More...
 
#define XHDCP1X_CIPHER_REG_CIPHER_STATUS   (0x0054u)
 Cipher Status register offset. More...
 
#define XHDCP1X_CIPHER_REG_CIPHER_Bx   (0x0058u)
 Cipher Bx register offset. More...
 
#define XHDCP1X_CIPHER_REG_CIPHER_By   (0x005Cu)
 Cipher By register offset. More...
 
#define XHDCP1X_CIPHER_REG_CIPHER_Bz   (0x0060u)
 Cipher Bz register offset. More...
 
#define XHDCP1X_CIPHER_REG_CIPHER_Kx   (0x0064u)
 Cipher Kx register offset. More...
 
#define XHDCP1X_CIPHER_REG_CIPHER_Ky   (0x0068u)
 Cipher Ky register offset. More...
 
#define XHDCP1X_CIPHER_REG_CIPHER_Kz   (0x006Cu)
 Cipher Kz register offset. More...
 
#define XHDCP1X_CIPHER_REG_CIPHER_Mi_H   (0x0070u)
 Cipher Mi (High) register offset. More...
 
#define XHDCP1X_CIPHER_REG_CIPHER_Mi_L   (0x0074u)
 Cipher Mi (Low) register offset. More...
 
#define XHDCP1X_CIPHER_REG_CIPHER_Ri   (0x0078u)
 Cipher Ri register offset. More...
 
#define XHDCP1X_CIPHER_REG_CIPHER_Ro   (0x007Cu)
 Cipher Ro register offset. More...
 
#define XHDCP1X_CIPHER_REG_CIPHER_Mo_H   (0x0080u)
 Cipher Mo (High) register offset. More...
 
#define XHDCP1X_CIPHER_REG_CIPHER_Mo_L   (0x0084u)
 Cipher Mo (Low) register offset. More...
 
#define XHDCP1X_CIPHER_REG_BLANK_VALUE   (0x00BCu)
 Cipher blank value register. More...
 
#define XHDCP1X_CIPHER_REG_BLANK_SEL   (0x00C0u)
 Cipher blank select register. More...
 
#define XHDCP1X_CIPHER_BITMASK_TYPE_PROTOCOL   (0x03u << 0)
 Protocol bitmask in Type register. More...
 
#define XHDCP1X_CIPHER_BITMASK_TYPE_DIRECTION   (0x01u << 2)
 Direction bitmask in Type register. More...
 
#define XHDCP1X_CIPHER_BITMASK_CONTROL_ENABLE   (0x01u << 0)
 Enable bitmask in Control register. More...
 
#define XHDCP1X_CIPHER_BITMASK_CONTROL_UPDATE   (0x01u << 1)
 Update bitmask in Control register. More...
 
#define XHDCP1X_CIPHER_BITMASK_CONTROL_NUM_LANES   (0x07u << 4)
 Num Lanes bitmask in Control register. More...
 
#define XHDCP1X_CIPHER_BITMASK_CONTROL_RESET   (0x01u << 31)
 Reset bitmask in Control register. More...
 
#define XHDCP1X_CIPHER_BITMASK_INTERRUPT_LINK_FAIL   (0x01u << 0)
 Link Failure bitmask in Interrupt register(s) More...
 
#define XHDCP1X_CIPHER_BITMASK_INTERRUPT_Ri_UPDATE   (0x01u << 1)
 Ri bitmask in Interrupt register(s) More...
 
#define XHDCP1X_CIPHER_BITMASK_KEYMGMT_CONTROL_LOCAL_KSV   (0x01u << 0)
 Read Local KSV bitmask in Key Management Control register. More...
 
#define XHDCP1X_CIPHER_BITMASK_KEYMGMT_CONTROL_BEGIN_Km   (0x01u << 1)
 Being Km bitmask in Key Management Control register. More...
 
#define XHDCP1X_CIPHER_BITMASK_KEYMGMT_CONTROL_ABORT_Km   (0x01u << 2)
 Abort Km bitmask in Key Management Control register. More...
 
#define XHDCP1X_CIPHER_BITMASK_KEYMGMT_CONTROL_SET_SELECT   (0x07u << 16)
 Key Set Select bitmask in Key Management Control register. More...
 
#define XHDCP1X_CIPHER_BITMASK_KEYMGMT_STATUS_KSV_READY   (0x01u << 0)
 Local KSV ready bitmask in Key Management Status register. More...
 
#define XHDCP1X_CIPHER_BITMASK_KEYMGMT_STATUS_Km_READY   (0x01u << 1)
 Km Value ready bitmask in Key Management Status register. More...
 
#define XHDCP1X_CIPHER_BITMASK_CIPHER_CONTROL_XOR_ENABLE   (0x01u << 0)
 XOR Enable bitmask in Cipher Control register. More...
 
#define XHDCP1X_CIPHER_BITMASK_CIPHER_CONTROL_REQUEST   (0x07u << 8)
 Request bitmask in Cipher Control register. More...
 
#define XHDCP1X_CIPHER_BITMASK_CIPHER_STATUS_XOR_IN_PROG   (0x01u << 0)
 XOR In Progress bitmask in Cipher Status register. More...
 
#define XHDCP1X_CIPHER_BITMASK_CIPHER_STATUS_REQUEST_IN_PROG   (0x07u << 8)
 Request In Progress bitmask in Cipher Status register. More...
 
#define XHDCP1X_CIPHER_BITMASK_BLANK_VALUE   (0x000000FF)
 Cipher blank value bitmask, lower 24 bits. More...
 
#define XHDCP1X_CIPHER_BITMASK_BLANK_SEL   (0x1u)
 Cipher blank select bitmask. More...
 
#define XHDCP1X_CIPHER_VALUE_TYPE_PROTOCOL_DP   (0x00u << 0)
 DP Protocol value in Type register. More...
 
#define XHDCP1X_CIPHER_VALUE_TYPE_PROTOCOL_HDMI   (0x01u << 0)
 HDMI Protocol value in Type register. More...
 
#define XHDCP1X_CIPHER_VALUE_TYPE_DIRECTION_RX   (0x00u << 2)
 RX Direction value in Type register. More...
 
#define XHDCP1X_CIPHER_VALUE_TYPE_DIRECTION_TX   (0x01u << 2)
 TX Direction value in Type register. More...
 
#define XHDCP1X_CIPHER_VALUE_CIPHER_CONTROL_REQUEST_BLOCK   (0x01u << 8)
 Block Request value in Cipher Control register. More...
 
#define XHDCP1X_CIPHER_VALUE_CIPHER_CONTROL_REQUEST_REKEY   (0x01u << 9)
 ReKey Request value in Cipher Control register. More...
 
#define XHDCP1X_CIPHER_VALUE_CIPHER_CONTROL_REQUEST_RNG   (0x01u << 10)
 RNG Request value in Cipher Control register. More...
 
#define XHdcp1x_In32   Xil_In32
 Input Operations. More...
 
#define XHdcp1x_Out32   Xil_Out32
 Output Operations. More...
 
#define XHdcp1x_ReadReg(BaseAddress, RegOffset)   XHdcp1x_In32((BaseAddress) + ((u32)RegOffset))
 This macro reads a value from a HDCP cipher register. More...
 
#define XHdcp1x_WriteReg(BaseAddress, RegOffset, Data)   XHdcp1x_Out32((BaseAddress) + ((u32)RegOffset), (u32)(Data))
 This macro writes a value to a HDCP cipher register. More...
 
#define XHdcp1x_CipherIsEnabled(InstancePtr)
 This queries a cipher to determine if it is enabled. More...
 
#define XHdcp1x_CipherXorInProgress(InstancePtr)
 This queries a cipher to determine if the XOR (encryption) function is currently in progress. More...
 
#define XHdcp1x_CipherLocalKsvReady(InstancePtr)
 This queries a cipher to determine if the local KSV is ready to read. More...
 
#define XHdcp1x_CipherKmReady(InstancePtr)
 This queries a cipher to determine if the Km value is ready. More...
 
#define XHdcp1x_IsDP(InstancePtr)
 This macro checks if a core supports the Display Port protocol. More...
 
#define XHdcp1x_IsHDMI(InstancePtr)
 This macro checks if a core supports the HDMI protocol. More...
 
#define XHdcp1x_IsRX(InstancePtr)
 This macro checks if a core supports the receive direction. More...
 
#define XHdcp1x_IsTX(InstancePtr)
 This macro checks if a core supports the transmit direction. More...
 
#define XHDCP1X_PLATFORM_H
 < Prevent circular inclusions by using protection macros More...
 
#define XHDCP1X_PORT_H
 < Prevent circular inclusions by using protection macros More...
 
#define XHDCP1X_PORT_UINT_TO_BUF(buf, uint, numbits)
 This macro converts from an unsigned integer to a little endian formatted buffer. More...
 
#define XHDCP1X_PORT_BUF_TO_UINT(uint, buf, numbits)
 This macro converts from a little endian formatted buffer to an unsigned integer value. More...
 
#define XHDCP1X_PORT_BSET_IN_BUF(buf, bitnum)   buf[(bitnum) >> 3] |= (1u << ((bitnum) & 0x07u));
 This macro sets a bit within a little endian formatted buffer. More...
 
#define XHDCP1X_PORT_BCLR_IN_BUF(buf, bitnum)   buf[(bitnum) >> 3] &= ~(1u << ((bitnum) & 0x07u));
 This macro clears a bit within a little endian formatted buffer. More...
 
#define XHDCP1X_PORT_BTST_IN_BUF(buf, bitnum)   (buf[(bitnum) >> 3] & (1u << ((bitnum) & 0x07u)))
 This macro tests a bit within a little endian formatted buffer. More...
 
#define XHDCP1X_PORT_DP_H
 < Prevent circular inclusions by using protection macros More...
 
#define XHDCP1X_PORT_OFFSET_BKSV   (0x00u)
 These constants specify the offsets for the various fields and/or attributes within the hdcp port. More...
 
#define XHDCP1X_PORT_OFFSET_RO   (0x05u)
 R0' Offset. More...
 
#define XHDCP1X_PORT_OFFSET_AKSV   (0x07u)
 Aksv Offset. More...
 
#define XHDCP1X_PORT_OFFSET_AN   (0x0Cu)
 An Offset. More...
 
#define XHDCP1X_PORT_OFFSET_VH0   (0x14u)
 V'.H0 Offset. More...
 
#define XHDCP1X_PORT_OFFSET_VH1   (0x18u)
 V'.H1 Offset. More...
 
#define XHDCP1X_PORT_OFFSET_VH2   (0x1Cu)
 V'.H2 Offset. More...
 
#define XHDCP1X_PORT_OFFSET_VH3   (0x20u)
 V'.H3 Offset. More...
 
#define XHDCP1X_PORT_OFFSET_VH4   (0x24u)
 V'.H4 Offset. More...
 
#define XHDCP1X_PORT_OFFSET_BCAPS   (0x28u)
 Bcaps Offset. More...
 
#define XHDCP1X_PORT_OFFSET_BSTATUS   (0x29u)
 Bstatus Offset. More...
 
#define XHDCP1X_PORT_OFFSET_BINFO   (0x2Au)
 Binfo Offset. More...
 
#define XHDCP1X_PORT_OFFSET_KSVFIFO   (0x2Cu)
 KSV FIFO Offset. More...
 
#define XHDCP1X_PORT_OFFSET_AINFO   (0x3Bu)
 Ainfo Offset. More...
 
#define XHDCP1X_PORT_OFFSET_DBG   (0xC0u)
 Debug Space Offset. More...
 
#define XHDCP1X_PORT_HDCP_RESET_KSV   (0xD0u)
 KSV FIFO Read pointer reset Offset. More...
 
#define XHDCP1X_PORT_SIZE_BKSV   (0x05u)
 These constants specify the sizes for the various fields and/or attributes within the hdcp port. More...
 
#define XHDCP1X_PORT_SIZE_RO   (0x02u)
 R0' Size. More...
 
#define XHDCP1X_PORT_SIZE_AKSV   (0x05u)
 Aksv Size. More...
 
#define XHDCP1X_PORT_SIZE_AN   (0x08u)
 An Size. More...
 
#define XHDCP1X_PORT_SIZE_VH0   (0x04u)
 V'.H0 Size. More...
 
#define XHDCP1X_PORT_SIZE_VH1   (0x04u)
 V'.H1 Size. More...
 
#define XHDCP1X_PORT_SIZE_VH2   (0x04u)
 V'.H2 Size. More...
 
#define XHDCP1X_PORT_SIZE_VH3   (0x04u)
 V'.H3 Size. More...
 
#define XHDCP1X_PORT_SIZE_VH4   (0x04u)
 V'.H4 Size. More...
 
#define XHDCP1X_PORT_SIZE_BCAPS   (0x01u)
 Bcaps Size. More...
 
#define XHDCP1X_PORT_SIZE_BSTATUS   (0x01u)
 Bstatus Size. More...
 
#define XHDCP1X_PORT_SIZE_BINFO   (0x02u)
 Binfo Size. More...
 
#define XHDCP1X_PORT_SIZE_KSVFIFO   (0x0Fu)
 KSV FIFO Size. More...
 
#define XHDCP1X_PORT_SIZE_AINFO   (0x01u)
 Ainfo Offset. More...
 
#define XHDCP1X_PORT_SIZE_DBG   (0x40u)
 Debug Space Size. More...
 
#define XHDCP1X_PORT_SIZE_HDCP_RESET_KSV   (0x40u)
 KSV FIFO pointer reset Size. More...
 
#define XHDCP1X_PORT_BIT_BSTATUS_READY   (1u << 0)
 These constants specify the bit definitions within the various fields and/or attributes within the hdcp port. More...
 
#define XHDCP1X_PORT_BIT_BSTATUS_RO_AVAILABLE   (1u << 1)
 BStatus Ro available Mask. More...
 
#define XHDCP1X_PORT_BIT_BSTATUS_LINK_FAILURE   (1u << 2)
 BStatus Link Failure Mask. More...
 
#define XHDCP1X_PORT_BIT_BSTATUS_REAUTH_REQUEST   (1u << 3)
 BStatus Reauth Request Mask. More...
 
#define XHDCP1X_PORT_BIT_BCAPS_HDCP_CAPABLE   (1u << 0)
 BCaps HDCP Capable Mask. More...
 
#define XHDCP1X_PORT_BIT_BCAPS_REPEATER   (1u << 1)
 BCaps HDCP Repeater Mask. More...
 
#define XHDCP1X_PORT_BIT_AINFO_REAUTH_ENABLE_IRQ   (1u << 0)
 Ainfo Reauth Enable Mask. More...
 
#define XHDCP1X_PORT_HDCP_RESET_KSV_RST   (1u << 0)
 KSV FIFO pointer Reset Mask. More...
 
#define XHDCP1X_PORT_BINFO_BIT_DEV_CNT_ERR   (1u << 7)
 BInfo Device Count Error Mask. More...
 
#define XHDCP1X_PORT_BINFO_BIT_DEV_CNT_NO_ERR   (0u << 7)
 BInfo Device Count for No Error Mask. More...
 
#define XHDCP1X_PORT_BINFO_DEV_CNT_MASK   (0x7F)
 BInfo Device Count Error Mask. More...
 
#define XHDCP1X_PORT_BINFO_BIT_DEPTH_ERR   (1u << 11)
 BInfo Depth Error Mask. More...
 
#define XHDCP1X_PORT_BINFO_BIT_DEPTH_NO_ERR   (0u << 11)
 BInfo Depth Error for No Error Mask. More...
 
#define XHDCP1X_PORT_BINFO_DEV_CNT_ERR_SHIFT   (7)
 BStatus Device Count Error Shift Mask. More...
 
#define XHDCP1X_PORT_BINFO_DEPTH_ERR_SHIFT   (11)
 BStatus Depth Error Shift Mask. More...
 
#define XHDCP1X_PORT_BINFO_DEPTH_SHIFT   (8)
 BInfo Device Count Error Mask. More...
 
#define XHDCP1X_PORT_DPCD_BASE   (0x68000u)
 This constant defines the base address of the hdcp port within the DPCD address space. More...
 
#define XHDCP1X_PORT_HDMI_H
 < Prevent circular inclusions by using protection macros More...
 
#define XHDCP1X_PORT_OFFSET_BKSV   (0x00u)
 These constants specify the offsets for the various fields and/or attributes within the hdcp port. More...
 
#define XHDCP1X_PORT_OFFSET_RO   (0x08u)
 Ri'/Ro' Offset. More...
 
#define XHDCP1X_PORT_OFFSET_PJ   (0x0Au)
 Pj' Offset. More...
 
#define XHDCP1X_PORT_OFFSET_AKSV   (0x10u)
 Aksv Offset. More...
 
#define XHDCP1X_PORT_OFFSET_AINFO   (0x15u)
 Ainfo Offset. More...
 
#define XHDCP1X_PORT_OFFSET_AN   (0x18u)
 An Offset. More...
 
#define XHDCP1X_PORT_OFFSET_VH0   (0x20u)
 V'.H0 Offset. More...
 
#define XHDCP1X_PORT_OFFSET_VH1   (0x24u)
 V'.H1 Offset. More...
 
#define XHDCP1X_PORT_OFFSET_VH2   (0x28u)
 V'.H2 Offset. More...
 
#define XHDCP1X_PORT_OFFSET_VH3   (0x2Cu)
 V'.H3 Offset. More...
 
#define XHDCP1X_PORT_OFFSET_VH4   (0x30u)
 V'.H4 Offset. More...
 
#define XHDCP1X_PORT_OFFSET_BCAPS   (0x40u)
 Bcaps Offset. More...
 
#define XHDCP1X_PORT_OFFSET_BSTATUS   (0x41u)
 Bstatus Offset. More...
 
#define XHDCP1X_PORT_OFFSET_KSVFIFO   (0x43u)
 KSV FIFO Offset. More...
 
#define XHDCP1X_PORT_OFFSET_DBG   (0xC0u)
 Debug Space Offset. More...
 
#define XHDCP1X_PORT_SIZE_BKSV   (0x05u)
 These constants specify the sizes for the various fields and/or attributes within the hdcp port. More...
 
#define XHDCP1X_PORT_SIZE_RO   (0x02u)
 Ri' Size. More...
 
#define XHDCP1X_PORT_SIZE_PJ   (0x01u)
 Pj' Size. More...
 
#define XHDCP1X_PORT_SIZE_AKSV   (0x05u)
 Aksv Size. More...
 
#define XHDCP1X_PORT_SIZE_AINFO   (0x01u)
 Ainfo Size. More...
 
#define XHDCP1X_PORT_SIZE_AN   (0x08u)
 An Size. More...
 
#define XHDCP1X_PORT_SIZE_VH0   (0x04u)
 V'.H0 Size. More...
 
#define XHDCP1X_PORT_SIZE_VH1   (0x04u)
 V'.H1 Size. More...
 
#define XHDCP1X_PORT_SIZE_VH2   (0x04u)
 V'.H2 Size. More...
 
#define XHDCP1X_PORT_SIZE_VH3   (0x04u)
 V'.H3 Size. More...
 
#define XHDCP1X_PORT_SIZE_VH4   (0x04u)
 V'.H4 Size. More...
 
#define XHDCP1X_PORT_SIZE_BCAPS   (0x01u)
 Bcaps Size. More...
 
#define XHDCP1X_PORT_SIZE_BSTATUS   (0x02u)
 Bstatus Size. More...
 
#define XHDCP1X_PORT_SIZE_KSVFIFO   (0x01u)
 KSV FIFO Size. More...
 
#define XHDCP1X_PORT_SIZE_DBG   (0xC0u)
 Debug Space Size. More...
 
#define XHDCP1X_PORT_BIT_BSTATUS_HDMI_MODE   (1u << 12)
 These constants specify the bit definitions within the various fields and/or attributes within the hdcp port. More...
 
#define XHDCP1X_PORT_BIT_BCAPS_FAST_REAUTH   (1u << 0)
 BCaps Fast Reauth Mask. More...
 
#define XHDCP1X_PORT_BIT_BCAPS_1d1_FEATURES   (1u << 1)
 BCaps HDCP 1.1 Features Support Mask. More...
 
#define XHDCP1X_PORT_BIT_BCAPS_FAST   (1u << 4)
 BCaps Fast Transfers Mask. More...
 
#define XHDCP1X_PORT_BIT_BCAPS_READY   (1u << 5)
 BCaps KSV FIFO Ready bit Mask. More...
 
#define XHDCP1X_PORT_BIT_BCAPS_REPEATER   (1u << 6)
 BCaps Repeater Capable Mask. More...
 
#define XHDCP1X_PORT_BIT_BCAPS_HDMI   (1u << 7)
 BCaps HDMI Supported Mask. More...
 
#define XHDCP1X_PORT_BIT_AINFO_ENABLE_1d1_FEATURES   (1u << 1)
 AInfo Enable 1.1 Features. More...
 
#define XHDCP1X_PORT_BSTATUS_BIT_DEV_CNT_ERR   (1u << 7)
 BStatus Device Count Error Mask. More...
 
#define XHDCP1X_PORT_BSTATUS_BIT_DEV_CNT_NO_ERR   (0u << 7)
 BStatus Device Count for No Error Mask. More...
 
#define XHDCP1X_PORT_BSTATUS_DEV_CNT_MASK   (0x7F)
 BStatus Device Count Error Mask. More...
 
#define XHDCP1X_PORT_BSTATUS_BIT_DEPTH_ERR   (1u << 11)
 BStatus Depth Error Mask. More...
 
#define XHDCP1X_PORT_BSTATUS_BIT_DEPTH_NO_ERR   (0u << 11)
 BStatus Depth Error for No Error Mask. More...
 
#define XHDCP1X_PORT_BSTATUS_DEV_CNT_ERR_SHIFT   (7)
 BStatus Device Count Error Shift Mask. More...
 
#define XHDCP1X_PORT_BSTATUS_DEPTH_ERR_SHIFT   (11)
 BStatus Depth Error Shift Mask. More...
 
#define XHDCP1X_PORT_BSTATUS_DEPTH_SHIFT   (8)
 BStatus Device Count Error Mask. More...
 
#define XHDCP1X_PORT_PRIMARY_I2C_ADDR   (0x74u)
 This constant defines the i2c address of the hdcp port. More...
 
#define XHDCP1X_PORT_SECONDARY_I2C_ADDR   (0x76u)
 I2C Addr Secondary Link. More...
 
#define XVPHY_FLAG_PHY_UP   (1u << 0)
 Flag to track physical state. More...
 
#define XVPHY_TMO_5MS   (5u)
 Timeout value for 5ms. More...
 
#define XVPHY_TMO_100MS   (100u)
 Timeout value for 100ms. More...
 
#define XVPHY_TMO_1SECOND   (1000u)
 Timeout value for 1s. More...
 
#define XHDCP1X_RX_H
 < Prevent circular inclusions by using protection macros More...
 
#define XPAR_XHDCP_NUM_INSTANCES   0
 Number of HDCP Instances. More...
 
#define XVPHY_FLAG_PHY_UP   (1u << 0)
 Flag to track physical state. More...
 
#define XVPHY_FLAG_IS_REPEATER   (1u << 1)
 Flag to track repeater state. More...
 
#define XVPHY_TMO_5MS   (5u)
 Timeout value for 5ms. More...
 
#define XVPHY_TMO_100MS   (100u)
 Timeout value for 100ms. More...
 
#define XVPHY_TMO_1SECOND   (1000u)
 Timeout value for 1s. More...
 
#define XHDCP1X_MAX_BCAPS_RDY_POLL_CNT   (55)
 Max times to poll on BCaps Ready bit at 100ms interval. More...
 
#define XHDCP1X_TX_H
 < Prevent circular inclusions by using protection macros 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...
 
typedef struct
XHdcp1x_PortPhyIfAdaptorS 
XHdcp1x_PortPhyIfAdaptor
 The typedef defines the HDCP port adaptor table. 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...
 
enum  XHdcp1x_PortHandlerType { XHDCP1X_PORT_HANDLER_AUTHENTICATE = 1 }
 This typedef defines the different types of handlers that can be registered to service interrupt requests from the HDCP port instance. More...
 
enum  XHdcp1x_EventType
 This enumerates the Event Types for HDCP Receiver state machine. More...
 
enum  XHdcp1x_StateType
 This enumerates the State Types for HDCP Receiver state machine. More...
 
enum  XHdcp1x_EventType
 This enumerates the Event Types for HDCP Transmitter state machine. More...
 
enum  XHdcp1x_StateType
 This enumerates the Event Types for HDCP Transmitter state machine. More...
 

Functions

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_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...
 
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...
 
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...
 
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...
 
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...
 
XHdcp1x_ConfigXHdcp1x_LookupConfig (u16 DeviceId)
 This function returns a reference to an XHdcp1x_Config structure based on specified device ID. More...
 
int XHdcp1x_SelfTest (XHdcp1x *InstancePtr)
 This function self tests 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_CipherInit (XHdcp1x *InstancePtr)
 This function initializes an HDCP cipher. More...
 
int XHdcp1x_CipherIsLinkUp (const XHdcp1x *InstancePtr)
 This function queries the link state of a cipher device. More...
 
int XHdcp1x_CipherEnable (XHdcp1x *InstancePtr)
 This function enables a HDCP cipher. More...
 
int XHdcp1x_CipherDisable (XHdcp1x *InstancePtr)
 This function disables a HDCP cipher. More...
 
int XHdcp1x_CipherSetKeySelect (XHdcp1x *InstancePtr, u8 KeySelect)
 This function configures the key selection value. More...
 
int XHdcp1x_CipherDoRequest (XHdcp1x *InstancePtr, XHdcp1x_CipherRequestType Request)
 This function initiates a request within the HDCP cipher. More...
 
int XHdcp1x_CipherIsRequestComplete (const XHdcp1x *InstancePtr)
 This function queries the progress of the current request. More...
 
u32 XHdcp1x_CipherGetNumLanes (const XHdcp1x *InstancePtr)
 This function retrieves the current number of lanes of the HDCP cipher. More...
 
int XHdcp1x_CipherSetNumLanes (XHdcp1x *InstancePtr, u32 NumLanes)
 This function configures the number of lanes of the HDCP cipher. More...
 
u64 XHdcp1x_CipherGetEncryption (const XHdcp1x *InstancePtr)
 This function retrieves the current encryption stream map. More...
 
int XHdcp1x_CipherEnableEncryption (XHdcp1x *InstancePtr, u64 StreamMap)
 This function enables encryption on a set of streams. More...
 
int XHdcp1x_CipherDisableEncryption (XHdcp1x *InstancePtr, u64 StreamMap)
 This function disables encryption on a set of streams. More...
 
u64 XHdcp1x_CipherGetLocalKsv (const XHdcp1x *InstancePtr)
 This function reads the local KSV value from the cipher. More...
 
u64 XHdcp1x_CipherGetRemoteKsv (const XHdcp1x *InstancePtr)
 This function reads the remote KSV value from the cipher. More...
 
int XHdcp1x_CipherSetRemoteKsv (XHdcp1x *InstancePtr, u64 Ksv)
 This function writes the remote KSV value to the cipher. More...
 
int XHdcp1x_CipherGetB (const XHdcp1x *InstancePtr, u32 *X, u32 *Y, u32 *Z)
 This function reads the contents of the B register in BM0. More...
 
int XHdcp1x_CipherSetB (XHdcp1x *InstancePtr, u32 X, u32 Y, u32 Z)
 This function writes the contents of the B register in BM0. More...
 
int XHdcp1x_CipherGetK (const XHdcp1x *InstancePtr, u32 *X, u32 *Y, u32 *Z)
 This function reads the contents of the K register in BM0. More...
 
int XHdcp1x_CipherSetK (XHdcp1x *InstancePtr, u32 X, u32 Y, u32 Z)
 This function writes the contents of the K register in BM0. More...
 
u64 XHdcp1x_CipherGetMi (const XHdcp1x *InstancePtr)
 This function reads the contents of the Mi/An register of BM0. More...
 
u16 XHdcp1x_CipherGetRi (const XHdcp1x *InstancePtr)
 This function reads the contents of the Ri register of BM0. More...
 
u64 XHdcp1x_CipherGetMo (const XHdcp1x *InstancePtr)
 This function reads the contents of the Mo register of the device. More...
 
u16 XHdcp1x_CipherGetRo (const XHdcp1x *InstancePtr)
 This function reads the contents of the Ro register of the device. More...
 
u32 XHdcp1x_CipherGetVersion (const XHdcp1x *InstancePtr)
 This function reads the version of the HDCP cipher core. More...
 
void XHdcp1x_CipherEnableBlank (XHdcp1x *InstancePtr)
 This function sets the cipher blank value to 0x0000FF (blue), and sets the cipher blank select to TRUE. More...
 
void XHdcp1x_CipherDisableBlank (XHdcp1x *InstancePtr)
 This function sets the cipher blank select to FALSE. More...
 
int XHdcp1x_CipherSetCallback (XHdcp1x *InstancePtr, u32 HandlerType, XHdcp1x_Callback CallbackFunc, void *CallbackRef)
 This function installs an asynchronous callback function for the given HandlerType: More...
 
int XHdcp1x_CipherSetLinkStateCheck (XHdcp1x *InstancePtr, int IsEnabled)
 This function enables/disables the reporting of link check state changes. More...
 
int XHdcp1x_CipherSetRiUpdate (XHdcp1x *InstancePtr, int IsEnabled)
 This function enables/disables the reporting of Ri update notifications. More...
 
void XHdcp1x_CipherHandleInterrupt (void *InstancePtr)
 This function is the interrupt handler for the cipher core driver. More...
 
int XHdcp1x_PlatformIsKsvRevoked (const XHdcp1x *InstancePtr, u64 Ksv)
 This function checks a KSV value to determine if it has been revoked or not. More...
 
int XHdcp1x_PlatformTimerStart (XHdcp1x *InstancePtr, u16 TimeoutInMs)
 This function starts a timer on behalf of an HDCP interface. More...
 
int XHdcp1x_PlatformTimerStop (XHdcp1x *InstancePtr)
 This function stop a timer on behalf of an HDCP interface. More...
 
int XHdcp1x_PlatformTimerBusy (XHdcp1x *InstancePtr, u16 DelayInMs)
 This function busy waits on a timer for a number of milliseconds. More...
 
const XHdcp1x_PortPhyIfAdaptorXHdcp1x_PortDetermineAdaptor (XHdcp1x *InstancePtr)
 This function determines the adaptor for a specified port device. More...
 
int XHdcp1x_PortEnable (XHdcp1x *InstancePtr)
 This function enables a port device. More...
 
int XHdcp1x_PortDisable (XHdcp1x *InstancePtr)
 This function disables a port device. More...
 
int XHdcp1x_PortIsCapable (const XHdcp1x *InstancePtr)
 This function queries a port device to determine if hdcp is supported. More...
 
int XHdcp1x_PortIsRepeater (const XHdcp1x *InstancePtr)
 This function queries a port device to determine if it is connected to a repeater. More...
 
int XHdcp1x_PortSetRepeater (XHdcp1x *InstancePtr, u8 RptrConf)
 This function set the REPEATER information in the connected device. More...
 
int XHdcp1x_PortGetRepeaterInfo (XHdcp1x *InstancePtr, u16 *InfoPtr)
 This function retrieves the repeater information from the connected device. More...
 
int XHdcp1x_PortRead (const XHdcp1x *InstancePtr, u8 Offset, void *Buf, u32 BufSize)
 This function reads a register from a HDCP port device. More...
 
int XHdcp1x_PortWrite (XHdcp1x *InstancePtr, u8 Offset, const void *Buf, u32 BufSize)
 This function writes a register within a HDCP port device. More...
 
int XHdcp1x_PortSetCallback (XHdcp1x *InstancePtr, u32 HandlerType, XHdcp1x_Callback CallbackFunc, void *CallbackRef)
 This function installs an asynchronous callback function for the given HandlerType: More...
 
void XHdcp1x_PortHandleInterrupt (XHdcp1x *InstancePtr, u32 IntCause)
 This handles an interrupt generated by a HDCP port device. More...
 
int XHdcp1x_RxSetCallback (XHdcp1x *InstancePtr, XHdcp1x_HandlerType HandlerType, void *CallbackFunc, void *CallbackRef)
 This function installs callback functions for the given HandlerType: More...
 
void XHdcp1x_RxInit (XHdcp1x *InstancePtr)
 This function initializes a HDCP receiver state machine. More...
 
int XHdcp1x_RxPoll (XHdcp1x *InstancePtr)
 This function polls the HDCP receiver module. More...
 
int XHdcp1x_RxSetRepeaterBcaps (XHdcp1x *InstancePtr, u8 IsRptr)
 This function set the REPEATER bit for the HDCP RX interface. More...
 
int XHdcp1x_RxReset (XHdcp1x *InstancePtr)
 This function resets an HDCP interface. More...
 
int XHdcp1x_RxEnable (XHdcp1x *InstancePtr)
 This function enables a HDCP receive interface. More...
 
int XHdcp1x_RxDisable (XHdcp1x *InstancePtr)
 This function disables a HDCP receive interface. More...
 
int XHdcp1x_RxIsEnabled (const XHdcp1x *InstancePtr)
 This function queries an interface to check if is enabled. More...
 
int XHdcp1x_RxSetPhysicalState (XHdcp1x *InstancePtr, int IsUp)
 This function updates the physical state of an HDCP interface. More...
 
int XHdcp1x_RxSetLaneCount (XHdcp1x *InstancePtr, int LaneCount)
 This function set the lane count of an hdcp interface. More...
 
int XHdcp1x_RxDownstreamReady (XHdcp1x *InstancePtr)
 This function initiates downstream ready/ assemble ksv list on an interface. More...
 
int XHdcp1x_RxAuthenticate (XHdcp1x *InstancePtr)
 This function initiates authentication on an interface. More...
 
int XHdcp1x_RxIsInProgress (const XHdcp1x *InstancePtr)
 This function queries an interface to check if authentication is in progress. More...
 
int XHdcp1x_RxIsAuthenticated (const XHdcp1x *InstancePtr)
 This function queries an interface to check if its been authenticated. More...
 
int XHdcp1x_RxIsInComputations (const XHdcp1x *InstancePtr)
 This function queries an interface to check if its in the computations state. More...
 
int XHdcp1x_RxIsInWaitforready (const XHdcp1x *InstancePtr)
 This function queries an interface to check if its in the wait-for-downstream-ready state. More...
 
u64 XHdcp1x_RxGetEncryption (const XHdcp1x *InstancePtr)
 This function retrieves the current encryption stream map. More...
 
void XHdcp1x_RxHandleTimeout (XHdcp1x *InstancePtr)
 This function handles a timeout on an HDCP interface. More...
 
int XHdcp1x_RxInfo (const XHdcp1x *InstancePtr)
 This function implements the debug display output for receiver instances. More...
 
int XHdcp1x_RxGetRepeaterInfo (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...
 
void XHdcp1x_RxSetTopologyUpdate (XHdcp1x *InstancePtr)
 This function does the necessary actions to update HDCP after the topology has been set. More...
 
void XHdcp1x_RxSetTopology (XHdcp1x *InstancePtr, const XHdcp1x_RepeaterExchange *TopologyPtr)
 This function sets the RepeaterInfo value int the HDCP RX instance. More...
 
void XHdcp1x_RxSetTopologyKSVList (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_RxSetTopologyDepth (XHdcp1x *InstancePtr, u32 Value)
 This function sets the Depth value in the HDCP RX BStatus/BInfo register space for the upstream interface to read. More...
 
void XHdcp1x_RxSetTopologyDeviceCnt (XHdcp1x *InstancePtr, u32 Value)
 This function sets the DEVICE_COUNT value in the HDCP RX register space for the upstream interface to read. More...
 
void XHdcp1x_RxSetTopologyMaxCascadeExceeded (XHdcp1x *InstancePtr, u8 Value)
 This function sets the MAX_CASCADE_EXCEEDED error flag in the HDCP BStatus/BInfo register to indicate a topology error. More...
 
void XHdcp1x_RxSetTopologyMaxDevsExceeded (XHdcp1x *InstancePtr, u8 Value)
 This function sets the MAX_DEVS_EXCEEDED error flag in the HDCP BStatus register to indicate a topology error. More...
 
void XHdcp1x_RxSetHdmiMode (XHdcp1x *InstancePtr, u8 Value)
 This function set the HDMI_MODE in the BStatus register of the HDMI RX DDC space. More...
 
int XHdcp1x_TxSetCallback (XHdcp1x *InstancePtr, XHdcp1x_HandlerType HandlerType, void *CallbackFunc, void *CallbackRef)
 This function installs callback functions for the given HandlerType: More...
 
void XHdcp1x_TxInit (XHdcp1x *InstancePtr)
 This function initializes a transmit state machine. More...
 
int XHdcp1x_TxPoll (XHdcp1x *InstancePtr)
 This function polls an HDCP interface. More...
 
int XHdcp1x_TxReset (XHdcp1x *InstancePtr)
 This function resets an HDCP interface. More...
 
int XHdcp1x_TxEnable (XHdcp1x *InstancePtr)
 This function enables an HDCP interface. More...
 
int XHdcp1x_TxDisable (XHdcp1x *InstancePtr)
 This function disables an HDCP interface. More...
 
int XHdcp1x_TxIsEnabled (const XHdcp1x *InstancePtr)
 This function queries an interface to check if it is enabled. More...
 
int XHdcp1x_TxSetPhysicalState (XHdcp1x *InstancePtr, int IsUp)
 This function updates the physical state of an HDCP interface. More...
 
int XHdcp1x_TxSetLaneCount (XHdcp1x *InstancePtr, int LaneCount)
 This function set the lane count of an HDCP interface. More...
 
int XHdcp1x_TxAuthenticate (XHdcp1x *InstancePtr)
 This function initiates authentication on an interface. More...
 
int XHdcp1x_TxReadDownstream (XHdcp1x *InstancePtr)
 This function initiates the transmitter to read READY bit from downstream and complete second part of authentication. More...
 
int XHdcp1x_TxIsInProgress (const XHdcp1x *InstancePtr)
 This function queries an interface to check if authentication is still in progress. More...
 
int XHdcp1x_TxIsAuthenticated (const XHdcp1x *InstancePtr)
 This function queries an interface to check if its been authenticated. More...
 
int XHdcp1x_TxIsInComputations (const XHdcp1x *InstancePtr)
 This function queries an interface to check if its in the computations state. More...
 
int XHdcp1x_TxIsInWaitforready (const XHdcp1x *InstancePtr)
 This function queries an interface to check if its in the wait-for-ready state. More...
 
int XHdcp1x_TxIsDownstrmCapable (const XHdcp1x *InstancePtr)
 This function queries the downstream device to check if the downstream device is HDCP capable. More...
 
u64 XHdcp1x_TxGetEncryption (const XHdcp1x *InstancePtr)
 This function retrieves the current encryption stream map. More...
 
int XHdcp1x_TxEnableEncryption (XHdcp1x *InstancePtr, u64 StreamMap)
 This function enables encryption on set of streams on an HDCP interface. More...
 
int XHdcp1x_TxDisableEncryption (XHdcp1x *InstancePtr, u64 StreamMap)
 This function disables encryption on set of streams on an HDCP interface. More...
 
void XHdcp1x_TxSetHdmiMode (XHdcp1x *InstancePtr, u8 Value)
 This set a flag that allows the hdcp1x drivers to determine if the transmitter is HDMI or DVI. More...
 
void XHdcp1x_TxHandleTimeout (XHdcp1x *InstancePtr)
 This function handles a timeout on an HDCP interface. More...
 
int XHdcp1x_TxIsRepeater (XHdcp1x *InstancePtr)
 This function returns if HDCP TX interface is connected to a downstream repeater. More...
 
int XHdcp1x_TxInfo (const XHdcp1x *InstancePtr)
 This function implements the debug display output for transmit instances. More...
 
void XHdcp1x_TxEnableBlank (XHdcp1x *InstancePtr)
 This function enables the blank output for the cipher. More...
 
void XHdcp1x_TxDisableBlank (XHdcp1x *InstancePtr)
 This function disables the blank output for the cipher. More...
 
void XHdcp1x_TxTriggerDownstreamAuth (void *Parameter)
 This function acts as the downstream authentication trigger callback for a Repeater state machine, to start the second part of authentication. More...
 
u8 * XHdcp1x_TxGetTopologyKSVList (XHdcp1x *InstancePtr)
 This function returns the value of KSV List read in the downstream interface of the repeater topology. More...
 
u32 XHdcp1x_TxGetTopologyDepth (XHdcp1x *InstancePtr)
 This function returns the value of Depth read in the downstream interface of the repeater topology. More...
 
u32 XHdcp1x_TxGetTopologyDeviceCnt (XHdcp1x *InstancePtr)
 This function returns the value of Device Count read in the downstream interface of the repeater topology. More...
 
u32 XHdcp1x_TxGetTopologyMaxCascadeExceeded (XHdcp1x *InstancePtr)
 This function returns the MAX_DEPTH_EXCEEDED flag in the repeater topology structure. More...
 
u8 * XHdcp1x_TxGetTopologyBKSV (XHdcp1x *InstancePtr)
 This function returns the value of BKSV of the device connected to the repeater downstream interface. More...
 
u32 XHdcp1x_TxGetTopologyMaxDevsExceeded (XHdcp1x *InstancePtr)
 This function returns the MAX_DEVICS_EXCEEDED flag in the repeater topology structure. More...
 
XHdcp1x_RepeaterExchangeXHdcp1x_TxGetTopology (XHdcp1x *InstancePtr)
 This function returns a pointer to the downstream Topology structure. More...
 

Variables

XHdcp1x_Printf XHdcp1xDebugPrintf = NULL
 Instance of function interface used for debug print statement. More...
 
XHdcp1x_LogMsg XHdcp1xDebugLogMsg = NULL
 Instance of function interface used for debug log message statement. More...
 
XHdcp1x_KsvRevokeCheck XHdcp1xKsvRevokeCheck = NULL
 Instance of function interface used for checking a specific KSV against the platforms revocation list. More...
 
XHdcp1x_Printf XHdcp1xDebugPrintf
 Instance of function interface used for debug print statement. More...
 
XHdcp1x_LogMsg XHdcp1xDebugLogMsg
 Instance of function interface used for debug log message statement. More...
 
XHdcp1x_KsvRevokeCheck XHdcp1xKsvRevokeCheck
 Instance of function interface used for checking a specific KSV against the platforms revocation list. More...
 
XHdcp1x_Config XHdcp1x_ConfigTable []
 Instance of Lookup table of HDCP instance(s) in the design. More...
 

Handler Types

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

Request Types

enum  XHdcp1x_CipherRequestType
 These constants specify different types of authentication requests that can be initiated within a peripheral. More...
 

Macro Definition Documentation

#define DRIVER_VERSION   (0x00010023ul)

This defines the version of the software driver.

Referenced by XHdcp1x_GetDriverVersion().

#define HDCP1X_CIPHER_BIT_REPEATER_ENABLE   (1 << 8)

Bit in the cipher Bz register to indicate Repeater.

#define UNUSED (   x)    ((void)x)
#define XHDCP1X_ADDITIONAL_DEBUG   0

Adds extra functions for additional debugging.

#define XHDCP1X_CIPHER_BITMASK_BLANK_SEL   (0x1u)

Cipher blank select bitmask.

Referenced by XHdcp1x_CipherDisableBlank(), and XHdcp1x_CipherEnableBlank().

#define XHDCP1X_CIPHER_BITMASK_BLANK_VALUE   (0x000000FF)

Cipher blank value bitmask, lower 24 bits.

Referenced by XHdcp1x_CipherEnableBlank().

#define XHDCP1X_CIPHER_BITMASK_CIPHER_CONTROL_REQUEST   (0x07u << 8)

Request bitmask in Cipher Control register.

Referenced by XHdcp1x_CipherDoRequest().

#define XHDCP1X_CIPHER_BITMASK_CIPHER_CONTROL_XOR_ENABLE   (0x01u << 0)

XOR Enable bitmask in Cipher Control register.

Referenced by XHdcp1x_CipherDisable(), XHdcp1x_CipherDisableEncryption(), XHdcp1x_CipherEnable(), and XHdcp1x_CipherEnableEncryption().

#define XHDCP1X_CIPHER_BITMASK_CIPHER_STATUS_REQUEST_IN_PROG   (0x07u << 8)

Request In Progress bitmask in Cipher Status register.

Referenced by XHdcp1x_CipherDoRequest(), and XHdcp1x_CipherIsRequestComplete().

#define XHDCP1X_CIPHER_BITMASK_CIPHER_STATUS_XOR_IN_PROG   (0x01u << 0)

XOR In Progress bitmask in Cipher Status register.

#define XHDCP1X_CIPHER_BITMASK_CONTROL_ENABLE   (0x01u << 0)

Enable bitmask in Control register.

Referenced by XHdcp1x_CipherDisable(), and XHdcp1x_CipherEnable().

#define XHDCP1X_CIPHER_BITMASK_CONTROL_NUM_LANES   (0x07u << 4)

Num Lanes bitmask in Control register.

Referenced by XHdcp1x_CipherGetNumLanes(), XHdcp1x_CipherInit(), and XHdcp1x_CipherSetNumLanes().

#define XHDCP1X_CIPHER_BITMASK_CONTROL_RESET   (0x01u << 31)

Reset bitmask in Control register.

Referenced by XHdcp1x_CipherInit().

#define XHDCP1X_CIPHER_BITMASK_INTERRUPT_LINK_FAIL   (0x01u << 0)

Link Failure bitmask in Interrupt register(s)

Referenced by XHdcp1x_CipherHandleInterrupt(), XHdcp1x_CipherIsLinkUp(), and XHdcp1x_CipherSetLinkStateCheck().

#define XHDCP1X_CIPHER_BITMASK_INTERRUPT_Ri_UPDATE   (0x01u << 1)

Ri bitmask in Interrupt register(s)

Referenced by XHdcp1x_CipherHandleInterrupt(), and XHdcp1x_CipherSetRiUpdate().

#define XHDCP1X_CIPHER_BITMASK_KEYMGMT_CONTROL_ABORT_Km   (0x01u << 2)

Abort Km bitmask in Key Management Control register.

Referenced by XHdcp1x_CipherGetLocalKsv().

#define XHDCP1X_CIPHER_BITMASK_KEYMGMT_CONTROL_BEGIN_Km   (0x01u << 1)

Being Km bitmask in Key Management Control register.

Referenced by XHdcp1x_CipherSetRemoteKsv().

#define XHDCP1X_CIPHER_BITMASK_KEYMGMT_CONTROL_LOCAL_KSV   (0x01u << 0)

Read Local KSV bitmask in Key Management Control register.

Referenced by XHdcp1x_CipherGetLocalKsv().

#define XHDCP1X_CIPHER_BITMASK_KEYMGMT_CONTROL_SET_SELECT   (0x07u << 16)

Key Set Select bitmask in Key Management Control register.

Referenced by XHdcp1x_CipherSetKeySelect().

#define XHDCP1X_CIPHER_BITMASK_KEYMGMT_STATUS_Km_READY   (0x01u << 1)

Km Value ready bitmask in Key Management Status register.

#define XHDCP1X_CIPHER_BITMASK_KEYMGMT_STATUS_KSV_READY   (0x01u << 0)

Local KSV ready bitmask in Key Management Status register.

Referenced by XHdcp1x_CipherGetLocalKsv().

#define XHDCP1X_CIPHER_BITMASK_TYPE_DIRECTION   (0x01u << 2)

Direction bitmask in Type register.

Referenced by XHdcp1x_CfgInitialize().

#define XHDCP1X_CIPHER_BITMASK_TYPE_PROTOCOL   (0x03u << 0)

Protocol bitmask in Type register.

Referenced by XHdcp1x_CfgInitialize().

#define XHDCP1X_CIPHER_H

< Prevent circular inclusions by using protection macros

#define XHDCP1X_CIPHER_REG_BLANK_SEL   (0x00C0u)

Cipher blank select register.

Referenced by XHdcp1x_CipherDisableBlank(), and XHdcp1x_CipherEnableBlank().

#define XHDCP1X_CIPHER_REG_BLANK_VALUE   (0x00BCu)

Cipher blank value register.

Referenced by XHdcp1x_CipherEnableBlank().

#define XHDCP1X_CIPHER_REG_CIPHER_Bx   (0x0058u)

Cipher Bx register offset.

Referenced by XHdcp1x_CipherGetB(), and XHdcp1x_CipherSetB().

#define XHDCP1X_CIPHER_REG_CIPHER_By   (0x005Cu)

Cipher By register offset.

Referenced by XHdcp1x_CipherGetB(), and XHdcp1x_CipherSetB().

#define XHDCP1X_CIPHER_REG_CIPHER_Bz   (0x0060u)

Cipher Bz register offset.

Referenced by XHdcp1x_CipherGetB(), and XHdcp1x_CipherSetB().

#define XHDCP1X_CIPHER_REG_CIPHER_CONTROL   (0x0050u)
#define XHDCP1X_CIPHER_REG_CIPHER_Kx   (0x0064u)

Cipher Kx register offset.

Referenced by XHdcp1x_CipherGetK(), and XHdcp1x_CipherSetK().

#define XHDCP1X_CIPHER_REG_CIPHER_Ky   (0x0068u)

Cipher Ky register offset.

Referenced by XHdcp1x_CipherGetK(), and XHdcp1x_CipherSetK().

#define XHDCP1X_CIPHER_REG_CIPHER_Kz   (0x006Cu)

Cipher Kz register offset.

Referenced by XHdcp1x_CipherGetK(), and XHdcp1x_CipherSetK().

#define XHDCP1X_CIPHER_REG_CIPHER_Mi_H   (0x0070u)

Cipher Mi (High) register offset.

Referenced by XHdcp1x_CipherGetMi().

#define XHDCP1X_CIPHER_REG_CIPHER_Mi_L   (0x0074u)

Cipher Mi (Low) register offset.

Referenced by XHdcp1x_CipherGetMi().

#define XHDCP1X_CIPHER_REG_CIPHER_Mo_H   (0x0080u)

Cipher Mo (High) register offset.

Referenced by XHdcp1x_CipherGetMo().

#define XHDCP1X_CIPHER_REG_CIPHER_Mo_L   (0x0084u)

Cipher Mo (Low) register offset.

Referenced by XHdcp1x_CipherGetMo().

#define XHDCP1X_CIPHER_REG_CIPHER_Ri   (0x0078u)

Cipher Ri register offset.

Referenced by XHdcp1x_CipherGetRi().

#define XHDCP1X_CIPHER_REG_CIPHER_Ro   (0x007Cu)

Cipher Ro register offset.

Referenced by XHdcp1x_CipherGetRo().

#define XHDCP1X_CIPHER_REG_CIPHER_STATUS   (0x0054u)

Cipher Status register offset.

Referenced by XHdcp1x_CipherDoRequest(), and XHdcp1x_CipherIsRequestComplete().

#define XHDCP1X_CIPHER_REG_ENCRYPT_ENABLE_H   (0x0020u)
#define XHDCP1X_CIPHER_REG_ENCRYPT_ENABLE_L   (0x0024u)
#define XHDCP1X_CIPHER_REG_INTERRUPT_MASK   (0x0014u)
#define XHDCP1X_CIPHER_REG_INTERRUPT_STATUS   (0x0018u)
#define XHDCP1X_CIPHER_REG_KEYMGMT_CONTROL   (0x002Cu)

Key Management Control register offset.

Referenced by XHdcp1x_CipherGetLocalKsv(), XHdcp1x_CipherSetKeySelect(), and XHdcp1x_CipherSetRemoteKsv().

#define XHDCP1X_CIPHER_REG_KEYMGMT_STATUS   (0x0030u)

Key Management Status register offset.

Referenced by XHdcp1x_CipherGetLocalKsv().

#define XHDCP1X_CIPHER_REG_Km_H   (0x0048u)

Km (High) register offset.

#define XHDCP1X_CIPHER_REG_Km_L   (0x004Cu)

Km (Low) register offset.

#define XHDCP1X_CIPHER_REG_KSV_LOCAL_H   (0x0038u)

Local KSV (High) register offset.

Referenced by XHdcp1x_CipherGetLocalKsv().

#define XHDCP1X_CIPHER_REG_KSV_LOCAL_L   (0x003Cu)

Local KSV (Low) register offset.

Referenced by XHdcp1x_CipherGetLocalKsv().

#define XHDCP1X_CIPHER_REG_KSV_REMOTE_H   (0x0040u)

Remote KSV (High) offset.

Referenced by XHdcp1x_CipherGetRemoteKsv(), and XHdcp1x_CipherSetRemoteKsv().

#define XHDCP1X_CIPHER_REG_KSV_REMOTE_L   (0x0044u)

Remote KSV (Low) register offset.

Referenced by XHdcp1x_CipherGetRemoteKsv(), and XHdcp1x_CipherSetRemoteKsv().

#define XHDCP1X_CIPHER_REG_SCRATCH   (0x0008u)

Scratch pad register offset.

#define XHDCP1X_CIPHER_REG_STATUS   (0x0010u)

Status register offset.

Referenced by XHdcp1x_CipherIsLinkUp().

#define XHDCP1X_CIPHER_REG_TYPE   (0x0004u)

Type register offset.

Referenced by XHdcp1x_CfgInitialize().

#define XHDCP1X_CIPHER_REG_VERSION   (0x0000u)

Version register offset.

Referenced by XHdcp1x_CipherGetVersion(), and XHdcp1x_SelfTest().

#define XHDCP1X_CIPHER_VALUE_CIPHER_CONTROL_REQUEST_BLOCK   (0x01u << 8)

Block Request value in Cipher Control register.

Referenced by XHdcp1x_CipherDoRequest().

#define XHDCP1X_CIPHER_VALUE_CIPHER_CONTROL_REQUEST_REKEY   (0x01u << 9)

ReKey Request value in Cipher Control register.

#define XHDCP1X_CIPHER_VALUE_CIPHER_CONTROL_REQUEST_RNG   (0x01u << 10)

RNG Request value in Cipher Control register.

#define XHDCP1X_CIPHER_VALUE_TYPE_DIRECTION_RX   (0x00u << 2)

RX Direction value in Type register.

Referenced by XHdcp1x_CfgInitialize().

#define XHDCP1X_CIPHER_VALUE_TYPE_DIRECTION_TX   (0x01u << 2)

TX Direction value in Type register.

#define XHDCP1X_CIPHER_VALUE_TYPE_PROTOCOL_DP   (0x00u << 0)

DP Protocol value in Type register.

#define XHDCP1X_CIPHER_VALUE_TYPE_PROTOCOL_HDMI   (0x01u << 0)

HDMI Protocol value in Type register.

Referenced by XHdcp1x_CfgInitialize().

#define XHdcp1x_CipherIsEnabled (   InstancePtr)
Value:
((XHdcp1x_ReadReg((InstancePtr)->Config.BaseAddress, \
#define XHDCP1X_CIPHER_REG_CONTROL
Control register offset.
Definition: xhdcp1x_hw.h:58
#define XHdcp1x_ReadReg(BaseAddress, RegOffset)
This macro reads a value from a HDCP cipher register.
Definition: xhdcp1x_hw.h:317
#define XHDCP1X_CIPHER_BITMASK_CONTROL_ENABLE
Enable bitmask in Control register.
Definition: xhdcp1x_hw.h:166

This queries a cipher to determine if it is enabled.

Parameters
InstancePtris the instance to query.
Returns
Truth value indicating transmitter (TRUE) or not (FALSE).
Note
None.

Referenced by XHdcp1x_CipherDisableEncryption(), XHdcp1x_CipherDoRequest(), XHdcp1x_CipherEnable(), XHdcp1x_CipherEnableEncryption(), XHdcp1x_CipherGetB(), XHdcp1x_CipherGetEncryption(), XHdcp1x_CipherGetK(), XHdcp1x_CipherGetLocalKsv(), XHdcp1x_CipherGetMi(), XHdcp1x_CipherGetMo(), XHdcp1x_CipherGetNumLanes(), XHdcp1x_CipherGetRi(), XHdcp1x_CipherGetRo(), XHdcp1x_CipherIsLinkUp(), XHdcp1x_CipherSetB(), XHdcp1x_CipherSetK(), and XHdcp1x_CipherSetRemoteKsv().

#define XHdcp1x_CipherKmReady (   InstancePtr)
Value:
((XHdcp1x_ReadReg((InstancePtr)->Config.BaseAddress, \
#define XHDCP1X_CIPHER_BITMASK_KEYMGMT_STATUS_Km_READY
Km Value ready bitmask in Key Management Status register.
Definition: xhdcp1x_hw.h:223
#define XHdcp1x_ReadReg(BaseAddress, RegOffset)
This macro reads a value from a HDCP cipher register.
Definition: xhdcp1x_hw.h:317
#define XHDCP1X_CIPHER_REG_KEYMGMT_STATUS
Key Management Status register offset.
Definition: xhdcp1x_hw.h:84

This queries a cipher to determine if the Km value is ready.

Parameters
InstancePtris the instance to query.
Returns
Truth value indicating ready (TRUE) or not (FALSE).
Note
None.

Referenced by XHdcp1x_CipherSetRemoteKsv().

#define XHdcp1x_CipherLocalKsvReady (   InstancePtr)
Value:
((XHdcp1x_ReadReg((InstancePtr)->Config.BaseAddress, \
#define XHdcp1x_ReadReg(BaseAddress, RegOffset)
This macro reads a value from a HDCP cipher register.
Definition: xhdcp1x_hw.h:317
#define XHDCP1X_CIPHER_REG_KEYMGMT_STATUS
Key Management Status register offset.
Definition: xhdcp1x_hw.h:84
#define XHDCP1X_CIPHER_BITMASK_KEYMGMT_STATUS_KSV_READY
Local KSV ready bitmask in Key Management Status register.
Definition: xhdcp1x_hw.h:217

This queries a cipher to determine if the local KSV is ready to read.

Parameters
InstancePtris the instance to query.
Returns
Truth value indicating ready (TRUE) or not (FALSE).
Note
None.

Referenced by XHdcp1x_CipherGetLocalKsv().

#define XHdcp1x_CipherXorInProgress (   InstancePtr)
Value:
((XHdcp1x_ReadReg((InstancePtr)->Config.BaseAddress, \
#define XHDCP1X_CIPHER_BITMASK_CIPHER_STATUS_XOR_IN_PROG
XOR In Progress bitmask in Cipher Status register.
Definition: xhdcp1x_hw.h:239
#define XHdcp1x_ReadReg(BaseAddress, RegOffset)
This macro reads a value from a HDCP cipher register.
Definition: xhdcp1x_hw.h:317
#define XHDCP1X_CIPHER_REG_CIPHER_STATUS
Cipher Status register offset.
Definition: xhdcp1x_hw.h:110

This queries a cipher to determine if the XOR (encryption) function is currently in progress.

Parameters
InstancePtris the instance to query.
Returns
Truth value indicating in progress (TRUE) or not (FALSE).
Note
None.

Referenced by XHdcp1x_CipherEnableEncryption(), and XHdcp1x_CipherGetEncryption().

#define XHDCP1X_DEBUG_H

< Prevent circular inclusions by using protection macros

#define XHDCP1X_DEBUG_LOGMSG   if (XHdcp1xDebugLogMsg != NULL) XHdcp1xDebugLogMsg

Instance of the function interface used for debug log messages.

#define XHDCP1X_DEBUG_PRINTF   if (XHdcp1xDebugPrintf != NULL) XHdcp1xDebugPrintf
#define XHDCP1X_H

< Prevent circular inclusions by using protection macros

#define XHDCP1X_HW_H

< Prevent circular inclusions by using protection macros

#define XHdcp1x_In32   Xil_In32

Input Operations.

#define XHdcp1x_IsDP (   InstancePtr)
Value:
((XHdcp1x_ReadReg((InstancePtr)->Config.BaseAddress, \
#define XHDCP1X_CIPHER_VALUE_TYPE_PROTOCOL_DP
DP Protocol value in Type register.
Definition: xhdcp1x_hw.h:262
#define XHdcp1x_ReadReg(BaseAddress, RegOffset)
This macro reads a value from a HDCP cipher register.
Definition: xhdcp1x_hw.h:317
#define XHDCP1X_CIPHER_BITMASK_TYPE_PROTOCOL
Protocol bitmask in Type register.
Definition: xhdcp1x_hw.h:157
#define XHDCP1X_CIPHER_REG_TYPE
Type register offset.
Definition: xhdcp1x_hw.h:54

This macro checks if a core supports the Display Port protocol.

Parameters
InstancePtris a pointer to the XHdcp1x core instance.
Returns
Truth value indicating DP (TRUE) or not (FALSE)

Referenced by XHdcp1x_CipherInit(), XHdcp1x_CipherSetLinkStateCheck(), and XHdcp1x_SelfTest().

#define XHdcp1x_IsHDMI (   InstancePtr)
Value:
((XHdcp1x_ReadReg((InstancePtr)->Config.BaseAddress, \
#define XHdcp1x_ReadReg(BaseAddress, RegOffset)
This macro reads a value from a HDCP cipher register.
Definition: xhdcp1x_hw.h:317
#define XHDCP1X_CIPHER_BITMASK_TYPE_PROTOCOL
Protocol bitmask in Type register.
Definition: xhdcp1x_hw.h:157
#define XHDCP1X_CIPHER_REG_TYPE
Type register offset.
Definition: xhdcp1x_hw.h:54
#define XHDCP1X_CIPHER_VALUE_TYPE_PROTOCOL_HDMI
HDMI Protocol value in Type register.
Definition: xhdcp1x_hw.h:266

This macro checks if a core supports the HDMI protocol.

Parameters
InstancePtris a pointer to the XHdcp1x core instance.
Returns
Truth value indicating HDMI (TRUE) or not (FALSE)

Referenced by XHdcp1x_CipherDisableEncryption(), XHdcp1x_CipherSetNumLanes(), XHdcp1x_CipherSetRiUpdate(), and XHdcp1x_SelfTest().

#define XHdcp1x_IsRX (   InstancePtr)
Value:
((XHdcp1x_ReadReg((InstancePtr)->Config.BaseAddress, \
#define XHdcp1x_ReadReg(BaseAddress, RegOffset)
This macro reads a value from a HDCP cipher register.
Definition: xhdcp1x_hw.h:317
#define XHDCP1X_CIPHER_VALUE_TYPE_DIRECTION_RX
RX Direction value in Type register.
Definition: xhdcp1x_hw.h:271
#define XHDCP1X_CIPHER_BITMASK_TYPE_DIRECTION
Direction bitmask in Type register.
Definition: xhdcp1x_hw.h:161
#define XHDCP1X_CIPHER_REG_TYPE
Type register offset.
Definition: xhdcp1x_hw.h:54

This macro checks if a core supports the receive direction.

Parameters
InstancePtris a pointer to the XHdcp1x core instance.
Returns
Truth value indicating receive (TRUE) or not (FALSE)

Referenced by XHdcp1x_CipherDisableEncryption(), XHdcp1x_CipherEnable(), XHdcp1x_CipherEnableEncryption(), XHdcp1x_CipherSetLinkStateCheck(), and XHdcp1x_SelfTest().

#define XHdcp1x_IsTX (   InstancePtr)
Value:
((XHdcp1x_ReadReg((InstancePtr)->Config.BaseAddress, \
#define XHdcp1x_ReadReg(BaseAddress, RegOffset)
This macro reads a value from a HDCP cipher register.
Definition: xhdcp1x_hw.h:317
#define XHDCP1X_CIPHER_BITMASK_TYPE_DIRECTION
Direction bitmask in Type register.
Definition: xhdcp1x_hw.h:161
#define XHDCP1X_CIPHER_REG_TYPE
Type register offset.
Definition: xhdcp1x_hw.h:54
#define XHDCP1X_CIPHER_VALUE_TYPE_DIRECTION_TX
TX Direction value in Type register.
Definition: xhdcp1x_hw.h:275

This macro checks if a core supports the transmit direction.

Parameters
InstancePtris a pointer to the XHdcp1x core instance.
Returns
Truth value indicating transmit (TRUE) or not (FALSE)

Referenced by XHdcp1x_SelfTest().

#define XHDCP1X_KSV_SIZE   5

Size of each hdcp 1.4 Public Key in bytes.

#define XHDCP1X_MAX_BCAPS_RDY_POLL_CNT   (55)

Max times to poll on BCaps Ready bit at 100ms interval.

#define XHdcp1x_Out32   Xil_Out32

Output Operations.

#define XHDCP1X_PLATFORM_H

< Prevent circular inclusions by using protection macros

#define XHDCP1X_PORT_BCLR_IN_BUF (   buf,
  bitnum 
)    buf[(bitnum) >> 3] &= ~(1u << ((bitnum) & 0x07u));

This macro clears a bit within a little endian formatted buffer.

Parameters
bufthe buffer to write to
bitnumthe bit to clear
Returns
None.
Note
None.
#define XHDCP1X_PORT_BINFO_BIT_DEPTH_ERR   (1u << 11)

BInfo Depth Error Mask.

Referenced by XHdcp1x_TxGetTopologyMaxCascadeExceeded().

#define XHDCP1X_PORT_BINFO_BIT_DEPTH_NO_ERR   (0u << 11)

BInfo Depth Error for No Error Mask.

#define XHDCP1X_PORT_BINFO_BIT_DEV_CNT_ERR   (1u << 7)

BInfo Device Count Error Mask.

Referenced by XHdcp1x_TxGetTopologyMaxDevsExceeded().

#define XHDCP1X_PORT_BINFO_BIT_DEV_CNT_NO_ERR   (0u << 7)

BInfo Device Count for No Error Mask.

#define XHDCP1X_PORT_BINFO_DEPTH_ERR_SHIFT   (11)

BStatus Depth Error Shift Mask.

Referenced by XHdcp1x_RxSetTopologyMaxCascadeExceeded().

#define XHDCP1X_PORT_BINFO_DEPTH_SHIFT   (8)

BInfo Device Count Error Mask.

#define XHDCP1X_PORT_BINFO_DEV_CNT_ERR_SHIFT   (7)

BStatus Device Count Error Shift Mask.

Referenced by XHdcp1x_RxSetTopologyMaxDevsExceeded().

#define XHDCP1X_PORT_BINFO_DEV_CNT_MASK   (0x7F)

BInfo Device Count Error Mask.

#define XHDCP1X_PORT_BIT_AINFO_ENABLE_1d1_FEATURES   (1u << 1)

AInfo Enable 1.1 Features.

#define XHDCP1X_PORT_BIT_AINFO_REAUTH_ENABLE_IRQ   (1u << 0)

Ainfo Reauth Enable Mask.

#define XHDCP1X_PORT_BIT_BCAPS_1d1_FEATURES   (1u << 1)

BCaps HDCP 1.1 Features Support Mask.

#define XHDCP1X_PORT_BIT_BCAPS_FAST   (1u << 4)

BCaps Fast Transfers Mask.

#define XHDCP1X_PORT_BIT_BCAPS_FAST_REAUTH   (1u << 0)

BCaps Fast Reauth Mask.

#define XHDCP1X_PORT_BIT_BCAPS_HDCP_CAPABLE   (1u << 0)

BCaps HDCP Capable Mask.

#define XHDCP1X_PORT_BIT_BCAPS_HDMI   (1u << 7)

BCaps HDMI Supported Mask.

#define XHDCP1X_PORT_BIT_BCAPS_READY   (1u << 5)

BCaps KSV FIFO Ready bit Mask.

#define XHDCP1X_PORT_BIT_BCAPS_REPEATER   (1u << 6)

BCaps Repeater Capable Mask.

#define XHDCP1X_PORT_BIT_BCAPS_REPEATER   (1u << 1)

BCaps HDCP Repeater Mask.

#define XHDCP1X_PORT_BIT_BSTATUS_HDMI_MODE   (1u << 12)

These constants specify the bit definitions within the various fields and/or attributes within the hdcp port.

BStatus HDMI Mode Mask

Referenced by XHdcp1x_RxSetHdmiMode().

#define XHDCP1X_PORT_BIT_BSTATUS_LINK_FAILURE   (1u << 2)

BStatus Link Failure Mask.

#define XHDCP1X_PORT_BIT_BSTATUS_READY   (1u << 0)

These constants specify the bit definitions within the various fields and/or attributes within the hdcp port.

BStatus Ready Mask

#define XHDCP1X_PORT_BIT_BSTATUS_REAUTH_REQUEST   (1u << 3)

BStatus Reauth Request Mask.

#define XHDCP1X_PORT_BIT_BSTATUS_RO_AVAILABLE   (1u << 1)

BStatus Ro available Mask.

#define XHDCP1X_PORT_BSET_IN_BUF (   buf,
  bitnum 
)    buf[(bitnum) >> 3] |= (1u << ((bitnum) & 0x07u));

This macro sets a bit within a little endian formatted buffer.

Parameters
bufthe buffer to write to
bitnumthe bit to set
Returns
None.
Note
None.
#define XHDCP1X_PORT_BSTATUS_BIT_DEPTH_ERR   (1u << 11)

BStatus Depth Error Mask.

Referenced by XHdcp1x_TxGetTopologyMaxCascadeExceeded().

#define XHDCP1X_PORT_BSTATUS_BIT_DEPTH_NO_ERR   (0u << 11)

BStatus Depth Error for No Error Mask.

#define XHDCP1X_PORT_BSTATUS_BIT_DEV_CNT_ERR   (1u << 7)

BStatus Device Count Error Mask.

Referenced by XHdcp1x_TxGetTopologyMaxDevsExceeded().

#define XHDCP1X_PORT_BSTATUS_BIT_DEV_CNT_NO_ERR   (0u << 7)

BStatus Device Count for No Error Mask.

#define XHDCP1X_PORT_BSTATUS_DEPTH_ERR_SHIFT   (11)

BStatus Depth Error Shift Mask.

Referenced by XHdcp1x_RxSetTopologyMaxCascadeExceeded().

#define XHDCP1X_PORT_BSTATUS_DEPTH_SHIFT   (8)

BStatus Device Count Error Mask.

#define XHDCP1X_PORT_BSTATUS_DEV_CNT_ERR_SHIFT   (7)

BStatus Device Count Error Shift Mask.

Referenced by XHdcp1x_RxSetTopologyMaxDevsExceeded().

#define XHDCP1X_PORT_BSTATUS_DEV_CNT_MASK   (0x7F)

BStatus Device Count Error Mask.

#define XHDCP1X_PORT_BTST_IN_BUF (   buf,
  bitnum 
)    (buf[(bitnum) >> 3] & (1u << ((bitnum) & 0x07u)))

This macro tests a bit within a little endian formatted buffer.

Parameters
bufthe buffer containing the bit to test
bitnumthe bit to test
Returns
None.
Note
None.
#define XHDCP1X_PORT_BUF_TO_UINT (   uint,
  buf,
  numbits 
)
Value:
if ((numbits) > 0) { \
int byte; \
uint = 0; \
for (byte = (((numbits) - 1) >> 3); byte >= 0; byte--) { \
uint <<= 8; \
uint |= buf[byte]; \
} \
}

This macro converts from a little endian formatted buffer to an unsigned integer value.

Parameters
uintthe unsigned integer to write
bufthe buffer to convert
numbitsthe number of bits within the buffer to use
Returns
None.
Note
None.

Referenced by XHdcp1x_TxGetTopologyBKSV().

#define XHDCP1X_PORT_DP_H

< Prevent circular inclusions by using protection macros

#define XHDCP1X_PORT_DPCD_BASE   (0x68000u)

This constant defines the base address of the hdcp port within the DPCD address space.

Base Addr in DPCD

#define XHDCP1X_PORT_H

< Prevent circular inclusions by using protection macros

#define XHDCP1X_PORT_HDCP_RESET_KSV   (0xD0u)

KSV FIFO Read pointer reset Offset.

#define XHDCP1X_PORT_HDCP_RESET_KSV_RST   (1u << 0)

KSV FIFO pointer Reset Mask.

#define XHDCP1X_PORT_HDMI_H

< Prevent circular inclusions by using protection macros

#define XHDCP1X_PORT_OFFSET_AINFO   (0x15u)

Ainfo Offset.

#define XHDCP1X_PORT_OFFSET_AINFO   (0x3Bu)

Ainfo Offset.

#define XHDCP1X_PORT_OFFSET_AKSV   (0x10u)

Aksv Offset.

#define XHDCP1X_PORT_OFFSET_AKSV   (0x07u)

Aksv Offset.

#define XHDCP1X_PORT_OFFSET_AN   (0x18u)

An Offset.

#define XHDCP1X_PORT_OFFSET_AN   (0x0Cu)

An Offset.

#define XHDCP1X_PORT_OFFSET_BCAPS   (0x40u)

Bcaps Offset.

#define XHDCP1X_PORT_OFFSET_BCAPS   (0x28u)

Bcaps Offset.

#define XHDCP1X_PORT_OFFSET_BKSV   (0x00u)

These constants specify the offsets for the various fields and/or attributes within the hdcp port.

Bksv Offset

#define XHDCP1X_PORT_OFFSET_BKSV   (0x00u)

These constants specify the offsets for the various fields and/or attributes within the hdcp port.

Bksv Offset

Referenced by XHdcp1x_TxGetTopologyBKSV().

#define XHDCP1X_PORT_OFFSET_BSTATUS   (0x41u)

Bstatus Offset.

#define XHDCP1X_PORT_OFFSET_DBG   (0xC0u)

Debug Space Offset.

#define XHDCP1X_PORT_OFFSET_DBG   (0xC0u)

Debug Space Offset.

#define XHDCP1X_PORT_OFFSET_KSVFIFO   (0x43u)

KSV FIFO Offset.

#define XHDCP1X_PORT_OFFSET_KSVFIFO   (0x2Cu)

KSV FIFO Offset.

#define XHDCP1X_PORT_OFFSET_PJ   (0x0Au)

Pj' Offset.

#define XHDCP1X_PORT_OFFSET_RO   (0x08u)

Ri'/Ro' Offset.

#define XHDCP1X_PORT_OFFSET_RO   (0x05u)

R0' Offset.

#define XHDCP1X_PORT_OFFSET_VH0   (0x20u)

V'.H0 Offset.

#define XHDCP1X_PORT_OFFSET_VH0   (0x14u)

V'.H0 Offset.

#define XHDCP1X_PORT_OFFSET_VH1   (0x24u)

V'.H1 Offset.

#define XHDCP1X_PORT_OFFSET_VH1   (0x18u)

V'.H1 Offset.

#define XHDCP1X_PORT_OFFSET_VH2   (0x28u)

V'.H2 Offset.

#define XHDCP1X_PORT_OFFSET_VH2   (0x1Cu)

V'.H2 Offset.

#define XHDCP1X_PORT_OFFSET_VH3   (0x2Cu)

V'.H3 Offset.

#define XHDCP1X_PORT_OFFSET_VH3   (0x20u)

V'.H3 Offset.

#define XHDCP1X_PORT_OFFSET_VH4   (0x30u)

V'.H4 Offset.

#define XHDCP1X_PORT_OFFSET_VH4   (0x24u)

V'.H4 Offset.

#define XHDCP1X_PORT_PRIMARY_I2C_ADDR   (0x74u)

This constant defines the i2c address of the hdcp port.

I2C Addr Primary Link

#define XHDCP1X_PORT_SECONDARY_I2C_ADDR   (0x76u)

I2C Addr Secondary Link.

#define XHDCP1X_PORT_SIZE_AINFO   (0x01u)

Ainfo Size.

#define XHDCP1X_PORT_SIZE_AINFO   (0x01u)

Ainfo Offset.

#define XHDCP1X_PORT_SIZE_AKSV   (0x05u)

Aksv Size.

#define XHDCP1X_PORT_SIZE_AKSV   (0x05u)

Aksv Size.

#define XHDCP1X_PORT_SIZE_AN   (0x08u)

An Size.

#define XHDCP1X_PORT_SIZE_AN   (0x08u)

An Size.

#define XHDCP1X_PORT_SIZE_BCAPS   (0x01u)

Bcaps Size.

#define XHDCP1X_PORT_SIZE_BCAPS   (0x01u)

Bcaps Size.

#define XHDCP1X_PORT_SIZE_BKSV   (0x05u)

These constants specify the sizes for the various fields and/or attributes within the hdcp port.

Bksv Size

#define XHDCP1X_PORT_SIZE_BKSV   (0x05u)

These constants specify the sizes for the various fields and/or attributes within the hdcp port.

Bksv Size

Referenced by XHdcp1x_RxSetTopologyKSVList(), and XHdcp1x_TxGetTopologyBKSV().

#define XHDCP1X_PORT_SIZE_BSTATUS   (0x02u)

Bstatus Size.

#define XHDCP1X_PORT_SIZE_DBG   (0xC0u)

Debug Space Size.

#define XHDCP1X_PORT_SIZE_DBG   (0x40u)

Debug Space Size.

#define XHDCP1X_PORT_SIZE_HDCP_RESET_KSV   (0x40u)

KSV FIFO pointer reset Size.

#define XHDCP1X_PORT_SIZE_KSVFIFO   (0x01u)

KSV FIFO Size.

#define XHDCP1X_PORT_SIZE_KSVFIFO   (0x0Fu)

KSV FIFO Size.

#define XHDCP1X_PORT_SIZE_PJ   (0x01u)

Pj' Size.

#define XHDCP1X_PORT_SIZE_RO   (0x02u)

Ri' Size.

#define XHDCP1X_PORT_SIZE_RO   (0x02u)

R0' Size.

#define XHDCP1X_PORT_SIZE_VH0   (0x04u)

V'.H0 Size.

#define XHDCP1X_PORT_SIZE_VH0   (0x04u)

V'.H0 Size.

#define XHDCP1X_PORT_SIZE_VH1   (0x04u)

V'.H1 Size.

#define XHDCP1X_PORT_SIZE_VH1   (0x04u)

V'.H1 Size.

#define XHDCP1X_PORT_SIZE_VH2   (0x04u)

V'.H2 Size.

#define XHDCP1X_PORT_SIZE_VH2   (0x04u)

V'.H2 Size.

#define XHDCP1X_PORT_SIZE_VH3   (0x04u)

V'.H3 Size.

#define XHDCP1X_PORT_SIZE_VH3   (0x04u)

V'.H3 Size.

#define XHDCP1X_PORT_SIZE_VH4   (0x04u)

V'.H4 Size.

#define XHDCP1X_PORT_SIZE_VH4   (0x04u)

V'.H4 Size.

#define XHDCP1X_PORT_UINT_TO_BUF (   buf,
  uint,
  numbits 
)
Value:
if ((numbits) > 0) { \
int byte; \
for (byte = 0; byte <= (int)(((numbits) - 1) >> 3); byte++) { \
buf[byte] = (uint8_t) (uint & 0xFFu); \
uint >>= 8; \
} \
}

This macro converts from an unsigned integer to a little endian formatted buffer.

Parameters
bufthe buffer to write to
uintthe unsigned integer to convert
numbitsthe number of bits within the unsigned integer to use
Returns
None.
Note
The value of the "uint" parameter is destroyed by a call to this macro
#define XHDCP1X_RPTR_MAX_CASCADE   4

Maximum depth that the Repeater can support on the downstream interface.

#define XHDCP1X_RPTR_MAX_DEVS_COUNT   32

Maximum devices that can be cascaded to the Repeater.

#define XHDCP1X_RX_H

< Prevent circular inclusions by using protection macros

#define XHdcp1x_SetCallBack   XHdcp1x_SetCallback

Alternative name for the function to set callback for HDCP functions.

#define XHDCP1X_TX_H

< Prevent circular inclusions by using protection macros

#define XHdcp1x_WriteReg (   BaseAddress,
  RegOffset,
  Data 
)    XHdcp1x_Out32((BaseAddress) + ((u32)RegOffset), (u32)(Data))

This macro writes a value to a HDCP cipher register.

A 32 bit write is always performed.

Parameters
BaseAddressis the base address of the HDCP cipher core instance.
RegOffsetis the register offset of the register
Datais the 32-bit value to write into the register.
Returns
None.
Note
C-style: void XHdcp1x_WriteReg(UINTPTR BaseAddress, u32 RegOffset, u32 Data)

Referenced by XHdcp1x_CipherDisable(), XHdcp1x_CipherDisableBlank(), XHdcp1x_CipherDisableEncryption(), XHdcp1x_CipherDoRequest(), XHdcp1x_CipherEnable(), XHdcp1x_CipherEnableBlank(), XHdcp1x_CipherEnableEncryption(), XHdcp1x_CipherGetLocalKsv(), XHdcp1x_CipherHandleInterrupt(), XHdcp1x_CipherInit(), XHdcp1x_CipherSetB(), XHdcp1x_CipherSetK(), XHdcp1x_CipherSetKeySelect(), XHdcp1x_CipherSetLinkStateCheck(), XHdcp1x_CipherSetNumLanes(), XHdcp1x_CipherSetRemoteKsv(), and XHdcp1x_CipherSetRiUpdate().

#define XPAR_XHDCP_NUM_INSTANCES   0

Number of HDCP Instances.

Referenced by XHdcp1x_LookupConfig().

#define XVPHY_FLAG_IS_REPEATER   (1u << 1)

Flag to track repeater state.

#define XVPHY_FLAG_PHY_UP   (1u << 0)

Flag to track physical state.

#define XVPHY_FLAG_PHY_UP   (1u << 0)

Flag to track physical state.

#define XVPHY_TMO_100MS   (100u)

Timeout value for 100ms.

#define XVPHY_TMO_100MS   (100u)

Timeout value for 100ms.

#define XVPHY_TMO_1SECOND   (1000u)

Timeout value for 1s.

#define XVPHY_TMO_1SECOND   (1000u)

Timeout value for 1s.

#define XVPHY_TMO_5MS   (5u)

Timeout value for 5ms.

#define XVPHY_TMO_5MS   (5u)

Timeout value for 5ms.

Typedef Documentation

typedef void(* XHdcp1x_Callback)(void *CallbackRef)

This typedef defines the callback interface that is to be used for interrupts within this driver.

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.

typedef u64 XHdcp1x_Ksv

This typedef defines a memory to store a Key Selection Vector (KSV)

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.

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.

This typedef contains an instance of the HDCP port.

The typedef defines the HDCP port adaptor table.

This contains a series of functions that map the external interface of the HDCP port device to the underlying physical interface that it is running over

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.

typedef int(* XHdcp1x_RunDdcHandler)(u8 DeviceAddress, u16 ByteCount, u8 *BufferPtr, u8 Stop, void *RefPtr)

Callback type used for calling DDC read and write functions.

Parameters
DeviceAddressis the (i2c) device address of the HDCP port.
ByteCountis the amount of data bytes in the buffer to read or write.
BufferPtris a pointer to a buffer that is used for reading or writing.
Stopis a flag to control if a stop token is set or not.
RefPtris a callback reference passed in by the upper layer when setting the DDC reading and writing functions, and passed back to the upper layer when the callback is invoked.
Returns
  • XST_SUCCESS The read action was successful.
  • XST_FAILURE The read action failed.
Note
None.
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.

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.

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.

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.

Enumeration Type Documentation

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

These constants specify different types of authentication requests that can be initiated within a peripheral.

This enumerates the Event Types for HDCP Receiver state machine.

This enumerates the Event Types for HDCP Transmitter state machine.

These constants are used to identify callback functions.

This typedef defines the different types of handlers that can be registered to service interrupt requests from the HDCP port instance.

Enumerator
XHDCP1X_PORT_HANDLER_AUTHENTICATE 

An (re)auth request.

This enumerates the call back for the HDCP Repeater Tx state machine.

This enumerates the State Types for HDCP Receiver state machine.

This enumerates the State Types for HDCP Receiver state machine.

This enumerates the Event Types for HDCP Transmitter state machine.

These constants are used to identify fields inside the topology structure.

This enumerates the Event Types for HDCP Transmitter state machine.

Function Documentation

int XHdcp1x_Authenticate ( XHdcp1x InstancePtr)

This function initiates authentication of an HDCP interface.

Parameters
InstancePtris the interface to initiate authentication on.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE otherwise.
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, XHdcp1x_RxAuthenticate(), and XHdcp1x_TxAuthenticate().

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.

Parameters
InstancePtris the device whose adaptor is to be determined.
CfgPtris the configuration of the instance.
PhyIfPtris pointer to the underlying physical interface.
EffectiveAddris the device base address in the virtual memory space. If the address translation is not used, then the physical address is passed.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE otherwise.
Note
None.

References XHdcp1x_PortStruct::Adaptor, XHdcp1x_Tx::AuthenticatedCallback, XHdcp1x_Rx::AuthenticatedCallback, XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHdcp1x_Rx::DdcGetDataCallback, XHdcp1x_Tx::DdcRead, XHdcp1x_Rx::DdcSetAddressCallback, XHdcp1x_Rx::DdcSetDataCallback, XHdcp1x_Tx::DdcWrite, XHdcp1x_Rx::EncryptionUpdateCallback, XHdcp1x_PortPhyIfAdaptorS::Init, XHdcp1x_Tx::IsAuthenticatedCallbackSet, XHdcp1x_Rx::IsAuthenticatedCallbackSet, XHdcp1x_Rx::IsDdcGetDataCallbackSet, XHdcp1x_Tx::IsDdcReadSet, XHdcp1x_Rx::IsDdcSetAddressCallbackSet, XHdcp1x_Rx::IsDdcSetDataCallbackSet, XHdcp1x_Tx::IsDdcWriteSet, XHdcp1x_Rx::IsEncryptionUpdateCallbackSet, XHdcp1x_Config::IsHDMI, XHdcp1x::IsReady, XHdcp1x_Rx::IsRepeaterDownstreamAuthCallbackSet, XHdcp1x_Tx::IsRepeaterExchangeCallbackSet, XHdcp1x_Config::IsRx, XHdcp1x_Rx::IsTopologyUpdateCallbackSet, XHdcp1x_Tx::IsUnauthenticatedCallbackSet, XHdcp1x_Rx::IsUnauthenticatedCallbackSet, XHdcp1x_PortStruct::PhyIfPtr, XHdcp1x::Port, XHdcp1x_Rx::RepeaterDownstreamAuthCallback, XHdcp1x_Tx::RepeaterExchangeCallback, XHdcp1x::Rx, XHdcp1x_Rx::TopologyUpdateCallback, XHdcp1x::Tx, XHdcp1x_Tx::UnauthenticatedCallback, XHdcp1x_Rx::UnauthenticatedCallback, XHDCP1X_CIPHER_BITMASK_TYPE_DIRECTION, XHDCP1X_CIPHER_BITMASK_TYPE_PROTOCOL, XHDCP1X_CIPHER_REG_TYPE, XHDCP1X_CIPHER_VALUE_TYPE_DIRECTION_RX, XHDCP1X_CIPHER_VALUE_TYPE_PROTOCOL_HDMI, XHdcp1x_CipherInit(), XHdcp1x_PortDetermineAdaptor(), XHdcp1x_ReadReg, XHdcp1x_RxInit(), and XHdcp1x_TxInit().

void XHdcp1x_CipherDisableBlank ( XHdcp1x InstancePtr)

This function sets the cipher blank select to FALSE.

Parameters
InstancePtris the device to query.
Returns
None.
Note
None.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_BITMASK_BLANK_SEL, XHDCP1X_CIPHER_REG_BLANK_SEL, XHdcp1x_ReadReg, and XHdcp1x_WriteReg.

Referenced by XHdcp1x_TxDisableBlank().

int XHdcp1x_CipherDisableEncryption ( XHdcp1x InstancePtr,
u64  StreamMap 
)

This function disables encryption on a set of streams.

Parameters
InstancePtris the device to configure.
StreamMapis the bit map of streams to disable encryption on.
Returns
  • XST_SUCCESS if successful.
  • XST_NOT_ENABLE if the core is not enabled.
  • XST_FAILURE otherwise.
Note
None.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_BITMASK_CIPHER_CONTROL_XOR_ENABLE, XHDCP1X_CIPHER_BITMASK_CONTROL_UPDATE, XHDCP1X_CIPHER_REG_CIPHER_CONTROL, XHDCP1X_CIPHER_REG_CONTROL, XHDCP1X_CIPHER_REG_ENCRYPT_ENABLE_H, XHDCP1X_CIPHER_REG_ENCRYPT_ENABLE_L, XHdcp1x_CipherIsEnabled, XHdcp1x_IsHDMI, XHdcp1x_IsRX, XHdcp1x_ReadReg, and XHdcp1x_WriteReg.

Referenced by XHdcp1x_TxDisableEncryption().

int XHdcp1x_CipherDoRequest ( XHdcp1x InstancePtr,
XHdcp1x_CipherRequestType  Request 
)

This function initiates a request within the HDCP cipher.

Parameters
InstancePtris the device to submit the request to.
Requestis the request to submit.
Returns
  • XST_SUCCESS if successful.
  • XST_NOT_ENABLE if the core is disabled.
  • XST_DEVICE_BUSY if the core is busy.
Note
None.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_BITMASK_CIPHER_CONTROL_REQUEST, XHDCP1X_CIPHER_BITMASK_CIPHER_STATUS_REQUEST_IN_PROG, XHDCP1X_CIPHER_BITMASK_CONTROL_UPDATE, XHDCP1X_CIPHER_REG_CIPHER_CONTROL, XHDCP1X_CIPHER_REG_CIPHER_STATUS, XHDCP1X_CIPHER_REG_CONTROL, XHDCP1X_CIPHER_VALUE_CIPHER_CONTROL_REQUEST_BLOCK, XHdcp1x_CipherIsEnabled, XHdcp1x_ReadReg, and XHdcp1x_WriteReg.

void XHdcp1x_CipherEnableBlank ( XHdcp1x InstancePtr)

This function sets the cipher blank value to 0x0000FF (blue), and sets the cipher blank select to TRUE.

Parameters
InstancePtris the device to query.
Returns
None.
Note
None.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_BITMASK_BLANK_SEL, XHDCP1X_CIPHER_BITMASK_BLANK_VALUE, XHDCP1X_CIPHER_REG_BLANK_SEL, XHDCP1X_CIPHER_REG_BLANK_VALUE, XHdcp1x_ReadReg, and XHdcp1x_WriteReg.

Referenced by XHdcp1x_TxEnableBlank().

int XHdcp1x_CipherEnableEncryption ( XHdcp1x InstancePtr,
u64  StreamMap 
)

This function enables encryption on a set of streams.

Parameters
InstancePtris the device to configure.
StreamMapis the bit map of streams to enable encryption on.
Returns
  • XST_SUCCESS if successful.
  • XST_NOT_ENABLE if the core is not enabled.
  • XST_FAILURE otherwise.
Note
None.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_BITMASK_CIPHER_CONTROL_XOR_ENABLE, XHDCP1X_CIPHER_BITMASK_CONTROL_UPDATE, XHDCP1X_CIPHER_REG_CIPHER_CONTROL, XHDCP1X_CIPHER_REG_CONTROL, XHDCP1X_CIPHER_REG_ENCRYPT_ENABLE_H, XHDCP1X_CIPHER_REG_ENCRYPT_ENABLE_L, XHdcp1x_CipherIsEnabled, XHdcp1x_CipherXorInProgress, XHdcp1x_IsRX, XHdcp1x_ReadReg, and XHdcp1x_WriteReg.

int XHdcp1x_CipherGetB ( const XHdcp1x InstancePtr,
u32 *  X,
u32 *  Y,
u32 *  Z 
)

This function reads the contents of the B register in BM0.

Parameters
InstancePtris the device to query.
Xis to be loaded with the contents of Bx.
Yis to be loaded with the contents of By.
Zis to be loaded with the contents of Bz.
Returns
  • XST_SUCCESS if successful.
  • XST_NOT_ENABLED otherwise.
Note
A NULL pointer can be passed in any of X, Y and Z. If so, then this portion of the B register is not returned to the caller.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_REG_CIPHER_Bx, XHDCP1X_CIPHER_REG_CIPHER_By, XHDCP1X_CIPHER_REG_CIPHER_Bz, XHdcp1x_CipherIsEnabled, and XHdcp1x_ReadReg.

u64 XHdcp1x_CipherGetEncryption ( const XHdcp1x InstancePtr)

This function retrieves the current encryption stream map.

Parameters
InstancePtris the device to query.
Returns
The current encryption stream map.
Note
In the case of the receiver version of this core, the XOR in progress bit needs to be checked as well as the encryption map to fully determine if encryption is enabled for the SST case. This is the reason for the additional check in this code.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_REG_ENCRYPT_ENABLE_H, XHDCP1X_CIPHER_REG_ENCRYPT_ENABLE_L, XHdcp1x_CipherIsEnabled, XHdcp1x_CipherXorInProgress, and XHdcp1x_ReadReg.

Referenced by XHdcp1x_RxGetEncryption().

int XHdcp1x_CipherGetK ( const XHdcp1x InstancePtr,
u32 *  X,
u32 *  Y,
u32 *  Z 
)

This function reads the contents of the K register in BM0.

Parameters
InstancePtris the device to query.
Xis to be loaded with the contents of Kx.
Yis to be loaded with the contents of Ky.
Zis to be loaded with the contents of Kz.
Returns
  • XST_SUCCESS if successful.
  • XST_NOT_ENABLED otherwise.
Note
A NULL pointer can be passed in any of X, Y and Z. If so, then this portion of the K register is not returned to the caller.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_REG_CIPHER_Kx, XHDCP1X_CIPHER_REG_CIPHER_Ky, XHDCP1X_CIPHER_REG_CIPHER_Kz, XHdcp1x_CipherIsEnabled, and XHdcp1x_ReadReg.

u64 XHdcp1x_CipherGetMi ( const XHdcp1x InstancePtr)

This function reads the contents of the Mi/An register of BM0.

Parameters
InstancePtris the device to query.
Returns
The contents of the register.
Note
None.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_REG_CIPHER_Mi_H, XHDCP1X_CIPHER_REG_CIPHER_Mi_L, XHdcp1x_CipherIsEnabled, and XHdcp1x_ReadReg.

u64 XHdcp1x_CipherGetMo ( const XHdcp1x InstancePtr)

This function reads the contents of the Mo register of the device.

Parameters
InstancePtris the device to query.
Returns
The contents of the Mo register.
Note
None.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_REG_CIPHER_Mo_H, XHDCP1X_CIPHER_REG_CIPHER_Mo_L, XHdcp1x_CipherIsEnabled, and XHdcp1x_ReadReg.

u32 XHdcp1x_CipherGetNumLanes ( const XHdcp1x InstancePtr)

This function retrieves the current number of lanes of the HDCP cipher.

Parameters
InstancePtris the device to query.
Returns
The current number of lanes.
Note
None.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_BITMASK_CONTROL_NUM_LANES, XHDCP1X_CIPHER_REG_CONTROL, XHdcp1x_CipherIsEnabled, and XHdcp1x_ReadReg.

u64 XHdcp1x_CipherGetRemoteKsv ( const XHdcp1x InstancePtr)

This function reads the remote KSV value from the cipher.

Parameters
InstancePtris the device to query.
Returns
The remote KSV value.
Note
None.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_REG_KSV_REMOTE_H, XHDCP1X_CIPHER_REG_KSV_REMOTE_L, and XHdcp1x_ReadReg.

u16 XHdcp1x_CipherGetRi ( const XHdcp1x InstancePtr)

This function reads the contents of the Ri register of BM0.

Parameters
InstancePtris the device to query.
Returns
The contents of the register.
Note
None.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_REG_CIPHER_Ri, XHdcp1x_CipherIsEnabled, and XHdcp1x_ReadReg.

u16 XHdcp1x_CipherGetRo ( const XHdcp1x InstancePtr)

This function reads the contents of the Ro register of the device.

Parameters
InstancePtris the device to query.
Returns
The contents of the Ro register.
Note
None.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_REG_CIPHER_Ro, XHdcp1x_CipherIsEnabled, and XHdcp1x_ReadReg.

u32 XHdcp1x_CipherGetVersion ( const XHdcp1x InstancePtr)

This function reads the version of the HDCP cipher core.

Parameters
InstancePtris the device to query.
Returns
The version of the HDCP cipher device.
Note
None.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_REG_VERSION, and XHdcp1x_ReadReg.

Referenced by XHdcp1x_GetVersion(), XHdcp1x_RxInfo(), and XHdcp1x_TxInfo().

void XHdcp1x_CipherIntrHandler ( void *  InstancePtr)

This function is the cipher interrupt handler for the HDCP module.

Parameters
InstancePtris the device instance that just interrupted.
Returns
None.
Note
This function just forwards the interrupt along to the corresponding cipher core.

References XHdcp1x::IsReady, and XHdcp1x_CipherHandleInterrupt().

int XHdcp1x_CipherIsLinkUp ( const XHdcp1x InstancePtr)

This function queries the link state of a cipher device.

Parameters
InstancePtris the device to query.
Returns
Truth value.
Note
None.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_BITMASK_INTERRUPT_LINK_FAIL, XHDCP1X_CIPHER_REG_STATUS, XHdcp1x_CipherIsEnabled, and XHdcp1x_ReadReg.

int XHdcp1x_CipherIsRequestComplete ( const XHdcp1x InstancePtr)

This function queries the progress of the current request.

Parameters
InstancePtris the device to query.
Returns
Truth value.
Note
None.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_BITMASK_CIPHER_STATUS_REQUEST_IN_PROG, XHDCP1X_CIPHER_REG_CIPHER_STATUS, and XHdcp1x_ReadReg.

int XHdcp1x_CipherSetB ( XHdcp1x InstancePtr,
u32  X,
u32  Y,
u32  Z 
)

This function writes the contents of the B register in BM0.

Parameters
InstancePtris the device to write to.
Xis the value to be written to Bx.
Yis the value to be written to By.
Zis the value to be written to Bz.
Returns
  • XST_SUCCESS if successful.
  • XST_NOT_ENABLED otherwise.
Note
None.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_BITMASK_CONTROL_UPDATE, XHDCP1X_CIPHER_REG_CIPHER_Bx, XHDCP1X_CIPHER_REG_CIPHER_By, XHDCP1X_CIPHER_REG_CIPHER_Bz, XHDCP1X_CIPHER_REG_CONTROL, XHdcp1x_CipherIsEnabled, XHdcp1x_ReadReg, and XHdcp1x_WriteReg.

int XHdcp1x_CipherSetCallback ( XHdcp1x InstancePtr,
u32  HandlerType,
XHdcp1x_Callback  CallbackFunc,
void *  CallbackRef 
)

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

HandlerType                             Callback Function Type
-----------------------------------     -----------------------------------
(XHDCP1X_CIPHER_HANDLER_LINK_FAILURE)   LinkFailCallback
(XHDCP1X_CIPHER_HANDLER_Ri_UPDATE)      RiUpdateCallback
Parameters
InstancePtris a pointer to the HDCP cipher 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.

References XHdcp1x::Cipher, XHdcp1x_Cipher::IsLinkFailCallbackSet, XHdcp1x_Cipher::IsRiUpdateCallbackSet, XHdcp1x_Cipher::LinkFailCallback, XHdcp1x_Cipher::LinkFailRef, XHdcp1x_Cipher::RiUpdateCallback, and XHdcp1x_Cipher::RiUpdateRef.

int XHdcp1x_CipherSetK ( XHdcp1x InstancePtr,
u32  X,
u32  Y,
u32  Z 
)

This function writes the contents of the K register in BM0.

Parameters
InstancePtris the device to write to.
Xis the value to be written to Kx.
Yis the value to be written to Ky.
Zis the value to be written to Kz.
Returns
  • XST_SUCCESS if successful.
  • XST_NOT_ENABLED otherwise.
Note
None.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_BITMASK_CONTROL_UPDATE, XHDCP1X_CIPHER_REG_CIPHER_Kx, XHDCP1X_CIPHER_REG_CIPHER_Ky, XHDCP1X_CIPHER_REG_CIPHER_Kz, XHDCP1X_CIPHER_REG_CONTROL, XHdcp1x_CipherIsEnabled, XHdcp1x_ReadReg, and XHdcp1x_WriteReg.

int XHdcp1x_CipherSetKeySelect ( XHdcp1x InstancePtr,
u8  KeySelect 
)

This function configures the key selection value.

Parameters
InstancePtris the device to configure.
KeySelectis the desired key select value.
Returns
  • XST_SUCCESS if successful.
Note
None.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_BITMASK_KEYMGMT_CONTROL_SET_SELECT, XHDCP1X_CIPHER_REG_KEYMGMT_CONTROL, XHdcp1x_ReadReg, and XHdcp1x_WriteReg.

Referenced by XHdcp1x_SetKeySelect().

int XHdcp1x_CipherSetLinkStateCheck ( XHdcp1x InstancePtr,
int  IsEnabled 
)

This function enables/disables the reporting of link check state changes.

Parameters
InstancePtris the cipher core instance.
IsEnabledenables/disables link state change notifications.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE otherwise.
Note
None.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_BITMASK_INTERRUPT_LINK_FAIL, XHDCP1X_CIPHER_REG_INTERRUPT_MASK, XHDCP1X_CIPHER_REG_INTERRUPT_STATUS, XHdcp1x_IsDP, XHdcp1x_IsRX, XHdcp1x_ReadReg, and XHdcp1x_WriteReg.

int XHdcp1x_CipherSetNumLanes ( XHdcp1x InstancePtr,
u32  NumLanes 
)

This function configures the number of lanes of the HDCP cipher.

Parameters
InstancePtris the device to configure.
NumLanesis the number of lanes to configure.
Returns
  • XST_SUCCESS if successful.
Note
None.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_BITMASK_CONTROL_NUM_LANES, XHDCP1X_CIPHER_REG_CONTROL, XHdcp1x_IsHDMI, XHdcp1x_ReadReg, and XHdcp1x_WriteReg.

Referenced by XHdcp1x_RxSetLaneCount(), and XHdcp1x_TxSetLaneCount().

int XHdcp1x_CipherSetRemoteKsv ( XHdcp1x InstancePtr,
u64  Ksv 
)

This function writes the remote KSV value to the cipher.

Parameters
InstancePtris the device to write to.
Ksvis the remote KSV value to write.
Returns
  • XST_SUCCESS if successful.
  • XST_NOT_ENABLED otherwise.
Note
Whenever this function is called, the underlying driver will initiate the calculation of the Km value and wait for it to complete.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_BITMASK_CONTROL_UPDATE, XHDCP1X_CIPHER_BITMASK_KEYMGMT_CONTROL_BEGIN_Km, XHDCP1X_CIPHER_REG_CONTROL, XHDCP1X_CIPHER_REG_KEYMGMT_CONTROL, XHDCP1X_CIPHER_REG_KSV_REMOTE_H, XHDCP1X_CIPHER_REG_KSV_REMOTE_L, XHdcp1x_CipherGetLocalKsv(), XHdcp1x_CipherIsEnabled, XHdcp1x_CipherKmReady, XHdcp1x_ReadReg, and XHdcp1x_WriteReg.

int XHdcp1x_CipherSetRiUpdate ( XHdcp1x InstancePtr,
int  IsEnabled 
)

This function enables/disables the reporting of Ri update notifications.

Parameters
InstancePtris the cipher core instance.
IsEnabledenables/disables Ri update notifications.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE otherwise.
Note
None.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHDCP1X_CIPHER_BITMASK_INTERRUPT_Ri_UPDATE, XHDCP1X_CIPHER_REG_INTERRUPT_MASK, XHDCP1X_CIPHER_REG_INTERRUPT_STATUS, XHdcp1x_IsHDMI, XHdcp1x_ReadReg, and XHdcp1x_WriteReg.

int XHdcp1x_Disable ( XHdcp1x InstancePtr)

This function disables an HDCP interface.

Parameters
InstancePtris the interface to disable.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE otherwise.
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, XHdcp1x_RxDisable(), and XHdcp1x_TxDisable().

void XHdcp1x_DisableBlank ( XHdcp1x InstancePtr)

This function disables the blank output for the cipher.

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

References XHdcp1x::Config, XHdcp1x_Config::IsRx, and XHdcp1x_TxDisableBlank().

int XHdcp1x_DisableEncryption ( XHdcp1x InstancePtr,
u64  Map 
)

This function disables encryption on a series of streams within an HDCP interface.

Parameters
InstancePtris the interface to configure.
Mapis the stream map to disable encryption on.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE otherwise.
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, UNUSED, and XHdcp1x_TxDisableEncryption().

int XHdcp1x_DownstreamReady ( XHdcp1x InstancePtr)

This function posts a DOWNSTREAMREADY event to an HDCP interface.

Parameters
InstancePtris the interface to reset.
Returns
  • XST_SUCCESS if successful.
    • XST_FAILURE otherwise.
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, and XHdcp1x_RxDownstreamReady().

int XHdcp1x_Enable ( XHdcp1x InstancePtr)

This function enables an HDCP interface.

Parameters
InstancePtris the interface to enable.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE otherwise.
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, XHdcp1x_RxEnable(), and XHdcp1x_TxEnable().

void XHdcp1x_EnableBlank ( XHdcp1x InstancePtr)

This function enables the blank output for the cipher.

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

References XHdcp1x::Config, XHdcp1x_Config::IsRx, and XHdcp1x_TxEnableBlank().

int XHdcp1x_EnableEncryption ( XHdcp1x InstancePtr,
u64  Map 
)

This function enables encryption on a series of streams within an HDCP interface.

Parameters
InstancePtris the interface to configure.
Mapis the stream map to enable encryption on.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE otherwise.
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, UNUSED, and XHdcp1x_TxEnableEncryption().

u32 XHdcp1x_GetDriverVersion ( void  )

This function retrieves the version of the HDCP driver software.

Returns
The software driver version.
Note
None.

References DRIVER_VERSION.

Referenced by XHdcp1x_RxInfo(), and XHdcp1x_TxInfo().

u64 XHdcp1x_GetEncryption ( const XHdcp1x InstancePtr)

This function retrieves the current encryption map of the video streams traversing an hdcp interface.

Parameters
InstancePtris the interface to query.
Returns
The current encryption map.
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, XHdcp1x_RxGetEncryption(), and XHdcp1x_TxGetEncryption().

Referenced by XHdcp1x_IsEncrypted().

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 .

Parameters
InstancePtris the receiver instance.
RepeaterInfoPtris the Repeater information in the transmitter instance.
Returns
  • XST_SUCCESS if successful.
    • XST_FAILURE otherwise.
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, and XHdcp1x_RxGetRepeaterInfo().

void * XHdcp1x_GetTopology ( XHdcp1x InstancePtr)

This function returns a pointer to the downstream Topology structure.

Parameters
InstancePtris a pointer to the XHdcp14 core instance.
Returns
A pointer to the XHdcp14 Topology structure or NULL when the topology info is invalid.
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, XHDCP1X_DEBUG_PRINTF, and XHdcp1x_TxGetTopology().

u8 * XHdcp1x_GetTopologyBKSV ( XHdcp1x InstancePtr)

This function returns the value of KSV of the device attached to the downstream interface of the repeater.

Parameters
InstancePtris a pointer to the XHdcp14 core instance.
Returns
  • TRUE if MAX_DEPTH_EXCEEDED
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, and XHdcp1x_TxGetTopologyBKSV().

u32 XHdcp1x_GetTopologyField ( XHdcp1x InstancePtr,
XHdcp1x_TopologyField  Field 
)

This function is used to get various fields inside the topology structure.

Parameters
InstancePtris a pointer to the XHdcp1x core instance.
Fieldindicates what field of the topology structure to update.
Returns
None.
Note
None.

References XHdcp1x_TxGetTopologyDepth(), XHdcp1x_TxGetTopologyDeviceCnt(), XHdcp1x_TxGetTopologyMaxCascadeExceeded(), and XHdcp1x_TxGetTopologyMaxDevsExceeded().

u8 * XHdcp1x_GetTopologyKSVList ( XHdcp1x InstancePtr)

This function returns the value of KSV List read in the downstream interface of the repeater topology.

Parameters
InstancePtris a pointer to the XHdcp14 core instance.
Returns
  • List of KSVs of the downstream devices
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, and XHdcp1x_TxGetTopologyKSVList().

u32 XHdcp1x_GetVersion ( const XHdcp1x InstancePtr)

This function retrieves the cipher version of an HDCP interface.

Parameters
InstancePtris the interface to query.
Returns
The cipher version used by the interface
Note
None.

References XHdcp1x_CipherGetVersion().

void XHdcp1x_HandleTimeout ( void *  InstancePtr)

This function handles a timeout on an HDCP interface.

Parameters
InstancePtris the interface.
Returns
None.
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, XHDCP1X_DEBUG_PRINTF, XHdcp1x_RxHandleTimeout(), and XHdcp1x_TxHandleTimeout().

void XHdcp1x_Info ( const XHdcp1x InstancePtr)

This function performs a debug display of an HDCP instance.

Parameters
InstancePtris the interface to display.
Returns
None.
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, XHDCP1X_DEBUG_PRINTF, XHdcp1x_RxInfo(), and XHdcp1x_TxInfo().

int XHdcp1x_IsAuthenticated ( const XHdcp1x InstancePtr)

This function queries an interface to determine if it has successfully completed authentication.

Parameters
InstancePtris the interface to query.
Returns
Truth value indicating authenticated (TRUE) or not (FALSE).
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, XHdcp1x_RxIsAuthenticated(), and XHdcp1x_TxIsAuthenticated().

Referenced by XHdcp1x_IsEncrypted().

int XHdcp1x_IsDwnstrmCapable ( const XHdcp1x InstancePtr)

This function queries the device connected to the downstream interface to determine if it supports hdcp or not.

Parameters
InstancePtris the interface to query.
Returns
Truth value indicating HDCP capability (TRUE) or not (FALSE).
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, and XHdcp1x_TxIsDownstrmCapable().

int XHdcp1x_IsEnabled ( const XHdcp1x InstancePtr)

This function queries an interface to determine if it is enabled.

Parameters
InstancePtris the interface to query.
Returns
Truth value indicating enabled (TRUE) or not (FALSE).
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, XHdcp1x_RxIsEnabled(), and XHdcp1x_TxIsEnabled().

int XHdcp1x_IsEncrypted ( const XHdcp1x InstancePtr)

This function determines if the video stream is encrypted.

The traffic is encrypted if the encryption bit map is non-zero and the interface is authenticated.

Parameters
InstancePtris a pointer to the HDCP instance.
Returns
Truth value indicating encrypted (TRUE) or not (FALSE).
Note
None.

References XHdcp1x_GetEncryption(), and XHdcp1x_IsAuthenticated().

Referenced by XHdcp1x_RxInfo(), and XHdcp1x_TxInfo().

int XHdcp1x_IsInComputations ( const XHdcp1x InstancePtr)

This function queries an interface to determine if it is in the state of computations or not.

Parameters
InstancePtris the interface to query.
Returns
Truth value indicating authenticated (TRUE) or not (FALSE).
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, XHdcp1x_RxIsInComputations(), and XHdcp1x_TxIsInComputations().

int XHdcp1x_IsInProgress ( const XHdcp1x InstancePtr)

This function queries an interface to determine if authentication is in progress.

Parameters
InstancePtris the interface to query.
Returns
Truth value indicating authentication in progress (TRUE) or not (FALSE).
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, and XHdcp1x_TxIsInProgress().

int XHdcp1x_IsInWaitforready ( const XHdcp1x InstancePtr)

This function queries an interface to determine if it is in the wait-for-ready state or not.

Parameters
InstancePtris the interface to query.
Returns
Truth value indicating authenticated (TRUE) or not (FALSE).
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, XHdcp1x_RxIsInWaitforready(), and XHdcp1x_TxIsInWaitforready().

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.

Parameters
InstancePtris the transmitter instance.
Returns
  • TRUE if Repeater.
  • FALSE if not Repeater,
Note
None.

References XHdcp1x::Config, XHdcp1x::IsRepeater, XHdcp1x_Config::IsRx, XHDCP1X_DEBUG_PRINTF, and XHdcp1x_TxIsRepeater().

XHdcp1x_Config * XHdcp1x_LookupConfig ( u16  DeviceId)

This function returns a reference to an XHdcp1x_Config structure based on specified device ID.

Parameters
DeviceIdis the unique core ID of the HDCP interface.
Returns
A reference to the config record in the configuration table (in xhdcp_g.c) corresponding the specified DeviceId. NULL if no match is found.
Note
None.

References XPAR_XHDCP_NUM_INSTANCES.

int XHdcp1x_PlatformIsKsvRevoked ( const XHdcp1x InstancePtr,
u64  Ksv 
)

This function checks a KSV value to determine if it has been revoked or not.

Parameters
InstancePtris the HDCP interface.
Ksvis the KSV to check.
Returns
Truth value indicating the KSV is revoked (TRUE) or not (FALSE)
Note
None.

References XHdcp1xKsvRevokeCheck.

int XHdcp1x_PlatformTimerBusy ( XHdcp1x InstancePtr,
u16  DelayInMs 
)

This function busy waits on a timer for a number of milliseconds.

Parameters
InstancePtris the hdcp interface.
DelayInMsis the delay time in milliseconds.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE otherwise.
Note
None.

References XHdcp1x::XHdcp1xTimerDelay.

int XHdcp1x_PlatformTimerStart ( XHdcp1x InstancePtr,
u16  TimeoutInMs 
)

This function starts a timer on behalf of an HDCP interface.

Parameters
InstancePtris the hdcp interface.
TimeoutInMsis the duration of the timer in milliseconds.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE otherwise.
Note
None.

References XHdcp1x::XHdcp1xTimerStart.

int XHdcp1x_PlatformTimerStop ( XHdcp1x InstancePtr)

This function stop a timer on behalf of an HDCP interface.

Parameters
InstancePtris the HDCP interface.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE otherwise.
Note
None.

References XHdcp1x::XHdcp1xTimerStop.

int XHdcp1x_Poll ( XHdcp1x InstancePtr)

This function polls an HDCP interface.

Parameters
InstancePtris the interface to poll.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE otherwise.
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, XHdcp1x_RxPoll(), and XHdcp1x_TxPoll().

const XHdcp1x_PortPhyIfAdaptor * XHdcp1x_PortDetermineAdaptor ( XHdcp1x InstancePtr)

This function determines the adaptor for a specified port device.

Parameters
InstancePtris the device whose adaptor is to be determined.
Returns
A pointer to the adaptor table. NULL if not found.
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsHDMI, and XHdcp1x_Config::IsRx.

Referenced by XHdcp1x_CfgInitialize().

int XHdcp1x_PortDisable ( XHdcp1x InstancePtr)

This function disables a port device.

Parameters
InstancePtris the device to disables.
Returns
  • XST_SUCCESS if successful.
  • XST_NO_FEATURE if the port lacks a Disable function.
Note
None.

References XHdcp1x_PortStruct::Adaptor, XHdcp1x_PortPhyIfAdaptorS::Disable, and XHdcp1x::Port.

int XHdcp1x_PortEnable ( XHdcp1x InstancePtr)

This function enables a port device.

Parameters
InstancePtris the device to enables.
Returns
  • XST_SUCCESS if successful.
  • XST_NO_FEATURE if the port lacks an Enable function.
Note
None.

References XHdcp1x_PortStruct::Adaptor, XHdcp1x_PortPhyIfAdaptorS::Enable, and XHdcp1x::Port.

int XHdcp1x_PortGetRepeaterInfo ( XHdcp1x InstancePtr,
u16 *  InfoPtr 
)

This function retrieves the repeater information from the connected device.

Parameters
InstancePtris the device to query.
InfoPtris the repeater info.
Returns
  • XST_SUCCESS if successful.
  • XST_NO_FEATURE if the port lacks a GetRepeaterInfo function.
Note
None.

References XHdcp1x_PortStruct::Adaptor, XHdcp1x_PortPhyIfAdaptorS::GetRepeaterInfo, and XHdcp1x::Port.

void XHdcp1x_PortHandleInterrupt ( XHdcp1x InstancePtr,
u32  IntCause 
)

This handles an interrupt generated by a HDCP port device.

Parameters
InstancePtris the device to write to.
IntCauseis the interrupt cause bit map.
Returns
None.
Note
None.

References XHdcp1x_PortStruct::Adaptor, XHdcp1x_PortStats::IntCount, XHdcp1x_PortPhyIfAdaptorS::IntrHandler, XHdcp1x::Port, and XHdcp1x_PortStruct::Stats.

Referenced by XHdcp1x_PortIntrHandler().

void XHdcp1x_PortIntrHandler ( void *  InstancePtr,
u32  IntCause 
)

This function is the port interrupt handler for the HDCP module.

Parameters
InstancePtris the device instance that just interrupted.
IntCauseis the interrupt cause bit map.
Returns
None.
Note
This function just forwards the interrupt along to the corresponding cipher core.

References XHdcp1x::IsReady, and XHdcp1x_PortHandleInterrupt().

int XHdcp1x_PortIsCapable ( const XHdcp1x InstancePtr)

This function queries a port device to determine if hdcp is supported.

Parameters
InstancePtris the device to query.
Returns
Truth value.
Note
None.

References XHdcp1x_PortStruct::Adaptor, XHdcp1x_PortPhyIfAdaptorS::IsCapable, and XHdcp1x::Port.

Referenced by XHdcp1x_TxIsDownstrmCapable().

int XHdcp1x_PortIsRepeater ( const XHdcp1x InstancePtr)

This function queries a port device to determine if it is connected to a repeater.

Parameters
InstancePtris the device to query.
Returns
Truth value.
Note
None.

References XHdcp1x_PortStruct::Adaptor, XHdcp1x_PortPhyIfAdaptorS::IsRepeater, and XHdcp1x::Port.

Referenced by XHdcp1x_TxIsRepeater().

int XHdcp1x_PortRead ( const XHdcp1x InstancePtr,
u8  Offset,
void *  Buf,
u32  BufSize 
)

This function reads a register from a HDCP port device.

Parameters
InstancePtris the device to read from.
Offsetis the offset to start reading from.
Bufis the buffer to copy the data read.
BufSizeis the size of the buffer.
Returns
The number of bytes read.
Note
None.

References XHdcp1x_PortStruct::Adaptor, XHdcp1x::Port, and XHdcp1x_PortPhyIfAdaptorS::Read.

Referenced by XHdcp1x_RxSetHdmiMode(), XHdcp1x_RxSetTopologyMaxCascadeExceeded(), XHdcp1x_RxSetTopologyMaxDevsExceeded(), XHdcp1x_TxGetTopologyBKSV(), XHdcp1x_TxGetTopologyMaxCascadeExceeded(), and XHdcp1x_TxGetTopologyMaxDevsExceeded().

int XHdcp1x_PortSetCallback ( XHdcp1x InstancePtr,
u32  HandlerType,
XHdcp1x_Callback  CallbackFunc,
void *  CallbackRef 
)

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

HandlerType                           Callback Function Type
------------------------------------  -------------------------------------
(XHDCP1X_PORT_HANDLER_AUTHENTICATE)   AuthCallback
Parameters
InstancePtris a pointer to the HDCP port 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.

References XHdcp1x_PortStruct::AuthCallback, XHdcp1x_PortStruct::AuthRef, XHdcp1x_PortStruct::IsAuthCallbackSet, XHdcp1x::Port, and XHDCP1X_PORT_HANDLER_AUTHENTICATE.

int XHdcp1x_PortSetRepeater ( XHdcp1x InstancePtr,
u8  RptrConf 
)

This function set the REPEATER information in the connected device.

Parameters
InstancePtris the device to query.
RptrConfis the configuration of the device as repeater.
Returns
  • XST_SUCCESS if successful.
  • XST_NO_FEATURE if the port fails to set the Repeater value.
Note
None.

References XHdcp1x_PortStruct::Adaptor, XHdcp1x::Port, and XHdcp1x_PortPhyIfAdaptorS::SetRepeater.

Referenced by XHdcp1x_RxSetRepeaterBcaps().

int XHdcp1x_PortWrite ( XHdcp1x InstancePtr,
u8  Offset,
const void *  Buf,
u32  BufSize 
)

This function writes a register within a HDCP port device.

Parameters
InstancePtris the device to write to.
Offsetis the offset to start writing at.
Bufis the buffer containing the data to write.
BufSizeis the size of the buffer.
Returns
The number of bytes written.
Note
None.

References XHdcp1x_PortStruct::Adaptor, XHdcp1x::Port, and XHdcp1x_PortPhyIfAdaptorS::Write.

Referenced by XHdcp1x_RxSetHdmiMode(), XHdcp1x_RxSetTopologyMaxCascadeExceeded(), and XHdcp1x_RxSetTopologyMaxDevsExceeded().

void XHdcp1x_ProcessAKsv ( XHdcp1x InstancePtr)

This function processes the AKsv.

Parameters
InstancePtris the interface to display.
Returns
None
Note
None.

References XHdcp1x_PortStruct::Adaptor, XHdcp1x_PortPhyIfAdaptorS::CallbackHandler, XHdcp1x::Config, XHdcp1x_Config::IsRx, and XHdcp1x::Port.

int XHdcp1x_ReadDownstream ( XHdcp1x InstancePtr)

This function initiates downstream read of READY bit and consequently the second part of Repeater authentication.

Parameters
InstancePtris the interface to initiate authentication on.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE otherwise.
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, and XHdcp1x_TxReadDownstream().

int XHdcp1x_Reset ( XHdcp1x InstancePtr)

This function resets an HDCP interface.

Parameters
InstancePtris the interface to reset.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE otherwise.
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, XHdcp1x_RxReset(), and XHdcp1x_TxReset().

int XHdcp1x_RxAuthenticate ( XHdcp1x InstancePtr)

This function initiates authentication on an interface.

Parameters
InstancePtris the receiver instance.
Returns
  • XST_SUCCESS if successful.
Note
None.

Referenced by XHdcp1x_Authenticate().

int XHdcp1x_RxDisable ( XHdcp1x InstancePtr)

This function disables a HDCP receive interface.

Parameters
InstancePtris the receiver instance.
Returns
  • XST_SUCCESS if successful.
Note
None.

Referenced by XHdcp1x_Disable().

int XHdcp1x_RxDownstreamReady ( XHdcp1x InstancePtr)

This function initiates downstream ready/ assemble ksv list on an interface.

Parameters
InstancePtris the receiver instance.
Returns
  • XST_SUCCESS if successful.
Note
None.

Referenced by XHdcp1x_DownstreamReady().

int XHdcp1x_RxEnable ( XHdcp1x InstancePtr)

This function enables a HDCP receive interface.

Parameters
InstancePtris the receiver instance.
Returns
  • XST_SUCCESS if successful.
Note
None.

Referenced by XHdcp1x_Enable().

u64 XHdcp1x_RxGetEncryption ( const XHdcp1x InstancePtr)

This function retrieves the current encryption stream map.

Parameters
InstancePtris the receiver instance.
Returns
The current encryption stream map.
Note
None.

References XHdcp1x_CipherGetEncryption().

Referenced by XHdcp1x_GetEncryption().

int XHdcp1x_RxGetRepeaterInfo ( 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 .

Parameters
InstancePtris the receiver instance.
RepeaterInfoPtris the Repeater information in the transmitter instance.
Returns
  • XST_SUCCESS if successful.
Note
None.

References XHdcp1x_RepeaterExchange::Depth, XHdcp1x_RepeaterExchange::DeviceCount, XHdcp1x_RepeaterExchange::KsvList, XHdcp1x::RepeaterValues, and XHdcp1x_RepeaterExchange::V.

Referenced by XHdcp1x_GetRepeaterInfo().

void XHdcp1x_RxHandleTimeout ( XHdcp1x InstancePtr)

This function handles a timeout on an HDCP interface.

Parameters
InstancePtris the receiver instance.
Returns
None.
Note
None.

Referenced by XHdcp1x_HandleTimeout().

void XHdcp1x_RxInit ( XHdcp1x InstancePtr)

This function initializes a HDCP receiver state machine.

Parameters
InstancePtris the receiver instance.
Returns
None.
Note
None.

References XHdcp1x_Rx::PendingEvents, and XHdcp1x::Rx.

Referenced by XHdcp1x_CfgInitialize().

int XHdcp1x_RxIsAuthenticated ( const XHdcp1x InstancePtr)

This function queries an interface to check if its been authenticated.

Parameters
InstancePtris the receiver instance.
Returns
Truth value indicating authenticated (true) or not (false).
Note
None.

References XHdcp1x_Rx::CurrentState, and XHdcp1x::Rx.

Referenced by XHdcp1x_IsAuthenticated().

int XHdcp1x_RxIsEnabled ( const XHdcp1x InstancePtr)

This function queries an interface to check if is enabled.

Parameters
InstancePtris the receiver instance.
Returns
Truth value indicating is enabled (true) or not (false).
Note
None.

References XHdcp1x_Rx::CurrentState, and XHdcp1x::Rx.

Referenced by XHdcp1x_IsEnabled().

int XHdcp1x_RxIsInComputations ( const XHdcp1x InstancePtr)

This function queries an interface to check if its in the computations state.

Parameters
InstancePtris the receiver instance.
Returns
Truth value indicating authenticated (true) or not (false).
Note
None.

References XHdcp1x_Rx::CurrentState, and XHdcp1x::Rx.

Referenced by XHdcp1x_IsInComputations().

int XHdcp1x_RxIsInProgress ( const XHdcp1x InstancePtr)

This function queries an interface to check if authentication is in progress.

Parameters
InstancePtris the receiver instance.
Returns
Truth value indicating in progress (true) or not (false).
Note
None.

References XHdcp1x_Rx::CurrentState, and XHdcp1x::Rx.

int XHdcp1x_RxIsInWaitforready ( const XHdcp1x InstancePtr)

This function queries an interface to check if its in the wait-for-downstream-ready state.

Parameters
InstancePtris the receiver instance.
Returns
Truth value indicating authenticated (true) or not (false).
Note
None.

References XHdcp1x_Rx::CurrentState, and XHdcp1x::Rx.

Referenced by XHdcp1x_IsInWaitforready().

int XHdcp1x_RxPoll ( XHdcp1x InstancePtr)

This function polls the HDCP receiver module.

Parameters
InstancePtris the receiver instance.
Returns
  • XST_SUCCESS if successful.
Note
None.

Referenced by XHdcp1x_Poll().

int XHdcp1x_RxReset ( XHdcp1x InstancePtr)

This function resets an HDCP interface.

Parameters
InstancePtris the receiver instance.
Returns
  • XST_SUCCESS if successful.
Note
This function disables and then re-enables the interface.

Referenced by XHdcp1x_Reset().

int XHdcp1x_RxSetCallback ( XHdcp1x InstancePtr,
XHdcp1x_HandlerType  HandlerType,
void *  CallbackFunc,
void *  CallbackRef 
)

This function installs callback functions for the given HandlerType:

Parameters
InstancePtris a pointer to the HDCP 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.

References XHdcp1x_Rx::AuthenticatedCallback, XHdcp1x_Rx::AuthenticatedCallbackRef, XHdcp1x_Rx::DdcGetDataCallback, XHdcp1x_Rx::DdcGetDataCallbackRef, XHdcp1x_Rx::DdcSetAddressCallback, XHdcp1x_Rx::DdcSetAddressCallbackRef, XHdcp1x_Rx::DdcSetDataCallback, XHdcp1x_Rx::DdcSetDataCallbackRef, XHdcp1x_Rx::EncryptionUpdateCallback, XHdcp1x_Rx::EncryptionUpdateCallbackRef, XHdcp1x_Rx::IsAuthenticatedCallbackSet, XHdcp1x_Rx::IsDdcGetDataCallbackSet, XHdcp1x_Rx::IsDdcSetAddressCallbackSet, XHdcp1x_Rx::IsDdcSetDataCallbackSet, XHdcp1x_Rx::IsEncryptionUpdateCallbackSet, XHdcp1x_Rx::IsRepeaterDownstreamAuthCallbackSet, XHdcp1x_Rx::IsTopologyUpdateCallbackSet, XHdcp1x_Rx::IsUnauthenticatedCallbackSet, XHdcp1x_Rx::RepeaterDownstreamAuthCallback, XHdcp1x_Rx::RepeaterDownstreamAuthRef, XHdcp1x::Rx, XHdcp1x_Rx::TopologyUpdateCallback, XHdcp1x_Rx::TopologyUpdateCallbackRef, XHdcp1x_Rx::UnauthenticatedCallback, and XHdcp1x_Rx::UnauthenticatedCallbackRef.

Referenced by XHdcp1x_SetCallback().

void XHdcp1x_RxSetHdmiMode ( XHdcp1x InstancePtr,
u8  Value 
)

This function set the HDMI_MODE in the BStatus register of the HDMI RX DDC space.

Parameters
InstancePtris a pointer to the Hdcp1x core instance.
Valueis the truth-value.
Returns
None.
Note
None.

References UNUSED, XHDCP1X_PORT_BIT_BSTATUS_HDMI_MODE, XHDCP1X_PORT_OFFSET_BSTATUS, XHDCP1X_PORT_SIZE_BSTATUS, XHdcp1x_PortRead(), and XHdcp1x_PortWrite().

Referenced by XHdcp1x_SetHdmiMode().

int XHdcp1x_RxSetLaneCount ( XHdcp1x InstancePtr,
int  LaneCount 
)

This function set the lane count of an hdcp interface.

Parameters
InstancePtris the receiver instance.
LaneCountis the number of lanes of the interface.
Returns
  • XST_SUCCESS if successful.
Note
None.

References XHdcp1x_CipherSetNumLanes().

Referenced by XHdcp1x_SetLaneCount().

int XHdcp1x_RxSetPhysicalState ( XHdcp1x InstancePtr,
int  IsUp 
)

This function updates the physical state of an HDCP interface.

Parameters
InstancePtris the receiver instance.
IsUpis truth value indicating the status of physical interface.
Returns
  • XST_SUCCESS if successful.
Note
None.

Referenced by XHdcp1x_SetPhysicalState().

int XHdcp1x_RxSetRepeaterBcaps ( XHdcp1x InstancePtr,
u8  IsRptr 
)

This function set the REPEATER bit for the HDCP RX interface.

Parameters
InstancePtris the receiver instance.
IsRptris the truth value to determine if the repeater bit in the port registers is to be set.
Returns
  • XST_SUCCESS if successful.
Note
This function disables and then re-enables the interface.

References XHdcp1x_PortSetRepeater().

Referenced by XHdcp1x_SetRepeater().

void XHdcp1x_RxSetTopology ( XHdcp1x InstancePtr,
const XHdcp1x_RepeaterExchange TopologyPtr 
)

This function sets the RepeaterInfo value int the HDCP RX instance.

Parameters
InstancePtris a pointer to the Hdcp1x core instance.
TopologyPtris the pointer to topology information.
Returns
None.
Note
None.

References XHdcp1x::RepeaterValues.

Referenced by XHdcp1x_SetTopology().

void XHdcp1x_RxSetTopologyDepth ( XHdcp1x InstancePtr,
u32  Value 
)

This function sets the Depth value in the HDCP RX BStatus/BInfo register space for the upstream interface to read.

Parameters
InstancePtris a pointer to the Hdcp1x core instance.
Valueis the Depth value.
Returns
None.
Note
None.

References XHdcp1x_RepeaterExchange::Depth, and XHdcp1x::RepeaterValues.

Referenced by XHdcp1x_SetTopologyField().

void XHdcp1x_RxSetTopologyDeviceCnt ( XHdcp1x InstancePtr,
u32  Value 
)

This function sets the DEVICE_COUNT value in the HDCP RX register space for the upstream interface to read.

Parameters
InstancePtris a pointer to the Hdcp1x core instance.
Valueis the device count value.
Returns
None.
Note
None.

References XHdcp1x_RepeaterExchange::DeviceCount, and XHdcp1x::RepeaterValues.

Referenced by XHdcp1x_SetTopologyField().

void XHdcp1x_RxSetTopologyKSVList ( 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.

Parameters
InstancePtris a pointer to the Hdcp1x core instance.
ListPtris a pointer to the KSV list.
ListSizeis the number of KSVs in the list.
Returns
None.
Note
None.

References XHdcp1x_RepeaterExchange::KsvList, XHdcp1x::RepeaterValues, and XHDCP1X_PORT_SIZE_BKSV.

Referenced by XHdcp1x_SetTopologyKSVList().

void XHdcp1x_RxSetTopologyMaxCascadeExceeded ( XHdcp1x InstancePtr,
u8  Value 
)

This function sets the MAX_CASCADE_EXCEEDED error flag in the HDCP BStatus/BInfo register to indicate a topology error.

Setting the flag indicates a depth of more than (4 - 1).

Parameters
InstancePtris a pointer to the Hdcp1x core instance.
Valueis either TRUE or FALSE.
Returns
None.
Note
None.

References XHDCP1X_PORT_BINFO_DEPTH_ERR_SHIFT, XHDCP1X_PORT_BSTATUS_DEPTH_ERR_SHIFT, XHDCP1X_PORT_OFFSET_BINFO, XHDCP1X_PORT_OFFSET_BSTATUS, XHDCP1X_PORT_SIZE_BINFO, XHDCP1X_PORT_SIZE_BSTATUS, XHdcp1x_PortRead(), and XHdcp1x_PortWrite().

Referenced by XHdcp1x_SetTopologyField().

void XHdcp1x_RxSetTopologyMaxDevsExceeded ( XHdcp1x InstancePtr,
u8  Value 
)

This function sets the MAX_DEVS_EXCEEDED error flag in the HDCP BStatus register to indicate a topology error.

Setting the flag indicates that more than 31 downstream devices are attached.

Parameters
InstancePtris a pointer to the Hdcp1x core instance.
Valueis either TRUE or FALSE.
Returns
None.
Note
None.

References XHDCP1X_PORT_BINFO_DEV_CNT_ERR_SHIFT, XHDCP1X_PORT_BSTATUS_DEV_CNT_ERR_SHIFT, XHDCP1X_PORT_OFFSET_BINFO, XHDCP1X_PORT_OFFSET_BSTATUS, XHDCP1X_PORT_SIZE_BINFO, XHDCP1X_PORT_SIZE_BSTATUS, XHdcp1x_PortRead(), and XHdcp1x_PortWrite().

Referenced by XHdcp1x_SetTopologyField().

void XHdcp1x_RxSetTopologyUpdate ( XHdcp1x InstancePtr)

This function does the necessary actions to update HDCP after the topology has been set.

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

Referenced by XHdcp1x_SetTopologyUpdate().

int XHdcp1x_SelfTest ( XHdcp1x InstancePtr)

This function self tests an HDCP interface.

Parameters
InstancePtris the interface to test.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE otherwise.
Note
None.

References XHdcp1x_Config::BaseAddress, XHdcp1x::Config, XHdcp1x_Config::IsHDMI, XHdcp1x_Config::IsRx, XHDCP1X_CIPHER_REG_VERSION, XHdcp1x_IsDP, XHdcp1x_IsHDMI, XHdcp1x_IsRX, XHdcp1x_IsTX, and XHdcp1x_ReadReg.

int XHdcp1x_SetCallback ( XHdcp1x InstancePtr,
XHdcp1x_HandlerType  HandlerType,
void *  CallbackFunc,
void *  CallbackRef 
)

This function installs callback functions for the given HandlerType.

Parameters
InstancePtris a pointer to the HDCP 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.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, XHdcp1x_RxSetCallback(), and XHdcp1x_TxSetCallback().

void XHdcp1x_SetDebugLogMsg ( XHdcp1x_LogMsg  LogFunc)

This function sets the debug log message function for the module.

Parameters
LogFuncis the debug logging function.
Returns
None.
Note
None.

References XHdcp1xDebugLogMsg.

void XHdcp1x_SetDebugPrintf ( XHdcp1x_Printf  PrintfFunc)

This function sets the debug printf function for the module.

Parameters
PrintfFuncis the printf function.
Returns
None.
Note
None.

References XHdcp1xDebugPrintf.

void XHdcp1x_SetHdmiMode ( XHdcp1x InstancePtr,
u8  Value 
)

This function set the HDMI_MODE in the BStatus register of the HDMI DDC space.

Parameters
InstancePtris a pointer to the Hdcp1x core instance.
Valueis the truth-value.
Returns
None.
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, XHDCP1X_DEBUG_PRINTF, XHdcp1x_RxSetHdmiMode(), and XHdcp1x_TxSetHdmiMode().

int XHdcp1x_SetKeySelect ( XHdcp1x InstancePtr,
u8  KeySelect 
)

This function sets the key selection vector that is to be used by the HDCP cipher.

Parameters
InstancePtris the interface to configure.
KeySelectis the key selection vector.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE otherwise.
Note
None.

References XHdcp1x_CipherSetKeySelect().

void XHdcp1x_SetKsvRevokeCheck ( XHdcp1x_KsvRevokeCheck  RevokeCheckFunc)

This function sets the KSV revocation list check function for the module.

Parameters
RevokeCheckFuncis the KSV revocation list check function.
Returns
None.
Note
None.

References XHdcp1xKsvRevokeCheck.

int XHdcp1x_SetLaneCount ( XHdcp1x InstancePtr,
int  LaneCount 
)

This function sets the lane count of a hdcp interface.

Parameters
InstancePtris the interface to update.
LaneCountis the lane count.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE otherwise.
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsHDMI, XHdcp1x_Config::IsRx, XHdcp1x_RxSetLaneCount(), and XHdcp1x_TxSetLaneCount().

int XHdcp1x_SetPhysicalState ( XHdcp1x InstancePtr,
int  IsUp 
)

This function updates the state of the underlying physical interface.

Parameters
InstancePtris the interface to update.
IsUpindicates the state of the underlying physical interface.
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE otherwise.
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, XHdcp1x_RxSetPhysicalState(), and XHdcp1x_TxSetPhysicalState().

int XHdcp1x_SetRepeater ( XHdcp1x InstancePtr,
u8  State 
)

This function sets the Repeater functionality for an HDCP interface.

Parameters
InstancePtris the interface to disable.
Stateis etiher TRUE or FALSE
Returns
  • XST_SUCCESS if successful.
  • XST_FAILURE otherwise.
Note
None.

References XHdcp1x::Config, XHdcp1x::IsRepeater, XHdcp1x_Config::IsRx, and XHdcp1x_RxSetRepeaterBcaps().

void XHdcp1x_SetTimerDelay ( XHdcp1x InstancePtr,
XHdcp1x_TimerDelay  TimerDelayFunc 
)

This function sets timer busy delay function for the module.

Parameters
InstancePtris the pointer to the HDCP interface.
TimerDelayFuncis the timer busy delay function.
Returns
None.
Note
None.

References XHdcp1x::XHdcp1xTimerDelay.

void XHdcp1x_SetTimerStart ( XHdcp1x InstancePtr,
XHdcp1x_TimerStart  TimerStartFunc 
)

This function sets timer start function for the module.

Parameters
InstancePtris the pointer to the HDCP interface.
TimerStartFuncis the timer start function.
Returns
None.
Note
None.

References XHdcp1x::XHdcp1xTimerStart.

void XHdcp1x_SetTimerStop ( XHdcp1x InstancePtr,
XHdcp1x_TimerStop  TimerStopFunc 
)

This function sets timer stop function for the module.

Parameters
InstancePtris the pointer to the HDCP interface.
TimerStopFuncis the timer stop function.
Returns
None.
Note
None.

References XHdcp1x::XHdcp1xTimerStop.

void XHdcp1x_SetTopology ( XHdcp1x InstancePtr,
const XHdcp1x_RepeaterExchange TopologyPtr 
)

This function sets the RepeaterInfo value int the HDCP RX instance.

Parameters
InstancePtris a pointer to the Hdcp1x core instance.
TopologyPtris a pointer to the Repeater Info value(s).
Returns
None.
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, and XHdcp1x_RxSetTopology().

void XHdcp1x_SetTopologyField ( XHdcp1x InstancePtr,
XHdcp1x_TopologyField  Field,
u8  Value 
)

This function is used to set various fields inside the topology structure.

Parameters
InstancePtris a pointer to the XHdcp1x core instance.
Fieldindicates what field of the topology structure to update.
Valueis the value assigned to the field of the topology structure.
Returns
None.
Note
None.

References XHdcp1x_RxSetTopologyDepth(), XHdcp1x_RxSetTopologyDeviceCnt(), XHdcp1x_RxSetTopologyMaxCascadeExceeded(), and XHdcp1x_RxSetTopologyMaxDevsExceeded().

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.

Parameters
InstancePtris a pointer to the Hdcp1x core instance.
ListPtris a pointer to the KSV list.
ListSizeis the number of KSVs in the list.
Returns
None.
Note
None.

References XHdcp1x::Config, XHdcp1x_Config::IsRx, UNUSED, and XHdcp1x_RxSetTopologyKSVList().

void XHdcp1x_SetTopologyUpdate ( XHdcp1x InstancePtr)

This function does the necessary actions to update HDCP after the topology has been set.

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

References XHdcp1x::Config, XHdcp1x_Config::IsRx, XHDCP1X_DEBUG_PRINTF, and XHdcp1x_RxSetTopologyUpdate().

int XHdcp1x_TxAuthenticate ( XHdcp1x InstancePtr)

This function initiates authentication on an interface.

Parameters
InstancePtris the transmitter instance.
Returns
  • XST_SUCCESS if successful.
Note
None.

References XHdcp1x_Tx::IsAuthReqPending, and XHdcp1x::Tx.

Referenced by XHdcp1x_Authenticate().

int XHdcp1x_TxDisable ( XHdcp1x InstancePtr)

This function disables an HDCP interface.

Parameters
InstancePtris the transmitter instance.
Returns
  • XST_SUCCESS if successful.
Note
None.

Referenced by XHdcp1x_Disable().

void XHdcp1x_TxDisableBlank ( XHdcp1x InstancePtr)

This function disables the blank output for the cipher.

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

References XHdcp1x_CipherDisableBlank().

Referenced by XHdcp1x_DisableBlank().

int XHdcp1x_TxDisableEncryption ( XHdcp1x InstancePtr,
u64  StreamMap 
)

This function disables encryption on set of streams on an HDCP interface.

Parameters
InstancePtris the transmitter instance.
StreamMapis the bit map of streams to disable encryption on.
Returns
  • XST_SUCCESS if successful.
Note
None.

References XHdcp1x_Tx::EncryptionMap, XHdcp1x::Tx, XHdcp1x_CipherDisableEncryption(), and XHdcp1x_TxIsEnabled().

Referenced by XHdcp1x_DisableEncryption().

int XHdcp1x_TxEnable ( XHdcp1x InstancePtr)

This function enables an HDCP interface.

Parameters
InstancePtris the transmitter instance.
Returns
  • XST_SUCCESS if successful.
Note
None.

Referenced by XHdcp1x_Enable().

void XHdcp1x_TxEnableBlank ( XHdcp1x InstancePtr)

This function enables the blank output for the cipher.

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

References XHdcp1x_CipherEnableBlank().

Referenced by XHdcp1x_EnableBlank().

int XHdcp1x_TxEnableEncryption ( XHdcp1x InstancePtr,
u64  StreamMap 
)

This function enables encryption on set of streams on an HDCP interface.

Parameters
InstancePtris the transmitter instance.
StreamMapis the bit map of streams to enable encryption on.
Returns
  • XST_SUCCESS if successful.
Note
None.

References XHdcp1x_Tx::EncryptionMap, XHdcp1x::Tx, and XHdcp1x_TxIsAuthenticated().

Referenced by XHdcp1x_EnableEncryption().

u64 XHdcp1x_TxGetEncryption ( const XHdcp1x InstancePtr)

This function retrieves the current encryption stream map.

Parameters
InstancePtrthe transmitter instance.
Returns
The current encryption stream map.
Note
None.

References XHdcp1x_Tx::EncryptionMap, and XHdcp1x::Tx.

Referenced by XHdcp1x_GetEncryption().

XHdcp1x_RepeaterExchange * XHdcp1x_TxGetTopology ( XHdcp1x InstancePtr)

This function returns a pointer to the downstream Topology structure.

Parameters
InstancePtris a pointer to the XHdcp14 core instance.
Returns
A pointer to the XHdcp14 Topology structure or NULL when the topology info is invalid.
Note
None.

References XHdcp1x_Tx::CurrentState, XHdcp1x::IsRepeater, XHdcp1x::RepeaterValues, and XHdcp1x::Tx.

Referenced by XHdcp1x_GetTopology().

u8 * XHdcp1x_TxGetTopologyBKSV ( XHdcp1x InstancePtr)

This function returns the value of BKSV of the device connected to the repeater downstream interface.

Parameters
InstancePtris a pointer to the XHdcp14 core instance.
Returns
  • TRUE if MAX_DEPTH_EXCEEDED
  • FALSE if not
Note
None.

References XHDCP1X_PORT_BUF_TO_UINT, XHDCP1X_PORT_OFFSET_BKSV, XHDCP1X_PORT_SIZE_BKSV, and XHdcp1x_PortRead().

Referenced by XHdcp1x_GetTopologyBKSV().

u32 XHdcp1x_TxGetTopologyDepth ( XHdcp1x InstancePtr)

This function returns the value of Depth read in the downstream interface of the repeater topology.

Parameters
InstancePtris a pointer to the XHdcp14 core instance.
Returns
Value of Depth.
Note
None.

References XHdcp1x_RepeaterExchange::Depth, and XHdcp1x::RepeaterValues.

Referenced by XHdcp1x_GetTopologyField().

u32 XHdcp1x_TxGetTopologyDeviceCnt ( XHdcp1x InstancePtr)

This function returns the value of Device Count read in the downstream interface of the repeater topology.

Parameters
InstancePtris a pointer to the XHdcp14 core instance.
Returns
  • TRUE if MAX_DEPTH_EXCEEDED
  • FALSE if not
Note
None.

References XHdcp1x_RepeaterExchange::DeviceCount, and XHdcp1x::RepeaterValues.

Referenced by XHdcp1x_GetTopologyField().

u8 * XHdcp1x_TxGetTopologyKSVList ( XHdcp1x InstancePtr)

This function returns the value of KSV List read in the downstream interface of the repeater topology.

Parameters
InstancePtris a pointer to the XHdcp14 core instance.
Returns
  • TRUE if MAX_DEPTH_EXCEEDED
  • FALSE if not
Note
None.

References XHdcp1x_RepeaterExchange::DeviceCount, XHdcp1x_RepeaterExchange::KsvList, and XHdcp1x::RepeaterValues.

Referenced by XHdcp1x_GetTopologyKSVList().

u32 XHdcp1x_TxGetTopologyMaxCascadeExceeded ( XHdcp1x InstancePtr)

This function returns the MAX_DEPTH_EXCEEDED flag in the repeater topology structure.

Parameters
InstancePtris a pointer to the XHdcp14 core instance.
Returns
  • TRUE if MAX_DEPTH_EXCEEDED
  • FALSE if not
Note
None.

References XHDCP1X_PORT_BINFO_BIT_DEPTH_ERR, XHDCP1X_PORT_BSTATUS_BIT_DEPTH_ERR, XHDCP1X_PORT_OFFSET_BINFO, XHDCP1X_PORT_OFFSET_BSTATUS, XHDCP1X_PORT_SIZE_BINFO, XHDCP1X_PORT_SIZE_BSTATUS, and XHdcp1x_PortRead().

Referenced by XHdcp1x_GetTopologyField().

u32 XHdcp1x_TxGetTopologyMaxDevsExceeded ( XHdcp1x InstancePtr)

This function returns the MAX_DEVICS_EXCEEDED flag in the repeater topology structure.

Parameters
InstancePtris a pointer to the XHdcp14 core instance.
Returns
  • TRUE if MAX_DEVICES_EXCEEDED
  • FALSE if not
Note
None.

References XHDCP1X_PORT_BINFO_BIT_DEV_CNT_ERR, XHDCP1X_PORT_BSTATUS_BIT_DEV_CNT_ERR, XHDCP1X_PORT_OFFSET_BINFO, XHDCP1X_PORT_OFFSET_BSTATUS, XHDCP1X_PORT_SIZE_BINFO, XHDCP1X_PORT_SIZE_BSTATUS, and XHdcp1x_PortRead().

Referenced by XHdcp1x_GetTopologyField().

void XHdcp1x_TxHandleTimeout ( XHdcp1x InstancePtr)

This function handles a timeout on an HDCP interface.

Parameters
InstancePtris the transmitter instance.
Returns
None.
Note
None.

Referenced by XHdcp1x_HandleTimeout().

void XHdcp1x_TxInit ( XHdcp1x InstancePtr)

This function initializes a transmit state machine.

Parameters
InstancePtris the receiver instance.
Returns
None.
Note
None.

References XHdcp1x_Tx::PendingEvents, and XHdcp1x::Tx.

Referenced by XHdcp1x_CfgInitialize().

int XHdcp1x_TxIsAuthenticated ( const XHdcp1x InstancePtr)

This function queries an interface to check if its been authenticated.

Parameters
InstancePtris the transmitter instance.
Returns
Truth value indicating authenticated (true) or not (false).
Note
None.

References XHdcp1x_Tx::CurrentState, and XHdcp1x::Tx.

Referenced by XHdcp1x_IsAuthenticated(), and XHdcp1x_TxEnableEncryption().

int XHdcp1x_TxIsDownstrmCapable ( const XHdcp1x InstancePtr)

This function queries the downstream device to check if the downstream device is HDCP capable.

Parameters
InstancePtris the receiver instance.
Returns
Truth value indicating HDCP capability (true) or not (false).
Note
None.

References XHdcp1x_PortIsCapable().

Referenced by XHdcp1x_IsDwnstrmCapable().

int XHdcp1x_TxIsEnabled ( const XHdcp1x InstancePtr)

This function queries an interface to check if it is enabled.

Parameters
InstancePtris the transmitter instance.
Returns
Truth value indicating is enabled (true) or not (false).
Note
None.

References XHdcp1x_Tx::CurrentState, and XHdcp1x::Tx.

Referenced by XHdcp1x_IsEnabled(), and XHdcp1x_TxDisableEncryption().

int XHdcp1x_TxIsInComputations ( const XHdcp1x InstancePtr)

This function queries an interface to check if its in the computations state.

Parameters
InstancePtris the transmitter instance.
Returns
Truth value indicating authenticated (true) or not (false).
Note
None.

References XHdcp1x_Tx::CurrentState, and XHdcp1x::Tx.

Referenced by XHdcp1x_IsInComputations().

int XHdcp1x_TxIsInProgress ( const XHdcp1x InstancePtr)

This function queries an interface to check if authentication is still in progress.

Parameters
InstancePtris the transmitter instance.
Returns
Truth value indicating in progress (true) or not (false).
Note
None.

References XHdcp1x_Tx::IsAuthReqPending, and XHdcp1x::Tx.

Referenced by XHdcp1x_IsInProgress().

int XHdcp1x_TxIsInWaitforready ( const XHdcp1x InstancePtr)

This function queries an interface to check if its in the wait-for-ready state.

Parameters
InstancePtris the transmitter instance.
Returns
Truth value indicating authenticated (true) or not (false).
Note
None.

References XHdcp1x_Tx::CurrentState, and XHdcp1x::Tx.

Referenced by XHdcp1x_IsInWaitforready().

int XHdcp1x_TxIsRepeater ( XHdcp1x InstancePtr)

This function returns if HDCP TX interface is connected to a downstream repeater.

Parameters
InstancePtris the transmitter instance.
Returns
  • TRUE if Repeater.
  • FALSE if not Repeater,
Note
None.

References XHdcp1x_PortIsRepeater().

Referenced by XHdcp1x_IsRepeater().

int XHdcp1x_TxPoll ( XHdcp1x InstancePtr)

This function polls an HDCP interface.

Parameters
InstancePtris the transmitter instance.
Returns
  • XST_SUCCESS if successful.
Note
None.

References XHdcp1x::IsReady.

Referenced by XHdcp1x_Poll().

int XHdcp1x_TxReadDownstream ( XHdcp1x InstancePtr)

This function initiates the transmitter to read READY bit from downstream and complete second part of authentication.

Parameters
InstancePtris the transmitter instance.
Returns
  • XST_SUCCESS if successful.
Note
None.

Referenced by XHdcp1x_ReadDownstream().

int XHdcp1x_TxReset ( XHdcp1x InstancePtr)

This function resets an HDCP interface.

Parameters
InstancePtris the transmitter instance.
Returns
  • XST_SUCCESS if successful.
Note
This function disables and then re-enables the interface.

References XHdcp1x_Tx::IsAuthReqPending, and XHdcp1x::Tx.

Referenced by XHdcp1x_Reset().

int XHdcp1x_TxSetCallback ( XHdcp1x InstancePtr,
XHdcp1x_HandlerType  HandlerType,
void *  CallbackFunc,
void *  CallbackRef 
)

This function installs callback functions for the given HandlerType:

Parameters
InstancePtris a pointer to the HDCP 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.

References XHdcp1x_Tx::AuthenticatedCallback, XHdcp1x_Tx::AuthenticatedCallbackRef, XHdcp1x_Tx::DdcRead, XHdcp1x_Tx::DdcReadRef, XHdcp1x_Tx::DdcWrite, XHdcp1x_Tx::DdcWriteRef, XHdcp1x_Tx::IsAuthenticatedCallbackSet, XHdcp1x_Tx::IsDdcReadSet, XHdcp1x_Tx::IsDdcWriteSet, XHdcp1x_Tx::IsRepeaterExchangeCallbackSet, XHdcp1x_Tx::IsUnauthenticatedCallbackSet, XHdcp1x_Tx::RepeaterExchangeCallback, XHdcp1x_Tx::RepeaterExchangeRef, XHdcp1x::Tx, XHdcp1x_Tx::UnauthenticatedCallback, and XHdcp1x_Tx::UnauthenticatedCallbackRef.

Referenced by XHdcp1x_SetCallback().

void XHdcp1x_TxSetHdmiMode ( XHdcp1x InstancePtr,
u8  Value 
)

This set a flag that allows the hdcp1x drivers to determine if the transmitter is HDMI or DVI.

Parameters
InstancePtris the transmitter instance.
Returns
None.
Note
None.

References XHdcp1x::Tx, XHdcp1x_Tx::TxIsHdmi, and UNUSED.

Referenced by XHdcp1x_SetHdmiMode().

int XHdcp1x_TxSetLaneCount ( XHdcp1x InstancePtr,
int  LaneCount 
)

This function set the lane count of an HDCP interface.

Parameters
InstancePtris the transmitter instance.
LaneCountis the number of lanes of the interface.
Returns
  • XST_SUCCESS if successful.
Note
None.

References XHdcp1x_CipherSetNumLanes().

Referenced by XHdcp1x_SetLaneCount().

int XHdcp1x_TxSetPhysicalState ( XHdcp1x InstancePtr,
int  IsUp 
)

This function updates the physical state of an HDCP interface.

Parameters
InstancePtris the transmitter instance.
IsUpis truth value indicating the status of physical interface.
Returns
  • XST_SUCCESS if successful.
Note
None.

Referenced by XHdcp1x_SetPhysicalState().

void XHdcp1x_TxTriggerDownstreamAuth ( void *  Parameter)

This function acts as the downstream authentication trigger callback for a Repeater state machine, to start the second part of authentication.

Parameters
Parameteris the parameter specified during registration.
Returns
None.
Note
None.

Variable Documentation

XHdcp1x_Config XHdcp1x_ConfigTable[]

Instance of Lookup table of HDCP instance(s) in the design.

XHdcp1x_LogMsg XHdcp1xDebugLogMsg

Instance of function interface used for debug log message statement.

Referenced by XHdcp1x_SetDebugLogMsg().

XHdcp1x_LogMsg XHdcp1xDebugLogMsg = NULL

Instance of function interface used for debug log message statement.

Referenced by XHdcp1x_SetDebugLogMsg().

XHdcp1x_Printf XHdcp1xDebugPrintf

Instance of function interface used for debug print statement.

Referenced by XHdcp1x_SetDebugPrintf().

XHdcp1x_Printf XHdcp1xDebugPrintf = NULL

Instance of function interface used for debug print statement.

Referenced by XHdcp1x_SetDebugPrintf().

XHdcp1x_KsvRevokeCheck XHdcp1xKsvRevokeCheck

Instance of function interface used for checking a specific KSV against the platforms revocation list.

Referenced by XHdcp1x_PlatformIsKsvRevoked(), and XHdcp1x_SetKsvRevokeCheck().

XHdcp1x_KsvRevokeCheck XHdcp1xKsvRevokeCheck = NULL

Instance of function interface used for checking a specific KSV against the platforms revocation list.

Referenced by XHdcp1x_PlatformIsKsvRevoked(), and XHdcp1x_SetKsvRevokeCheck().