FC2カウンター FPGAの部屋 Ultra96
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

”TVM を使ってディープラーニングを手軽に FPGA で高速化 (2)”をやってみる5

”TVM を使ってディープラーニングを手軽に FPGA で高速化 (2)”をやってみる4”の続き。

Ultra96V2 用の”TVM を使ってディープラーニングを手軽に FPGA で高速化 (2)”をやってみようということで、前回は、、”ホスト環境での TVM のセットアップ”をやっていったのだが、”./tvm/docker/build.sh demo_vitis_ai bash”でエラーが出て先に進まなくなってしまった。今回は、その続きというかデバックをしたのだが、うまく行かなかった。

前回のエラーだが、apt-get update --fix-missing をやっている時に、リポジトリを読んでくるサイトの https://apt.kitware.com/ubuntu bionic Release が無くなったか更新されなくなったか?したのだと思う。このリポジトリがエラーでも問題ないのと思うので、そこを読み飛ばしてくれないかな?ということで、ネットを検索すると、”DockerHubでDockerfileのRUNコマンドのエラーを無視する”が検索できた。それによると

RUN (終了コードが0以外のコード) ; exit 0

とすれば良いとのことだ。つまり

; exit 0

を後に追加すれば良い。
apt-get update --fix-missing がどのファイルにあるか?だが、 tvm/docker/Dockerfile.demo_vitis_ai にあった。
ファイルを開いて、

RUN apt-get update --fix-missing

RUN apt-get update --fix-missing; exit 0

に変更した。
Ultra96-V2_TVM_39_211007.png

これで、もう一度、 ./tvm/docker/build.sh demo_vitis_ai bash を実行すると、 bash /install/ubuntu_install_python.sh で止まってしまった。
Ultra96-V2_TVM_40_211007.png

同様に tvm/docker/Dockerfile.demo_vitis_ai の

RUN bash /install/ubuntu_install_python.sh;

RUN bash /install/ubuntu_install_python.sh; exit 0

に変更した。
Ultra96-V2_TVM_41_211007.png

これで、もう一度、 ./tvm/docker/build.sh demo_vitis_ai bash を実行すると、 bash /install/ubuntu_install_llvm.sh; で止まってしまった。
Ultra96-V2_TVM_42_211007.png

途中は飛ばすが、結局、下の図のように ; exit 0 を入れたら通るようになった。
Ultra96-V2_TVM_43_211007.png

でもまだ私のアカウントが does not exist と言われている。
それでは、次のコマンドの
./tvm/docker/bash.sh tvm.demo_vitis_ai
を実行したところ、

find: ‘/dev/vboxusb’: 許可がありません

というエラーが出てしまった。
Ultra96-V2_TVM_45_211008.png

sudo ls -l /dev/vboxusb/ を実行したところ、パーミッションが 750 だった。
Ultra96-V2_TVM_46_211008.png

sudo chmod 755 /dev/vboxusb/002
sudo chmod 755 /dev/vboxusb/
sudo chmod 755 /dev/vboxusb/001

を実行して、/dev/vboxusb のパーミッションを変更してみた。
もう一度、
./tvm/docker/bash.sh tvm.demo_vitis_ai
を実行したところ、今度は、

docker: bad format for path: .

と言われてしまった。
Ultra96-V2_TVM_47_211008.png

  1. 2021年10月08日 04:43 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

”TVM を使ってディープラーニングを手軽に FPGA で高速化 (2)”をやってみる4

”TVM を使ってディープラーニングを手軽に FPGA で高速化 (2)”をやってみる3”の続き。

Ultra96V2 用の”TVM を使ってディープラーニングを手軽に FPGA で高速化 (2)”をやってみようということで、前回は、”TVM を使ってディープラーニングを手軽に FPGA で高速化 (2)”の”Ultra96 への TVM ランタイムのインストール”を行った。今回は、”ホスト環境での TVM のセットアップ”をやっていったのだが、”./tvm/docker/build.sh demo_vitis_ai bash”でエラーが出て先に進まなくなってしまった。

ホスト環境での TVM のセットアップ
tvm を git clone する。
Ultra96-V2_TVM_35_211006.png
Ultra96-V2_TVM_36_211006.png

build.sh を実行する。
./tvm/docker/build.sh demo_vitis_ai bash
Ultra96-V2_TVM_37_211006.png
Ultra96-V2_TVM_38_211006.png

エラーが発生した。

The command '/bin/sh -c apt-get update --fix-missing' returned a non-zero code: 100
ERROR: docker build failed.



コマンド実行のログを示す。

(base) masaaki@masaaki-H110M4-M01:/media/masaaki/Ubuntu_Disk/Ultra96-V2/TVM_DL$ ./tvm/docker/build.sh demo_vitis_ai bash
Using default context path: /media/masaaki/Ubuntu_Disk/Ultra96-V2/TVM_DL/tvm/docker
WORKSPACE: /media/masaaki/Ubuntu_Disk/Ultra96-V2/TVM_DL/tvm/docker/../
CI_DOCKER_EXTRA_PARAMS: 
COMMAND: bash
CONTAINER_TYPE: demo_vitis_ai
BUILD_TAG: tvm
DOCKER CONTAINER NAME: tvm.demo_vitis_ai
DOCKER_IMAGE_TAG: latest
DOCKER_IMG_SPEC: tvm.demo_vitis_ai:latest

Building container (tvm.demo_vitis_ai)...
Sending build context to Docker daemon  201.7kB
Step 1/19 : FROM xilinx/vitis-ai:1.4.916
1.4.916: Pulling from xilinx/vitis-ai
01bf7da0a88c: Pulling fs layer 
f3b4a5f15c7a: Pulling fs layer 
57ffbe87baa1: Pulling fs layer 
195050004f95: Pulling fs layer 
28ef4752131e: Pulling fs layer 
161717b3aab7: Pulling fs layer 
c8a243b4402d: Pulling fs layer 
f4cc9f3f5ed3: Pulling fs layer 
078585cf4882: Pulling fs layer 
9bb8a2ef4fe9: Pulling fs layer 
31628d2f8579: Pull complete 
5759a1729f74: Pull complete 
f6bf5622f603: Pull complete 
343ab32c9bff: Pull complete 
e417d03e00f0: Pull complete 
db307339ff66: Pull complete 
53b28f82bce7: Pull complete 
b879f906e0dc: Pull complete 
a117f5309e41: Pull complete 
6dc4b00c80a5: Pull complete 
a718f95d6864: Pull complete 
d1cfc3aa434e: Pull complete 
e52a4b0ebf4b: Pull complete 
9eb3845e0638: Pull complete 
f65df791d7f6: Pull complete 
2e3224a3157e: Pull complete 
e84eff50ebe1: Pull complete 
6f7467e62fb5: Pull complete 
e98adc80d6b3: Pull complete 
f45c539d8128: Pull complete 
896507c50eb7: Pull complete 
fb407cba96a3: Pull complete 
c4c370fb9ac4: Pull complete 
Digest: sha256:1d568b1b77601a4e9989f969a74dfd9fd61102b713cb137edb83d76db11cea91
Status: Downloaded newer image for xilinx/vitis-ai:1.4.916
 ---> a325686c45a3
