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

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

6.1.9. HDCP 1.4 RXのアーキテクチャー

HDCP 1.4レシーバーブロックでは、接続しているHDCP 1.4デバイスからの保護されているビデオおよび補助データを復号化します。HDCP 1.4レシーバーブロックの構造レイヤーは、HDCP 1.4トランスミッター・ブロックと同じです。
図 55. HDCP 1.4 RX IPのアーキテクチャー・ブロック図

HDCP 1.4 RXコアは完全な自律型です。HDMIアプリケーションの場合、トランスミッターでI2Cプロトコルをサポートする標準DDCインターフェイスを使用して、HDCP 1.4 RXコアを駆動します。HDCPレジスターポート ( Avalon®メモリーマップド・インターフェイス) を介してIPを駆動するには、外部のI2Cスレーブが必要です。

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

表 55.  HDCP 1.4 RX Keyポートのアドレス指定
アドレス コンテンツ
6'h28 {16’d0, Bksv[39:0]}
6'h27 Bkeys39[55:0]
6'h26 Bkeys38[55:0]
... ...
6'h01 Bkeys01[55:0]
6'h00 Bkeys00[55:0]

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

HDCP 1.4 RXコアをリピーター・アップストリーム・インターフェイスとして実装するには、IPで特定の情報 (KSVリストや Bstatus など) をアップストリーム・トランスミッターに伝播し、SHA-1ハッシュ・ダイジェストに使用する必要があります。リピーターのダウンストリーム・インターフェイス (TX) では、リピーター・メッセージ・ポート ( Avalon®メモリーマップド・インターフェイス) を使用してこの情報を提供する必要があります。同じクロックソースを使用して、HDCPレジスターポートとリピーター・メッセージ・ポートのクロックを駆動することができます。

次の表で定義されているRXレジスターのマッピングは、HDCP仕様で定義されているHDCP 1.4レシーバーのアドレス空間に相当します。

表 56.  HDCP 1.4 RXレジスターのマッピング
アドレス レジスター R/W リセット ビット ビット名 詳細
0x00 BKSV0 RO - 7:0 HDCPレシーバーKSVのビット [7:0]
0x01 BKSV1 - 7:0 HDCPレシーバーKSVのビット [15:8]
0x02 BKSV2 - 7:0 HDCPレシーバーKSVのビット [23:16]
0x03 BKSV3 - 7:0 HDCPレシーバーKSVのビット [31:24]
0x04 BKSV4 - 7:0 HDCPレシーバーKSVのビット [39:32]
0x05-0x07 Rsvd RO 0x00 7:0 予約済み。すべてのバイトは0x00として読み出されます。
0x08 RI_PRIME0 RO 0x00 7:0 リンク検証応答。Ri’のビット [7:0]
0x09 RI_PRIME1 0x00 7:0 リンク検証応答。Ri’のビット [15:8]
0x0A PJ_PRIME RO 0x00 7:0 予約済み。すべてのバイトは0x00として読み出されます。
0x0B – 0x0F Rsvd RO 0x00 7:0 予約済み。すべてのバイトは0x00として読み出されます。
0x10 AKSV0 WO 0x00 7:0 HDCPトランスミッターKSVのビット [7:0]
0x11 AKSV1 0x00 7:0 HDCPトランスミッターKSVのビット [15:8]
0x12 AKSV2 0x00 7:0 HDCPトランスミッターKSVのビット [23:16]
0x13 AKSV3 0x00 7:0 HDCPトランスミッターKSVのビット [31:24]
0x14 AKSV4 0x00 7:0 HDCPトランスミッターKSVのビット [39:32]
0x15 AINFO WO 0x00 7:0 予約済み
0x16 – 0x17 Rsvd RO 0x00 7:0 予約済み。すべてのバイトは0x00として読み出されます。
0x18 AN0 WO 0x00 7:0 HDCPセッション乱数Anのビット [7:0]
0x19 AN1 0x00 7:0 HDCPセッション乱数Anのビット [15:8]
0x1A AN2 0x00 7:0 HDCPセッション乱数Anのビット [23:16]
0x1B AN3 0x00 7:0 HDCPセッション乱数Anのビット [31:24]
0x1C AN4 0x00 7:0 HDCPセッション乱数Anのビット [39:32]
0x1D AN5 0x00 7:0 HDCPセッション乱数Anのビット [47:40]
0x1E AN6 0x00 7:0 HDCPセッション乱数Anのビット [55:48]
0x1F AN7 0x00 7:0 HDCPセッション乱数Anのビット [63:56]
0x20 V_PRIME_H0_0 RO 0x00 7:0 SHA-1ハッシュ値のH0部分で、認証プロトコルHDCPリピーターで使用されます。H0値のビット [7:0]。
0x21 V_PRIME_H0_1 0x00 7:0 H0値のビット [15:8]
0x22 V_PRIME_H0_2 0x00 7:0 H0値のビット [23:16]
0x23 V_PRIME_H0_3 0x00 7:0 H0値のビット [31:24]
0x24 V_PRIME_H1_0 RO 0x00 7:0 SHA-1ハッシュ値のH1部分で、認証プロトコルHDCPリピーターで使用されます。H1値のビット [7:0]。
0x25 V_PRIME_H1_1 0x00 7:0 H1値のビット [15:8]
0x26 V_PRIME_H1_2 0x00 7:0 H1値のビット [23:16]
0x27 V_PRIME_H1_3 0x00 7:0 H1値のビット [31:24]
0x28 V_PRIME_H2_0 RO 0x00 7:0 - SHA-1ハッシュ値のH2部分で、認証プロトコルHDCPリピーターで使用されます。H2値のビット [7:0]。
0x29 V_PRIME_H2_1 0x00 7:0 H2値のビット [15:8]
0x2A V_PRIME_H2_2 0x00 7:0 H2値のビット [23:16]
0x2B V_PRIME_H2_3 0x00 7:0 H2値のビット [31:24]
0x2C V_PRIME_H3_0 RO 0x00 7:0 SHA-1ハッシュ値のH3部分で、認証プロトコルHDCPリピーターで使用されます。H3値のビット [7:0]。
0x2D V_PRIME_H3_1 0x00 7:0 H3値のビット [15:8]
0x2E V_PRIME_H3_2 0x00 7:0 H3値のビット [23:16]
0x2F V_PRIME_H3_3 0x00 7:0 H3値のビット [31:24]
0x30 V_PRIME_H4_0 RO 0x00 7:0 SHA-1ハッシュ値のH4部分で、認証プロトコルHDCPリピーターで使用されます。H4値のビット [7:0]。
0x31 V_PRIME_H4_1 0x00 7:0 H4値のビット [15:8]
0x32 V_PRIME_H4_2 0x00 7:0 H4値のビット [23:16]
0x33 V_PRIME_H4_3 0x00 7:0 H4値のビット [31:24]
0x34 – 0x3F Rsvd RO 0x00 7:0 予約済み。すべてのバイトは00として読み出されます。
0x40 BCAPS RO 0x00 7 HDMI_RESERVED

