FPGA開発日記

FPGAというより、コンピュータアーキテクチャかもね! カテゴリ別記事インデックス https://sites.google.com/site/fpgadevelopindex/

「Zedroid - Android (5.0 and later) on Zedboard」をやってみる(2. U-Bootの作成)

前回の続き。参考にしているのは以下の資料。

www.slideshare.net

U-bootをビルドする

まずは、ZedBoard Linux用のU-Bootをコンパイルする。これは、Xilinxリポジトリからダウンロードしてコンパイルする。

VivadoがインストールされていればARMのクロスコンパイラ群はすでにインストールされている。 また、Xilinxのu-boot-xlnxリポジトリを一からダウンロードすると巨大なので、githubにアップされているリリースパッケージxilinx-v2017.1.tar.gzを利用した。

sudo apt install device-tree-compiler

wget https://github.com/Xilinx/u-boot-xlnx/archive/xilinx-v2017.1.tar.gz
tar xfz xilinx-v2017.1.tar.gz
cd u-boot-xlnx-xilinx-v2017.1

export CCOMPILER=arm-xilinx-eabi-gcc
export CROSS_COMPILE=arm-xilinx-eabi-
export ARCH=arm

make zynq_zed_config
make

u-bootのファイルが生成されている。

ls -1 | grep u-boot
u-boot
u-boot-nodtb.bin
u-boot.bin
u-boot.cfg
u-boot.cfg.configs
u-boot.img
u-boot.lds
u-boot.map
u-boot.srec
u-boot.sym

SDKでのU-bootの作成

[File]→[New]→[Application Project]を選択する。

Project Nameには"FSBL"を指定する。

Target Hardwareには何故か生成したハードウェアプロジェクトcf_adv7511_zed_hw_platform_1が表示されていなかったので、自分で作る羽目になってしまった。

“Target Hardware"のグループで[New]をクリックする。

新しく"Project Name"として"cf_adv_7511_hw_platform_1"を指定し、エクスポートしたハードウェアのhdfファイルを指定する。これは、プロジェクトディレクトadv7511/zed/adv7511_zed.sdk/system_top.hdfを指定する。 これ[Finish]をクリックすると、新しくTarget Hardwareが指定されていることがわかる。

上記は別に必要なくて、system_top_hw_platform_0を指定しておけば良いということが分かった。

f:id:msyksphinz:20170430223121p:plain

[Next]をクリックする。

“Available Templates:"は"Zynq FSBL"を指定する。

f:id:msyksphinz:20170430223204p:plain

FSBLのプロジェクトが作成された。

f:id:msyksphinz:20170430223215p:plain

Zynq Boot Imageを作成する。

SD-Cardに格納すべきブートイメージを作成する。

[Xilinx-Tools]→[Create Zynq Boot Image]をクリックする。

f:id:msyksphinz:20170430223427p:plain

最初は、何も入力されていなかった。まずは、先ほど指定したu-bootのバイナリを指定する。

f:id:msyksphinz:20170430223511p:plain

SDKディレクトadv7511/zed/adv7511_zed.sdk/FSBL/Debug/FSBL.elfと、生成したハードウェアファイルadv7511/zed/adv7511_zed.sdk/cf_adv7511_zed_hw_platform_1/system_top.bitを指定する。

また、Output BIF file pathにはadv7511/zed/adv7511_zed.sdk/bootimage/boot.bifを、Output pathにはadv7511/zed/adv7511_zed.sdk/bootimage/boot.binを指定した。

f:id:msyksphinz:20170430223529p:plain

どうやら最初にFSBLのプロジェクトを選択した状態で[Create Zynq Boot Image]を選択すると、デフォルトでいくつかファイルが指定される様子。

u-bootのバイナリu-bootu-boot.elfにリネームしておき、指定する。

f:id:msyksphinz:20170506113927p:plain

これでCreate Imageをクリックすると、ブートイメージBOOT.binが作成される。

次はカーネルのビルドを行おう。

関連記事

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com