インテルのみ表示可能 — GUID: qtc1577414265713
Ixiasoft
インテルのみ表示可能 — GUID: qtc1577414265713
Ixiasoft
5.7. HDCP 2.3 TX のアーキテクチャー
- コントロールおよびステータスレジスター・レイヤー
- 認証と暗号化レイヤー
- ビデオストリームおよびセカンダリー・データ・レイヤー
通常、 Nios® II プロセッサーにより HDCP 2.3 TX コアを駆動します。プロセッサーは認証プロトコルを実装します。プロセッサーは、 Avalon®メモリーマップド・インターフェイス Memory Mapped インターフェイスを使用して、コントロールおよびステータスポート (tx_csr インターフェイス) を介して IP にアクセスします。
HDCP仕様の要件により、HDCP 2.3 TXコアはDCP発行のプロダクション・キー、つまりグローバル定数 (lc128) でプログラムする必要があります。IPは、HDCP Keyポート (tx_hdcp インターフェイス) を介してコアの外部にあるオンチップメモリーからキーを取得します。オンチップメモリーでは、次の表に示す配置説明でキーデータを格納する必要があります。
アドレス | コンテンツ |
---|---|
2'h3 | lc128[127:96] |
2'h2 | lc128[95:64] |
2'h1 | lc128[63:32] |
2'h0 | lc128[31:0] |
ビデオストリームおよびセカンダリー・データ・レイヤーでは、ビデオおよびセカンダリー・データ入力ポートを介してオーディオおよびビデオコンテンツを受信し、暗号化操作を実行します。ビデオストリームおよびセカンダリー・レイヤーでは、DisplayPort TX コアによって提供される暗号化ステータス信号 (ESS) を検出し、フレームを暗号化するタイミングを決定します。
HDCP 2.3のレジスターを使用して、認証を実行することができます。HDCP 2.3 TXコアは、認証に向けて完全なハンドシェイク・メカニズムをサポートしています。発行されるすべてのコマンドでは、対応するステータスビットのアサートがポーリングされ、その後次のコマンドの発行が開始します。CRYPTO_CMD の値は、一度に1ビットしか設定できないワンホット形式にする必要があります。
アドレス | レジスター | R/W | リセット | Bit | ビット名 | 詳細 |
---|---|---|---|---|---|---|
0x00 | CRPYTO_CMD (ワンホット) | WO | 0x00000000 | 31:11 | Reserved | 予約済み |
10 | GO_HMAC_M | 1に設定すると、Mを計算してM’と照合します。動作がビジー状態になるとセルフクリアされます。 | ||||
9 | GO_HMAC_V | 1に設定すると、Vを計算してV’と照合します。動作がビジー状態になるとセルフクリアされます。 | ||||
8 | GEN_RIV | 1に設定すると、新しいランダムrivを生成して受信します。動作がビジー状態になるとセルフクリアされます。 | ||||
7 | GEN_EDKEYKS | 1に設定すると、新しいランダムEdkey (ks) を生成して受信します。動作がビジー状態になるとセルフクリアされます。 | ||||
6 | GO_HMAC_L | 1に設定すると、Lを計算してL’と照合します。動作がビジー状態になるとセルフクリアされます。 | ||||
5 | GEN_RN | 1に設定すると、新しいランダムrnを生成して受信します。動作がビジー状態になるとセルフクリアされます。 | ||||
4 | GO_HMAC_H | 1に設定すると、Hを計算してH’と照合します。動作がビジー状態になるとセルフクリアされます。 | ||||
3 | GO_KD | 1に設定すると、kd (dkey0、dkey1) を計算します。動作がビジー状態になるとセルフクリアされます。 | ||||
2 | GEN_EKPUBKM | 1に設定すると、新しいランダムEkpub (km) を生成して受信します。動作がビジー状態になるとセルフクリアされます。 | ||||
1 | GO_SIG | 1に設定すると、署名が検証されます (certrxまたはSRM)。動作がビジー状態になるとセルフクリアされます。 | ||||
0 | GEN_RTX | 1に設定すると、新しいランダムrtxを生成して受信します。動作がビジー状態になるとセルフクリアされます。 | ||||
0x01 | CRYPTO_MSGDATAIN | WO | 0x00000000 | 31:8 | Reserved | 予約済み |
7:0 | MSGDATAIN | バーストモードでレシーバーからメッセージを書き込みます (バイト単位)。
|
||||
0x02 | CRYPTO_STATUS | RO | 0x00000000 | 31 | SIG_OK | コアによってアサートされ、署名検証が合格したことを示します。SIG_OK を読み出す前に、SIG_DONE が設定されるまでポーリングします。 |
30 | H_OK | コアによってアサートされ、HとH’の比較が合格したことを示します。H_OK を読み出す前に、H_DONE が設定されるまでポーリングします。 | ||||
29 | L_OK | コアによってアサートされ、LとL’の比較が合格したことを示します。L_OK を読み出す前に、L_DONE が設定されるまでポーリングします。 | ||||
28 | V_OK | コアによってアサートされ、VとV’の比較が合格したことを示します。V_OK を読み出す前に、V_DONE が設定されるまでポーリングします。 | ||||
27 | M_OK | コアによってアサートされ、MとM’の比較が合格したことを示します。M_OK を読み出す前に、M_DONE が設定されるまでポーリングします。 | ||||
26:11 | Reserved | 予約済み | ||||
10 | M_DONE | MとM’の比較が完了するとコアによってアサートされます。次の GO_HMAC_M が設定されるとセルフクリアされます。 | ||||
9 | V_DONE | VとV’の比較が完了するとコアによってアサートされます。次の GO_HMAC_V が設定されるとセルフクリアされます。 | ||||
8 | RIV_DONE | rivが生成され、MSGDATAOUT から読み出す準備ができるとコアによってアサートされます。次の GEN_RIV が設定されるとセルフクリアされます。 | ||||
7 | EDKEYKS_DONE | Edkey(ks) が生成され、MSGDATAOUT から読み出す準備ができるとコアによってアサートされます。次の GEN_EDKEYKS が設定されるとセルフクリアされます。 | ||||
6 | L_DONE | LとL’の比較が完了するとコアによってアサートされます。次の GO_HMAC_L が設定されるとセルフクリアされます。 | ||||
5 | RN_DONE | rnが生成され、MSGDATAOUT から読み出す準備ができるとコアによってアサートされます。次の GEN_RN が設定されるとセルフクリアされます。 | ||||
4 | H_DONE | HとH’の比較が完了するとコアによってアサートされます。次の GO_HMAC_H が設定されるとセルフクリアされます。 | ||||
3 | KD_DONE | kdが生成されるとコアによってアサートされます。次の GO_KD が設定されるとセルフクリアされます。 | ||||
2 | EKPUBKM_DONE | Ekpub (km) が生成され、MSGDATAOUT から読み出す準備ができるとコアによってアサートされます。次の GEN_EKPUBKM が設定されるとセルフクリアされます。 | ||||
1 | SIG_DONE | 署名検証が完了するとコアによってアサートされます。次の GO_SIG が設定されるとセルフクリアされます。 | ||||
0 | RTX_DONE | rtxが生成され、MSGDATAOUT から読み出す準備ができるとコアによってアサートされます。次の GEN_RTX が設定されるとセルフクリアされます。 | ||||
0x03 | CRYPTO_MSGDATAOUT | RO | 0x00000000 | 31:8 | Reserved | 予約済み |
7:0 | MSGDATAOUT | バーストモードでIPからメッセージを読み出します (バイト単位)。
|
||||
0x04 | VID_CTL | RW | 0x00000000 | 31:1 | Reserved | 予約済み |
0 | HDCP_ENABLE | 1に設定すると、HDCP 2.3暗号化が有効になります。HDCP 2.3暗号化が必要ない場合、特に認証されていない状態の場合は0に設定します。 | ||||
0x05 | VID_STRMTYP_L | RW | 0x00000000 | 31:0 | STRMTYP_L | MSTモードで動作する場合、ビット1からビット31は、タイムスロット1からタイムスロット31のストリーム・コンテンツ・タイプを表します。ビット0は未使用です。 SSTモードで動作する場合、ビット0はストリーム・コンテンツ・タイプを表します。ビット1からビット31は未使用です。 |
0x06 | VID_STRMTYP_H | RW | 0x00000000 | 31:0 | STRMTYP_H | MSTモードで動作する場合、ビット0からビット31は、タイムスロット32からタイムスロット63からタイムスロット63のストリーム・コンテンツ・タイプを表します。 SSTモードで動作する場合、すべてのビットは未使用です。 |