2361750_ja-JP

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

2361750_ja-JP

2361750_ja-JP

i.MX6 HABv4 ブート失敗: 生産ボードでのUSBロード成功後、`j4 err`

**客観的:**
私たちの目標は、`imx_usb`ローダーを使用して、eMMCを介さずにボードを直接RAMから起動することです。これは、故障解析における重要なステップです。USBブートパスのみを確実にテストするため、製造基板上のeMMCを物理的に切断しました。

**ボードステート:**
1. **開発ボード:** ヒューズは切れていません。SoCは**開発モード**にあると報告しています。
2. **製造基板:** セキュアブートのためにヒューズが切れます。SoCは**生産モード**にあると報告しています。

**結果の概要:**

`imx_usb`ユーティリティを使用した際に、2つの異なる結果が観測されています。

**1.成功:開発ボード**
開発ボード上では、署名されていない `u-boot.imx`問題なくロードされ、実行されます。ログにはバイナリがロードされ、SoCがエントリポイントにジャンプしたことが記録されている。

* **コマンド:** `sudo ./imx_usbu-boot.imx`
* **キーログ出力(`development.txt`):**
「`」
HABセキュリティ状態:開発モード(0x56787856)
...
バイナリファイル(u-boot.imx)を読み込んでいます877ff400、スキップ=0、fsize=5faa4、タイプ=aa
成功しました(ステータス 0x88888888)
0x877ff400にジャンプします
「`」
(結果:ボードがU-Bootプロンプトで起動します)

**2.失敗: 生産ボード**
弊社製品版ボードでは、**署名付き`u-boot.imx`**を使用しています。当社の製造チームによって提供され、SoCに組み込まれているハッシュと同じ鍵で署名されています。`imx_usb`ツールは、DCDとバイナリが正常にロードされたことを報告します。しかし、最後のジャンプコマンドは失敗します。

* **コマンド:** `sudo ./imx_usbu-boot-signed.imx`
* **キーログ出力(`production.txt`):**
「`」
HABセキュリティ状態:プロダクションモード(0x12343412)
...
バイナリファイル(u-boot.imx)を読み込んでいます877ff400へ、スキップ=0、fsize=5faa4、タイプ=aa
成功しました(ステータス 0x88888888)
0x877ff400にジャンプします
j4 in err=0、last_trans=64 33 18 c0 00
「`」
*(結果: ボードが起動しません。コンソール出力なし。)*

**分析と重要な質問:**

決定的な違いは、「0x877ff400へジャンプする」コマンドの結果です。製造基板上では、イメージがRAMに正常に転送された直後のまさにこの段階で処理が失敗する。これは、SoCのブートROMがRAM内のイメージを実行する前に**HABv4署名検証**を実行しており、この検証が失敗していることを強く示唆しています。

`j4 err`は標準的なUSBエラーではありません。これは、`imx_usb`ツールがjumpコマンドに関連して返す内部ステータスコードのようです。根本的な問題は、ジャンプが成功しないことだ。

1. **HAB認証失敗:** `j4 err`(またはそれに続く起動の失敗)は、HAB認証の失敗を示していますか?ブートROMはイメージを正常に受け入れたものの、実行を拒否しているようだ。

2. **USBブート用イメージ署名:** USBシリアルダウンロードプロトコル経由でロードすることを目的としたU-Bootイメージに署名するための特定の要件またはフォーマットはありますか?私たちはeMMCブート用に署名されたイメージを使用しています。`0x877ff400`に画像がロードされた際に、HABが画像を拒否する原因として、想定されるIVT(画像ベクトルテーブル)構造やその他のメタデータに違いがある可能性はありますか?

3. **ロードアドレス:** イメージは `0x877ff400` にロードされています。これは、セキュリティ保護されたi.MX6上のUSBメモリに保存されたイメージの正しいアドレスですか?ブートROMは、認証のためにイメージがRAM内の別の場所に配置されていることを想定しているのでしょうか?

Re: i.MX6 HABv4 Boot Failure: `j4 err` After Successful USB Load on Production Board

こんにちは、

署名済みのイメージはeMMCブート用に作成されていますか?

エラーは、ステップのRAMへのロードは成功したが、ROMによって実行が拒否されたことを示しています。

HAB認証失敗。

Re: i.MX6 HABv4 Boot Failure: `j4 err` After Successful USB Load on Production Board

imx_usb_loader(シリアルダウンロードプロトコル)を使い、RAMから完全にU-BootとLinuxを起動しました。そのライブU-Bootセッションから、以下のイメージをeMMCに書き込みました。


# U-Boot IVT は必須の 1 KiB ハードウェアオフセットで動作します

mmc dev 1 0

mmc 書き込み 0x82000000 0x2 0x400


# アクティブパーティションを超えた生セクターへのFITイメージ

mmc 書き込み 0x80800000 0x66000 0x3000


# ブート環境

setenv bootargs "console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw"

setenv loadfit "mmc dev 1 0; mmc read 0x80800000 0x66000 0x3000"

setenv bootcmd "run loadfit; bootz 0x808000e8 - 0x80da4bc0"

saveenv


このU-Bootプロンプトから手動で実行するrunブートは正しく動作します — Linuxは問題なく/dev/mmcblk1p2を起動・マウントします。作業ログをメールに添付しました。


故障状態:


電源投入時やハードウェアリセット時に、USB OTGケーブルが物理的に切断されている場合、ボードはUART出力をゼロにし、静かにUSBシリアルダウンロードモードに再移行します。ROMはeMMCに到達していないようだ。

Re: i.MX6 HABv4 Boot Failure: `j4 err` After Successful USB Load on Production Board

こんにちは、

はい、イメージはeMMCブート用に署名されています。RAM上では問題なく動作しますが、eMMCへの書き込みができません。

Re: i.MX6 HABv4 Boot Failure: `j4 err` After Successful USB Load on Production Board

皆さんこんにちは、このチケットの状況はどうなっていますか?また、今後どう進めればよいでしょうか?対面(現地)での会議は必要ですか?

标记 (1)
无评分
版本历史
最后更新:
2 周之前
更新人: