製品情報>ZYNQ搭載 ADCボード「Cosmo-Z」>ソフトウェア情報>ソフトウェア情報>u-bootの生成

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

とやってください。

 


© 2017 TokushuDenshiKairo Inc. All rights reserved