2319429_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2319429_ja-JP

2319429_ja-JP

ls1028aのセキュアデバッグ

こんにちは、

ls1028a ベースのカスタム ボードで Secure Debug をテストしたいと思います。今のところ、次の手順を実行しました。

1. fuse_fipと次のinput_fuse_fileを使用してレジスタをヒューズする

/*
* 著作権 2018 NXP
*/

---------------------------------------------------
プラットフォーム= LS1028
---------------------------------------------------
POVDD_GPIO =
---------------------------------------------------
OTPMK_FLAGS =0010
OTPMK_0 =11111111
OTPMK_1 =22222222
OTPMK_2 =33333333
OTPMK_3 =44444444
OTPMK_4 =aab702d7
OTPMK_5 =f9506757
OTPMK_6 =cfb3b401
OTPMK_7 =b5462445
---------------------------------------------------
SRKH_0 =9f05646d
SRKH_1 =eb7e034b
SRKH_2 =a5c8da66
SRKH_3 =0215ce65
SRKH_4 =34bec8dd
SRKH_5 =500d48bb
SRKH_6 =665582c0
SRKH_7 =8b826a4f
---------------------------------------------------
OEM_UID_0 =11223344
OEM_UID_1 =55667788
OEM_UID_2 =99001122
OEM_UID_3 =33445566
OEM_UID_4 =77889900
---------------------------------------------------
DCV_0 =68686868
DCV_1 =67676767
DRV_0 =6168745f
DRV_1 =5f726e6e
---------------------------------------------------
DBG_LVL =001
---------------------------------------------------
WP =
ITS =
NSEC =
ZD =
K0 =
K1 =
K2 =
K3 =
K4 =
K5 =
K6 =
FR0 =
FR1 =
---------------------------------------------------
OUTPUT_FUSE_FILENAME =fuse_scr.bin
---------------------------------------------------

gen_drv_drbg で作成された DRV

λ ./gen_drv_drbgA2 6168745f5f726e6e

#-----------------------------------------------------#
#------- -------- -------- -------#
#------- CST (コード署名ツール) バージョン 2.0 -------#
#------- -------- -------- -------#
#-----------------------------------------------------#

ハミングコード後のDRV[63:0]は次のようになります。
6168745f5f726e6e
名前 | ビット | 値
_______ __|__ __________ __|__ __________
ドライブ 0 | 63 - 32 | 6168745f
ドライブ 1 | 31 - 0 | 5f726e6e

ブートしてU-Bootシェルから確認することで、それらが正しく融合されていることを確認できます。

ハミングコードエラーなし

0x1e80024 1
01e80024: 00000000 ....

dblev が 1 に設定され、dcvr も融合されています

=> md 0x1e80204 3
01e80204: 00000001 68686868 67676767 ....うぅうぅううう

drvr を 1 に設定

=> md 0x1e80210 2
01e80210: ffffffff ffffffff ........

しかし、接続できません。コード ウォリアー (バージョン: 11.5.12;) で試してみると、ビルドID: 221209)、ターゲット接続構成で「セキュアデバッグキー:」を設定し、そこにキー「0x6e6e725f5f746861」(逆エンディアン)を指定して検査しようとすると、情報でエラーが発生しました。
[CCS: マルチコア動作中のサブコアエラー]

