FS-Boot (MicroBlaze プラットフォームのみ) - 2023.1 日本語

PetaLinux ツール資料: リファレンス ガイド (UG1144)

Document ID
UG1144
Release Date
2023-05-16
Version
2023.1 日本語

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 はターゲット メモリ位置をラッパーから取得します。ラッパーには次の情報を含める必要があります。

表 1. ラッパー情報
オフセット 説明
0×0 FS-Boot ブータブル イメージのマジック コード ×0b8b40008
0×4 BIN イメージ サイズ ユーザー定義
0×100 FS-Boot ブータブル イメージのターゲット メモリ アドレス ユーザー定義。menuconfig の [Memory Settings] で設定した U-Boot テキスト ベース アドレス オフセットから PetaLinux ツールが自動的に計算します。
0×10c BIN ファイルの開始位置 なし
FS-Boot はラッパー ヘッダーのその他のフィールドは無視します。U-Boot BIN ファイルをラップアラウンドするためのラッパー ヘッダーが PetaLinux ツールによって生成されます。
注記: PetaLinux は 32 ビット MicroBlaze プロセッサのみをサポートします。

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