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

更新

[[公開メモ]]

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

[[電気回路/zynq/Petalinux2018.3環境を整える]] と [[電気回路/zynq/Petalinux2018.3によるzynq-7000ブート用SDカード作成]] でやったように、[[z-turn board>http://www.myirtech.com/list.asp?id=502]] 用の SD カード作成を 2019.2 でやりなおそうということ。

* Vitis のインストール on Windows 10 [#o135626d]

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

最近は SDK が更新されなくなって、後継の [[Vitis>https://japan.xilinx.com/products/design-tools/vitis.html]] を入れると vivado がついてくるみたい。

普通に入った。

** z-turn 用のプロジェクトを作成し [#b201f601]

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 にインストール [#zcc4d36f]

[[PetaLinux ツール>https://japan.xilinx.com/support/documentation-navigation/development-tools/software-development/petalinux-tools.html]] の [[PetaLinux ツール資料リファレンスガイドUG1144 (v2019.2)>https://japan.xilinx.com/support/documentation/sw_manuals_j/xilinx2019_2/ug1144-petalinux-tools-reference-guide.pdf#page=8]] より、Ubuntu 18.04.02 に対応していることを確認した。

- [[Virtualbox>https://www.virtualbox.org/]] をインストール
  - USB3.0 を使えるように [[VirtualBox Extension Pack>https://www.virtualbox.org/wiki/Downloads]] も入れる(ダウンロード&ダブルクリック)
- Petalinux 2019.2 という Box を作成
  - メモリ 8G
  - ファイルサイズ 100G (可変)
- [[Ubuntu releases>http://ftp.riken.jp/Linux/ubuntu-releases/releases/]] から 18.04 系列の最新の LTS である [[Ubuntu 18.04.4 Desktop>http://ftp.riken.jp/Linux/ubuntu-releases/releases/18.04/ubuntu-18.04.4-desktop-amd64.iso]] をダウンロード&インストール
  - 暗号化は無効で最小インストール
  - VirtualBox の Guest Additions CD からドライバをインストール
  - 画面サイズを大きくする
- ssh で繋いで作業できるように、[[VirtualBoxのネットワーク設定 NATとNATネットワーク設定について。 - Qiita>https://qiita.com/nyamada43/items/6a43f04102b991a4e4db]] を参考に、VirtualBox のネットワーク設定を NAT にしたままポートフォワーディングで 22 番を 1022 に出した。


* PetaLinux 2019.2 のインストール [#d3fb6188]

etckeeper, openssh-server, jed に加えて、[[PetaLinux ツール資料リファレンスガイドUG1144 (v2019.2)>https://japan.xilinx.com/support/documentation/sw_manuals_j/xilinx2019_2/ug1144-petalinux-tools-reference-guide.pdf#page=8]] で必須とされるパッケージを導入

 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>https://japan.xilinx.com/support/download/index.html/content/xilinx/ja/downloadNav/embedded-design-tools.html]]  から petalinux-v2019.2-final-installer.run をダウンロードし、
 
 $ 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 プロジェクトの作成 [#b03e9632]

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

 $ 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"

* 設定&ビルド [#ce54bb19]

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

 $ 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 作成 [#f18bfa3d]

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

vivado の [Tools]-[Launch Vitis] から立ち上げて、
[[Let's Vitis(5) - FSBLのビルド - ひでみのアイデア帳>https://www.sweetcafe.jp/?*20200115-000000]] のようにして fsbl を作成する。

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

Counter: 6792 (from 2010/06/03), today: 1, yesterday: 0