2392002_ja-JP

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

2392002_ja-JP

2392002_ja-JP

i.MX95 ブートROM:eMMC Boot0/Boot1をプライマリ/セカンダリ、FlexSPI NORをリカバリとして設定する

こんにちは、専門家の皆様。

i.MX95のブートROMがプライマリ、セカンダリ、リカバリーの各ブート段階をどのように処理するのかを理解しようとしています。リファレンスマニュアルやU-Bootのsplソースコードの一部は確認しましたが、リカバリーブートの仕組みがどう機能するのかはまだよく分かっていません。

私の目標は、以下のブートアーキテクチャを実装することです。

  • プライマリブート: eMMC Boot0
  • セカンダリブート: eMMC Boot1
  • リカバリブート: FlexSPI NORフラッシュ(ゴールデンリカバリイメージ)

arch/arm/mach-imx/image-container.cを調べていると、以下のコードに気付きました:

printf("Boot stage: ");
if (rom_data.boot_stage == 0x6)
    printf("Primary\n");
else if (rom_data.boot_stage == 0x9)
    printf("Secondary\n");
else if (rom_data.boot_stage == 0xa)
    printf("Recovery\n");
else
    printf("USB Serial Download\n");

これに基づき、ブートROMはプライマリ、セカンダリ、リカバリー、USBシリアルダウンロードの4つのブート段階をサポートしているようです。しかし、リカバリーステージがどのように選択・設定されるのかについて十分な情報が見つかりませんでした。

以下の質問について、ご助言いただければ幸いです。

  1. eMMC Boot0とBoot1を プライマリおよびセカンダリブートパーティションとして 使用しながら、 FlexSPI NORフラッシュをリカバリブートデバイスとして 構成することは可能ですか
  2. この構成がサポートされている場合、推奨される構成方法は何ですか?
    • ブートROMがプライマリ、セカンダリ、リカバリーの各ブートステージを選択する際に従う順序は何ですか?
    • プライマリブートとセカンダリブートの両方が失敗した場合、どのような条件でリカバリブート段階が開始されますか?
    • 開発や検証中にリカバリーモードをシミュレートするために、意図的に再現できる故障条件はどのようなものでしょうか? 
    • Boot ROMのブート選択アルゴリズムやリカバリーブートフローについて詳細に説明したドキュメントやアプリケーションノートはありますか?
  3. ブートデバイスのヒューズ構成(ヒューズモード) は、 リカバリブートデバイスの選択に何らかの役割を果たしますか?
    • リカバリデバイスは、ブートデバイスのヒューズによって決定されますか?
    • それとも、ブートROMがeMMCにフュージョンされていても、自動的に別のブートデバイス(例えばFlexSPI NORなど)に切り替わることは可能でしょうか?

最終的な目標は、システムを通常はeMMC Boot0から起動し、必要に応じてeMMC Boot1にフォールバックし、両方のeMMCブートパーティションが利用できないか無効な場合は、 FlexSPI NORに保存されているゴールデンリカバリイメージから起動することです

もし似たようなブートアーキテクチャを実装したことがある方や、関連するドキュメントやアプリケーションノートを教えていただける方がいれば、ぜひご指導いただけるとありがたいです。

お手数ですが、よろしくお願いいたします。

BR、

アルン・クマール

タグ(1)
評価なし
バージョン履歴
最終更新日:
昨日
更新者: