u-bootの生成
前のページで説明した方法でu-boot-xlnxをダウンロードしたら、次にU-Bootを生成します。
ビルド済みのカーネルを使用する場合には、この作業は必要ありません。
Cosmo-Z用のU-boot設定ファイル
XILINX ZYNQ用のu-bootのファイルは、ZedBoardとZC70x用しかないので、Cosmo-Z用の設定ファイルを新規に作ることにします。
u-boot-xlnxをインストールしたフォルダの下のinclude/configs/の中に各種のボード用の設定があるので、ここにzynq_cosmoz.h というファイルを新規に作成してください。
例えば、emacs u-boot-xlnx/include/configs/zynq_cosmoz.h として編集します。
ファイルの内容は、
/* * (C) Copyright 2013 Xilinx, Inc. * (C) Copyright 2015 Tokushu Denshi Kairo, Inc. * * Configuration settings for the Tokushu Denshi Kairo Cosmo-Z * See zynq-common.h for Zynq common configs * * SPDX-License-Identifier:GPL-2.0+ */ #ifndef __CONFIG_ZYNQ_COSMOZ_H #define __CONFIG_ZYNQ_COSMOZ_H #define CONFIG_SYS_SDRAM_SIZE (256 * 1024 * 1024) #define CONFIG_ZYNQ_SERIAL_UART1 #define CONFIG_ZYNQ_GEM0 #define CONFIG_ZYNQ_GEM_PHY_ADDR0 7 #define CONFIG_SYS_NO_FLASH #define CONFIG_ZYNQ_SDHCI0 #define CONFIG_ZYNQ_USB #define CONFIG_ZYNQ_QSPI #define CONFIG_ZYNQ_BOOT_FREEBSD #define CONFIG_DEFAULT_DEVICE_TREE zynq-cosmoz #include#endif /* __CONFIG_ZYNQ_COSMOZ_H */
とします。
注目すべきところは、メモリサイズです。
Cosmo-Zは1GBのメモリを搭載していますが、DMAバッファ用に768MBを使いたいので、OSが管理するメモリは256MBとします。
そのため、
#define CONFIG_SYS_SDRAM_SIZE (256 * 1024 * 1024)
としています。
なお、U-Bootで指定したメモリサイズと、LinuxのDeviceTreeで指定したメモリサイズが一致しないと、Linuxが正常に起動しません。
Cosmo-Zの情報をU-Bootに追加する
次に、u-boot-xlnx/boards.cfgを編集します。zynqの最後の部分に次の1行を追加します。
Active arm armv7 zynq xilinx zynq zynq_afx_nand_RSA zynq_afx:AFX_NAND,CMD_ZYNQ_RSA \
Michal Simek
Active arm armv7 zynq xilinx zynq zynq_zc70x_RSA zynq_zc70x:CMD_ZYNQ_RSA \
Michal Simek
Active arm armv7 zynq xilinx zynq zynq_zed_RSA zynq_zed:CMD_ZYNQ_RSA \
Michal Simek
Active arm armv7 zynq xilinx zynq zynq_cosmoz - \
Ryuji Naitou
Active arm armv7:arm720t tegra114 nvidia dalmore dalmore - \
Tom Warren
U-Bootの生成コマンド
最後に、
cd u-boot-xlnx make zynq_cosmoz_config make
でビルドが行われ、u-bootが生成されます。
u-boot-xlnxフォルダのトップに、u-bootという拡張子なしのファイル(2.2MBくらい)ができています。これがu-bootのelfファイルです。

XILINX SDKで、ZynqのBootImageを作る際に、FSBLのアプリケーションとして結合すれば、リセット後にU-Bootを起動することができます。
後々のためのパス通し
これから先、RAMディスクやLinuxカーネルイメージを作った後で、U-Bootのヘッダを付加したファイルを作ることになります。
そのためにはmkImageというツールを使いますが、このツールを使えるようにするため、パスを通しておく必要があります。u-boot-xlnxのフォルダで、
cd tools export PATH=`pwd`:$PATH
とやってください。




