PetaLinux の FS-Boot は、 MicroBlaze™ プラットフォーム専用の FSBL (第 1 段階ブートローダー) デモです。フラッシュからメモリにイメージを読み込み、メモリにジャンプする方法を示します。FS-Boot を使用する場合、8 KB 以上のブロック RAM が必要です。
FS-Boot では、標準 SPI モードおよびクワッド SPI モードのパラレル フラッシュと SPI フラッシュのみがサポートされます。
FS-Boot でフラッシュのどこからイメージを取得するかを判断できるように、CONFIG_FS_BOOT_START
マクロを定義する必要があります。これは、PetaLinux ツールで実行します。PetaLinux ツールでは、menuconfig のプライマリ フラッシュ パーティション テーブル設定の boot
パーティション設定に基づいてこのマクロが自動的に設定されます。パラレル フラッシュの場合、これは boot パーティションの開始アドレスです。SPI フラッシュの場合は、boot
パーティションの開始オフセットです。
フラッシュ内のイメージには、BIN ファイルの直前にラッパー ヘッダーが必要です。FS-Boot はターゲット メモリ位置をラッパーから取得します。ラッパーには次の情報を含める必要があります。
オフセット | 説明 | 値 |
---|---|---|
0×0 | FS-Boot ブータブル イメージのマジック コード |
× 0b8b40008 |
0×4 | BIN イメージ サイズ | ユーザー定義 |
0×100 | FS-Boot ブータブル イメージのターゲット メモリ アドレス | ユーザー定義。menuconfig の [Memory Settings] で設定した U-Boot テキスト ベース アドレス オフセットから PetaLinux ツールが自動的に計算します。 |
0×10c | BIN ファイルの開始位置 | なし |
2020.1 リリースから、FS-Boot は対称型マルチプロセッシング (SMP) をサポートします。1 つのデザインに複数の MicroBlaze プロセッサを使用できます。最大 8 コアがサポートされます。
petalinux-build/petalinux-build -c fsboot
の一部としてビルドされる同じ FS-Boot は、すべてのコアに対して有効です。すべてのコア上の FS-Boot をフラッシュ メモリに書き込むには、XSDB が必要です。次に 4 コアの例を示します。xsdb > ta
は、すべての利用可能なコアのリストを表示します。SMP をサポートするターゲットをブートするには、次の手順に従います。
<plnx-tool>/tools/xsct/bin/xsdb
xsdb > connect -url <target-url>
xsdb > fpga -f <plnx-proj-root>/images/linux/system.bit
xsdb > ta
xsdb > ta <core number>
xsdb > dow -f <plnx-proj-root>/images/linux/fs-boot.elf
the above two steps for all available cores.
xsdb > dow -f <plnx-proj-root>/images/linux/u-boot.elf
xsdb > dow -f <plnx-proj-root>/images/linux/image.ub