HDMI Intel® FPGA IPユーザーガイド

ID 683798
日付 12/04/2023
Public
ドキュメント目次

5.1.9. HDCP 1.4 TXのアーキテクチャー

HDCP 1.4トランスミッター・ブロックでは、ビデオおよび補助データを暗号化してから、HDCP 1.4デバイスに接続しているシリアルリンクで伝送します。
HDCP 1.4 TXコアは、次のエンティティーで構成されます。
  • コントロールおよびステータスレジスター・レイヤー
  • 認証レイヤー
  • ビデオストリームおよび補助レイヤー
図 27. HDCP 1.4 TX IPのアーキテクチャー・ブロック図

通常、Nios IIプロセッサーによりHDCP 1.4 TXコアを駆動します。プロセッサーは認証プロトコルを実装します。プロセッサーは、Avalon Memory Mapped (Avalon-MM) インターフェイスを使用して、コントロールおよびステータスポートを介してIPにアクセスします。

HDCP仕様の要件により、HDCP 1.4 TXコアをDCP発行のプロダクション・キー、つまりDevice Private Keys (Akeys) とKey Selection Vector (Aksv) でプログラムする必要があります。IPは、HDCP Keyポートを介してコアの外部にあるオンチップメモリーからキーを取得します。オンチップメモリーでは、次の表に示す配置でキーデータを格納する必要があります。

表 32.  HDCP 1.4 TX Keyポートのアドレス指定
アドレス コンテンツ
6'h28 {16’d0, Aksv[39:0]}
6'h27 Akeys39[55:0]
6'h26 Akeys38[55:0]
... ...
6'h01 Akeys01[55:0]
6'h00 Akeys00[55:0]

HDCP 1.4リピーターデバイスで認証する場合は、HDCP 1.4 TXコアで認証プロトコルの第2部分を実行する必要があります。この第2部分は、すべてのダウンストリーム・デバイスのKSVのSHA-1ハッシュ・ダイジェストの計算に対応します。このKSVは、コントロールおよびステータスポート (Avalon-MM) を使用して、コントロールおよびステータスレジスター・レイヤーに書き込まれます。

ビデオストリームおよび補助レイヤーでは、ビデオおよび補助データ入力ポートを介してオーディオおよびビデオコンテンツを受信し、暗号化操作を実行します。ビデオストリームおよび補助レイヤーでは、HDMI TXコアによって提供される暗号化ステータス信号 (ESS) を検出し、フレームを暗号化するタイミングを決定します。

HDCP 1.4のレジスターを使用して、デザイン・コンフィグレーションをカスタマイズすることができます。HDCP 1.4 TXコアは、認証に向けて完全なハンドシェイク・メカニズムをサポートしています。発行されるすべてのコマンドでは、対応するステータスビットのアサートがポーリングされ、その後次のコマンドの発行が開始します。AUTH_CMD の値は、一度に1ビットしか設定できないワンホット形式にする必要があります。

表 33.  HDCP 1.4 TXレジスターのマッピング
アドレス レジスター R/W リセット ビット ビット名 詳細
0x00 AUTH_CMD (ワンホット) WO 0x00000000 31:6 Reserved 予約済み
5 GO_V 1に設定すると、リピーターによる認証時にVを計算し、V’と比較します。セルフクリアされます。
4 Reserved 予約済み
3 GEN_RI 1に設定すると、認証交換時にR0、リンク整合性検証時にRiを生成して受信します。RiとRi’の比較は、 Nios® IIプロセッサーによって実行されます。セルフクリアされます。
2 GO_KM 1に設定すると、マスターキー (km) が計算されます。セルフクリアされます。
1 GEN_AKSV 1に設定すると、Aksvを要求して受信します。セルフクリアされます。
0 GEN_AN 1に設定すると、新しい真のランダムAnを生成して受信します。セルフクリアされます。
0x01 AUTH_MSGDATAIN WO 0x00000000 31:8 Reserved 予約済み
7:0 MSGDATAIN

バーストモードでレシーバーからメッセージを書き込みます (バイト単位)。

  1. マスター鍵の計算: GO_KM を1に設定する前に、BCAPS.REPEATER ビットを設定し、次のメッセージを次の順序で書き込む必要があります。
    1. 5バイトのBksv、最下位バイト (LSB) が先頭
  2. Vの生成: GO_V を1に設定する前に、次のメッセージを次の順序で書き込む必要があります。
    1. V’の20バイト、LSBが先頭
    2. KSVリストの可変長、LSBが先頭
    3. Bstatusの2バイト、LSBが先頭
0x02 AUTH_STATUS RO 0x00000000 31 KM_OK コアによってアサートされ、受信Bksvが有効であることを示します。KM_OK を読み出す前に、KM_DONE が設定されるまでポーリングします。
30 V_OK コアによってアサートされ、V-V’の比較が合格したことを示します。V_OK を読み出す前に、V_DONE が設定されるまでポーリングします。
29:6 Reserved 予約済み
5 V_DONE Vが生成されるとコアによってアサートされます。次の GO_V が設定されるとセルフクリアされます。
4 Reserved 予約済み
3 RI_DONE Riが生成されるとコアによってアサートされます。次の GEN_RI が設定されるとセルフクリアされます。
2 KM_DONE Kmが生成されるとコアによってアサートされます。次の GO_KM が設定されるとセルフクリアされます。
1 AKSV_DONE MSGDATAOUT からAksvを読み出す準備ができると、コアによってアサートされます。次の GEN_AKSV が設定されるとセルフクリアされます。
0 AN_DONE 新しいランダムAnが生成され、MSGDATAOUT から読み出す準備ができるとコアによってアサートされます。次の GEN_AN が設定されるとセルフクリアされます。
0x03 AUTH_MSGDATAOUT RO 0x00000000 31:8 Reserved 予約済み
7:0 MSGDATAOUT

バーストモードでIPからメッセージを読み出します (バイト単位)。

  1. Anの生成: AN_DONE が1に設定されると、このオフセットを8回読み出しAnを取得します。LSBが先頭です。
  2. Aksv要求: AKSV_DONE が1に設定されると、このオフセットを5回読み出しAksvを取得します。LSBが先頭です。
  3. Ri要求: RI_DONE が1に設定されると、このオフセットを2回読み出しRiを取得します。LSBが先頭です。
0x04 VID_CTL RW 0x00000000 31:1 Reserved 予約済み
0 HDCP_ENABLE 1に設定すると、HDCP 1.4暗号化が有効になります。HDCP 1.4暗号化が必要ない場合、特に認証されていない状態の場合は0に設定します。
0x05 BCAPS RW 0x00000000 31:2 Reserved 予約済み
1 REPEATER ダウンストリーム・リピーター機能。ダウンストリームから受信した Bcaps のビット6 (REPEATER) をこのオフセットに書き込みます。
0 Reserved 予約済み