Step 2/19 : RUN apt-get update --fix-missing
 ---> Running in c2232d8956c0
Get:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]    
Get:2 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB]               
Get:3 http://ppa.launchpad.net/timsc/opencv-3.4/ubuntu bionic InRelease [15.9 kB]
Ign:4 https://apt.kitware.com/ubuntu bionic InRelease                          
Err:5 https://apt.kitware.com/ubuntu bionic Release                            
  Certificate verification failed: The certificate is NOT trusted. The certificate chain uses expired certificate.  Could not handshake: Error in the certificate verification. [IP: 66.194.253.25 443]
Get:6 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic InRelease [20.8 kB]
Get:7 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]      
Get:8 http://security.ubuntu.com/ubuntu bionic-security/restricted amd64 Packages [606 kB]
Get:9 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]    
Get:10 http://ppa.launchpad.net/timsc/opencv-3.4/ubuntu bionic/main amd64 Packages [11.1 kB]
Get:11 http://archive.ubuntu.com/ubuntu bionic/multiverse amd64 Packages [186 kB]
Get:12 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages [11.3 MB]
Get:13 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 Packages [50.4 kB]
Get:14 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [1,430 kB]
Get:15 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [2,365 kB]
Get:16 http://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 Packages [26.7 kB]
Get:17 http://archive.ubuntu.com/ubuntu bionic/restricted amd64 Packages [13.5 kB]
Get:18 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages [1,344 kB]  
Get:19 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [2,801 kB]
Get:20 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [2,209 kB]
Get:21 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 Packages [34.4 kB]
Get:22 http://archive.ubuntu.com/ubuntu bionic-updates/restricted amd64 Packages [638 kB]
Get:23 http://archive.ubuntu.com/ubuntu bionic-backports/universe amd64 Packages [11.4 kB]
Get:24 http://archive.ubuntu.com/ubuntu bionic-backports/main amd64 Packages [11.3 kB]
Reading package lists... Done                                                  
E: The repository 'https://apt.kitware.com/ubuntu bionic Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
The command '/bin/sh -c apt-get update --fix-missing' returned a non-zero code: 100
ERROR: docker build failed.

  1. 2021年10月07日 05:10 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

”TVM を使ってディープラーニングを手軽に FPGA で高速化 (2)”をやってみる3

”TVM を使ってディープラーニングを手軽に FPGA で高速化 (2)”をやってみる2”の続き。

Ultra96V2 用の”TVM を使ってディープラーニングを手軽に FPGA で高速化 (2)”をやってみようということで、前回は、”TVM を使ってディープラーニングを手軽に FPGA で高速化 (2)”の”DPU-PYNQ 環境の構築”をやってみた。今回は、”TVM を使ってディープラーニングを手軽に FPGA で高速化 (2)”の”Ultra96 への TVM ランタイムのインストール”をやってみよう。

Ultra96 への TVM ランタイムのインストール
必要なパッケージをインストールする。
apt-get install libhdf5-dev
Ultra96-V2_TVM_20_211005.png
Ultra96-V2_TVM_21_211005.png

pip3 install pydot==1.4.1 h5py==2.8.0
Ultra96-V2_TVM_22_211005.png

PyXir のインストール
git clone --recursive https://github.com/Xilinx/pyxir.git
Ultra96-V2_TVM_23_211005.png
Ultra96-V2_TVM_24_211005.png

cd pyxir
git checkout refs/tags/v0.2.1
git submodule update --recursive

Ultra96-V2_TVM_25_211005.png

sudo python3 setup.py install --use_vai_rt_dpuczdx8g
Ultra96-V2_TVM_26_211005.png
Ultra96-V2_TVM_27_211005.png

TVM ランタイムのビルド・インストール
git clone --recursive https://github.com/apache/tvm
Ultra96-V2_TVM_28_211005.png
Ultra96-V2_TVM_29_211005.png

cd tvm
mkdir build
cp cmake/config.cmake build
cd build
echo set\(USE_LLVM OFF\) >> config.cmake
echo set\(USE_VITIS_AI ON\) >> config.cmake
cmake ..

Ultra96-V2_TVM_30_211005.png
Ultra96-V2_TVM_31_211005.png

make tvm_runtime -j$(nproc)
Ultra96-V2_TVM_32_211005.png
Ultra96-V2_TVM_33_211005.png

cd ..
export PYTHONPATH=`pwd`/python/:$PYTHONPATH


TVM ランタイムのインストールの成功を以下のコマンドで確認できるそうだが、何も表示されなかったのだが、大丈夫なのだろうか?
python3 -c 'import pyxir; import tvm'
Ultra96-V2_TVM_34_211005.png
  1. 2021年10月06日 03:46 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

”TVM を使ってディープラーニングを手軽に FPGA で高速化 (2)”をやってみる2

”TVM を使ってディープラーニングを手軽に FPGA で高速化 (2)”をやってみる1”の続き。

Ultra96V2 用の”TVM を使ってディープラーニングを手軽に FPGA で高速化 (2)”をやってみようということで、前回は、 ”Ultra96 への PYNQ 環境の構築”を行った。具体的には、Ultra96V2 用の PYNQ v2.6 をダウンロードし、MircoSD カードに書いて、 Ultra96V2 に挿入して PYNQ をブートした。今回は、”TVM を使ってディープラーニングを手軽に FPGA で高速化 (2)”の”DPU-PYNQ 環境の構築”をやってみよう。

DPU-PYNQ 環境の構築
ssh 192.168.3.29 -X -l xilinx
で接続できない。
Ultra96-V2_TVM_9_211005.png

これは、”Ultra96-V2にPYNQをインストールした時のusb0のIPアドレスの変更方法”によると usb0 の IPアドレスが 192.168.3.1 でルーターとぶつかっているせいだ。
Ultra96-V2_TVM_8_211004.png

sudo ifconfig usb0 192.168.4.1
で usb0 の IP アドレスを 192.168.4.1 に変更した。
Ultra96-V2_TVM_10_211005.png

もう一度、
ssh 192.168.3.29 -X -l xilinx
で反応があった。
Ultra96-V2_TVM_11_211005.png

ssh-keygen -f "/home/masaaki/.ssh/known_hosts" -R "192.168.3.29"
ssh 192.168.3.29 -X -l xilinx

ログインできた。
Ultra96-V2_TVM_12_211005.png

DPU 環境をセットアップする。
sudo -s
git clone --branch v1.2.0 --recursive --shallow-submodules https://github.com/Xilinx/DPU-PYNQ.git

Ultra96-V2_TVM_13_211005.png
Ultra96-V2_TVM_14_211005.png

cd DPU-PYNQ/upgrade
make

Ultra96-V2_TVM_15_211005.png
Ultra96-V2_TVM_16_211005.png

pip3 install pynq-dpu==1.2.0
Ultra96-V2_TVM_17_211005.png
Ultra96-V2_TVM_18_211005.png

DPU ビットストリームを FPGA ボードに書き込む。
python3 -c 'from pynq_dpu import DpuOverlay ; overlay = DpuOverlay("dpu.bit")'
dexplorer -w で書き込みチェックする。
dexplorer -w
Ultra96-V2_TVM_19_211005.png

300 MHz 動作の B1600 DPU が 1 個実装されている。
  1. 2021年10月05日 04:25 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

”TVM を使ってディープラーニングを手軽に FPGA で高速化 (2)”をやってみる1

”TVM を使ってディープラーニングを手軽に FPGA で高速化 (3)”をやってみる1”では dnndk が dnf install できなくて、やってみることができなくなった。
そこで Ultra96V2 用だけど、”TVM を使ってディープラーニングを手軽に FPGA で高速化 (2)”をやってみて、うまく行くかどうか?を確認してみよう。

Ultra96 への PYNQ 環境の構築
Ultra96V2 用の PYNQ v2.6 をダウンロードする。
PYNQ のサイトを開いて、Ultra96v2 の v2.6 をダウンロードする。
Ultra96-V2_TVM_1_211004.png

ダウンロード中で時間がかかっている。 540 kB/sec くらいでダウンロードしているが、1.9 GB あるので、後 1 時間くらいかかるようだ。今日のブログはダウンロードだけで終わってしまうので、仕事終わって家に帰ってから書くことにする。

ultra96v2_v2.6.0.zip がダウンロードできた。
Ultra96-V2_TVM_2_211004.png

ultra96v2_v2.6.0.zip をダブルクリックして解凍すると、 ultra96v2_v2.6.0.img が生成された。
Ultra96-V2_TVM_3_211004.png

balenaEtcher で ultra96v2_v2.6.0.img を MicroSD カードに書き込む。
Ultra96-V2_TVM_4_211004.png

書き込み終了して、 105 MB ボリュームと 7.2 GB ボリュームが生成された。
Ultra96-V2_TVM_5_211004.png

Ultra96-V2_TVM_6_211004.png

この MicroSD カードを Ultra96V2 に挿入してブートした。
Linux が立ち上がった。
Ultra96-V2_TVM_7_211004.png

間違ってルートでログインしようとしているが、もうすでにログインされていた。

ifconfig するとネットワークに接続されていた。 USB に USB - LAN アダプタを接続している。
Ultra96-V2_TVM_8_211004.png

Linux の起動ログを示す。

Xilinx Zynq MP First Stage Boot Loader 
Release 2020.1   Oct 20 2020  -  10:36:48
NOTICE:  ATF running on XCZU3EG/silicon v4/RTL5.1 at 0xfffea000
NOTICE:  BL31: v2.2(release):xilinx_rebase_v2.2_2020.1
NOTICE:  BL31: Built : 10:38:45, Oct 20 2020


U-Boot 2020.01 (Oct 20 2020 - 10:34:46 +0000)

Model: Avnet Ultra96 Rev1
Board: Xilinx ZynqMP
DRAM:  2 GiB
PMUFW:  v1.1
EL Level:   EL2
Chip ID:    zu3eg
NAND:  0 MiB
MMC:   mmc@ff160000: 0, mmc@ff170000: 1
In:    serial@ff010000
Out:   serial@ff010000
Err:   serial@ff010000
Bootmode: SD_MODE
Reset reason:   EXTERNAL 
Net:   No ethernet found.
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
1636 bytes read in 12 ms (132.8 KiB/s)
## Executing script at 20000000
17884584 bytes read in 1301 ms (13.1 MiB/s)
## Loading kernel from FIT Image at 10000000 ...
   Using 'conf@1' configuration
   Trying 'kernel@0' kernel subimage
     Description:  Linux Kernel
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x100000d4
     Data Size:    17840640 Bytes = 17 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x00080000
     Entry Point:  0x00080000
     Hash algo:    sha1
     Hash value:   fc5beeb394d3ef60e0b1a59223599552bf8d18e3
   Verifying Hash Integrity ... sha1+ OK
## Loading fdt from FIT Image at 10000000 ...
   Using 'conf@1' configuration
   Trying 'fdt@0' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x11103bcc
     Data Size:    42117 Bytes = 41.1 KiB
     Architecture: AArch64
     Hash algo:    sha1
     Hash value:   ae7d4f0f3d4aa18c46ec3a55242ac03e8edbfd4e
   Verifying Hash Integrity ... sha1+ OK
   Booting using the fdt blob at 0x11103bcc
   Loading Kernel Image
   Loading Device Tree to 000000000fff2000, end 000000000ffff484 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.4.0-xilinx-v2020.1 (oe-user@oe-host) (gcc version 9.2.0 (GCC)) #1 SMP Tue Oct 20 10:19:22 UTC 2020
[    0.000000] Machine model: Avnet Ultra96 Rev1
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 128 MiB at 0x0000000077c00000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.1
[    0.000000] percpu: Embedded 22 pages/cpu s50392 r8192 d31528 u90112
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] Speculative Store Bypass Disable mitigation not required
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 515844
[    0.000000] Kernel command line: root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=1 uio_pdrv_genirq.of_id="generic-uio" clk_ignore_unused
[    0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 1906580K/2096128K available (12220K kernel code, 718K rwdata, 3668K rodata, 768K init, 532K bss, 58476K reserved, 131072K cma-reserved)
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GIC: Adjusting CPU interface base to 0x00000000f902f000
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] random: get_random_bytes called from start_kernel+0x2a8/0x42c with crng_init=0
[    0.000000] arch_timer: cp15 timer(s) running at 99.99MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x17102373f5, max_idle_ns: 440795203772 ns
[    0.000003] sched_clock: 56 bits at 99MHz, resolution 10ns, wraps every 4398046511100ns
[    0.000378] Console: colour dummy device 80x25
[    0.000575] printk: console [tty0] enabled
[    0.000606] Calibrating delay loop (skipped), value calculated using timer frequency.. 199.99 BogoMIPS (lpj=399999)
[    0.000622] pid_max: default: 32768 minimum: 301
[    0.000806] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.000827] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.002148] ASID allocator initialised with 32768 entries
[    0.002220] rcu: Hierarchical SRCU implementation.
[    0.002450] EFI services will not be available.
[    0.002613] smp: Bringing up secondary CPUs ...
[    0.003014] Detected VIPT I-cache on CPU1
[    0.003062] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.003468] Detected VIPT I-cache on CPU2
[    0.003488] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.003848] Detected VIPT I-cache on CPU3
[    0.003868] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.003918] smp: Brought up 1 node, 4 CPUs
[    0.004001] SMP: Total of 4 processors activated.
[    0.004011] CPU features: detected: 32-bit EL0 Support
[    0.004020] CPU features: detected: CRC32 instructions
[    0.004068] CPU: All CPU(s) started at EL2
[    0.004088] alternatives: patching kernel code
[    0.005497] devtmpfs: initialized
[    0.010514] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.010540] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.014307] xor: measuring software checksum speed
[    0.052056]    8regs     :  2375.000 MB/sec
[    0.092082]    32regs    :  2725.000 MB/sec
[    0.132121]    arm64_neon:  2365.000 MB/sec
[    0.132130] xor: using function: 32regs (2725.000 MB/sec)
[    0.132150] pinctrl core: initialized pinctrl subsystem
[    0.133068] NET: Registered protocol family 16
[    0.134611] DMA: preallocated 256 KiB pool for atomic allocations
[    0.134640] audit: initializing netlink subsys (disabled)
[    0.135050] cpuidle: using governor menu
[    0.135251] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.135274] audit: type=2000 audit(0.132:1): state=initialized audit_enabled=0 res=1
[    0.148133] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.148152] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[    0.148162] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.148172] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[    1.223940] DRBG: Continuing without Jitter RNG
[    1.300908] raid6: neonx8   gen()  1561 MB/s
[    1.368919] raid6: neonx8   xor()  1466 MB/s
[    1.436955] raid6: neonx4   gen()  1485 MB/s
[    1.505008] raid6: neonx4   xor()  1430 MB/s
[    1.573064] raid6: neonx2   gen()  1134 MB/s
[    1.641104] raid6: neonx2   xor()  1189 MB/s
[    1.709135] raid6: neonx1   gen()   739 MB/s
[    1.777167] raid6: neonx1   xor()   895 MB/s
[    1.845254] raid6: int64x8  gen()  1165 MB/s
[    1.913294] raid6: int64x8  xor()   763 MB/s
[    1.981342] raid6: int64x4  gen()   984 MB/s
[    2.049366] raid6: int64x4  xor()   738 MB/s
[    2.117409] raid6: int64x2  gen()   683 MB/s
[    2.185478] raid6: int64x2  xor()   601 MB/s
[    2.253495] raid6: int64x1  gen()   452 MB/s
[    2.321580] raid6: int64x1  xor()   461 MB/s
[    2.321588] raid6: using algorithm neonx8 gen() 1561 MB/s
[    2.321596] raid6: .... xor() 1466 MB/s, rmw enabled
[    2.321604] raid6: using neon recovery algorithm
[    2.322336] iommu: Default domain type: Translated 
[    2.322659] SCSI subsystem initialized
[    2.322833] usbcore: registered new interface driver usbfs
[    2.322869] usbcore: registered new interface driver hub
[    2.322904] usbcore: registered new device driver usb
[    2.322962] mc: Linux media interface: v0.10
[    2.322989] videodev: Linux video capture interface: v2.00
[    2.323014] pps_core: LinuxPPS API ver. 1 registered
[    2.323022] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    2.323040] PTP clock support registered
[    2.323064] EDAC MC: Ver: 3.0.0
[    2.323549] zynqmp-ipi-mbox mailbox@ff990400: Registered ZynqMP IPI mbox with TX/RX channels.
[    2.323746] FPGA manager framework
[    2.323896] Advanced Linux Sound Architecture Driver Initialized.
[    2.324263] Bluetooth: Core ver 2.22
[    2.324292] NET: Registered protocol family 31
[    2.324300] Bluetooth: HCI device and connection manager initialized
[    2.324313] Bluetooth: HCI socket layer initialized
[    2.324324] Bluetooth: L2CAP socket layer initialized
[    2.324339] Bluetooth: SCO socket layer initialized
[    2.324778] clocksource: Switched to clocksource arch_sys_counter
[    2.324897] VFS: Disk quotas dquot_6.6.0
[    2.324950] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    2.329287] NET: Registered protocol family 2
[    2.329703] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)
[    2.329742] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    2.329857] TCP bind hash table entries: 16384 (order: 6, 262144 bytes, linear)
[    2.330192] TCP: Hash tables configured (established 16384 bind 16384)
[    2.330302] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    2.330349] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    2.330500] NET: Registered protocol family 1
[    2.330830] RPC: Registered named UNIX socket transport module.
[    2.330840] RPC: Registered udp transport module.
[    2.330847] RPC: Registered tcp transport module.
[    2.330854] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    2.331127] PCI: CLS 0 bytes, default 64
[    2.331717] hw perfevents: no interrupt-affinity property for /pmu, guessing.
[    2.331903] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available
[    2.332833] Initialise system trusted keyrings
[    2.332934] workingset: timestamp_bits=46 max_order=19 bucket_order=0
[    2.333810] NFS: Registering the id_resolver key type
[    2.333829] Key type id_resolver registered
[    2.333836] Key type id_legacy registered
[    2.333851] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    2.333878] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    2.346680] NET: Registered protocol family 38
[    2.346693] Key type asymmetric registered
[    2.346702] Asymmetric key parser 'x509' registered
[    2.346732] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
[    2.346813] io scheduler mq-deadline registered
[    2.346823] io scheduler kyber registered
[    2.374645] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    2.378259] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    2.383270] brd: module loaded
[    2.388867] loop: module loaded
[    2.389712] mtdoops: mtd device (mtddev=name/number) must be supplied
[    2.391386] libphy: Fixed MDIO Bus: probed
[    2.392438] tun: Universal TUN/TAP device driver, 1.6
[    2.392550] CAN device driver interface
[    2.393255] PPP generic driver version 2.4.2
[    2.394202] usbcore: registered new interface driver cdc_acm
[    2.394211] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[    2.394242] usbcore: registered new interface driver cdc_wdm
[    2.394281] usbcore: registered new interface driver usb-storage
[    2.394349] usbcore: registered new interface driver usbserial_generic
[    2.394376] usbserial: USB Serial support registered for generic
[    2.394405] usbcore: registered new interface driver usb_serial_simple
[    2.394428] usbserial: USB Serial support registered for carelink
[    2.394455] usbserial: USB Serial support registered for zio
[    2.394476] usbserial: USB Serial support registered for funsoft
[    2.394501] usbserial: USB Serial support registered for flashloader
[    2.394523] usbserial: USB Serial support registered for google
[    2.394546] usbserial: USB Serial support registered for libtransistor
[    2.394568] usbserial: USB Serial support registered for vivopay
[    2.394590] usbserial: USB Serial support registered for moto_modem
[    2.394613] usbserial: USB Serial support registered for motorola_tetra
[    2.394638] usbserial: USB Serial support registered for novatel_gps
[    2.394660] usbserial: USB Serial support registered for hp4x
[    2.394684] usbserial: USB Serial support registered for suunto
[    2.394705] usbserial: USB Serial support registered for siemens_mpi
[    2.394891] gadgetfs: USB Gadget filesystem, version 24 Aug 2004
[    2.395411] rtc_zynqmp ffa60000.rtc: registered as rtc0
[    2.395473] i2c /dev entries driver
[    2.397658] device-mapper: ioctl: 4.41.0-ioctl (2019-09-16) initialised: dm-devel@redhat.com
[    2.397725] Bluetooth: HCI UART driver ver 2.3
[    2.397736] Bluetooth: HCI UART protocol H4 registered
[    2.397744] Bluetooth: HCI UART protocol BCSP registered
[    2.397767] Bluetooth: HCI UART protocol LL registered
[    2.397775] Bluetooth: HCI UART protocol ATH3K registered
[    2.397796] Bluetooth: HCI UART protocol Three-wire (H5) registered
[    2.397841] Bluetooth: HCI UART protocol Intel registered
[    2.397863] Bluetooth: HCI UART protocol QCA registered
[    2.397896] usbcore: registered new interface driver bcm203x
[    2.397929] usbcore: registered new interface driver bpa10x
[    2.397962] usbcore: registered new interface driver bfusb
[    2.397994] usbcore: registered new interface driver btusb
[    2.398042] usbcore: registered new interface driver ath3k
[    2.398173] EDAC MC: ECC not enabled
[    2.398339] EDAC DEVICE0: Giving out device to module zynqmp-ocm-edac controller zynqmp_ocm: DEV ff960000.memory-controller (INTERRUPT)
[    2.398722] pwrseq_simple sdio_pwrseq: mmc failed to get default resetn GPIO
[    2.398742] pwrseq_simple sdio_pwrseq: mmc failed to get default chip_en GPIO
[    2.398878] sdhci: Secure Digital Host Controller Interface driver
[    2.398887] sdhci: Copyright(c) Pierre Ossman
[    2.398894] sdhci-pltfm: SDHCI platform and OF driver helper
[    2.399315] ledtrig-cpu: registered to indicate activity on CPUs
[    2.399372] zynqmp_firmware_probe Platform Management API v1.1
[    2.399384] zynqmp_firmware_probe Trustzone version v1.0
[    2.402987] zynqmp-pinctrl firmware:zynqmp-firmware:pinctrl: zynqmp pinctrl initialized
[    2.426667] alg: No test for xilinx-zynqmp-aes (zynqmp-aes)
[    2.426905] zynqmp_aes zynqmp_aes: AES Successfully Registered
[    2.426905] 
[    2.427111] alg: No test for xilinx-keccak-384 (zynqmp-keccak-384)
[    2.427393] alg: No test for xilinx-zynqmp-rsa (zynqmp-rsa)
[    2.427692] usbcore: registered new interface driver usbhid
[    2.427701] usbhid: USB HID core driver
[    2.427942] xlnk xlnk: Major 242
[    2.428056] xlnk xlnk: xlnk driver loaded
[    2.428065] xlnk xlnk: xlnk_pdev is not null
[    2.430188] fpga_manager fpga0: Xilinx ZynqMP FPGA Manager registered
[    2.430525] usbcore: registered new interface driver snd-usb-audio
[    2.431417] pktgen: Packet Generator for packet performance testing. Version: 2.75
[    2.432041] IPVS: Registered protocols (TCP, UDP)
[    2.432066] IPVS: Connection hash table configured (size=4096, memory=64Kbytes)
[    2.432218] IPVS: ipvs loaded.
[    2.432228] IPVS: [rr] scheduler registered.
[    2.432386] Initializing XFRM netlink socket
[    2.432496] NET: Registered protocol family 10
[    2.433095] Segment Routing with IPv6
[    2.433236] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    2.433642] NET: Registered protocol family 17
[    2.433662] NET: Registered protocol family 15
[    2.433689] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    2.433703] can: controller area network core (rev 20170425 abi 9)
[    2.433744] NET: Registered protocol family 29
[    2.433753] can: raw protocol (rev 20170425)
[    2.433762] can: broadcast manager protocol (rev 20170425 t)
[    2.433773] can: netlink gateway (rev 20190810) max_hops=1
[    2.433866] Bluetooth: RFCOMM TTY layer initialized
[    2.433882] Bluetooth: RFCOMM socket layer initialized
[    2.433905] Bluetooth: RFCOMM ver 1.11
[    2.433918] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    2.433926] Bluetooth: BNEP filters: protocol multicast
[    2.433936] Bluetooth: BNEP socket layer initialized
[    2.433945] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    2.433955] Bluetooth: HIDP socket layer initialized
[    2.434117] 9pnet: Installing 9P2000 support
[    2.434149] Key type dns_resolver registered
[    2.434529] registered taskstats version 1
[    2.434538] Loading compiled-in X.509 certificates
[    2.435024] Btrfs loaded, crc32c=crc32c-generic
[    2.445742] ff000000.serial: ttyPS1 at MMIO 0xff000000 (irq = 40, base_baud = 6249993) is a xuartps
[    2.446385] ff010000.serial: ttyPS0 at MMIO 0xff010000 (irq = 41, base_baud = 6249993) is a xuartps
[    3.818363] printk: console [ttyPS0] enabled
[    3.822929] of-fpga-region fpga-full: FPGA Region probed
[    3.829598] xilinx-dpdma fd4c0000.dma: Xilinx DPDMA engine is probed
[    3.836213] xilinx-zynqmp-dma fd500000.dma: ZynqMP DMA driver Probe success
[    3.843343] xilinx-zynqmp-dma fd510000.dma: ZynqMP DMA driver Probe success
[    3.850456] xilinx-zynqmp-dma fd520000.dma: ZynqMP DMA driver Probe success
[    3.857581] xilinx-zynqmp-dma fd530000.dma: ZynqMP DMA driver Probe success
[    3.864705] xilinx-zynqmp-dma fd540000.dma: ZynqMP DMA driver Probe success
[    3.871821] xilinx-zynqmp-dma fd550000.dma: ZynqMP DMA driver Probe success
[    3.878938] xilinx-zynqmp-dma fd560000.dma: ZynqMP DMA driver Probe success
[    3.886060] xilinx-zynqmp-dma fd570000.dma: ZynqMP DMA driver Probe success
[    3.893282] xilinx-zynqmp-dma ffa80000.dma: ZynqMP DMA driver Probe success
[    3.900403] xilinx-zynqmp-dma ffa90000.dma: ZynqMP DMA driver Probe success
[    3.907530] xilinx-zynqmp-dma ffaa0000.dma: ZynqMP DMA driver Probe success
[    3.914644] xilinx-zynqmp-dma ffab0000.dma: ZynqMP DMA driver Probe success
[    3.921768] xilinx-zynqmp-dma ffac0000.dma: ZynqMP DMA driver Probe success
[    3.928888] xilinx-zynqmp-dma ffad0000.dma: ZynqMP DMA driver Probe success
[    3.936009] xilinx-zynqmp-dma ffae0000.dma: ZynqMP DMA driver Probe success
[    3.943127] xilinx-zynqmp-dma ffaf0000.dma: ZynqMP DMA driver Probe success
[    3.950496] xilinx-psgtr fd400000.zynqmp_phy: Lane:1 type:8 protocol:4 pll_locked:yes
[    3.961627] xilinx-dp-snd-codec fd4a0000.zynqmp-display:zynqmp_dp_snd_codec0: Xilinx DisplayPort Sound Codec probed
[    3.972325] xilinx-dp-snd-pcm zynqmp_dp_snd_pcm0: Xilinx DisplayPort Sound PCM probed
[    3.980375] xilinx-dp-snd-pcm zynqmp_dp_snd_pcm1: Xilinx DisplayPort Sound PCM probed
[    3.988926] xilinx-dp-snd-card fd4a0000.zynqmp-display:zynqmp_dp_snd_card: xilinx-dp-snd-codec-dai <-> xilinx-dp-snd-codec-dai mapping ok
[    4.001439] xilinx-dp-snd-card fd4a0000.zynqmp-display:zynqmp_dp_snd_card: xilinx-dp-snd-codec-dai <-> xilinx-dp-snd-codec-dai mapping ok
[    4.014197] xilinx-dp-snd-card fd4a0000.zynqmp-display:zynqmp_dp_snd_card: Xilinx DisplayPort Sound Card probed
[    4.024381] OF: graph: no port node found in /amba/zynqmp-display@fd4a0000
[    4.031408] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    4.038025] [drm] No driver support for vblank timestamp query.
[    4.044028] xlnx-drm xlnx-drm.0: bound fd4a0000.zynqmp-display (ops 0xffffffc010d3be50)
[    5.128811] [drm] Cannot find any crtc or sizes
[    5.133618] [drm] Initialized xlnx 1.0.0 20130509 for fd4a0000.zynqmp-display on minor 0
[    5.141720] zynqmp-display fd4a0000.zynqmp-display: ZynqMP DisplayPort Subsystem driver probed
[    5.152036] xilinx-axipmon ffa00000.perf-monitor: Probed Xilinx APM
[    5.158575] xilinx-axipmon fd0b0000.perf-monitor: Probed Xilinx APM
[    5.165084] xilinx-axipmon fd490000.perf-monitor: Probed Xilinx APM
[    5.171586] xilinx-axipmon ffa10000.perf-monitor: Probed Xilinx APM
[    5.178565] dwc3 fe200000.dwc3: Failed to get clk 'ref': -2
[    5.184373] xilinx-psgtr fd400000.zynqmp_phy: Lane:2 type:0 protocol:3 pll_locked:yes
[    5.195811] dwc3 fe300000.dwc3: Failed to get clk 'ref': -2
[    5.201592] xilinx-psgtr fd400000.zynqmp_phy: Lane:3 type:1 protocol:3 pll_locked:yes
[    5.211803] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    5.217307] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
[    5.225088] xhci-hcd xhci-hcd.0.auto: hcc params 0x0238f625 hci version 0x100 quirks 0x0000000202010010
[    5.234506] xhci-hcd xhci-hcd.0.auto: irq 49, io mem 0xfe300000
[    5.240685] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.04
[    5.248954] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    5.256178] usb usb1: Product: xHCI Host Controller
[    5.261055] usb usb1: Manufacturer: Linux 5.4.0-xilinx-v2020.1 xhci-hcd
[    5.267668] usb usb1: SerialNumber: xhci-hcd.0.auto
[    5.272885] hub 1-0:1.0: USB hub found
[    5.276648] hub 1-0:1.0: 1 port detected
[    5.280779] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    5.286267] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
[    5.293933] xhci-hcd xhci-hcd.0.auto: Host supports USB 3.0 SuperSpeed
[    5.300517] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    5.308679] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.04
[    5.316957] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    5.324176] usb usb2: Product: xHCI Host Controller
[    5.329052] usb usb2: Manufacturer: Linux 5.4.0-xilinx-v2020.1 xhci-hcd
[    5.335666] usb usb2: SerialNumber: xhci-hcd.0.auto
[    5.340796] hub 2-0:1.0: USB hub found
[    5.344558] hub 2-0:1.0: 1 port detected
[    5.350249] i2c i2c-0: Added multiplexed i2c bus 2
[    5.355184] i2c i2c-0: Added multiplexed i2c bus 3
[    5.360115] i2c i2c-0: Added multiplexed i2c bus 4
[    5.365048] i2c i2c-0: Added multiplexed i2c bus 5
[    5.435217] random: fast init done
[    5.612786] usb 1-1: new high-speed USB device number 2 using xhci-hcd
[    5.765266] usb 1-1: New USB device found, idVendor=0424, idProduct=2744, bcdDevice= 2.05
[    5.773463] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    5.780597] usb 1-1: Product: USB2744
[    5.784257] usb 1-1: Manufacturer: Microchip Tech
[    5.844597] hub 1-1:1.0: USB hub found
[    5.848383] hub 1-1:1.0: 4 ports detected
[    5.908552] usb 2-1: new SuperSpeed Gen 1 USB device number 2 using xhci-hcd
[    5.933150] usb 2-1: New USB device found, idVendor=0424, idProduct=5744, bcdDevice= 2.05
[    5.941333] usb 2-1: New USB device strings: Mfr=2, Product=3, SerialNumber=0
[    5.948468] usb 2-1: Product: USB5744
[    5.952128] usb 2-1: Manufacturer: Microchip Tech
[    5.988589] hub 2-1:1.0: USB hub found
[    5.992375] hub 2-1:1.0: 3 ports detected
[    6.095101] i2c i2c-0: Added multiplexed i2c bus 6
[    6.100058] i2c i2c-0: Added multiplexed i2c bus 7
[    6.105004] i2c i2c-0: Added multiplexed i2c bus 8
[    6.109993] i2c i2c-0: Added multiplexed i2c bus 9
[    6.114792] pca954x 0-0075: registered 8 multiplexed busses for I2C switch pca9548
[    6.122396] cdns-i2c ff030000.i2c: 100 kHz mmio ff030000 irq 30
[    6.129339] cpufreq: cpufreq_online: CPU0: Running at unlisted freq: 1199998 KHz
[    6.136820] cpufreq: cpufreq_online: CPU0: Unlisted initial frequency changed to: 1199999 KHz
[    6.145605] pwrseq_simple sdio_pwrseq: mmc succesfully got gpio_resetn
[    6.152156] pwrseq_simple sdio_pwrseq: mmc succesfully got gpio_chip_en
[    6.201203] mmc0: SDHCI controller on ff160000.mmc [ff160000.mmc] using ADMA 64-bit
[    6.209686] sdhci-arasan ff170000.mmc: allocated mmc-pwrseq
[    6.246330] mmc1: SDHCI controller on ff170000.mmc [ff170000.mmc] using ADMA 64-bit
[    6.254505] usb 1-1.2: new high-speed USB device number 3 using xhci-hcd
[    6.264572] input: gpio-keys as /devices/platform/gpio-keys/input/input0
[    6.271698] rtc_zynqmp ffa60000.rtc: setting system clock to 1970-01-01T00:00:08 UTC (8)
[    6.276825] [drm] Cannot find any crtc or sizes
[    6.279804] of_cfs_init
[    6.286785] of_cfs_init: OK
[    6.288602] mmc0: new high speed SDHC card at address aaaa
[    6.289756] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    6.295714] mmcblk0: mmc0:aaaa SC16G 14.8 GiB 
[    6.313025]  mmcblk0: p1 p2
[    6.321088] mmc1: new high speed SDIO card at address 0001
[    6.397556] usb 1-1.2: New USB device found, idVendor=0b95, idProduct=1780, bcdDevice= 0.01
[    6.405908] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    6.413222] usb 1-1.2: Product: GU-1000T
[    6.417141] usb 1-1.2: Manufacturer: PLANEX COM. Inc.
[    6.422184] usb 1-1.2: SerialNumber: 020707
[    6.442251] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    6.448784] clk: Not disabling unused clocks
[    6.453057] ALSA device list:
[    6.456013]   #0: DisplayPort monitor
[    6.460098] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    6.468711] cfg80211: failed to load regulatory.db
[    6.498967] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    6.507102] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    6.516414] devtmpfs: mounted
[    6.519714] Freeing unused kernel memory: 768K
[    6.524206] Run /sbin/init as init process
[    6.564810] usb 1-1.4: new high-speed USB device number 4 using xhci-hcd
[    6.669469] usb 1-1.4: New USB device found, idVendor=0424, idProduct=2740, bcdDevice= 2.00
[    6.677836] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    6.685149] usb 1-1.4: Product: Hub Controller
[    6.689590] usb 1-1.4: Manufacturer: Microchip Tech
[    7.090511] systemd[1]: System time before build time, advancing clock.
[    7.122827] systemd[1]: systemd 237 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid)
[    7.144427] systemd[1]: Detected architecture arm64.