0 = レシーバーはHDMIのサポートに対応していない

1 = レシーバーはHDMIのサポートに対応している

6 REPEATER

HDCPリピーター機能

0 = レシーバーはリピーターではない

1 = レシーバーはリピーターである

5 READY KSV FIFOのレディー。1に設定されると、レシーバーでは接続KSVリストの作成、検証値V' の計算が終了しています。この値は、V' の計算時は常に0です。
4 FAST このビットは0として読み出されます。
3:2 Reserved このビットは0として読み出されます。
1 FEATURES_1_1 予約済み。このビットは0として読み出されます。
0

FAST_

REAUTHENTICATION

このビットは1として読み出されます。
0x41 BSTATUS0 RO 0x00 7

MAX_DEVS_

EXCEEDED

トポロジー・エラー・インジケーター。1に設定されている場合は、127を超えるダウンストリーム・デバイス、またはKSV FIFOを超える容量が接続されています。
6:0 DEVICE_COUNT 接続されているダウンストリーム・デバイスの総数。HDCPレシーバーの場合は常に0です。このカウントには、HDCPリピーター自体は含まれず、HDCPリピーターのダウンストリームにあるダウンストリーム・デバイスのみが含まれます。
0x42 BSTATUS1 0x00 7:6 Rsvd このビットは0として読み出されます。
5 HDMI_RESERVED_2 今後のHDMIでの使用に予約されています。
4 HDMI_MODE HDMIモード。1に設定されている場合は、HDCPレシーバーはDVIモードからHDMIモードに移行しています。
3

MAX_CASCADE_EXCEEDED

トポロジー・エラー・インジケーター。1に設定されている場合は、7レベルを超えるビデオリピーターがカスケードされています。
2:0 DEPTH 3ビットのリピーターカスケード深度。この値は、接続トポロジーで接続されるレベル数を示します。
0x43 KSV_FIFO RO 0x00 7:0 - キー選択ベクトルFIFO。これを使用して、HDCPリピーターからダウンストリームのKSVを引き込みます。
0x44 – 0xBF Rsvd RO 0x00 7:0 - 予約済み。すべてのバイトは0x00として読み出されます。
0xC0 – 0x100 DBG RW 0x00 7:0 - 実装固有のデバッグレジスター
表 57.  HDCP 1.4 RXリピーターレジスターのマッピング
アドレス レジスター R/W リセット ビット ビット名 詳細
0x00 RPT_KSV_LIST WO 0x00000000 31:8 Reserved 予約済み
7:0 KSV_LIST KSVリストのバイト書き込み (ビッグ・エンディアン順)
0x01 RPT_BSTATUS RW 0x00000000 31:19 Reserved 予約済み
18 REQUEST 読み取り専用。コアでアサートすることで、KSV_LISTBSTATUS を要求します。これは通常、接続アップストリームで再認証がトリガーされると発生します。REQUEST がアサートされると、READY もアサートされることに注意してください。
17 READY 読み取り専用。コアでアサートし、KSV_LIST および BSTATUS が処理されていることを示します。このビットのアサート後に、KSV_LIST および BSTATUS を書き込みます。
16 VALID KSV_LIST および BSTATUS が書き込まれると1に設定されます。KSV_LIST および BSTATUS が読み出されると、コアによってセルフクリアされます。
15:0 BSTATUS

[15:12]: 予約済み

[11]: MAX_CASCADE_EXCEEDED

[10:8]: DEPTH

[7]: MAX_DEVS_EXCEEDED

[6:0]: DEVICE_COUNT

0x02 RPT_MISC RW 31:1 Reserved 予約済み
0 REPEATER

ダウンストリームが接続されていない場合、または接続ダウンストリームがHDCP 1.4に対応していない場合に0に設定されます。これは、レシーバーIPコアはエンドポイント・レシーバーであり、リピーターではないことを意味します。

接続ダウンストリームがHDCPに対応している場合は1に設定されます。