仅对英特尔可见 — GUID: hth1618812714356
Ixiasoft
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:
- 将硬件演示文件从以下路径复制到您的工作目录:<IP Root Directory>/hdcp2x/hw_demo/key_encryption/<Device Family Name>
- 在software/key_encrypt_src/ directory中找到软件文件(main.c),然后根据使用的EEPROM对软件参数#EEPROM_REVISION进行修改。
- 在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)的数据数组
- 运行./runall.tcl。此脚本执行以下命令:
- 生成IP目录文件
- 生成Platform Designer系统
- 创建一个 Intel® Quartus® Prime工程
- 创建一个软件工作区并构建软件
- 执行完整编译
- 将Software Object File (.sof)下载到FPGA,以将加密的HDCP产品秘钥编程到EEPROM中。
- 要生成EEPROM映像文件,需要编辑read_mem.tcl来确保hardware_name和device_name与运行硬件相匹配。
- 运行"quartus_stp -t read_mem.tcl"。此脚本在相同目录下生成一个EEPROM映像文件(.hex文件格式)。
开启Support HDCP 2.3和Support HDCP 1.4参数,生成Arria 10 HDMI RX-TX Retransmit 设计示例,然后按照以下步骤包含HDCP保护密钥。
- 在<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
- 打开hdcp2x_rx_kmem.mif文件。找到预定义的HDCP保护密钥,如下例所示,并替换为big endian格式的HDCP保护密钥。
图 38. 在hdcp2x_rx_kmem.mif中初始化的HDCP保护秘钥
- 对其他存储器初始化文件重复步骤 2,如下例所示。
图 39. 在hdcp2x_tx_kmem.mif中初始化的HDCP保护密钥图 40. 在hdcp1x_rx_kmem.mif中初始化的HDCP保护密钥图 41. 在hdcp1x_tx_kmem.mif中初始化的HDCP保护密钥