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

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

6.1.10. HDCP 2.3 RXのアーキテクチャー

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

HDCP 2.3 RXコアは完全な自律型です。HDMIアプリケーションの場合、トランスミッターでI2Cプロトコルをサポートする標準DDCインターフェイスを使用して、HDCP 2.3 RXコアを駆動します。

HDCP仕様の要件により、HDCP 2.3 RXコアをDCP発行のプロダクション・キー、つまりGlobal Constant (lc128)、RSA private key (kprivrx)、およびRSA Public Key Certificate (certrx) でプログラムする必要があります。IPは、HDCP Keyポートを介してコアの外部にあるオンチップメモリーからキーを取得します。オンチップメモリーでは、次の表に示す配置でキーデータを格納する必要があります。

表 58.  HDCP 2.3 RX Keyポートのアドレス指定
アドレス コンテンツ
8'hE3 lc128[127:96]
8'hE2 lc128[95:64]
8'hE1 lc128[63:32]
8'hE0 lc128[31:0]
8'hDF kprivrx_p[511:480]
... ...
8'hD0 kprivrx_p[31:0]
8'hCF kprivrx_q[511:480]
... ...
8'hC0 kprivrx_q[31:0]
8'hBF kprivrx_dp[511:480]
... ...
8'hB0 kprivrx_dp[31:0]
8'hAF kprivrx_dq[511:480]
... ...
8'hA0 kprivrx_dq[31:0]
8'h9F kprivrx_qinv[511:480]
... ...
8'h90 kprivrx_qinv[31:0]
8'h83–8'h8F 予約済み
8'h82 {16’d0, certrx[4175:4160]}
8'h81 certrx[4159:4128]
... ...
8'h01 certrx[63:32]
8'h00 certrx[31:0]

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

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

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

表 59.  HDCP 2.3 RXレジスターのマッピング
アドレス レジスター R/W リセット ビット ビット名 詳細
0x44 – 0x4F Rsvd RO 0x00 7:0 Reserved 予約済み
0x50 HDCP2VERSION RO 0x04 7:3 Reserved 予約済み
2 HDCP22 1に設定されている場合、コアはHDCP 2.2以上をサポートします。
1:0 Reserved 予約済み
0x51 – 0x5F Rsvd RO 0x00 7:0 Reserved 予約済み
0x60 WRITE_MESSAGE WO 0x00 7:0 WR_MSG 可変長メッセージで、トランスミッターは単一のバースト書き込みとしてこのアドレスに書き込みます。
0x61 – 0x6F Rsvd RO 0x00 7:0 Reserved 予約済み
0x70 RXSTATUS0 RO 0x00 7:0 MSG_SIZE0 トランスミッターによる読み出しに対してレシーバーで利用可能なメッセージサイズ (バイト単位) の下位部分。
0x71 RXSTATUS1 RO 0x00 7:4 Reserved 予約済み
3 REAUTH_REQ 1に設定されている場合は、レシーバー (リピーターのアップストリーム側を含む) でリンク整合性チェックに失敗していること、またはリピーターのアップストリーム側が未認証状態に移行していることを示します。AKE_Init メッセージで開始する新しい認証ごとに、コアによってセルフクリアされます。
2 READY 1に設定されると、リピーターではダウンストリームのレシーバーIDリストの作成、検証値V' の計算が終了しています。RepeaterAuth_Send_ReceiverID_List メッセージがトランスミッターによって読み出されるとすぐに、またはトランスミッターからの新しい認証要求ごとに、コアによってセルフクリアされます。
1:0 MSG_SIZE1 トランスミッターによる読み出しに対してレシーバーで利用可能なメッセージサイズ (バイト単位) の上位部分。
0x72 – 0x7F Rsvd RO 0x00 7:0 Reserved 予約済み
0x80 READ_MESSAGE RO 0x00 7:0 RD_MSG 可変長メッセージで、トランスミッターは単一のバースト読み出しとしてこのアドレスから読み出します。
0x81 – 0xBF Rsvd RO 0x00 7:0 Reserved 予約済み
0xC0 – 0xFF DBG RW 0x00 7:0 DBG_REGS 実装固有のデバッグレジスター
表 60.  HDCP 2.3 RXリピーターレジスターのマッピング
アドレス レジスター R/W リセット ビット ビット名 詳細
0x00 RPT_RCVDID_LIST WO 0x00000000 31:8 Reserved 予約済み
7:0 RCVDID_LIST ReceiverID_List のバイト書き込み (ビッグ・エンディアン順)
0x01 RPT_RXINFO RW 0x00000000 31:19 Reserved 予約済み
18 REQUEST 読み取り専用。コアでアサートすることで、RCVDID_LISTRXINFO を要求します。これは通常、接続アップストリームで再認証がトリガーされると発生します。REQUEST がアサートされると、READY もアサートされることに注意してください。
17 READY 読み取り専用。コアでアサートし、RCVDID_LIST および RXINFO が処理されていることを示します。このビットのアサート後に、RCVDID_LIST および RXINFO を書き込みます。
16 VALID RCVDID_LIST および RXINFO が書き込まれると1に設定されます。RCVDID_LIST および RXINFO が読み出されると、コアによってセルフクリアされます。
15:0 RXINFO

[15:12]: 予約済み

[11:9]: DEPTH

[8:4]: DEVICE_COUNT

[3]: MAX_DEVS_EXCEEDED

[2]: MAX_CASCADE_EXCEEDED

[1]: HDCP2_REPEATER_DOWNSTREAM

[0]: HDCP1_DEVICE_DOWNSTREAM

0x02 RPT_TYPE RO 0x00000000 31:9 Reserved 予約済み
8 VALID コアでアサートされ、コンテンツのストリームの TYPE が有効なことを示します。TYPE が読み出されるとコアによってセルフクリアされます。
7:0 TYPE

0x00: タイプ0のコンテンツストリーム

0x01: タイプ1のコンテンツストリーム

0x02-0xFF: 予約済み。タイプ1のコンテンツストリームとして扱われます。

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

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

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