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

ID 683273
日付 10/16/2023
Public
ドキュメント目次

6.4. HDCP 1.3 RX のアーキテクチャー

HDCP 1.3 レシーバーブロックでは、接続している HDCP 1.3 デバイスからの、メインストリーム属性 (MSA) を含む保護されているビデオおよびセカンダリー・データを復号化します。HDCP 1.3 レシーバーブロックの構造レイヤーは、HDCP 1.3 トランスミッター・ブロックと同じです。
図 34. HDCP 1.3 RX IP のアーキテクチャー・ブロック図

HDCP 1.3 RX コアは完全な自律型です。DisplayPort アプリケーションの場合、HDCP トランスミッターと HDCP レシーバーが AUX チャネルを介して HDCP レジスター値を通信します。Enable GPU control パラメーターをオンにし、 Nios® II プロセッサーを使用して、HDCP レジスターポート ( Avalon®メモリーマップド・インターフェイス) を介して HDCP 1.3 RX コアを駆動します。HDCP レジスターポートは公開されておらず、Support HDCP 1.3 パラメーターを有効にすると自動的に駆動されます。

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

表 36.  HDCP 1.3 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]

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

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

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

表 37.  HDCP 1.3 RX レジスターのマッピング
アドレス レジスター R/W リセット Bit ビット名 詳細
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 RO_PRIME0 RO 0x00 7:0 認証応答。RO’のビット [7:0]
0x06 RO_PRIME1 7:0 認証応答。RO’のビット [15:8]
0x07 AKSV0 WO 0x00 7:0 HDCPトランスミッターKSVのビット [7:0]
0x08 AKSV1 7:0 HDCPトランスミッターKSVのビット [15:8]
0x09 AKSV2 7:0 HDCPトランスミッターKSVのビット [23:16]
0x0A AKSV3 7:0 HDCPトランスミッターKSVのビット [31:24]
0x0B AKSV4 7:0 HDCPトランスミッターKSVのビット [39:32]
0x0C AN0 WO 0x00 7:0 HDCPセッション乱数Anのビット [7:0]
0x0D AN1 7:0 HDCPセッション乱数Anのビット [15:8]
0x0E AN2 7:0 HDCPセッション乱数Anのビット [23:16]
0x0F AN3 7:0 HDCPセッション乱数Anのビット [31:24]
0x10 AN4 7:0 HDCPセッション乱数Anのビット [39:32]
0x11 AN5 7:0 HDCPセッション乱数Anのビット [47:40]
0x12 AN6 7:0 HDCPセッション乱数Anのビット [55:48]
0x13 AN7 7:0 HDCPセッション乱数Anのビット [63:56]
0x14 V_PRIME_H0_0 RO 0x00 7:0 SHA-1ハッシュ値のH0部分で、認証プロトコルHDCPリピーターで使用されます。H0値のビット [7:0]。
0x15 V_PRIME_H0_1 7:0 H0値のビット [15:8]
0x16 V_PRIME_H0_2 7:0 H0値のビット [23:16]
0x17 V_PRIME_H0_3 7:0 H0値のビット [31:24]
0x18 V_PRIME_H1_0 RO 0x00 7:0 SHA-1ハッシュ値のH1部分で、認証プロトコルHDCPリピーターで使用されます。H1値のビット [7:0]。
0x19 V_PRIME_H1_1 7:0 H1値のビット [15:8]
0x1A V_PRIME_H1_2 7:0 H1値のビット [23:16]
0x1B V_PRIME_H1_3 7:0 H1値のビット [31:24]
0x1C V_PRIME_H2_0 RO 0x00 7:0 SHA-1ハッシュ値のH2部分で、認証プロトコルHDCPリピーターで使用されます。H2値のビット [7:0]。
0x1D V_PRIME_H2_1 7:0 H2値のビット [15:8]
0x1E V_PRIME_H2_2 7:0 H2値のビット [23:16]
0x1F V_PRIME_H2_3 7:0 H2値のビット [31:24]
0x20 V_PRIME_H3_0 RO 0x00 7:0 SHA-1ハッシュ値のH3部分で、認証プロトコルHDCPリピーターで使用されます。H3値のビット [7:0]。
0x21 V_PRIME_H3_1 7:0 H3値のビット [15:8]
0x22 V_PRIME_H3_2 7:0 H3値のビット [23:16]
0x23 V_PRIME_H3_3 7:0 H3値のビット [31:24]
0x24 V_PRIME_H4_0 RO 0x00 7:0 SHA-1ハッシュ値のH4部分で、認証プロトコルHDCPリピーターで使用されます。H4値のビット [7:0]。
0x25 V_PRIME_H4_1 7:0 H4値のビット [15:8]
0x26 V_PRIME_H4_2 7:0 H4値のビット [23:16]
0x27 V_PRIME_H4_3 7:0 H4値のビット [31:24]
0x28 BCAPS RO 0x000 7:2 Reserved

このビットは0として読み出されます。

1 REPEATER

HDCPリピーター機能

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

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

0 HDCP_CAPABLE このビットは1として読み出されます。
0x29 BSTATUS RO 0x00 7:4 Reserved このビットは0として読み出されます。
3 REAUTHENTICATION_REQUEST 詳細は、DisplayPort 仕様バージョン 1.3 の HDCP を参照してください。
2 LINK_INTEGRITY_FAILURE
1 RO'_AVAILABLE
0 READY
0x2A BINFO0 RO 0x00 7 MAX_DEVS_EXCEEDED トポロジー・エラー・インジケーター。1 に設定すると、127 台以上のダウンストリーム・デバイスを接続することができます。
6:0 DEVICE_COUNT 接続されているダウンストリーム・デバイスの総数。HDCP レシーバーの場合は常にゼロです。この数には、HDCP リピーター自体は含まれず、HDCP リピーターのダウンストリーム・デバイスのみが含まれます。
0x2B BINFO1 RO 0x00 7:4 Reserved このビットは0として読み出されます。
3 MAX_CASCADE_EXCEEDED トポロジー・エラー・インジケーター。1 に設定すると、7 レベルを超えるビデオリピーターをカスケードすることができます。
2:0 DEPTH 3 ビットのリピーターカスケード深度。この値は、接続トポロジーで接続されるレベル数を示します。
0x2C KSV_FIFO RO 0x00 7:0 キー選択ベクター FIFO。自動インクリメント・アドレスを使用して HDCP リピーターからダウンストリーム KSV をプルするために使用されます。HDCP リピーターでない HDCP レシーバー (REPEATER=0) では全バイトが 0x00 として読み出されます。
0x3E CTRL WO 0x00 31 Reserved 予約済み
30 CP_IRQ_DET STATUS レジスターの CP_IRQ_STATUS フラグをリセットするには、1 に設定します。
29 KSV_FIFO_OFFSET_RST KSV_FIFO レジスターのオフセットをリセットするには 1 に設定します。
28 EXIT_AUTH 認証状態を終了します。
27:0 Reserved 予約済み
0x3F STATUS RO 0x00 31:20 Reserved 予約済み
19 AUTHENTICATED

0: HDCP 1.3x イベントが認証されている状態です。

1: HDCP 1.3x イベントが認証されていない状態です。

18 CP_IRQ_STATUS

0: HDCP 1.3 イベントはありません。

1: 1 つの HDCP 1.3 イベントが発生し、HPD 割り込みが発生しました。

17:0 Reserved 予約済み
表 38.  HDCP 1.3 RX リピーターレジスターのマッピング
アドレス レジスター R/W リセット Bit ビット名 詳細
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.3 に対応していない場合に 0 に設定されます。これは、レシーバー IP はエンドポイント・レシーバーであり、リピーターではないことを意味します。

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