Petalinux2019.2によるzynq-7000ブート用SDカード作成 のバックアップ(No.2)

更新


公開メモ

Vivado + Vitis + Petalinux (2019.2) を使って zynq-7000 用のブートSDカードを作る

電気回路/zynq/Petalinux2018.3環境を整える電気回路/zynq/Petalinux2018.3によるzynq-7000ブート用SDカード作成 でやったように、z-turn board 用の SD カード作成を 2019.2 でやりなおそうということ。

目次

Vitis のインストール on Windows 10

ちょっと前までは vivado (ハードウェア開発環境) を入れると Xilinx SDK (ソフト開発環境) がついてきていたのだけれど、

最近は SDK が更新されなくなって、後継の Vitis を入れると vivado がついてくるみたい。

普通に入った。

vivado で z-turn 用のプロジェクトを作成し合成する

z-turn board に付属の DVD からサンプルプロジェクトを取り出して、 それを変更していく形で作業を進める。

これは、Zynq プロセッサ部の標準的な設定を引き継ぐため。

さもないと回路図見ながら細かい設定をポチポチ試行錯誤しなきゃならなくなる。

電気回路/z-turn/基本事項#made65de からの手順で

  • プロジェクトのコピーを作成
  • プロジェクトおよびIPのアップグレード
  • ダミーの割り込み信号線を繋ぐ

まで来たら、電気回路/zynq/Petalinux2018.3によるzynq-7000ブート用SDカード作成#i8da51ff にあるように SDIO Clock の設定を 50MHz にして、その後、

  • Block Design の生成
  • Bitstream の生成 (design_1_wrapper.bit)

を行い、さらに 電気回路/zynq/Petalinux のビルド#a82e50cc の手順でハードウェア設定を Export する。

この手順で、SDK を使ってた頃は system.hdf なんてファイルが生成されたのだけれど、 Vitis になった今は design_1_wrapper.xsa なんていうファイルが生成されるようになっていた。

  • design_1_wrapper.bit にプログラマブルロジック (PL) 領域の設定が
  • design_1_wrapper.xsa にプロセッサー (PS) 領域の設定が

出力されるので、これらを正しく ZYNQ に読み込ませ、Linux が立ち上がる SD カードを作るのが以下の作業。

Ubuntu 18.04.4 Desktop を VirtualBox にインストール

PetaLinux ツールPetaLinux ツール資料リファレンスガイドUG1144 (v2019.2) より、Ubuntu 18.04.02 に対応していることを確認した。

PetaLinux 2019.2 のインストール

etckeeper, openssh-server, jed に加えて、PetaLinux ツール資料リファレンスガイドUG1144 (v2019.2) で必須とされるパッケージを導入

LANG:console
$ sudo apt install -y etckeeper openssh-server jed
$ sudo apt install -y tofrodos iproute2 gawk make net-tools libncurses5-dev tftpd zlib1g:i386 libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential screen pax gzip python2.7
$ sudo apt autoremove -y

openssh-server を入れたので、ホスト Windows 10 上のターミナルソフトで localhost:1022 へ繋ぎに行けば VirtualBox 内の Ubuntu に入れる。

ダウンロード - PetaLinux から petalinux-v2019.2-final-installer.run をダウンロードし、

LANG:console
$ sudo mkdir /opt/petalinux_2019.2
$ sudo chown takeuchi:takeuchi /opt/petalinux_2019.2
$ download/petalinux-v2019.2-final-installer.run /opt/petalinux_2019.2

これでインストール完了。

PetaLinux プロジェクトの作成

電気回路/zynq/Petalinux2018.3によるzynq-7000ブート用SDカード作成 の通りに、

LANG:console
$ cd
$ mkdir petalinux
$ cd petalinux
$ mkdir zturn_v2019.2
$ source /opt/petalinux_2019.2/settings.sh
$ petalinux-create -t project --template zynq -n zturn_v2019.2
$ cd zturn_v2019.2
$ git init
$ git add .
$ git config --global user.email "osamu@big.jp"
$ git config --global user.name "Osamu Takeuchi"
$ git commit -m "newly created"

設定&ビルド

vivado で作った design_1_wrapper.xsa を ~/petalinux/zturn_v2019.2/hw_platform にコピーして、

LANG:console
$ petalinux-config --get-hw-description=hw_platform  # ここで xsa が読まれる
  (何も変更せず Exit)
$ petalinux-build -c kernel
 NOTE: Failed to copy built images to tftp dir: /tftpboot 
 [INFO] successfully built kernel
$ petalinux-build
$ petalinux-package --boot --fsbl images/linux/zynq_fsbl.elf --u-boot
 INFO: File in BOOT BIN: "/home/takeuchi/petalinux/zturn_v2019.2/images/linux/zynq_fsbl.elf"
 INFO: File in BOOT BIN: "/home/takeuchi/petalinux/zturn_v2019.2/images/linux/u-boot.elf"

電気回路/zynq/Petalinux2018.3によるzynq-7000ブート用SDカード作成#e5d26699 の手順で images/linux/BOOT.BIN と images/linux/image.ub とを SD カードに書き込んだところ、ちゃんとコマンドプロンプトが出るところまで進んだ。

Vitis による fsbl 作成

このままだと 電気回路/zynq/Petalinux2018.3によるzynq-7000ブート用SDカード作成#lfc4ab30 が理由で fsbl からのメッセージが表示されないので、Vitis を使って fsbl を作る。

vivado の [Tools]-[Launch Vitis] から立ち上げて、 Let's Vitis(5) - FSBLのビルド - ひでみのアイデア帳 のようにして fsbl を作成する。

fsb 自体は standalone なアプリケーションだというのがキモ。


Counter: 6870 (from 2010/06/03), today: 3, yesterday: 0