marseeさんのFPGAの部屋を元に作成していく。
基本はそちらを見て作業。
詰まった点や、marseeさん自身もその後の記事で追記してる内容についてメモを残す。
Contents
ハードウェア編 (Vivado)
Ultra96-V2のVitis 2020.1アクセラレーション・プラットフォームを作る1
この内容については、特に追記すべき項目なし。
ソフトウェア編 (PetaLinux)
Ultra96-V2のVitis 2020.1アクセラレーション・プラットフォームを作る2
rootfs.ext4の設定
petalinux-configu –get-hw-description=[XSAファイル]実行時に開かれる設定画面で、
Image Packaging Configuration -> Root filesystemに、jffs2の後にスペース入れて”ext4″を記載。
これで、rootfs.ext4が生成される。
pfm/boot/fsbl.elfへのリネーム
赤字でも記載してあるけど、重要なことなので記載。
images/linux/zynqmp_fsbl.elfは、pfm/bootディレクトリにコピーした際には、fsbl.elfと言うファイル名に変更が必要。
Linuxブート失敗について
あと、実はmarseeさんの手順を追って作成したmicroSDではLinuxがブートせず、以下でハングしてしまう。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
[ 4.684886] xhci-hcd xhci-hcd.0.auto: irq 50, io mem 0xfe300000 [ 4.691009] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.04 [ 4.698973] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 4.706142] usb usb1: Product: xHCI Host Controller [ 4.707873] mmc0: SDHCI controller on ff160000.mmc [ff160000.mmc] using ADMA 64-bit [ 4.710986] usb usb1: Manufacturer: Linux 5.4.0 xhci-hcd [ 4.723883] usb usb1: SerialNumber: xhci-hcd.0.auto [ 4.729091] hub 1-0:1.0: USB hub found [ 4.732515] hub 1-0:1.0: 1 port detected [ 4.736539] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller [ 4.741793] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2 [ 4.749403] xhci-hcd xhci-hcd.0.auto: Host supports USB 3.0 SuperSpeed [ 4.750152] mmc1: SDHCI controller on ff170000.mmc [ff170000.mmc] using ADMA 64-bit [ 4.755987] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM. [ 4.771541] rtc_zynqmp ffa60000.rtc: setting system clock to 1970-01-01T00:00:06 UTC (6) [ 4.771545] of_cfs_init [ 4.779713] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.04 [ 4.782025] of_cfs_init: OK [ 4.790220] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 4.793142] cfg80211: Loading compiled-in X.509 certificates for regulatory database [ 4.800168] usb usb2: Product: xHCI Host Controller [ 4.812718] usb usb2: Manufacturer: Linux 5.4.0 xhci-hcd [ 4.817986] usb usb2: SerialNumber: xhci-hcd.0.auto [ 4.823273] hub 2-0:1.0: USB hub found [ 4.826666] hub 2-0:1.0: 1 port detected [ 4.849246] mmc1: new high speed SDIO card at address 0001 [ 4.901026] mmc0: error -110 whilst initialising SD card [ 4.939894] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' [ 4.940780] clk: Not disabling unused clocks [ 4.945023] ALSA device list: [ 4.947961] #0: DisplayPort monitor [ 4.951625] Warning: unable to open an initial console. [ 4.956868] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2 [ 4.956972] Waiting for root device /dev/mmcblk0p2... [ 4.965355] cfg80211: failed to load regulatory.db [ 5.070975] usb 1-1: new high-speed USB device number 2 using xhci-hcd [ 5.219450] usb 1-1: New USB device found, idVendor=0424, idProduct=2744, bcdDevice= 2.05 [ 5.221970] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 5.229069] usb 1-1: Product: USB2744 [ 5.232701] usb 1-1: Manufacturer: Microchip Tech [ 5.300011] hub 1-1:1.0: USB hub found [ 5.300085] hub 1-1:1.0: 4 ports detected [ 5.650973] usb 1-1.4: new high-speed USB device number 3 using xhci-hcd [ 5.670999] [drm] Cannot find any crtc or sizes [ 5.751654] usb 1-1.4: New USB device found, idVendor=0424, idProduct=2740, bcdDevice= 2.00 [ 5.754351] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 5.761625] usb 1-1.4: Product: Hub Controller [ 5.766034] usb 1-1.4: Manufacturer: Microchip Tech |
Linuxブート失敗
PetaLinux 2020.1の既知の問題を踏んでるっぽいので、以下のAnswer Recordを試してみるが、上記エラーは解消せず。
https://japan.xilinx.com/support/answers/75417.html
UARTが1本であれば正常に起動するとの情報もあったので、上記がビンゴって思ったのだが、他にも問題がある模様。
注意深く、XilinxのZynq-7000 SoC: EmbeddedDesign Tutorialを読んでみたが、どうも解決できそうにない。
最新版で動けばよかったのだが、やりたかったのはVitis AIを使うことだったので、うまく動いてる報告が幾つかあるVitis 2019.1を使うことにする。
VitisやPetaLinuxは複数バージョンがインストールできるが、XRTはdeb package管理なのでできない。
Pythonみたいに複数バージョン管理できないかと思ったが、色々調べてみたらXRT 2020.1が2019.2環境でも使えるようなので、XRTのみはそのままとしてみる。
プラットフォーム (Vitis)
Ultra96-V2のVitis 2020.1アクセラレーション・プラットフォームを作る3
特に追記すべき内容なし。
アプリケーション (Vitis)
Ultra96-V2のVitis 2020.1アクセラレーション・プラットフォームを作る4
特に追記すべき内容なし。
一時断念
Vitis AIを試したいだけなので、最悪Vitis 2019.2でも構わないので、一時断念。
2019.2の環境を構築して再度トライすることにする。