Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

はじめに

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

この記事では、ZynqMP の Boot Loader である BOOT.BIN の構築に関して説明します。

必要な環境

  • Vivado 2017.2
  • Vivado SDK 2017.2

Boot Loader 構築環境の準備

次の URL から git clone でリポジトリをダウンロードして v2017.3.0 をチェックアウトします。

shell$ git clone git://github.com/ikwzm/ZynqMP-FPGA-Linux
shell$ cd ZynqMP-FPGA-Linux
shell$ git checkout v2017.3.0

BOOT.BIN を構成するファイル

ZynqMP の Boot Loader は、起動ストレージにある BOOT.BIN です。BOOT.BIN を構築するには以下のファイルが必要です。

  • target/UltraZed-EG-IOCC/
    • build/
      • zynqmp_fsbl.elf (FSBL)
      • zynqmp_pmufw.elf (PMUFW)
      • bl31.elf (ARM Trusted Firmware Boot Loader state 3-1)
      • u-boot.elf (U-Boot)

それぞれのファイルの構築は構築方法を別記事として投稿しているのでそちらを参照してください。

BOOT.BIN を作るための設定ファイル

BOOT.BIN を作るために、次のような boot.bif ファイルを用意しています。

target/UltraZed-EG-IOCC/build/boot.bif
the_ROM_image:
{
        [fsbl_config] a53_x64
        [bootloader]                                              zynqmp_fsbl.elf
        [pmufw_image]                                             zynqmp_pmufw.elf
        [destination_cpu=a53-0, exception_level=el-3, trustzone]  bl31.elf
        [destination_cpu=a53-0, exception_level=el-2]             u-boot.elf
}

BOOT.BIN の構築

Vivado に含まれている bootgen コマンドを使って BOOT.BIN を作ります。-arch zynqmpでアーキテクチャを、-image boot.bif で前節で説明した boot.bif を指定します。

shell$ cd target/UltraZed-EG-IOCC/build
shell$ bootgen -arch zynqmp -image boot.bif -w -o ../boot/boot.bin

上のコマンドを実行することにより、target/UltraZed-EG-IOCC/boot/boot.bin が生成されます。

PL の Bitstream File を追加したい場合

前節で生成した BOOT.BIN には PL(Programmable Logic) の Bitstream File が含まれていません。そのため Boot Loader 起動時に PL のコンフィギュレーションは行われません。もし、Boot Loader で PL のコンフィギュレーションを行いたい場合は、次のような boot.bif を用意して BOOT.BIN を作ってください。

target/UltraZed-EG-IOCC/build/boot.bif
the_ROM_image:
{
        [fsbl_config] a53_x64
        [bootloader]                                              zynqmp_fsbl.elf
        [pmufw_image]                                             zynqmp_pmufw.elf
        [destination_device=pl]                                   design_1_wrapper.bit
        [destination_cpu=a53-0, exception_level=el-3, trustzone]  bl31.elf
        [destination_cpu=a53-0, exception_level=el-2]             u-boot.elf
}

上の例では PL の Bitstream File として design_1_wrapper.bit を指定しています。

ikwzm
元へっぽこ電子回路エンジニア。現在隠居中。どちらかというとVHDL派。最近はFPGA+SoC でいろいろやってます。github でもいろいろと公開してます。 https://github.com/ikwzm
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away