Method 1 - 3.1 English

DisplayPort 1.4 RX Subsystem Product Guide (PG300)

Document ID
PG300
Release Date
2024-12-11
Version
3.1 English

Ensure that #define USE_EEPROM_HDCP_KEYS is defined in \**zcu102_system_directly**\**sw_directly**\src\main.h

HDCP 1.3 and 2.x Key Management

The application software does not use the raw HDCP 1.3 and 2.x keys. To use the HDCP 1.3 and 2.x keys, encrypt the keys and store them in the EEPROM using a password. Decrypt the keys using the same password and use them in the application. This is a manual process. This section provides the steps to encrypt the HDCP 1.3 keys and store it in EEPROM using HDCP key utility.

Using the HDCP Key Utility

  • After building the AMD Vitis™ platform successfully, click Board Support Package from Vitis.
  • Locate the row for dp14txss.
  • Click Import Examples.
    Note: AMD does not provide any of the HDCP keys. The application delivered with this software is created with invalid keys and does not play HDCP content.
  1. Select hdcp_key_utility as shown in the image.
  2. This will import the utility application to encrypt and store the HDCP 1.3 and 2.x keys in EEPROM.
  3. Navigate to \**hdcp_key_utility_system_directory**\**sw_directory**\src\
  4. Populate the 128-bit global constant LC128 keys in the Hdcp22Lc128[] array of the hdcp_key_utility.c file. Replace zeros in the array with the LC128 keys.
  5. Populate the HDCP 2.x RX private keys in the Hdcp22Key[] array of the hdcp_key_utility.c file. Replace zeros in the array with RX private keys.
  6. Populate the HDCP 1.3 key A and key B in the Hdcp14Key1[] and Hdcp14Key2[] array of the hdcp_key_utility.c file respectively. Replace zeros in the array with HDCP 1.3 keys.
  7. Build the application after storing the mentioned keys in the arrays. Program the board with the generated ELF file.
  8. Enter a password with which you will be encrypting and storing the HDCP keys in EEPROM and press enter.
  9. After keying in the password, the HDCP keys are encrypted and stored in EEPROM as follows.
  10. Navigate to the imported example design application's source file \**zcu102_system_directory**\**sw_directory**\src\
  11. Populate the System Renewability Revoke Check Message (SRM) keys in the Hdcp22Srm[] array of the keys.c file. Replace the zeros in the array with the SRM keys.
  12. Build the example design application and program the board with generated ELF file.
  13. The example design application asks for the password as:
  14. Enter the same password that was used to encrypt and store the HDCP keys in the HDCP key utility.
  15. After entering the correct password, the application reads the encrypted HDCP keys from EEPROM. Decrypt them and use it in the application as follows.