セキュリティー・モードの検証
インテルFPGAでは、KEY_VERIFY JTAG命令をサポートしています。これによってデバイスの既存のセキュリティー・モードを検証できます。揮発性キーのプログラムが成功したかどうかを確認するには、.jam ファイルを使用してセキュリティー・モードの確認手順を自動化します。
JTAG命令 | 命令コード | 説明 |
---|---|---|
KEY_VERIFY | 00 0001 0011 | TDI と TDO 間のキー検証スキャンレジスターを接続します。 |
KEY_VERIFY JTAG命令によって、チップ上でイネーブルしたセキュリティー機能に関する情報を読み出すことができます。
セキュリティー・モード | サポートされるデバイス | ビット0 | ビット1 | ビット2 | ビット3 | ビット4 | ビット5 |
---|---|---|---|---|---|---|---|
No key | Arria® II GX | 0 | 0 | 0 | 0 | 0 | 0 |
|
0 | 0 | 0 | 0 | X | X | |
Volatile key | Arria® II GX | 1 | 0 | 0 | 0 | 0 | 0 |
|
1 | 0 | 0 | 0 | X | X | |
Volatile key with tamper protection | Arria® II GX | 1 | 0 | 0 | 0 | 1 | 0 |
|
X | X | X | X | X | X | |
Non-volatile key | Arria® II GX | 0 | 1 | 0 | 1 | 0 | 0 |
|
0 | 1 | 0 | 1 | X | X | |
Non-volatile key with tamper protection bit | Arria® II GX | 0 | 1 | 1 | 1 | 0 | 0 |
|
0 | 1 | 1 | 1 | X | X |
セキュリティー・モード | ビット0 | ビット1 | ビット2 | ビット3 | ビット4 | ビット5 | ビット6 | ビット7 | ビット8 |
---|---|---|---|---|---|---|---|---|---|
No key | 0 | 0 | 0 | 0 | 0 | X | X | X | X |
Volatile key | 1 | 0 | 0 | 0 | 0 | X | X | X | X |
Volatile key with tamper protection 14 | 1 | 0 | 0 | 0 | 1 | X | X | X | X |
Non-volatile key | 0 | 1 | 0 | 1 | 0 | X | X | X | X |
Non-volatile key with tamper protection bit 14 | 0 | 1 | 1 | 1 | 0 | X | X | X | X |
ビット | セキュリティー機能または設定 | 説明 | アクティブ値 |
---|---|---|---|
0 | Volatile Key | このビットが設定されるのは、揮発性キーがデバイスに正常にプログラムされたときです。 |
1 |
1 | Attempt Non-volatile Key Programming | このビットが設定されると、何者かにより不揮発性キーのOTPヒューズへの書き込みが試行されたことを示します。 | 1 |
2 | Disable Non-volatile Key | このビットが設定されると、揮発性キーの使用をディスエーブルします。 | 1 |
3 | Non-volatile Key | このビットが設定されると、何者かにより不揮発性キーのOTPヒューズの書き込みが行われたことを示します。 | 1 |
4 | Tamper Protection | このビットが設定されると、FPGAは不揮発性または揮発性キーのいずれかを使用した改ざん保護モードになります。 | 1 |
5 | Don’t Care | ドントケア | X |
6 | Volatile Key Lock | このビットが設定されると、揮発性キーの外部JTAGからの再プログラムが防止されます。 | 1 |
7 - 10 | Don’t Care | ドントケア | X |
1115 | Force Configuration from HPS only | このビットが設定されるのは、コンフィグレーションがHPSからのみ可能な場合です。 | 1 |
12 | External JTAG Bypass | このビットが設定されると、外部JTAGがディスエーブルであることを示します。 | 1 |
1316 | HPS JTAG Bypass | このビットが設定されると、外部JTAGがディスエーブルであることを示します。 | 1 |
1417 | Disable Partial Reconfiguration and Scrubbing | このビットが設定されると、外部PRおよび外部スクラビング (HPS PRおよびHPSスクラビングを含む) がディスエーブルであることを示します。 | 1 |
15 | Disable Volatile Key | このビットが設定されると、揮発性キーがディスエーブルであることを示します。 | 1 |
16 | Don’t Care | ドントケア | X |
17 | Disable Key Related JTAG Instructions | このビットが設定されると、キーに関連するすべてのJTAG命令への外部JTAGアクセスがディスエーブルであることを示します。 | 1 |
18 | JTAG Secure Mode | このビットが設定されると、必須のJTAG命令のみが外部からのアクセスを許可されていることを示します。 | 1 |
19 | Don’t Care | ドントケア | X |
20 | Volatile Key Clear | このビットが設定されるのは、揮発性キーがデバイスから正常にクリアされたときです。 |
1 |
次の例で示すのは、FPGAのセキュリティー・モードを検証するための .jam ファイルです。サンプルの .jam ファイルが適用できるのは、JTAGチェーン内の単一のFPGAデバイスのみです。SoCデバイスの場合は、次のステートメントを IRSCAN コマンドの前に追加してください。
PREIR 4; PREDR 1;
40nm FPGAのJAMファイル (Arria II GXデバイス)
STATE RESET;
STATE IDLE;
'Security Mode Identification
BOOLEAN verify_reg[6];
IRSCAN 10, $013;
WAIT 100 USEC;
DRSCAN 6, $0, CAPTURE verify_reg[5..0];
40nm FPGAのJAMファイル (Arria II GZおよびStratix IVデバイス)
STATE RESET;
STATE IDLE;
‘Key Verification
BOOLEAN verify_reg[4];
IRSCAN 10, $013;
WAIT 100 USEC;
DRSCAN 4, $0, CAPTURE verify_reg[3..0];
28nm FPGAのJAMファイル
STATE RESET;
STATE IDLE;
'Key Verification in JAM format
BOOLEAN verify_reg[9];
IRSCAN 10, $013;
WAIT 100 USEC;
DRSCAN 9, $0, CAPTURE verify_reg[8..0];
20nm FPGAのJAMファイル
STATE RESET;
STATE IDLE;
'Key Verification in JAM format
BOOLEAN verify_reg[21];
IRSCAN 10, $013;
WAIT 100 USEC;
DRSCAN 21, $0, CAPTURE verify_reg[20..0];