私はSecure_boot.pptxプレゼンテーション(リンク: https://community.nxp.com/t5/Layerscape-Knowledge-Base/Secure-boot-Fuse-Provisioning-Secure-debug/ta... )に従ってCCSからテストしようとしましたが、次のようになりました。

(ビン)54%すべて削除
(bin) 55 % config cc cwtap:192.168.0.32
(ビン)56%ccを表示
0: コードウォリアーTAP (cwtap:192.168.0.32)CC ソフトウェア バージョン{0.0}
(ビン)57%
(bin) 57 % ccs::config_chain {ls1028a dap}
SAP2: セキュアデバッグ違反
(bin) 58 % ccs::get_config_chain を表示
チェーン位置0: LS1028A
チェーンポジション1: DAP
チェーン位置2: SAP2
(ビン)59%
(bin) 59 % ccs::config_chain {ls1028a dap sap2}
LS1028A: std::bad_alloc
(bin) 60 % ccs::config_chain {ls1028a dap}
SAP2: セキュアデバッグ違反
(bin) 61 % ccs::get_config_chain を表示
チェーン位置0: LS1028A
チェーンポジション1: DAP
チェーン位置2: SAP2
(bin) 62 % ディスプレイ ccs::read_reg 0 sdcr 1 8
SAP2 エラー - SAP_STATUS を読み取ります

SAP2 エラーとは何ですか?それに関していかなる情報も見つけることができません。

何か間違ったことをしているのでしょうか?

QorIQ LS1デバイスRe: Secure Debug on ls1028a

他に試せることはありますか?あるいは、チャレンジ/レスポンス手順は ls1028a では実行できないのでしょうか?現時点では、JTAG を閉じたように動作しますが、input_fuse_file で使用される IIUC 構成では、通知なしで条件付きで閉じるように設定する必要があります。また、U-Boot シェルから読み取られたレジスタも同じ情報を伝えます。

Re: Secure Debug on ls1028a

@LFGP私はhttps://www.nxp.com/part/LS1027AXE7NQAを使用していますSO、そこには E という文字があります。

Re: Secure Debug on ls1028a

@LFGP

私の記憶では、部品番号に E が付いている SoC は、セキュリティがオンになっていることを意味しますか?明日確認しますが、セキュア ブート手順を実行できるため、E が搭載されているはずだとほぼ確信しています。

デバッグレベルに関しては..元の投稿で書きましたが、私は現在レベル001です。
# 001 -> 通知なしで、チャレンジレスポンスを介して条件付きで開きます。

以下は U-Boot シェルからの出力です。

=> md 0x1e80204 3
01e80204: 00000001 68686868 67676767 ....うぅうぅううう

したがって、0x1e80204 は 00000001 -> DB_LVL は 001 に設定されます。

@LFGP他に何が間違っているのでしょうか?これをさらにデバッグするにはどうすればいいでしょうか?

Re: Secure Debug on ls1028a

親愛なる@tomzy_0様、

デバイスの部品番号命名法に文字 E が含まれていることを確認してください。

一方、「デバッグレベル」レジスタが閉じられていないことを確認してください。以下を参照してください。

--------------------------------------------------
# デバッグ レベルをバイナリ形式で指定します。[オプション]
# 000 -> 完全にオープン: デバッグ ポータルは無条件に有効になります。
# 001 -> 通知なしで、チャレンジレスポンスを介して条件付きで開きます。
# 01x -> 通知付きでチャレンジレスポンス経由で条件付きで開きます。
# 1xx -> クローズしました。すべてのデバッグ ポータルが無効になっています。
DBG_LVL=
---------------------------------------------------

 

よろしくお願いいたします

LFGP


Re: Secure Debug on ls1028a

@LFGP素早い返信ありがとうございます。残念ながら、あなたが言及したスレッドで提供されている手順にすでに従いました。私の投稿でリンクしたプレゼンテーションにも同じ手順が書かれていました。このようなコマンドを実行した結果も投稿しました。返される印刷エラー ログで DCV を CCS として読み取ることもできません。

@yipingwangこんにちは。直接言及して申し訳ありませんが、Threadに返信したのはあなただとわかりました。私が間違っていなければ、セキュア ブートのプレゼンテーションの作成も担当されていましたね。

お手伝いいただけますか?プレゼンテーションと私のケースの違いは、私が ls1028a を使用していることです。

チェーンは異なる構成にする必要があります ({ls1028a dap/sap2} と {ls1043a dap sap2})。しかし、これが本当に問題であるかどうかを判断するのは困難です。CCS ドキュメントというものは存在しないと思います。これがなければ、さらにデバッグを行うことさえ困難です。

質問の一つに戻ります。セキュアデバッグが動作するために追加の条件が必要ですか?ITSは設定されていますか?SB_ENだけで十分でしょうか?RCWの他のビットを設定する必要があるでしょうか?

Re: Secure Debug on ls1028a

親愛なる@tomzy_0様、

SAP2 の意味は何ですか?回答:セキュア アクセス ポートです。
 
デバイスが JTAG ポートを開くように設定されている場合、チャレンジ/レスポンス イベントによって認証されるまで SAP2 はロックされたままになります。
チャレンジ/レスポンス イベントを通過する前に列挙またはアクセスを試みると、 「セキュア デバッグ違反」が発生します。そのため、CCS ログ メッセージ「セキュア デバッグ違反」および「SAP2 エラー - SAP_STATUS を読み取り」が表示されます。
 
次のケースを確認してください。それはあなたのケースに関連しています。
 
BR
LFGP
Re: Secure Debug on ls1028a

セキュア デバッグが機能するための追加条件はありますか?セキュアブートで起動する必要がありますか?何らかの SECMON 状態にありますか?

Re: Secure Debug on ls1028a親愛なる@tomzy_0様、

SB_EN = 1に設定し、
IT_S =0
SECリファレンス・マニュアルをダウンロードする
https://www.nxp.com/webapp/sps/download/preDownload.jsp?render=true

次のアプローチを試すことができます(LS1028aに合わせて調整してください)。
SecMon_HP ステータス レジスタ (位置 0x1e90014) をチェックして、ビット OTPMK_ZERO、OTMPK_SYNDROME、および PE が 0 になっていることを確認してください。そうでない場合は、ユーザーが切断した OTPMK ヒューズに何らかのエラーがあります。
b.OTMPK ヒューズが正しい場合 (手順 1 を参照)、SCRATCHRW2 (0x1ee0204) レジスタにエラーがないか確認します。
紀元前手順 b のエラー コードが 0 の場合は、HPSR のシステム セキュリティ モニターの状態フィールドを確認します。
システムセキュリティモニターの状態 (0x9)
ITS ヒューズ = 1 の場合、ISBC コードがボードをリセットしたことを意味します。これには次の理由が考えられます。
ESBC u-boot の署名に使用された公開鍵のハッシュが SRK Hash Fuse の値と一致しません
または
画像の署名検証に失敗しました。
SSM_STATE (0xd) または非セキュア状態 (0xb)
ESBC ヘッダーのエントリ ポイント フィールドを確認します。

エントリ ポイントが正しい場合は、u-boot イメージが必要なセキュア ブート構成でコンパイルされていることを確認します。

BR
LFGP
Re: Secure Debug on ls1028a

@LFGP

こんにちは、返信が遅くなって申し訳ありません。以下はU-Bootシェルからの出力です。

「`」
=> md 0x1e90014 1
01e90014: 80002900 .)..
「`」

つまり、SecMonの状態は「チェック」に設定されます。OTPMK_ZEROは0です。OTPMK_SYNDROMまたはPEが何なのか分かりません。

「`」
=> md 0x1ee0204 1
01ee0204: 00000000 ....
「`」

SCRATCHRW2 を 0 に設定することで、エラーは発生しません。ちなみに、ハミング符号もゼロなので、すべて問題ないはずです。

「`」
=> md 0x1e80024
01e80024: 00000000 ....
「`」

セキュアモニターは別の状態であるべきでしょうか?

Re: Secure Debug on ls1028aCodeWarrior GUIからCCSログをDEBUGに設定して接続を確認したところ、以下のことが分かりました。

ccs_get_config_chain
serverh = 0
デバイスリスト: (サイズ = 3)
ccs_get_config_chain; ccs_error = 0
ccs_get_config_chain
serverh = 0
デバイスリスト: (サイズ = 3)
device[0]:: core_type=LS1028A(301)
device[1]:: core_type=DAP(232)
device[2]:: core_type=SAP2(272)
ccs_get_config_chain; ccs_error = 0
ccs_read_register
coreh = [serverh:0;cc_index:0;chain_pos:0]
インデックス = 8192
カウント = 1
サイズ = 8
値: (サイズ =
00000000 00000000
ccs_read_register; ccs_error = 56
エラーメッセージ: SAP2 エラー - SAP_STATUS の読み取り
ccs_get_config_chain
serverh = 0
デバイスリスト: (サイズ = 3)
ccs_get_config_chain; ccs_error = 0
ccs_get_config_chain
serverh = 0
デバイスリスト: (サイズ = 3)
device[0]:: core_type=LS1028A(301)
device[1]:: core_type=DAP(232)
device[2]:: core_type=SAP2(272)
ccs_get_config_chain; ccs_error = 0
ccs_write_register
coreh = [serverh:0;cc_index:0;chain_pos:0]
インデックス = 8193
カウント = 1
サイズ = 8
値: (サイズ =
6168745F 5F726E6E
ccs_write_register; ccs_error = 56
エラーメッセージ: SAP2 エラー - SAP_STATUS の読み取り


チャレンジ値を読み取るとすべて0が返され、SAP2エラーが発生するようです。本来であれば、U-Bootシェルから読み取れるチャレンジ値が返されるはずです。なぜそのようなことが起こるのでしょうか?
タグ(1)
評価なし
バージョン履歴
最終更新日:
‎03-24-2026 04:29 AM
更新者: