FPGA
arm64
zynq
Vivado

UltraZed 向け Debian GNU/Linux (v2017.3版) の構築(FSBL編)


はじめに

UltraZed-EG スターターキットに Debian GNU/Linux (v2017.3版) を構築する方法について、具体的な方法をいくつかに分けて説明します。

この記事では、ZynqMP の Boot Loader で使うための FSBL(First Stage Boot Loader) の構築について説明をします。


必要な環境


  • Vivado SDK 2017.2


Sample FPGA Design の構築

FSBL の構築には Sample FPGA Design のハードウェア情報が必要です。「UltraZed 向け Debian GNU/Linux (v2017.3版) の構築(Sample FPGA Design編)」の通りに target/UltraZed-EG-IOCC/build/fpga/project.sdk/design_1_wrapper.hdf を作っておきます。


FSBL の構築

ここでは Vivado の hsi(Hardware Software Interface) を使って構築する方法を示します。GUI を使って手で入力するのは面倒なので Tcl スクリプトファイルを用意しています。 Tcl スクリプトの詳しい内容は「Vivado SDK でZynq FSBL(First Stage Boot Loader)をビルドするTclスクリプト(hsi編)」を参照してください。


target/UltraZed-EG-IOCC/build/fpga/build_zynqmp_fsbl.hsi

#!/usr/bin/tclsh

set app_name "fsbl"
set app_type "zynqmp_fsbl"
set hwspec_file "design_1_wrapper.hdf"
set proc_name "psu_cortexa53_0"
set project_name "project"
set project_dir [pwd]
set sdk_workspace [file join $project_dir $project_name.sdk]
set app_dir [file join $sdk_workspace $app_name]
set app_release_dir [file join [pwd] ".." ]
set app_release_elf "zynqmp_fsbl.elf"

set hw_design [open_hw_design [file join $sdk_workspace $hwspec_file]]

generate_app -hw $hw_design -os standalone -proc $proc_name -app $app_type -compile -dir $app_dir
file copy -force [file join $app_dir "executable.elf"] [file join $app_release_dir $app_release_elf]


build_zynqmp_fsbl.hsi を Vivado で実行することにより target/UltraZed-EG-IOCC/build/zynqmp_fsbl.elf が生成されます。

vivado% cd target/UltraZed-EG-IOCC/build/fpga/

vivado% hsi -mode tcl -source build_zynqmp_fsbl.hsi


参考