FSBLの作成
この章では、FSBL(First Stage Boot Loader)を生成して、boot.binを作り、FPGAの起動を確かめます。
XSDKの起動
Export Hardwareが済んだら、Launch SDKを行います。
D:\sdsoc\vivado_nocsi\vivado_nocsi.sdk\をワークスペースとして、XILINX SDKが起動します。
FSBLの生成
File→New→Application Projectを行います。
ダイアログが開くので、Project nameにfsblと入力し、Hardware Platformがzsys_wrapper_hw_platform_0になっていることを確認し、Nextを押します。
New Projectダイアログが開くので、Zynq FSBLを選択し、Finishを押します。
fsblフォルダに各種のファイルが展開され、ビルドが行われます。
Trenz用FSBLの生成
しかし、このデフォルトのFSBLのソースは使用しません。(デフォルトのFSBLでは画面が出ないため)
Trenzのサンプルプロジェクトに含まれているsw_lib\sw_apps\zynq_fsbl\srcフォルダにあるTrenz製のfsblソースを、D:\sdsoc\vivado_nocsi\vivado_nocsi.sdk\fsbl\srcフォルダに上書きコピーします。
このソースを2か所修正します。
fsbl_debug.h:62行目
#define DEBUG_GENERAL 0x00000001 /* general debug messages */
#define DEBUG_INFO 0x00000002 /* More debug information */
#define FSBL_DEBUG_INFO /* 追加 */
#if defined (FSBL_DEBUG_INFO)
#define fsbl_dbg_current_types ((DEBUG_INFO) | (DEBUG_GENERAL))
#elif defined (FSBL_DEBUG)
#define fsbl_dbg_current_types (DEBUG_GENERAL)
fsbl_hooks.c:65行目
#include "xvtc.h"
// #define ENABLE_CAMERA /* コメントアウト */
#define DIRECT_CAMERA_VIEW
D:\sdsoc\vivado_nocsi\vivado_nocsi.sdk\fsbl\Debugフォルダにfsbl.elfが出来上がっています。
boot.binの生成
D:\sdsoc\vivado_nocsi\vivado_nocsi.sdk\fsbl\にbootというフォルダを作ります。
XSDKでXilinx→Create Boot Imageを実行します。
Create Boot Imageダイアログでは以下のように設定します。
- Output BIF file path: D:\sdsoc\vivado_nocsi\vivado_nocsi.sdk\fsbl\boot
Output pathは 自動で設定されます。
また、Boot image partitionsは、Addを押して、
D:\sdsoc\vivado_nocsi\vivado_nocsi.sdk\fsbl\Debug\fsbl.elf
を追加し、次に
D:\sdsoc\vivado_nocsi\vivado_nocsi.runs\impl_1\zsys_wrapper.bit
を追加します。(Vivadoはプロジェクト名.runs\impl_1の下にBitStreamが生成されます)
ダイアログは下記のような状態になるはずです。
ここでCreate Imageを押すと、vivado_nocsi.sdk\fsbl\boot\BOOT.binが生成されます。