HDMI Intel® Arria 10 FPGA IP设计示例用户指南

ID 683156
日期 5/12/2021
Public
文档目录

4.4.3.2. 将加密的HDCP产品密钥存储在外部闪存或EEPROM中(Support HDCP Key Management = 1)

图 34. HDCP密钥管理的高级概述

Support HDCP Key Management参数开启时,您可以使用Intel提供的密钥加密(KEYENC)设计控制HDCP产品密钥加密。您必须提供HDCP产品密钥和128位HDCP保护密钥。HDCP保护密钥对HDCP产品密钥进行加密,并将密钥存储在HDMI子卡上的外部闪存(例如 EEPROM)中。

开启Support HDCP Key Management参数,密钥解密功能(KEYDEC)在HDCP IP core中可用。KEYDEC中应使用相同的HDCP保护密钥,以便在运行时为处理引擎检索HDCP产品密钥。KEYENC和KEYDEC支持Atmel AT24CS32 32-Kbit串行EEPROM,Atmel AT24C16A 16-Kbit串行EEPROM和具有至少16-Kbit rom大小的兼容I2C EEPROM器件。
注: 对于HDMI 2.0 FMC子卡Revision 11,确保子卡上的EEPROM是Atmel AT24CS32。Bitec HDMI 2.0 FMC 子卡Revision 11上使用了两种不同大小的EEPROM。

请安装以下步骤将HDCP产品秘钥包含在KEYENC设计中并将加密的HDCP产品密钥编程到 EEPROM:

  1. 将硬件演示文件从以下路径复制到您的工作目录:<IP Root Directory>/hdcp2x/hw_demo/key_encryption/<Device Family Name>
  2. software/key_encrypt_src/ directory中找到软件文件(main.c),然后根据使用的EEPROM对软件参数#EEPROM_REVISION进行修改。
  3. software/key_encrypt_src/directory中找到软件头文件(hdcp_keys.h),包含big endian格式的HDCP产品密钥和HDCP保护密钥,如下例所示。
    图 35. Data array of Facsimile Key R1 for RX Private Key
    图 36. HDCP Production Keys (Placeholder)的数据数组
    图 37. HDCP Protection Key (Predefined key)的数据数组
  4. 运行./runall.tcl。此脚本执行以下命令:
    • 生成IP目录文件
    • 生成Platform Designer系统
    • 创建一个 Intel® Quartus® Prime工程
    • 创建一个软件工作区并构建软件
    • 执行完整编译
  5. 将Software Object File (.sof)下载到FPGA,以将加密的HDCP产品秘钥编程到EEPROM中。
  6. 要生成EEPROM映像文件,需要编辑read_mem.tcl来确保hardware_name和device_name与运行硬件相匹配。
  7. 运行"quartus_stp -t read_mem.tcl"。此脚本在相同目录下生成一个EEPROM映像文件(.hex文件格式)。

开启Support HDCP 2.3Support HDCP 1.4参数,生成Arria 10 HDMI RX-TX Retransmit 设计示例,然后按照以下步骤包含HDCP保护密钥。

  1. <project directory>/rtl/hdcp/directory中找到以下Memory Initialization Files (.mif):
    • hdcp2x_rx_kmem.mif
    • hdcp2x_tx_kmem.mif
    • hdcp1x_rx_kmem.mif
    • hdcp1x_tx_kmem.mif
  2. 打开hdcp2x_rx_kmem.mif文件。找到预定义的HDCP保护密钥,如下例所示,并替换为big endian格式的HDCP保护密钥。
    图 38. 在hdcp2x_rx_kmem.mif中初始化的HDCP保护秘钥
  3. 对其他存储器初始化文件重复步骤 2,如下例所示。
    图 39. 在hdcp2x_tx_kmem.mif中初始化的HDCP保护密钥
    图 40. 在hdcp1x_rx_kmem.mif中初始化的HDCP保护密钥
    图 41. 在hdcp1x_tx_kmem.mif中初始化的HDCP保护密钥