通常、U-Boot (Universal Bootloader) の設定には、C プリプロセッサを使用します。これは次を定義します。
-
_OPTIONS_
- 設定オプションを選択できます。オプション名は「
CONFIG_
」で始まります。 -
_SETTINGS_
- これらはハードウェアおよびその他の要因によって異なります。オプション名は「
CONFIG_SYS_
」で始まります。
PetaLinux U-Boot の設定は、<plnx-proj-root>/project-spec/configs/u-boot-xlnx/
にある config.cfg 設定ファイルに関連付けられています。
注記:
config.cfg は、 が有効に設定されている場合にのみ生成されます。
PetaLinux では、CONFIG_
オプション/設定に関する U-Boot 設定の自動化はサポートされていません。これらの CONFIG_
オプション/設定は、platform-top.h に追加できます。
CONFIG_
オプション (CONFIG_CMD_MEMTEST など) を platform-top.h
に追加するには、次の手順に従います。
- PetaLinux プロジェクトのルート ディレクトリに移動します。
cd <plnx-proj-root>
- ファイル platform-top.h
を開きます。
vi project-spec/meta-user/recipes-bsp/u-boot/files/platform-top.h
- CONFIG_CMD_MEMTEST オプションを追加する場合は、このファイルに次の行を追加します。変更を保存します。
#define CONFIG_CMD_MEMTEST
ヒント: CONFIG_CMD_MEMTEST を定義すると、簡単な RAM テストに使用するモニター コマンド mtest を使用できるようになります。
- U-Boot イメージをビルドします。
petalinux-build -c u-boot
- 次のコマンドを実行して BOOT.BIN を生成します。
petalinux-package --boot --fsbl <FSBL image> --fpga <FPGA bitstream> --u-boot
- ハードウェアまたは QEMU でイメージをブートし、U-Boot ステージで停止します。
- U-Boot コンソールで次のように
mtest
コマンドを実行します。ZynqMP mtest
- U-Boot コンソールの出力は次のようになります。
Testing 00000000 ... 00001000: Pattern 00000000 Writing... Reading...Iteration: 20369
重要:CONFIG_CMD_MEMTEST
を定義していない場合、U-Boot コンソールの出力は次のようになります。U-Boot-PetaLinux> mtest Unknown command ’mtest’ - try ’help’
U-Boot の詳細は、https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842223/U-boot を参照してください。