こんにちは、専門家の皆様。
i.MX95のブートROMがプライマリ、セカンダリ、リカバリーの各ブート段階をどのように処理するのかを理解しようとしています。リファレンスマニュアルやU-Bootのsplソースコードの一部は確認しましたが、リカバリーブートの仕組みがどう機能するのかはまだよく分かっていません。
私の目標は、以下のブートアーキテクチャを実装することです。
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つのブート段階をサポートしているようです。しかし、リカバリーステージがどのように選択・設定されるのかについて十分な情報が見つかりませんでした。
以下の質問について、ご助言いただければ幸いです。
最終的な目標は、システムを通常はeMMC Boot0から起動し、必要に応じてeMMC Boot1にフォールバックし、両方のeMMCブートパーティションが利用できないか無効な場合は、 FlexSPI NORに保存されているゴールデンリカバリイメージから起動することです。
もし似たようなブートアーキテクチャを実装したことがある方や、関連するドキュメントやアプリケーションノートを教えていただける方がいれば、ぜひご指導いただけるとありがたいです。
お手数ですが、よろしくお願いいたします。
BR、
アルン・クマール