Welcome to PYNQ Linux, based on Ubuntu 18.04!

[    7.210419] systemd[1]: Set hostname to <pynq>.
[    7.815840] random: systemd: uninitialized urandom read (16 bytes read)
[    7.822709] systemd[1]: Started ntp-systemd-netif.path.
[  OK  ] Started ntp-systemd-netif.path.
[    7.836905] random: systemd: uninitialized urandom read (16 bytes read)
[    7.844196] systemd[1]: Created slice System Slice.
[  OK  ] Created slice System Slice.
[    7.860858] random: systemd: uninitialized urandom read (16 bytes read)
[    7.867495] systemd[1]: Reached target System Time Synchronized.
[  OK  ] Reached target System Time Synchronized.
[    7.885304] systemd[1]: Created slice User and Session Slice.
[  OK  ] Created slice User and Session Slice.
[    7.901150] systemd[1]: Listening on Syslog Socket.
[  OK  ] Listening on Syslog Socket.
[    7.916990] systemd[1]: Listening on udev Control Socket.
[  OK  ] Listening on udev Control Socket.
[    7.932990] systemd[1]: Listening on Journal Socket (/dev/log).
[  OK  ] Listening on Journal Socket (/dev/log).
[  OK  ] Listening on Journal Audit Socket.
[  OK  ] Reached target Remote File Systems.
[  OK  ] Reached target Slices.
[  OK  ] Listening on Journal Socket.
         Starting Remount Root and Kernel File Systems...
         Mounting Kernel Debug File System...
         Starting Create Static Device Nodes in /dev...
         Starting Restore / save the current clock...
         Starting Nameserver information manager...
         Mounting POSIX Message Queue File System...
         Mounting Huge Pages File System...
         Starting Load Kernel Modules...
