こんにちは、エキスパート
これは Ceer-Hirain からの緊急CASEです。BSP42.0 でカーネル イメージ認証を有効にできませんでした。
お客様の問題ステータス:
1.お客様は、Foxconn のコードベースの ATF と Foxconn のボードを使用しました。彼らはS32G2 BSP42.0の第10章に従った。UM は ATF とカーネル イメージの両方の認証を有効にします。詳しい手順は添付しております。テスト ログには、「bootm 0x80000000」を実行した後にカーネル イメージが見つからないことが示されましたが、iminfo コマンドではカーネル イメージを取得できないことが示されました。
2. お客様に、ステップ 9 の後に再生成された ATF バイナリを次のコマンドを使用して SD カードに書き込むように依頼しました。
dd if=fip.s32 of=/dev/sdb seek=512 skip=512 iflag=skip_bytes oflag=seek_bytes conv=notrunc,fsync
BSP42.0ではこのステップが抜けていると思いますうーん。しかし、お客様は、再生した ATF を SD カードに書き込むと BL31 が起動に失敗すると報告しました。
3. また、お客様に NXP が github でリリースした ATF を使用するように依頼しましたが、ATF で以下のようなエラーが報告されました。
私がしたこと:
1.私はS32G2 BSP42.0の10.6.2章の手順に従っただけですRDB2 のカーネル認証を有効にする UM。添付の詳細な手順を参照してください。
2.再生したATFをSDカードに書き込みます
3. テスト ログにはカーネル イメージと dtb ファイルが正常に検証されたことが示されましたが、カーネル イメージのロード後にシステム リセットがトリガーされました。
私の分析:
お客様はサードパーティ(Foxccon)のテストボードとATFを使用していたので、
Foxcon は、ATF と BSP に何らかの変更を加えて、自社のボードに適用した可能性があります。執筆
生成された ATF により、お客様側で BL31 のブート失敗が発生します。再生成された fip.s32 には、追加の署名ハッシュ値を持つ DTB が含まれます (mkimage ツールを使用してカーネルと fdt に署名)。SO、BL31 メモリが追加の署名ハッシュ値によって上書きされる可能性があります。
1. システム リセットがトリガーされる理由について、私の手順と分析を確認してください。
2. お客様の問題について、お客様の手順を確認し、ヒントを提供していただけますか?いくつかの設定を確認していただけますか?
お客様はATFの主な変更を提供しました
はい、これについては言及されていませんが、暗示されていると思いました。ただし、必要であればこの詳細をCAN追加します。
ただし、itb 構成の例を提供しており、それを使用すると動作します。また、verifiedboot は Yocto で自動化されているため、多くの手動手順を実行せずに、verififedboot を Yocto で高速化できます。
DISTRO_FEATURES:append = " verifiedboot" でビルドするだけです
こんにちは、
たとえば、0x80000000 で fatload を使用して ITB をロードする場合、ITB が収まるように 0x80000000 からの十分なスペースがあることを確認する必要があります。次に、ロード時に ITB に設定された値によって、ITB から新しいメモリ位置へのカーネルのアンパックに十分なスペースが確保されることを確認する必要があります。このCASEでは、ITB がロードされたときと同じメモリ アドレス (0x80000000) でカーネルが ITB からアンパックされ、破損が発生し、ブートローダがボードを再起動します。動作させるためには、ロードを 0x80000000 ではなく 0x82000000 (ITS/ITB 構成) に変更するか、ITB を別のメモリ位置にロードすることをお勧めします。
よろしくお願いいたします。
ミハイ
はい、メールで述べたように、私も後の実験でこの詳細を見つけましたが、BSP UMではこの詳細は言及されていません。
こんにちは、ミハイ
お客様に Yocto を使用してセキュア機能を自動的に有効にするように依頼したところ、以下のように ATF が BL31 または BL33 の起動に失敗するという同じ問題が発生したと報告されました。
メールで述べたように、お客様も私が共有した手順に従ってカーネル イメージ認証を手動で有効にしましたが、私の側ではそれが機能することが証明されていますが、同じ問題が発生しました。
この問題は以下の 2 つの要素に焦点を当てています。
1. お客様は変更された dtb ファイルを使用して ATF を再構築しました。この dtb ファイルには、カーネル イメージの認証に使用される追加の公開キーが含まれています。変更されていない dtb ファイルを使用して ATF をビルドすると、ATF は正常に起動します。
2. ATF はお客様によって変更されています。以前のコメントに添付されている ATF のパッチ ファイルを参照してください。
お客様に、ATF コードをデバッグしてスタックポイントを見つけるように依頼しました。お客様はこのプロセスに取り組んでいます。FUTUREにはお客様とのオンラインデバッグ会議が行われる可能性があります。私は ATF の専門家ではないので、ソフトウェア チームも会議に参加できることを願っています。添付ファイルは、正常に起動できないお客様のATF dtbとfip.binです。
ところで、ソフトウェア チームは、根本原因を調査するために、お客様からさらに追加情報を入手し、より多くの提案を得る必要がありますか?
こんにちは、アーサー。
UM からステップ 8 を実行するときに、結果の dtb を dts に戻し、meld を使用して入力と出力の dtb を確認するように指示してください。( は、meld なしでは動作しますが、meld があると動作しないため)
これはビルドの問題だと思います。適切な入力 dtb が 1 つありますが、手順 8 を実行した後、結果はハードウェアと一致しない別の dtb になります。
よろしくお願いいたします。
ミハイ