HDMI インテル® Arria 10 FPGA IPデザイン例のユーザーガイド

ID 683156
日付 5/12/2021
Public
ドキュメント目次

4.4.3.2. 外部フラッシュメモリーまたはEEPROMでの暗号化されているHDCPプロダクション・キーの格納 (Support HDCP Key Management = 1)

図 34. HDCPキー管理の概要

Support HDCP Key Managementパラメーターがオンになっている場合は、インテルが提供するキー暗号化 (KEYENC) デザインを使用して、HDCPプロダクション・キーの暗号化の制御を保持します。HDCPプロダクション・キーと128ビットのHDCP保護キーを提供する必要があります。HDCP保護キーは、HDCPプロダクション・キーを暗号化し、キーをHDMIドーターカードの外部フラッシュメモリー (EEPROMなど) に格納します。

Support HDCP Key Managementパラメーターをオンにすると、キー復号化機能 (KEYDEC) がHDCP IPコアで利用可能になります。同じHDCP保護キーをKEYDECで使用し、ランタイムにHDCPプロダクション・キーを処理エンジンに向けて取得します。KEYENCおよびKEYDECは、Atmel AT24CS32 32Kビット・シリアルEEPROM、Atmel AT24C16A 16Kビット・シリアルEEPROM、および少なくとも16KビットのROMサイズの互換性のあるI2C EEPROMデバイスをサポートします。
注: HDMI 2.0 FMCドーターカード・リビジョン11の場合は、ドーターカードのEEPROMがAtmel AT24CS32であることを確認してください。Bitec HDMI 2.0 FMCドーターカード・リビジョン11で使用されるEEPROMには2つの異なるサイズがあります。

HDCPプロダクション・キーをKEYENCデザインに含め、暗号化されているHDCPプロダクション・キーをEEPROMにプログラミングするには、次の手順に従います。

  1. ハードウェア・デモンストレーション・ファイルを次のパスから作業ディレクトリーにコピーします。<IP Root Directory>/hdcp2x/hw_demo/hdcp_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) を検索し、以下に示されている例のように、HDCPプロダクション・キーとHDCP保護キーをビッグ・エンディアン形式で含めます。
    図 35. RX秘密鍵向けファクシミリ・キーR1のデータ配列
    図 36. HDCPプロダクション・キーのデータ配列 (プレースホルダー)
    図 37. HDCP保護キーのデータ配列 (事前定義されているキー)
  4. ./runall.tclを実行します。このスクリプトは、次のコマンドを実行します。
    • IPカタログファイルの生成
    • プラットフォーム・デザイナー・システムの生成
    • インテル® Quartus® Primeプロジェクトの作成
    • ソフトウェア・ワークスペースの作成とソフトウェアのビルド
    • 完全なコンパイルの実行
  5. ソフトウェア・オブジェクト・ファイル (.sof) をFPGAにダウンロードし、暗号化されているHDCPプロダクション・キーをEEPROMにプログラミングします。
  6. EEPROMイメージファイルを生成するには、read_mem.tclを編集し、hardware_nameとdevice_nameが実行中のハードウェアと一致していることを確認します。
  7. 「quartus_stp -t read_mem.tcl」を実行します。このスクリプトは、同じディレクトリー下に.hexファイル形式でEEPROMイメージファイルを生成します。

Arria 10 HDMI RX-TX Retransmit デザイン例をSupport HDCP 2.3およびSupport HDCP 1.4パラメーターをオンにして生成します。その後、次の手順に従いHDCP保護キーを含めます。

  1. 次のメモリー初期化ファイル (.mif) を <project directory>/rtl/hdcp/ directoryで検索します。
    • hdcp2x_rx_kmem.mif
    • hdcp2x_tx_kmem.mif
    • hdcp1x_rx_kmem.mif
    • hdcp1x_tx_kmem.mif
  2. hdcp2x_rx_kmem.mifファイルを開きます。次の例に示すように、事前定義されているHDCP保護キーを検索し、お使いの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保護キー