[  OK  ] Reached target Swap.
         Starting Journal Service...
[  OK  ] Started Forward Password Requests to Wall Directory Watch.
[    8.161340] wilc_sdio: loading out-of-tree module taints kernel.
[  OK  ] Listening on /dev/initctl Compatibility Named[    8.171530] wifi_pm : 0
 Pipe.
[    8.175905] wifi_pm : 1
[    8.179183] wilc_sdio mmc1:0001:1: Driver Initializing success
[  OK  ] Started Dispatch Password Requests to Console Directory Watch.
[  OK  ] Reached target Local Encrypted Volumes.
[  OK  ] Created slice system-serial\x2dgetty.slice.
[  OK  ] Listening on udev Kernel Socket.
         Starting udev Coldplug all Devices...
[  OK  ] Created slice system-getty.slice.
[  OK  ] Started Journal Service.
[  OK  ] Started Remount Root and Kernel File Systems.
[  OK  ] Mounted Kernel Debug File System.
[  OK  ] Started Create Static Device Nodes in /dev.
[  OK  ] Started Restore / save the current clock.
[  OK  ] Mounted POSIX Message Queue File System.
[  OK  ] Mounted Huge Pages File System.
[  OK  ] Started Load Kernel Modules.
[  OK  ] Started Nameserver information manager.
[  OK  ] Reached target Network (Pre).
         Mounting Kernel Configuration File System...
         Starting Apply Kernel Variables...
[  OK  ] Reached target Local File Systems (Pre).
         Starting udev Kernel Device Manager...
         Starting Load/Save Random Seed...
         Starting Flush Journal to Persistent Storage...
[  OK  ] Mounted Kernel Configuration File System.
[  OK  ] Started Load/Save Random Seed.
[  OK  ] Started Apply Kernel Variables.
[  OK  ] Started Flush Journal to Persistent Storage.
[  OK  ] Started udev Coldplug all Devices.
[  OK  ] Started udev Kernel Device Manager.
[  OK  ] Reached target Sound Card.
[    9.062825] zocl-drm amba:zyxclmm_drm: IRQ index 0 not found
[  OK  ] Found device /dev/ttyPS0.
[  OK  ] Found device /dev/mmcblk0p1.
         Mounting /boot...
[  OK  ] Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch.
[  OK  ] Mounted /boot.
         Starting Load/Save RF Kill Switch Status...
[  OK  ] Reached target Local File Systems.
         Starting Enable support for additional executable binary formats...
[  OK  ] Started ifup for eth0.
         Starting Raise network interfaces...
         Starting Create Volatile Files and Directories...
[  OK  ] Started Load/Save RF Kill Switch Status.
[  OK  ] Started Enable support for additional executable binary formats.
[  OK  ] Started Create Volatile Files and Directories.
         Starting Network Time Synchronization...
         Starting Update UTMP about System Boot/Shutdown...
         Starting Network Name Resolution...
[  OK  ] Started Entropy daemon using the HAVEGE algorithm.
[  OK  ] Started Raise network interfaces.
[  OK  ] Started Update UTMP about System Boot/Shutdown.
[  OK  ] Started Network Time Synchronization.
[  OK  ] Reached target System Initialization.
[  OK  ] Started Daily apt download activities.
[  OK  ] Started resolvconf-pull-resolved.path.
[  OK  ] Reached target Paths.
[  OK  ] Started Discard unused blocks once a week.
[  OK  ] Listening on UUID daemon activation socket.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Started Daily apt upgrade and clean activities.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Reached target Sockets.
[  OK  ] Reached target Basic System.
         Starting Resize Filesystem on SD card...
         Starting System Logging Service...
[  OK  ] Started ntp-systemd-netif.service.
         Starting Dispatcher daemon for systemd-networkd...
         Starting Login Service...
         Starting LSB: automatic crash report generation...
         Starting PYNQ PL Server...
         Starting Jupyter Notebook Server...
         Starting LSB: Load kernel modules needed to enable cpufreq scaling...
[  OK  ] Started Regular background program processing daemon.
[  OK  ] Started Set the CPU Frequency Scaling governor.
[  OK  ] Started D-Bus System Message Bus.
[  OK  ] Started Login Service.
         Starting WPA supplicant...
         Starting USB Gadget for Networking...
[  OK  ] Started Message of the Day.
[  OK  ] Reached target Timers.
[  OK  ] Started System Logging Service.
[  OK  ] Started Network Name Resolution.
[  OK  ] Started PYNQ PL Server.
[  OK  ] Found device /dev/ttyGS0.
         Starting resolvconf-pull-resolved.service...
[  OK  ] Reached target Host and Network Name Lookups.
[  OK  ] Started LSB: automatic crash report generation.
[  OK  ] Started USB Gadget for Networking.
[  OK  ] Started resolvconf-pull-resolved.service.
[  OK  ] Started WPA supplicant.
[  OK  ] Reached target Network.
         Starting Permit User Sessions...
[  OK  ] Started Unattended Upgrades Shutdown.
[  OK  ] Reached target Network is Online.
[  OK  ] Started ISC DHCP IPv6 server.
         Starting Samba NMB Daemon...
[  OK  ] Started ISC DHCP IPv4 server.
         Starting OpenBSD Secure Shell server...
[  OK  ] Started Permit User Sessions.
[  OK  ] Started Getty on tty1.
[  OK  ] Started Serial Getty on ttyGS0.
[  OK  ] Started PYNQ X11 Server.
[  OK  ] Started Serial Getty on ttyPS0.
[  OK  ] Reached target Login Prompts.
[  OK  ] Started LSB: Load kernel modules needed to enable cpufreq scaling.
         Starting LSB: set CPUFreq kernel parameters...
[  OK  ] Started LSB: set CPUFreq kernel parameters.

PYNQ Linux, based on Ubuntu 18.04 pynq ttyPS0

pynq login: xilinx (automatic login)

Welcome to PYNQ Linux, based on Ubuntu 18.04 (GNU/Linux 5.4.0-xilinx-v2020.1 aarch64)


The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

xilinx@pynq:~$ root
-bash: root: command not found
xilinx@pynq:~$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.3.29  netmask 255.255.255.0  broadcast 192.168.3.255
        inet6 fe80::222:cfff:fe00:c37  prefixlen 64  scopeid 0x20<link>
        ether 00:22:cf:00:0c:37  txqueuelen 1000  (Ethernet)
        RX packets 67  bytes 4408 (4.4 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 32  bytes 3812 (3.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 2627  bytes 176125 (176.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2627  bytes 176125 (176.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

usb0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.3.1  netmask 255.255.255.0  broadcast 192.168.3.255
        ether 82:24:62:cf:93:78  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

xilinx@pynq:~$ 

  1. 2021年10月04日 04:34 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

Ultra96-V2 の PMIC をアップデートして Vitis-AI 1.3 を実行できるようにする

Ultra96-V2 で Vitis-AI 1.3 を実行すると、PMIC の電流制限に引っかかって Linux がリブートしてしまう。それを回避するために、”Updating PMIC on Ultra96-V2 through the 2020.1 BSP!”に従って、Ultra96-V2 の PMIC をアップデートしてみよう。

Updating PMIC on Ultra96-V2 through the 2020.1 BSP!”によると、 avnet.me の 2020.1/Vitis_PreBuilt_Example から 2020p1_ULTRA96V2_vadd.tar.gz をダウンロードした。
Vitis-AI_1_210619.png

work ディレクトリに解凍した。
sd_card.img が今回 MicroSD カードに書くイメージだ。
Vitis-AI_2_210619.png

balenaEtchar を起動して、 sd_card.img とマウントした MicroSD カードを指定して、書き込む。
Vitis-AI_3_210619.png

書き込み中。
Vitis-AI_4_210619.png

書き込み終了。
Vitis-AI_5_210619.png

lsblk でみると MicroSD カードは sdf にマウントされているようだ。
Vitis-AI_6_210619.png

sudo resize2fs -f /dev/sdf2
を実行して、リサイズしてみたがダメなようだった。
Vitis-AI_7_210619.png

MicroSD カードを Ultra96-V2 に入れて、電源ON した。
PetaLinux が起動して gtkterm にメッセージが出た。
ID: root , Password: root でログインできた。
Vitis-AI_8_210619.png

Updating PMIC on Ultra96-V2 through the 2020.1 BSP!”に従ってコマンドを入れていく。
cd pmic-prog/
cd pmic-configs/
ls

Vitis-AI_9_210619.png

cd ..
./pmic_prog detect 6

Vitis-AI_10_210619.png

Device 0x13 programming
./pmic_prog program 6 0x13 -i ./pmic-configs/U96V2_5401_0x13_191030.txt
Vitis-AI_11_210619.png

Device 0x14 programming
./pmic_prog program 6 0x14 -i ./pmic-configs/U96V2_5401_0x14_191030.txt
Vitis-AI_12_210619.png

Programming Verification
./pmic_prog read-registers 6 0x13 -o 0x13.txt -i ./pmic-configs/U96V2_5401_0x13_191030.txt
Vitis-AI_13_210619.png

./pmic_prog read-registers 6 0x14 -o 0x14.txt -i ./pmic-configs/U96V2_5401_0x14_191030.txt
Vitis-AI_14_210619.png

これで、 Ultra96-V2 の PMIC の電流制限を変更できたはず。。。
  1. 2021年06月20日 04:36 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

”IMX219 MIPI sensor to Ultra96-V2 FPGA DisplayPort”にソーベル・フィルタを追加する3

”IMX219 MIPI sensor to Ultra96-V2 FPGA DisplayPort”にソーベル・フィルタを追加する2”の続き。

IMX219 MIPI sensor to Ultra96-V2 FPGA DisplayPort”のUltra96V2のPicam2 - DisplayPort 表示システムにソーベル・フィルタを追加するということで、前回は、sobel_filter_axis_RBG10 プロジェクトで C シミュレーション、C コードの合成、C/RTL 協調シミュレーション、Export RTL を行った。今回は、Vivado で sobel_filter_axis_RBG10 IP をブロックデザインに追加して、論理合成、インプリメンテーション、ビットストリームの生成を行って、Vitis でアプリケーション・ソフトウェアを修正し、ソーベル・フィルタ画像をディスプレイに表示する。

Vivado 2020.2 の ultra96v2_picam2_dp_sobel_202 プロジェクトを作成した。
sobel_filter_RBG10_14_210211.png

ブロックデザインを示す。
sobel_filter_RBG10_21_210212.png

Address Editor 画面を示す。
sobel_filter_RBG10_15_210211.png

Address Map 画面を示す。
sobel_filter_RBG10_16_210211.png

論理合成、インプリメンテーション、ビットストリームの生成を行って、成功した。
sobel_filter_RBG10_17_210211.png

ハードウェアをエクスポートして、Vitis を立ち上げ、プラットフォームとアプリケーション・プロジェクトを作成した。
sobel_filter_RBG10_18_210211.png

アプリケーション・ソフトウェアを起動した。
gtkterm 画面を示す。
sobel_filter_RBG10_19_210211.png

ソーベル・フィルタ画像が表示された。
写真に取るとよく見えないかも知れない?
sobel_filter_RBG10_20_210212.jpg

しかし、ラプラシアン・フィルタの時もそうだったが、アプリケーション・ソフトウェアで下に sscanf() 関数を使用して元画像とソーベル・フィルタ画像を切り替えようとすると、カメラ画像が表示されないのはなぜだろうか?
  1. 2021年02月12日 06:09 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0
»