FC2カウンター FPGAの部屋 2023年07月
fc2ブログ

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

FPGAの部屋

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

ZUBoard 1CG で DPU-PYNQ をやってみる1

ZUBoard 1CG で PYNQ v3.0.1 を動作させたが、そこにDPU-PYNQ をインストールした。

GitHub の Xilinx/DPU-PYNQ を参照して、DPU-PYNQ をインストールする。

GitHub の Xilinx/DPU-PYNQ によると Jupyter Lab terminal から行うそうだ。
Jupyter Lab terminal がどれか? 最初は迷ったが、Jupyter Notebook を起動すると、New 下向き三角 があるが、そこをクリックして、Terminal を選択すると Jupyter Lab terminal が起動する。

Jupyter Lab terminal 上で、以下のコマンドを実行した。
pip3 install pynq-dpu --no-build-isolation
zub1cg_pynq_16_230730.png

ログを示す。

root@pynq:/# pip3 install pynq-dpu --no-build-isolation
Collecting pynq-dpu
  Downloading pynq_dpu-2.5.1.tar.gz (1.4 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4/1.4 MB 3.4 MB/s eta 0:00:00
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: pynq>=3.0.0 in /usr/local/share/pynq-venv/lib/python3.10/site-packages (from pynq-dpu) (3.0.1)
Requirement already satisfied: pybind11 in /usr/local/share/pynq-venv/lib/python3.10/site-packages (from pynq-dpu) (2.10.0)
Requirement already satisfied: CppHeaderParser in /usr/local/share/pynq-venv/lib/python3.10/site-packages (from pynq-dpu) (2.7.4)
Collecting mnist
  Downloading mnist-0.2.2-py2.py3-none-any.whl (3.5 kB)
Requirement already satisfied: pynqmetadata>=0.0.1 in /usr/local/share/pynq-venv/lib/python3.10/site-packages (from pynq>=3.0.0->pynq-dpu) (0.1.5)
Requirement already satisfied: pynqutils>=0.0.1 in /usr/local/share/pynq-venv/lib/python3.10/site-packages (from pynq>=3.0.0->pynq-dpu) (0.1.1)
Requirement already satisfied: setuptools>=24.2.0 in /usr/local/share/pynq-venv/lib/python3.10/site-packages (from pynq>=3.0.0->pynq-dpu) (59.6.0)
Requirement already satisfied: nest-asyncio in /usr/local/share/pynq-venv/lib/python3.10/site-packages (from pynq>=3.0.0->pynq-dpu) (1.5.5)
Requirement already satisfied: cffi in /usr/lib/python3/dist-packages (from pynq>=3.0.0->pynq-dpu) (1.15.0)
Requirement already satisfied: numpy in /usr/lib/python3/dist-packages (from pynq>=3.0.0->pynq-dpu) (1.21.5)
Requirement already satisfied: ply in /usr/lib/python3/dist-packages (from CppHeaderParser->pynq-dpu) (3.11)
Requirement already satisfied: pydantic in /usr/local/share/pynq-venv/lib/python3.10/site-packages (from pynqmetadata>=0.0.1->pynq>=3.0.0->pynq-dpu) (1.9.1)
Requirement already satisfied: jsonschema>=3.2.0 in /usr/local/share/pynq-venv/lib/python3.10/site-packages (from pynqmetadata>=0.0.1->pynq>=3.0.0->pynq-dpu) (4.9.0)
Requirement already satisfied: python-magic>=0.4.25 in /usr/local/share/pynq-venv/lib/python3.10/site-packages (from pynqutils>=0.0.1->pynq>=3.0.0->pynq-dpu) (0.4.27)
Requirement already satisfied: tqdm in /usr/local/share/pynq-venv/lib/python3.10/site-packages (frompynqutils>=0.0.1->pynq>=3.0.0->pynq-dpu) (4.64.0)
Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /usr/local/share/pynq-venv/lib/python3.10/site-packages (from jsonschema>=3.2.0->pynqmetadata>=0.0.1->pynq>=3.0.0->pynq-dpu) (0.18.1)
Requirement already satisfied: attrs>=17.4.0 in /usr/lib/python3/dist-packages (from jsonschema>=3.2.0->pynqmetadata>=0.0.1->pynq>=3.0.0->pynq-dpu) (21.2.0)
Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/share/pynq-venv/lib/python3.10/site-packages (from pydantic->pynqmetadata>=0.0.1->pynq>=3.0.0->pynq-dpu) (4.3.0)
Building wheels for collected packages: pynq-dpu
  Building wheel for pynq-dpu (pyproject.toml) ... done
  Created wheel for pynq-dpu: filename=pynq_dpu-2.5.1-cp310-cp310-linux_aarch64.whl size=91761533 sha256=d9e8021d9c7fb960d463cfda9ce014a8c553a8b62e657f3431621273b8a778b6
  Stored in directory: /root/.cache/pip/wheels/12/7c/a3/72f87e9f430251098cbd3c8ef6bf7ff767ea440d9d74256cf3
Successfully built pynq-dpu
Installing collected packages: mnist, pynq-dpu
Successfully installed mnist-0.2.2 pynq-dpu-2.5.1


Jupyter Notebook のホーム・ディレクトリに行って、ノートブックを実装する。
cd $PYNQ_JUPYTER_NOTEBOOKS
pynq get-notebooks pynq-dpu -p .

zub1cg_pynq_17_230730.png

Jupyter Notebook のホーム・ディレクトリに pynq-dpu ディレクトリが追加された。
pynq-dpu ディレクトリの内容を示す。
zub1cg_pynq_18_230730.png

ノートブックの内の dpu_mnist_classifier.ipynb をやってみたところ、成功した。
dpu_mnist_classifier.ipynb の実行結果を引用する。
zub1cg_pynq_19_230730.png
zub1cg_pynq_20_230730.png
zub1cg_pynq_21_230730.png
zub1cg_pynq_22_230730.png
zub1cg_pynq_23_230730.png
  1. 2023年07月31日 04:29 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

ZUBoard 1CG で PYNQ v3.0.1 をやってみる2

”ZUBoard 1CG で PYNQ v3.0.1 をやってみる1”の続き。

pynq.io には ZUBoard 1CG 用の PYNQ v3.0.1 があるので、やってみようと思うということで、前回は、PYNQ の Development Boards から ZUBoard 1CG 用の PYNQ v3.0.1 のイメージをダウンロードし、MicroSD カードに書いて、Ubuntu 22.04 を ZUBoard 1CG で起動した。今回は、ZUBoard 1CG の PYNQ の Jupyter Notebook を使ってみた。

Chrome ブラウザで ZUBoard 1CG の PYNQ Linux をブラウズする。
PYNQ Linux (Ubuntu 22.04) の Jupyter Notebook にログインする。
具体的には、PYNQ Linux の IP アドレスを Chrome ブラウザで見ると下図の様なログイン画面が表示された。
パスワードに xilinx と入力し、Login ボタンをクリックして、ログインした。
zub1cg_pynq_12_230730.png

Jupter Notebook の画面が表示された。
zub1cg_pynq_6_230730.png

creating_ZUBoard_1CG_overlays.ipynb は初めて見るので、開いてみた。
zub1cg_pynq_7_230730.png

PL のハードウェア・デザインが作れるようだ。後で作ってみよう。

次に、PYNQ-juliabrot ディレクトリに入った。
zub1cg_pynq_11_230730.png

juliabrot-zoom.ipynb を開いた。
マンデルブロ集合を書く Jupyter Notebook のようだった。
zub1cg_pynq_8_230730.png

マンデルブロ集合を書いた。
zub1cg_pynq_9_230730.png

大きなマンデルブロ集合を書いた。
zub1cg_pynq_10_230730.png
  1. 2023年07月30日 04:26 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

ZUBoard 1CG で PYNQ v3.0.1 をやってみる1

pynq.io には ZUBoard 1CG 用の PYNQ v3.0.1 があるので、やってみようと思う。

PYNQ の Development Boards から ZUBoard 1CG 用の PYNQ v3.0.1 のイメージをダウンロードした。
zub1cg_pynq_1_230728.png

ZUBoard_1CG-3.0.1.7z がダウンロードできたので、解凍すると ZUBoard_1CG-3.0.1.img ができた。
zub1cg_pynq_2_230728.png

Balena Etcher を使用して、ZUBoard_1CG-3.0.1.img を MIcro SD カードに書き込んだ。

Micro SD カードの PYNQ パーティションを示す。
zub1cg_pynq_3_230728.png

root パーティションを示す。
zub1cg_pynq_4_230728.png

ZUBoard 1CG に MicroSD カードを挿入した。
SW2 を SD カード・ブートに設定した。 SW2-1 から OFF - ON - OFF - ON
ZUBoard 1CG に電源を供給した。(私の使用してる電源は、Anker PowerPort III 65W Pod を使用している。ノートパソコン用の電源を流用している)
基板右下の SW7 を押して、PYNQ Linux を起動した。

Ubuntu 22.04 が起動した。
zub1cg_pynq_5_230728.png

もうすでにログインした状態で起動したが、ID は xilinx で、パスワードも xilinx の様だ。

起動ログを貼っておく。

Xilinx Zynq MP First Stage Boot Loader 
Release 2022.1   Apr 11 2022  -  09:29:50
NOTICE:  BL31: v2.6(release):xlnx_rebase_v2.6_2022.1_update3
NOTICE:  BL31: Built : 03:46:40, Mar 24 2022


U-Boot 2022.01 (Apr 04 2022 - 07:53:54 +0000)

CPU:   ZynqMP
Silicon: v3
Board: Xilinx ZynqMP
DRAM:  1023 MiB
PMUFW:  v1.1
EL Level:   EL2
Chip ID:    zu1eg
NAND:  0 MiB
MMC:   mmc@ff170000: 0
Loading Environment from FAT... *** Error - No Valid Environment Area found
*** Warning - bad env area, using default environment

In:    serial
Out:   serial
Err:   serial
Bootmode: SD_MODE1
Reset reason:   SOFT 
Net:   
ZYNQ GEM: ff0d0000, mdio bus ff0d0000, phyaddr 7, interface rgmii-id
zynq_gem ethernet@ff0d0000: Failed to read eth PHY id, err: -2
eth0: ethernet@ff0d0000
scanning bus for devices...
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
2777 bytes read in 10 ms (270.5 KiB/s)
## Executing script at 20000000
Trying to load boot images from mmc0
23187304 bytes read in 2069 ms (10.7 MiB/s)
## Loading kernel from FIT Image at 10000000 ...
   Using 'conf-1' configuration
   Trying 'kernel-0' kernel subimage
     Description:  Linux Kernel
     Created:      2023-03-17  17:34:29 UTC
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x100000d4
     Data Size:    23147008 Bytes = 22.1 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x00080000
     Entry Point:  0x00080000
     Hash algo:    sha1
     Hash value:   be9501b2f19e3a20476e593a8500c4ed3f0b9d8b
   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
     Created:      2023-03-17  17:34:29 UTC
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x116133cc
     Data Size:    38471 Bytes = 37.6 KiB
     Architecture: AArch64
     Hash algo:    sha1
     Hash value:   c54d06c4ee08780dfeb6e9ee90a365d8c20c617f
   Verifying Hash Integrity ... sha1+ OK
   Booting using the fdt blob at 0x116133cc
   Loading Kernel Image
   Loading Device Tree to 000000003fef3000, end 000000003feff646 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.15.19-xilinx-v2022.1 (oe-user@oe-host) (aarch64-xilinx-linux-gcc (GCC) 11.2.0, GNU ld (GNU Binutils) 2.37.20210721) #1 SMP Mon Apr 11 17:52:14 UTC 2022
[    0.000000] Machine model: xlnx,zynqmp
[    0.000000] efi: UEFI not found.
[    0.000000] [Firmware Bug]: Kernel image misaligned at boot, please fix your bootloader!
[    0.000000] Zone ranges:
[    0.000000]   DMA32    [mem 0x0000000000000000-0x000000003fefffff]
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000003fefffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003fefffff]
[    0.000000] On node 0, zone DMA32: 256 pages in unavailable ranges
[    0.000000] cma: Reserved 128 MiB at 0x0000000036c00000
[    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.2
[    0.000000] percpu: Embedded 19 pages/cpu s36888 r8192 d32744 u77824
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 257796
[    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] Unknown kernel command line parameters "earlyprintk", will be passed to user space.
[    0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 872916K/1047552K available (15168K kernel code, 1036K rwdata, 4088K rodata, 2176K init, 591K bss, 43564K 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=4 to nr_cpu_ids=2.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    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=2
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GIC: Adjusting CPU interface base to 0x00000000f902f000
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] random: get_random_bytes called from start_kernel+0x474/0x6d4 with crng_init=0
[    0.000000] arch_timer: cp15 timer(s) running at 100.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x171024e7e0, max_idle_ns: 440795205315 ns
[    0.000001] sched_clock: 56 bits at 100MHz, resolution 10ns, wraps every 4398046511100ns
[    0.000356] Console: colour dummy device 80x25
[    0.000617] printk: console [tty0] enabled
[    0.000653] Calibrating delay loop (skipped), value calculated using timer frequency.. 200.00 BogoMIPS (lpj=400000)
[    0.000674] pid_max: default: 32768 minimum: 301
[    0.000824] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.000844] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.002348] rcu: Hierarchical SRCU implementation.
[    0.002590] EFI services will not be available.
[    0.002701] smp: Bringing up secondary CPUs ...
[    0.003140] Detected VIPT I-cache on CPU1
[    0.003195] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.003284] smp: Brought up 1 node, 2 CPUs
[    0.003308] SMP: Total of 2 processors activated.
[    0.003318] CPU features: detected: 32-bit EL0 Support
[    0.003328] CPU features: detected: CRC32 instructions
[    0.003377] CPU: All CPU(s) started at EL2
[    0.003396] alternatives: patching kernel code
[    0.004446] devtmpfs: initialized
[    0.009109] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.009139] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.014524] pinctrl core: initialized pinctrl subsystem
[    0.015181] DMI not present or invalid.
[    0.015502] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.016860] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
[    0.016950] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.017009] audit: initializing netlink subsys (disabled)
[    0.017120] audit: type=2000 audit(0.016:1): state=initialized audit_enabled=0 res=1
[    0.017558] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.017608] ASID allocator initialised with 65536 entries
[    0.017736] Serial: AMBA PL011 UART driver
[    0.034747] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.034779] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[    0.034790] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.034801] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[    1.104876] cryptd: max_cpu_qlen set to 1000
[    1.105472] "cryptomgr_test" (53) uses obsolete ecb(arc4) skcipher
[    1.131881] DRBG: Continuing without Jitter RNG
[    1.233028] raid6: neonx8   gen()  2139 MB/s
[    1.301069] raid6: neonx8   xor()  1588 MB/s
[    1.369119] raid6: neonx4   gen()  2184 MB/s
[    1.437170] raid6: neonx4   xor()  1557 MB/s
[    1.505214] raid6: neonx2   gen()  2070 MB/s
[    1.573263] raid6: neonx2   xor()  1431 MB/s
[    1.641313] raid6: neonx1   gen()  1772 MB/s
[    1.709368] raid6: neonx1   xor()  1213 MB/s
[    1.777411] raid6: int64x8  gen()  1366 MB/s
[    1.845468] raid6: int64x8  xor()   773 MB/s
[    1.913510] raid6: int64x4  gen()  1602 MB/s
[    1.981571] raid6: int64x4  xor()   849 MB/s
[    2.049623] raid6: int64x2  gen()  1400 MB/s
[    2.117676] raid6: int64x2  xor()   748 MB/s
[    2.185715] raid6: int64x1  gen()  1034 MB/s
[    2.253787] raid6: int64x1  xor()   517 MB/s
[    2.253797] raid6: using algorithm neonx4 gen() 2184 MB/s
[    2.253807] raid6: .... xor() 1557 MB/s, rmw enabled
[    2.253816] raid6: using neon recovery algorithm
[    2.254393] iommu: Default domain type: Translated 
[    2.254405] iommu: DMA domain TLB invalidation policy: strict mode 
[    2.254727] SCSI subsystem initialized
[    2.254938] usbcore: registered new interface driver usbfs
[    2.254979] usbcore: registered new interface driver hub
[    2.255010] usbcore: registered new device driver usb
[    2.255079] mc: Linux media interface: v0.10
[    2.255106] videodev: Linux video capture interface: v2.00
[    2.255153] pps_core: LinuxPPS API ver. 1 registered
[    2.255163] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    2.255184] PTP clock support registered
[    2.255219] EDAC MC: Ver: 3.0.0
[    2.255567] zynqmp-ipi-mbox mailbox@ff990400: Registered ZynqMP IPI mbox with TX/RX channels.
[    2.255813] FPGA manager framework
[    2.255953] Advanced Linux Sound Architecture Driver Initialized.
[    2.256359] Bluetooth: Core ver 2.22
[    2.256392] NET: Registered PF_BLUETOOTH protocol family
[    2.256402] Bluetooth: HCI device and connection manager initialized
[    2.256417] Bluetooth: HCI socket layer initialized
[    2.256429] Bluetooth: L2CAP socket layer initialized
[    2.256449] Bluetooth: SCO socket layer initialized
[    2.256933] clocksource: Switched to clocksource arch_sys_counter
[    2.257090] VFS: Disk quotas dquot_6.6.0
[    2.257144] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    2.261652] NET: Registered PF_INET protocol family
[    2.261772] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    2.262411] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear)
[    2.262441] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    2.262507] TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear)
[    2.262679] TCP: Hash tables configured (established 8192 bind 8192)
[    2.262783] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    2.262816] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    2.262917] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    2.263285] RPC: Registered named UNIX socket transport module.
[    2.263298] RPC: Registered udp transport module.
[    2.263307] RPC: Registered tcp transport module.
[    2.263315] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    2.263943] PCI: CLS 0 bytes, default 64
[    2.264301] armv8-pmu pmu: hw perfevents: no interrupt-affinity property, guessing.
[    2.264446] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available
[    2.291984] Initialise system trusted keyrings
[    2.292114] workingset: timestamp_bits=46 max_order=18 bucket_order=0
[    2.292527] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    2.292867] NFS: Registering the id_resolver key type
[    2.292889] Key type id_resolver registered
[    2.292898] Key type id_legacy registered
[    2.292944] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    2.292964] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    2.292991] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    2.329035] NET: Registered PF_ALG protocol family
[    2.329054] xor: measuring software checksum speed
[    2.333238]    8regs           :  2363 MB/sec
[    2.336762]    32regs          :  2799 MB/sec
[    2.341052]    arm64_neon      :  2308 MB/sec
[    2.341063] xor: using function: 32regs (2799 MB/sec)
[    2.341075] Key type asymmetric registered
[    2.341084] Asymmetric key parser 'x509' registered
[    2.341138] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
[    2.341215] io scheduler mq-deadline registered
[    2.341228] io scheduler kyber registered
[    2.369912] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    2.371194] Serial: AMBA driver
[    2.371976] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    2.377399] brd: module loaded
[    2.381177] loop: module loaded
[    2.382122] mtdoops: mtd device (mtddev=name/number) must be supplied
[    2.385646] tun: Universal TUN/TAP device driver, 1.6
[    2.385754] CAN device driver interface
[    2.386273] PPP generic driver version 2.4.2
[    2.386945] usbcore: registered new interface driver cdc_acm
[    2.386957] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[    2.386988] usbcore: registered new interface driver cdc_wdm
[    2.387030] usbcore: registered new interface driver usb-storage
[    2.387096] usbcore: registered new interface driver usbserial_generic
[    2.387121] usbserial: USB Serial support registered for generic
[    2.387152] usbcore: registered new interface driver usb_serial_simple
[    2.387174] usbserial: USB Serial support registered for carelink
[    2.387194] usbserial: USB Serial support registered for zio
[    2.387216] usbserial: USB Serial support registered for funsoft
[    2.387236] usbserial: USB Serial support registered for flashloader
[    2.387258] usbserial: USB Serial support registered for google
[    2.387278] usbserial: USB Serial support registered for libtransistor
[    2.387299] usbserial: USB Serial support registered for vivopay
[    2.387319] usbserial: USB Serial support registered for moto_modem
[    2.387339] usbserial: USB Serial support registered for motorola_tetra
[    2.387360] usbserial: USB Serial support registered for novatel_gps
[    2.387380] usbserial: USB Serial support registered for hp4x
[    2.387400] usbserial: USB Serial support registered for suunto
[    2.387420] usbserial: USB Serial support registered for siemens_mpi
[    2.388188] rtc_zynqmp ffa60000.rtc: registered as rtc0
[    2.388215] rtc_zynqmp ffa60000.rtc: setting system clock to 2023-07-28T13:06:46 UTC (1690549606)
[    2.388284] i2c_dev: i2c /dev entries driver
[    2.390216] device-mapper: ioctl: 4.45.0-ioctl (2021-03-22) initialised: dm-devel@redhat.com
[    2.390286] Bluetooth: HCI UART driver ver 2.3
[    2.390298] Bluetooth: HCI UART protocol H4 registered
[    2.390308] Bluetooth: HCI UART protocol BCSP registered
[    2.390334] Bluetooth: HCI UART protocol LL registered
[    2.390344] Bluetooth: HCI UART protocol ATH3K registered
[    2.390368] Bluetooth: HCI UART protocol Three-wire (H5) registered
[    2.390411] Bluetooth: HCI UART protocol Intel registered
[    2.390434] Bluetooth: HCI UART protocol QCA registered
[    2.390468] usbcore: registered new interface driver bcm203x
[    2.390501] usbcore: registered new interface driver bpa10x
[    2.390537] usbcore: registered new interface driver bfusb
[    2.390570] usbcore: registered new interface driver btusb
[    2.390619] usbcore: registered new interface driver ath3k
[    2.390723] EDAC MC: ECC not enabled
[    2.390869] EDAC DEVICE0: Giving out device to module edac controller cache_err: DEV edac (POLLED)
[    2.391039] EDAC DEVICE1: Giving out device to module zynqmp-ocm-edac controller zynqmp_ocm: DEV ff960000.memory-controller (INTERRUPT)
[    2.391446] sdhci: Secure Digital Host Controller Interface driver
[    2.391457] sdhci: Copyright(c) Pierre Ossman
[    2.391465] sdhci-pltfm: SDHCI platform and OF driver helper
[    2.391736] ledtrig-cpu: registered to indicate activity on CPUs
[    2.391866] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    2.391951] zynqmp_firmware_probe Platform Management API v1.1
[    2.391966] zynqmp_firmware_probe Trustzone version v1.0
[    2.419655] securefw securefw: securefw probed
[    2.419994] alg: No test for xilinx-zynqmp-aes (zynqmp-aes)
[    2.420087] zynqmp_aes firmware:zynqmp-firmware:zynqmp-aes: AES Successfully Registered
[    2.420278] alg: No test for xilinx-keccak-384 (zynqmp-keccak-384)
[    2.420485] alg: No test for xilinx-zynqmp-rsa (zynqmp-rsa)
[    2.420684] usbcore: registered new interface driver usbhid
[    2.420696] usbhid: USB HID core driver
[    2.420784] xlnk xlnk: Major 239
[    2.420900] xlnk xlnk: xlnk driver loaded
[    2.420929] xlnk xlnk: xlnk_pdev is not null
[    2.423707] ARM CCI_400_r1 PMU driver probed
[    2.424338] fpga_manager fpga0: Xilinx ZynqMP FPGA Manager registered
[    2.424779] usbcore: registered new interface driver snd-usb-audio
[    2.425597] pktgen: Packet Generator for packet performance testing. Version: 2.75
[    2.426093] IPVS: Registered protocols (TCP, UDP)
[    2.426127] IPVS: Connection hash table configured (size=4096, memory=64Kbytes)
[    2.426260] IPVS: ipvs loaded.
[    2.426271] IPVS: [rr] scheduler registered.
[    2.426397] Initializing XFRM netlink socket
[    2.426486] NET: Registered PF_INET6 protocol family
[    2.427066] Segment Routing with IPv6
[    2.427091] In-situ OAM (IOAM) with IPv6
[    2.427176] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    2.427614] NET: Registered PF_PACKET protocol family
[    2.427639] NET: Registered PF_KEY protocol family
[    2.427671] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    2.427687] can: controller area network core
[    2.427728] NET: Registered PF_CAN protocol family
[    2.427738] can: raw protocol
[    2.427749] can: broadcast manager protocol
[    2.427761] can: netlink gateway - max_hops=1
[    2.427861] Bluetooth: RFCOMM TTY layer initialized
[    2.427878] Bluetooth: RFCOMM socket layer initialized
[    2.427902] Bluetooth: RFCOMM ver 1.11
[    2.427915] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    2.427925] Bluetooth: BNEP filters: protocol multicast
[    2.427937] Bluetooth: BNEP socket layer initialized
[    2.427946] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    2.427958] Bluetooth: HIDP socket layer initialized
[    2.428002] 8021q: 802.1Q VLAN Support v1.8
[    2.428124] 9pnet: Installing 9P2000 support
[    2.428159] Key type dns_resolver registered
[    2.428341] registered taskstats version 1
[    2.428355] Loading compiled-in X.509 certificates
[    2.429811] Btrfs loaded, crc32c=crc32c-generic, zoned=no, fsverity=no
[    2.440517] ff000000.serial: ttyPS0 at MMIO 0xff000000 (irq = 47, base_baud = 6249999) is a xuartps
[    3.907067] printk: console [ttyPS0] enabled
[    3.911792] of-fpga-region fpga-full: FPGA Region probed
[    3.917967] xilinx-zynqmp-dma fd500000.dma-controller: ZynqMP DMA driver Probe success
[    3.926077] xilinx-zynqmp-dma fd510000.dma-controller: ZynqMP DMA driver Probe success
[    3.934186] xilinx-zynqmp-dma fd520000.dma-controller: ZynqMP DMA driver Probe success
[    3.942279] xilinx-zynqmp-dma fd530000.dma-controller: ZynqMP DMA driver Probe success
[    3.950385] xilinx-zynqmp-dma fd540000.dma-controller: ZynqMP DMA driver Probe success
[    3.958489] xilinx-zynqmp-dma fd550000.dma-controller: ZynqMP DMA driver Probe success
[    3.966590] xilinx-zynqmp-dma fd560000.dma-controller: ZynqMP DMA driver Probe success
[    3.974684] xilinx-zynqmp-dma fd570000.dma-controller: ZynqMP DMA driver Probe success
[    3.982860] xilinx-zynqmp-dma ffa80000.dma-controller: ZynqMP DMA driver Probe success
[    3.990961] xilinx-zynqmp-dma ffa90000.dma-controller: ZynqMP DMA driver Probe success
[    3.999068] xilinx-zynqmp-dma ffaa0000.dma-controller: ZynqMP DMA driver Probe success
[    4.007171] xilinx-zynqmp-dma ffab0000.dma-controller: ZynqMP DMA driver Probe success
[    4.015275] xilinx-zynqmp-dma ffac0000.dma-controller: ZynqMP DMA driver Probe success
[    4.023373] xilinx-zynqmp-dma ffad0000.dma-controller: ZynqMP DMA driver Probe success
[    4.031477] xilinx-zynqmp-dma ffae0000.dma-controller: ZynqMP DMA driver Probe success
[    4.039583] xilinx-zynqmp-dma ffaf0000.dma-controller: ZynqMP DMA driver Probe success
[    4.048264] st-press-spi spi1.0: supply vdd not found, using dummy regulator
[    4.055410] st-press-spi spi1.0: supply vddio not found, using dummy regulator
[    4.063129] iio iio:device1: registered pressure sensor lps22hh
[    4.069342] zynqmp-qspi ff0f0000.spi: rx bus width not found
[    4.075005] zynqmp-qspi ff0f0000.spi: tx bus width not found
[    4.080758] spi_master spi0: cannot find modalias for /axi/spi@ff0f0000/flash@0
[    4.088079] spi_master spi0: Failed to create SPI device for /axi/spi@ff0f0000/flash@0
[    4.096349] macb ff0d0000.ethernet: Not enabling partial store and forward
[    4.104301] zynqmp_pll_disable() clock disable failed for apll_int, ret = -13
[    4.112231] macb ff0d0000.ethernet eth0: Cadence GEM rev 0x50070106 at 0xff0d0000 irq 37 (fc:c2:3d:42:bb:ae)
[    4.122401] xilinx-axipmon ffa00000.perf-monitor: Probed Xilinx APM
[    4.128959] xilinx-axipmon fd0b0000.perf-monitor: Probed Xilinx APM
[    4.135477] xilinx-axipmon fd490000.perf-monitor: Probed Xilinx APM
[    4.141995] xilinx-axipmon ffa10000.perf-monitor: Probed Xilinx APM
[    4.150756] at24 0-0058: supply vcc not found, using dummy regulator
[    4.157455] at24 0-0058: 6 byte 24mac402 EEPROM, read-only
[    4.162983] cdns-i2c ff030000.i2c: 400 kHz mmio ff030000 irq 39
[    4.169280] cdns-wdt fd4d0000.watchdog: Xilinx Watchdog Timer with timeout 60s
[    4.176748] cdns-wdt ff150000.watchdog: Xilinx Watchdog Timer with timeout 10s
[    4.190221] of_cfs_init
[    4.192714] of_cfs_init: OK
[    4.195675] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    4.228928] mmc0: SDHCI controller on ff170000.mmc [ff170000.mmc] using ADMA 64-bit
[    4.271426] mmc0: Problem switching card into high-speed mode!
[    4.277846] mmc0: new SDHC card at address 0001
[    4.282879] mmcblk0: mmc0:0001 SPCC  29.0 GiB 
[    4.289417]  mmcblk0: p1 p2
[    4.341994] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    4.348535] clk: Not disabling unused clocks
[    4.353034] ALSA device list:
[    4.355990]   No soundcards found.
[    4.359837] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    4.368462] cfg80211: failed to load regulatory.db
[    4.403945] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[    4.413740] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    4.421007] devtmpfs: mounted
[    4.424868] Freeing unused kernel memory: 2176K
[    4.429488] Run /sbin/init as init process
[    5.782705] random: fast init done
[    7.145140] systemd[1]: systemd 249.11-0ubuntu3 running in system mode (+PAM +AUDIT +SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT +GNUTLS -OPENSSL +ACL +BLKID +CURL +ELFUTILS -FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP -LIBFDISK +PCRE2 -PWQUALITY -P11KIT -QRENCODE +BZIP2 +LZ4 +XZ +ZLIB +ZSTD -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=unified)
[    7.176291] systemd[1]: Detected architecture arm64.

Welcome to PynqLinux, based on Ubuntu 22.04!

[    7.194144] systemd[1]: Hostname set to <pynq>.
[    8.415289] systemd[1]: Queued start job for default target Multi-User System.
[    8.424017] random: systemd: uninitialized urandom read (16 bytes read)
[    8.433186] systemd[1]: Created slice Slice /system/modprobe.
[  OK  ] Created slice Slice /system/modprobe.
[    8.457049] random: systemd: uninitialized urandom read (16 bytes read)
[    8.464802] systemd[1]: Created slice Slice /system/serial-getty.
[  OK  ] Created slice Slice /system/serial-getty.
[    8.485024] random: systemd: uninitialized urandom read (16 bytes read)
[    8.492444] systemd[1]: Created slice User and Session Slice.
[  OK  ] Created slice User and Session Slice.
[    8.513296] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[  OK  ] Started Dispatch Password …ts to Console Directory Watch.
[    8.537159] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[  OK  ] Started Forward Password R…uests to Wall Directory Watch.
[    8.561239] systemd[1]: Condition check resulted in Arbitrary Executable File Formats File System Automount Point being skipped.
[    8.572967] systemd[1]: Reached target Local Encrypted Volumes.
[  OK  ] Reached target Local Encrypted Volumes.
[    8.593172] systemd[1]: Reached target Remote File Systems.
[  OK  ] Reached target Remote File Systems.
[    8.613012] systemd[1]: Reached target Slice Units.
[  OK  ] Reached target Slice Units.
[    8.629101] systemd[1]: Reached target Local Verity Protected Volumes.
[  OK  ] Reached target Local Verity Protected Volumes.
[    8.653514] systemd[1]: Listening on Syslog Socket.
[  OK  ] Listening on Syslog Socket.
[    8.669213] systemd[1]: Listening on initctl Compatibility Named Pipe.
[  OK  ] Listening on initctl Compatibility Named Pipe.
[    8.693720] systemd[1]: Listening on Journal Audit Socket.
[  OK  ] Listening on Journal Audit Socket.
[    8.717296] systemd[1]: Listening on Journal Socket (/dev/log).
[  OK  ] Listening on Journal Socket (/dev/log).
[    8.741371] systemd[1]: Listening on Journal Socket.
[  OK  ] Listening on Journal Socket.
[    8.777026] systemd[1]: Listening on udev Control Socket.
[  OK  ] Listening on udev Control Socket.
[    8.797309] systemd[1]: Listening on udev Kernel Socket.
[  OK  ] Listening on udev Kernel Socket.
[    8.820002] systemd[1]: Mounting Huge Pages File System...
         Mounting Huge Pages File System...
[    8.840243] systemd[1]: Mounting POSIX Message Queue File System...
         Mounting POSIX Message Queue File System...
[    8.868462] systemd[1]: Mounting Kernel Debug File System...
         Mounting Kernel Debug File System...
[    8.885479] systemd[1]: Condition check resulted in Kernel Trace File System being skipped.
[    8.900765] systemd[1]: Starting Journal Service...
         Starting Journal Service...
[    8.925833] systemd[1]: Starting Restore / save the current clock...
         Starting Restore / save the current clock...
[    8.964968] systemd[1]: Starting Set the console keyboard layout...
         Starting Set the console keyboard layout...
[    8.989481] systemd[1]: Condition check resulted in Create List of Static Device Nodes being skipped.
[    9.003693] systemd[1]: Starting Load Kernel Module configfs...
         Starting Load Kernel Module configfs...
[    9.025156] systemd[1]: Starting Load Kernel Module drm...
         Starting Load Kernel Module drm...
[    9.046933] systemd[1]: Starting Load Kernel Module fuse...
         Starting Load Kernel Module fuse...
[    9.069229] systemd[1]: Started Nameserver information manager.
[  OK  ] Started Nameserver information manager.
[    9.097865] systemd[1]: Reached target Preparation for Network.
[  OK  ] Reached target Preparation for Network.
[    9.133716] systemd[1]: Starting Load Kernel Modules...
         Starting Load Kernel Modules...
[    9.152873] systemd[1]: Starting Remount Root and Kernel File Systems...
         Starting Remount Root and Kernel File Systems...
[    9.181222] systemd[1]: Starting Coldplug All udev Devices...
         Starting Coldplug All udev Devices...
[    9.203071] systemd[1]: Started Journal Service.
[  OK  ] Started Journal Service.
[  OK  ] Mounted Huge Pages File System.
[  OK  ] Mounted POSIX Message Queue File System.
[  OK  ] Mounted Kernel Debug File System.
[  OK  ] Finished Restore / save the current clock.
[  OK  ] Finished Load Kernel Module configfs.
[  OK  ] Finished Load Kernel Module drm.
[  OK  ] Finished Load Kernel Module fuse.
[  OK  ] Finished Load Kernel Modules.
[  OK  ] Finished Remount Root and Kernel File Systems.
         Activating swap /var/swap...
         Mounting Kernel Configuration File System...
         Starting Flush Journal to Persistent Storage...
         Starting Load/Save Random Seed...
         Starting Apply Kernel Variables...
         Starting Create System Users...
[    9.497635] Adding 524284k swap on /var/swap.  Priority:-2 extents:1 across:524284k SS
[  OK  ] Finished Set the console keyboard layout.
[  OK  ] Activated swap /var/swap.
[  OK  ] Mounted Kernel Configuration File Sy[    9.538413] systemd-journald[242]: Received client request to flush runtime journal.
stem.
[  OK  ] Reached target Swaps.
[  OK  ] Finished Apply Kernel Variables.
[  OK  ] Finished Create System Users.
         Starting Create Static Device Nodes in /dev...
[  OK  ] Finished Coldplug All udev Devices.
         Starting Helper to synchronize boot up for ifupdown...
[  OK  ] Finished Create Static Device Nodes in /dev.
[  OK  ] Reached target Preparation for Local File Systems.
[  OK  ] Reached target Local File Systems.
         Starting Enable support fo…l executable binary formats...
         Starting Set console font and keymap...
         Starting Rule-based Manage…for Device Events and Files...
[  OK  ] Finished Enable support fo…nal executable binary formats.
[  OK  ] Finished Set console font and keymap.
[  OK  ] Finished Flush Journal to Persistent Storage.
         Starting Create Volatile Files and Directories...
[  OK  ] Started Rule-based Manager for Device Events and Files.
[  OK  ] Finished Create Volatile Files and Directories.
[  OK  ] Started Entropy Daemon based on the HAVEGE algorithm.
         Starting Network Name Resolution...
         Starting Network Time Synchronization...
         Starting Record System Boot/Shutdown in UTMP...
[  OK  ] Finished Record System Boot/Shutdown in UTMP.
[   11.853593] zocl-drm axi:zyxclmm_drm: IRQ index 0 not found
[  OK  ] Found device /dev/ttyPS0.
[  OK  ] Reached target Hardware activated USB gadget.
[  OK  ] Finished Load/Save Random Seed.
[  OK  ] Started Network Time Synchronization.
[  OK  ] Started Network Name Resolution.
[  OK  ] Reached target Host and Network Name Lookups.
[  OK  ] Reached target Sound Card.
[  OK  ] Reached target System Initialization.
[  OK  ] Started resolvconf-pull-resolved.path.
[  OK  ] Started Trigger to poll fo…y enabled on GCP LTS non-pro).
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Started Ubuntu Advantage Timer for running repeated jobs.
[  OK  ] Reached target Path Units.
[  OK  ] Reached target System Time Set.
[  OK  ] Started Daily apt download activities.
[  OK  ] Started Daily apt upgrade and clean activities.
[  OK  ] Started Daily dpkg database backup timer.
[  OK  ] Started Periodic ext4 Onli…ata Check for All Filesystems.
[  OK  ] Started Discard unused blocks once a week.
[  OK  ] Started Daily rotation of log files.
[  OK  ] Started Daily man-db regeneration.
[  OK  ] Started Message of the Day.
[  OK  ] Reached target Timer Units.
[  OK  ] Listening on D-Bus System Message Bus Socket.
         Starting Socket activation for snappy daemon...
[  OK  ] Listening on Load/Save RF …itch Status /dev/rfkill Watch.
[  OK  ] Listening on UUID daemon activation socket.
[  OK  ] Started ifup for eth0.
[  OK  ] Finished Helper to synchronize boot up for ifupdown.
[  OK  ] Listening on Socket activation for snappy daemon.
[  OK  ] Reached target Socket Units.
[  OK  ] Reached target Basic System.
         Starting LSB: automatic crash report generation...
         Starting Executing boot.py from the boot partition...
[  OK  ] Started Regular background program processing daemon.
[  OK  ] Started D-Bus System Message Bus.
[  OK  ] Started Save initial kernel messages after boot.
         Starting Remove Stale Onli…t4 Metadata Check Snapshots...
         Starting Jupyter Notebook Server...
         Starting LSB: Load kernel …d to enable cpufreq scaling...
         Starting Dispatcher daemon for systemd-networkd...
         Starting Raise network interfaces...
         Starting Resize Filesystem on SD card...
         Starting resolvconf-pull-resolved.service...
         Starting System Logging Service...
         Starting Snap Daemon...
         Starting User Login Management...
[  OK  ] Started LSB: automatic crash report generation.
[  OK  ] Finished Remove Stale Onli…ext4 Metadata Check Snapshots.
[  OK  ] Finished Resize Filesystem on SD card.
[  OK  ] Finished resolvconf-pull-resolved.service.
[  OK  ] Started System Logging Service.
[  OK  ] Started LSB: Load kernel m…ded to enable cpufreq scaling.
         Starting LSB: set CPUFreq kernel parameters...
[  OK  ] Started LSB: set CPUFreq kernel parameters.
[  OK  ] Started User Login Management.
[  OK  ] Finished Executing boot.py from the boot partition.
[  OK  ] Started Dispatcher daemon for systemd-networkd.
[  OK  ] Started Snap Daemon.
         Starting Wait until snapd is fully seeded...
         Starting Time & Date Service...
[  OK  ] Started Time & Date Service.
[  OK  ] Finished Wait until snapd is fully seeded.
[  OK  ] Finished Raise network interfaces.
[  OK  ] Reached target Network.
[  OK  ] Reached target Network is Online.
[  OK  ] Started ISC DHCP IPv4 server.
[  OK  ] Started ISC DHCP IPv6 server.
         Starting Samba NMB Daemon...
         Starting OpenBSD Secure Shell server...
         Starting Permit User Sessions...
[  OK  ] Started Unattended Upgrades Shutdown.
[  OK  ] Finished Permit User Sessions.
[  OK  ] Started PYNQ X11 Server.
[  OK  ] Started Serial Getty on ttyPS0.
         Starting Set console scheme...

PYNQ Linux, based on Ubuntu 22.04 pynq ttyPS0

pynq login: xilinx (automatic login)

Welcome to PYNQ Linux, based on Ubuntu 22.04 (GNU/Linux 5.15.19-xilinx-v2022.1 aarch64)

Last login: Fri Oct 21 23:06:45 UTC 2022 on ttyPS0
xilinx@pynq:~$ 

  1. 2023年07月29日 04:25 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

AVNET からダウンロードした BSP を使って、Petalinux プロジェクトを作成して、xmutil をやってみたがやはりエラーだった

AVNET からダウンロードした zub1cg_sbc_2022_2.bsp を使用して、Petalinux プロジェクトを作成し、環境を整え、ビルドした。sysroot を作成し、pl.dtbo を作成して、Vitis を起動し、プラットフォーム・プロジェクトと Vector Addition アプリケーション・プロジェクトを作成した。ファイルを ZUBoard 1CG の Petalinux 2022.2 に転送し、xmutil でロードしようとしたところ、今までと同様にエラーになってしまった。

AVNET から zub1cg_sbc_2022_2.bsp をダウンロードした。
zub1cg_sbc_2022_2.bsp を使用して、Petalinux 2022.2 の zub1cg_sbc_base プロジェクトを作成した。
petalinux-create -t project -s zub1cg_sbc_base_2022_2.bsp -n zub1cg_sbc_base

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/project-spec/configs/config ファイルを編集する。
以下のように変更した。

CONFIG_SUBSYSTEM_HOSTNAME="zub1cg-sbc-base"
CONFIG_SUBSYSTEM_PRODUCT="zub1cg_sbc_base"


base の Viavdo プロジェクトを使用するように設定した。
cd zub1cg_sbc_base/
petalinux-config --silentconfig --get-hw-description=../../../hdl/projects/zub1cg_sbc_base_2022_2


ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/project-spec/meta-user/conf/user-rootfsconfig に以下の項目を追加した。

CONFIG_xmutil
CONFIG_xrt


xmutil, xrt の有効化を行った。
petalinux-config -c rootfs
user packages に入って、xmutil, xrt にスペース・キーで * を表示させて有効化した。

ビルドを行ったところ、成功した。
petalinux-build

Sysroot(SDK)をビルドする。
petalinux-build --sdk

sdk.sh が ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/images/linux ディレクトリに生成された。

sysroots ディレクトリを ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base ディレクトリに展開した。
images/linux/sdk.sh -d ./

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/sysroots ディレクトリが生成され、その下に cortexa72-cortexa53-xilinx-linux, x86_64-petalinux-linux ディレクトリが生成された。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base ディレクトリに pfm ディレクトリを作成し、その下に boot ディレクトリと sd_dir ディレクトリを作成した。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/images/linux ディレクトリの bl31.elf, pmufw.elf, system.dtb, u-boot.elf, zynqmp_fsbl.elf のファイルを ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/pfm/boot ディレクトリにコピーした。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/pfm ディレクトリで xsct コマンドを実行した。
xsct
createdts -hw ../../../../hdl/projects/zub1cg_sbc_base_2022_2/zub1cg_sbc_base.xsa -zocl -platform-name zub1cg_sbc_base -git-branch xlnx_rel_v2022.2 -overlay -compile -out ./dtg_output
exit


ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/pfm/dtg_output/dtg_output/zub1cg_sbc_base/psu_cortexa53_0/device_tree_domain/bsp ディレクトリに pl.dtsi ファイルが生成された。

pl.dtsi をコンパイルして pl.dtbo を生成する。
cd /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/pfm/dtg_output/dtg_output/zub1cg_sbc_base/psu_cortexa53_0/device_tree_domain/bsp
dtc -@ -O dtb -o pl.dtbo pl.dtsi


pl.dtbo が生成された。

Vitis 作業
すでに source /media/masaaki/Ubuntu_Disk/tools/Xilinx/Vitis/2022.2/settings64.sh は実行済みだ。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base ディレクトリに移動する。
vitis &
で Vitis 2022.2 を起動した。

Vitis IDE Launcher ダイアログが表示された。
Workspace に ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/vitis_work を指定した。
Launch ボタンをクリックした。

Vitis 2022.2 が立ち上がった。
Create Platform Project をクリックして、プラットフォーム・プロジェクトを作成する。

New Platform Project ダイアログの Create new platform project 画面が開く。
Platform project name に zub1cg_sbc_base と入力した。
Next > ボタンをクリックする。

Platform 画面
Hardware Specification の XSA File に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/hdl/projects/zub1cg_sbc_base_2022_2/zub1cg_sbc_base.xsa を指定した。
Software Specification の Operating system には linux を、Processor には psu_cortexa53 を指定した。
Boot Componetnts の Generate boot components のチェックを外す。
Finish ボタンをクリックする。

zub1cg_sbc_base プラットフォーム・プロジェクトが作成された。
platform.spr で、zub1cg_sbc_base -> psu_cortexa53 -> linux on psu_cortexa53 をクリックして選択する。
Bif File: の Browse... の右端の下向き三角をクリックし、Generate Bif を選択する。

Boot Components Directory: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/pfm/boot を指定した。
FAT32 Partition Directory: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/pfm/sd_dir を指定した。
トンカチ・ボタンをクリックして、ビルドを行った。

Explorer の export -> zub1cg_sbc_base プラットフォームが生成された
その下に hw と sw ディレクトリが生成されている。

Vitis 2022.2 でアプリケーション・プロジェクトを作成する。
Vitis 2022.2 で File メニューから New -> Application Project... を選択してアプリケーション・プロジェクトを新規作成する。
New Application Project ダイアログの Create a New Application Project 画面が開く。
Next > ボタンをクリックする。

Platform 画面
zub1cg_sbc_base プラットフォームを選択する。
Next > ボタンをクリックする。

Application Project Details 画面
Application project name: に zub1cg_sbc_vadd と入力する。
Next > ボタンをクリックする。

Domain 画面
Application settings を入力する。
Sysroot paht: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/sysroots/cortexa72-cortexa53-xilinx-linux を入力する。
Root FS: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/images/linux/rootfs.ext4 を入力する。
Kernel Image: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/images/linux/Image を入力する。
Next > ボタンをクリックする。

Template 画面
Simple Vector Addition を選択する。
Finish ボタンをクリックする。

Active build configuration: で Hardware を選択し、Explorer で zub1cg_sbc_vadd_system を選択し、トンカチ・ボタンをクリックしてビルドを行った。

ビルドに成功した。

ZUBoard 1CG の Petalinux 作業
Balena Etcher を使用して ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/images/linux/rootfs.wic を MicroSD カードに書き込んだ。

ZUBoard 1CG に MicroSD カードを挿入した。
SW2 を SD カード・ブートに設定した。 SW2-1 から OFF - ON - OFF - ON
ZUBoard 1CG に電源を供給した。(私の使用してる電源は、Anker PowerPort III 65W Pod を使用している。ノートパソコン用の電源を流用している)
基板右下の SW7 を押して、Petalinux を起動した。

ファイルを ZUBoard 1CG に転送するために必要なファイルを集める。
ZUBoard1CG/Avnet_2022_2/vitis_work/vadd_file_transfer ディレクトリを作成した。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/pfm/dtg_output/dtg_output/zub1cg_sbc_base/psu_cortexa53_0/device_tree_domain/bsp/pl.dtbo を vadd_file_transfer ディレクトリにコピーした。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/vitis_work/zub1cg_sbc_vadd_system/Hardware/binary_container_1.xclbin を vadd_file_transfer ディレクトリにコピーした。

shell.json を作成して、vadd_file_transfer ディレクトリにセーブした。
Accelerated Design Development on Kria KR260 in Vitis 2022.1”から shell.json の内容を引用する。

{
  "shell_type" : "XRT_FLAT",
  "num_slots": "1"
}


ZUBoard 1CG で Petalinux 2022.2 を起動した。
ホーム・ディレクトリに examples/zub1cg_sbc_vadd ディレクトリを作成した。
cd
mkdir examples
cd examples
mkdir zub1cg_sbc_vadd
cd zub1cg_sbc_vadd


FileZilla を起動して、ZUBoard 1CG の Petalinux 2022.2 へ SFTP で vadd_file_transfer ディレクトリのファイルを転送した。

/lib/firmware/xilinx/zub1cg_sbc_vadd ディレクトリを作成した。
sudo mkdir /lib/firmware/xilinx/zub1cg_sbc_vadd

binary_container_1.xclbin の名前を binary_container_1.bin に変更する。こうしないと、XRT は FPGA ビットストリームを抽出して Kria のプログラマブル ロジックをコンフィグレーションすることができないそうだ。
mv binary_container_1.xclbin binary_container_1.bin

pl.dtbo binary_container_1.bin shell.json ファイルを /lib/firmware/xilinx/zub1cg_sbc_vadd ディレクトリにコピーした。
sudo cp pl.dtbo binary_container_1.bin shell.json /lib/firmware/xilinx/zub1cg_sbc_vadd

アクセラレーション・アプリケーションを確認して、zub1cg_sbc_vadd をロードしたところエラーになった。
sudo xmutil loadapp zub1cg_sbc_vadd
ZUBoard1CG_205_230726.png

ZUBoard1CG_206_230726.png

ダメそうなので、とりあえず他のことをやっていこう。
  1. 2023年07月29日 04:05 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

XSA ファイル名と Petalinux のプロジェクト名を同じにしてみたが、xmutil をやってみたがエラーになった

今回は、Vitis アクセラレーション・プラットフォームを作成する時に、ハードウェアの XSA ファイル名とソフトウェアの Petalinux プロジェクト名を揃えて、Vitis アクセラレーション・プラットフォームを作成し、Vector Addition サンプル・デザインを作成した。そのデザインを ZUBoard 1CG で実行しようと、zub1cg_sbc_base を xmutil でロードしようとしたらエラーになった。

petalinux-upgrade を行って、xmutil までの手順をもう一度、全部やり直してみたが、やはり、xmutil でロード・エラーになった。

2022.2 の petalinux-upgrade を行って、xmutil までの手順をもう一度、全部やり直す。

Petalinux 作業
zub1cg_sbc_base_2022_2_jupyter.bsp を使用して、Petalinux 2022.2 プロジェクトの zub1cg_sbc_base プロジェクトを作成した。
petalinux-create -t project -s zub1cg_sbc_base_2022_2_jupyter.bsp -n zub1cg_sbc_base

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/project-spec/configs/config ファイルを編集する。
以下のように変更した。

CONFIG_SUBSYSTEM_HOSTNAME="zub1cg-sbc-base"
CONFIG_SUBSYSTEM_PRODUCT="zub1cg_sbc_base"


base の Viavdo プロジェクトを使用するように設定した。
cd zub1cg_sbc_base/
petalinux-config --silentconfig --get-hw-description=../../../hdl/projects/zub1cg_sbc_base_2022_2


ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/project-spec/meta-user/conf/user-rootfsconfig に以下の項目を追加した。

CONFIG_xmutil
CONFIG_xrt


xmutil, xrt の有効化を行った。
petalinux-config -c rootfs
user packages に入って、xmutil, xrt にスペース・キーで * を表示させて有効化した。

ビルドを行ったところ、成功した。
petalinux-build

Sysroot(SDK)をビルドする。
petalinux-build --sdk

sdk.sh が ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/images/linux ディレクトリに生成された。

sysroots ディレクトリを ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base ディレクトリに展開した。
images/linux/sdk.sh -d ./

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/sysroots ディレクトリが生成され、その下に cortexa72-cortexa53-xilinx-linux, x86_64-petalinux-linux ディレクトリが生成された。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base ディレクトリに pfm ディレクトリを作成し、その下に boot ディレクトリと sd_dir ディレクトリを作成した。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/images/linux ディレクトリの bl31.elf, pmufw.elf, system.dtb, u-boot.elf, zynqmp_fsbl.elf のファイルを ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/pfm/boot ディレクトリにコピーした。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/pfm ディレクトリで xsct コマンドを実行した。
xsct
createdts -hw ../../../../hdl/projects/zub1cg_sbc_base_2022_2/zub1cg_sbc_base.xsa -zocl -platform-name zub1cg_sbc_base -git-branch xlnx_rel_v2022.2 -overlay -compile -out ./dtg_output
exit


ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/pfm/dtg_output/dtg_output/zub1cg_sbc_base/psu_cortexa53_0/device_tree_domain/bsp ディレクトリに pl.dtsi ファイルが生成された。

pl.dtsi をコンパイルして pl.dtbo を生成する。
cd /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/pfm/dtg_output/dtg_output/zub1cg_sbc_base/psu_cortexa53_0/device_tree_domain/bsp
dtc -@ -O dtb -o pl.dtbo pl.dtsi


pl.dtbo が生成された。

Vitis 作業
すでに source /media/masaaki/Ubuntu_Disk/tools/Xilinx/Vitis/2022.2/settings64.sh は実行済みだ。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base ディレクトリに移動する。
vitis &
で Vitis 2022.2 を起動した。

Vitis IDE Launcher ダイアログが表示された。
Workspace に ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/vitis_work を指定した。
Launch ボタンをクリックした。

Vitis 2022.2 が立ち上がった。
Create Platform Project をクリックして、プラットフォーム・プロジェクトを作成する。

New Platform Project ダイアログの Create new platform project 画面が開く。
Platform project name に zub1cg_sbc_base と入力した。
Next > ボタンをクリックする。

Platform 画面
Hardware Specification の XSA File に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/hdl/projects/zub1cg_sbc_base_2022_2/zub1cg_sbc_base.xsa を指定した。
Software Specification の Operating system には linux を、Processor には psu_cortexa53 を指定した。
Boot Componetnts の Generate boot components のチェックを外す。
Finish ボタンをクリックする。

zub1cg_sbc_base プラットフォーム・プロジェクトが作成された。
platform.spr で、zub1cg_sbc_base -> psu_cortexa53 -> linux on psu_cortexa53 をクリックして選択する。
Bif File: の Browse... の右端の下向き三角をクリックし、Generate Bif を選択する。

Boot Components Directory: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/pfm/boot を指定した。
FAT32 Partition Directory: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/pfm/sd_dir を指定した。
トンカチ・ボタンをクリックして、ビルドを行った。

Explorer の export -> zub1cg_sbc_base プラットフォームが生成された
その下に hw と sw ディレクトリが生成されている。

Vitis 2022.2 でアプリケーション・プロジェクトを作成する。
Vitis 2022.2 で File メニューから New -> Application Project... を選択してアプリケーション・プロジェクトを新規作成する。
New Application Project ダイアログの Create a New Application Project 画面が開く。
Next > ボタンをクリックする。

Platform 画面
zub1cg_sbc_base プラットフォームを選択する。
Next > ボタンをクリックする。

Application Project Details 画面
Application project name: に zub1cg_sbc_vadd と入力する。
Next > ボタンをクリックする。

Domain 画面
Application settings を入力する。
Sysroot paht: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/sysroots/cortexa72-cortexa53-xilinx-linux を入力する。
Root FS: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/images/linux/rootfs.ext4 を入力する。
Kernel Image: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/images/linux/Image を入力する。
Next > ボタンをクリックする。

Template 画面
Simple Vector Addition を選択する。
Finish ボタンをクリックする。

Active build configuration: で Hardware を選択し、Explorer で zub1cg_sbc_vadd_system を選択し、トンカチ・ボタンをクリックしてビルドを行った。

ビルドに成功した。

ZUBoard 1CG の Petalinux 作業
Balena Etcher を使用して ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/images/linux/rootfs.wic を MicroSD カードに書き込んだ。

ZUBoard 1CG に MicroSD カードを挿入した。
SW2 を SD カード・ブートに設定した。 SW2-1 から OFF - ON - OFF - ON
ZUBoard 1CG に電源を供給した。(私の使用してる電源は、Anker PowerPort III 65W Pod を使用している。ノートパソコン用の電源を流用している)
基板右下の SW7 を押して、Petalinux を起動した。

ファイルを ZUBoard 1CG に転送するために必要なファイルを集める。
ZUBoard1CG/Avnet_2022_2/vitis_work/vadd_file_transfer ディレクトリを作成した。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/pfm/dtg_output/dtg_output/zub1cg_sbc_base/psu_cortexa53_0/device_tree_domain/bsp/pl.dtbo を vadd_file_transfer ディレクトリにコピーした。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/vitis_work/zub1cg_sbc_vadd_system/Hardware/binary_container_1.xclbin を vadd_file_transfer ディレクトリにコピーした。

shell.json を作成して、vadd_file_transfer ディレクトリにセーブした。
Accelerated Design Development on Kria KR260 in Vitis 2022.1”から shell.json の内容を引用する。

{
  "shell_type" : "XRT_FLAT",
  "num_slots": "1"
}


ZUBoard 1CG で Petalinux 2022.2 を起動した。
ホーム・ディレクトリに examples/zub1cg_sbc_vadd ディレクトリを作成した。
cd
mkdir examples
cd examples
mkdir zub1cg_sbc_vadd
cd zub1cg_sbc_vadd


FileZilla を起動して、ZUBoard 1CG の Petalinux 2022.2 へ SFTP で vadd_file_transfer ディレクトリのファイルを転送した。

/lib/firmware/xilinx/zub1cg_sbc_vadd ディレクトリを作成した。
sudo mkdir /lib/firmware/xilinx/zub1cg_sbc_vadd

binary_container_1.xclbin の名前を binary_container_1.bin に変更する。こうしないと、XRT は FPGA ビットストリームを抽出して Kria のプログラマブル ロジックをコンフィグレーションすることができないそうだ。
mv binary_container_1.xclbin binary_container_1.bin

pl.dtbo binary_container_1.bin shell.json ファイルを /lib/firmware/xilinx/zub1cg_sbc_vadd ディレクトリにコピーした。
sudo cp pl.dtbo binary_container_1.bin shell.json /lib/firmware/xilinx/zub1cg_sbc_vadd

アクセラレーション・アプリケーションを確認して、zub1cg_sbc_vadd をロードしたところエラーになった。
sudo xmutil loadapp zub1cg_sbc_vadd
ZUBoard1CG_203_230726.png

ZUBoard1CG_204_230726.png

どうして、うまく行かないんだろうか?
  1. 2023年07月26日 04:47 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

petalinux-upgrade を行って、xmutil をやってみたがエラーになった

petalinux-upgrade を行って、xmutil までの手順をもう一度、全部やり直してみたが、やはり、xmutil でロード・エラーになった。

2022.2 の petalinux-upgrade を行って、xmutil までの手順をもう一度、全部やり直す。

Petalinux 作業
zub1cg_sbc_base_2022_2_jupyter.bsp を使用して、Petalinux 2022.2 プロジェクトの zub1cg_sbc_2022_2 プロジェクトを作成した。
petalinux-create -t project -s zub1cg_sbc_base_2022_2_jupyter.bsp -n zub1cg_sbc_2022_2

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/project-spec/configs/config ファイルを編集する。
以下のように変更した。

CONFIG_SUBSYSTEM_HOSTNAME="zub1cg-sbc-2022-2"
CONFIG_SUBSYSTEM_PRODUCT="zub1cg_sbc_2022_2"


base の Viavdo プロジェクトを使用するように設定した。
cd zub1cg_sbc_2022_2/
petalinux-config --silentconfig --get-hw-description=../../../hdl/projects/zub1cg_sbc_base_2022_2


ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/project-spec/meta-user/conf/user-rootfsconfig に以下の項目を追加した。

CONFIG_xmutil
CONFIG_xrt


xmutil, xrt の有効化を行った。
petalinux-config -c rootfs
user packages に入って、xmutil, xrt にスペース・キーで * を表示させて有効化した。

ビルドを行ったところ、成功した。
petalinux-build

Sysroot(SDK)をビルドする。
petalinux-build --sdk

sdk.sh が ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/images/linux ディレクトリに生成された。

sysroots ディレクトリを ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2 ディレクトリに展開した。
images/linux/sdk.sh -d ./

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/sysroots ディレクトリが生成され、その下に cortexa72-cortexa53-xilinx-linux, x86_64-petalinux-linux ディレクトリが生成された。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2 ディレクトリに pfm ディレクトリを作成し、その下に boot ディレクトリと sd_dir ディレクトリを作成した。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/images/linux ディレクトリの bl31.elf, pmufw.elf, system.dtb, u-boot.elf, zynqmp_fsbl.elf のファイルを ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/pfm/boot ディレクトリにコピーした。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/pfm ディレクトリで xsct コマンドを実行した。
xsct
createdts -hw ../../../../hdl/projects/zub1cg_sbc_base_2022_2/zub1cg_sbc_base.xsa -zocl -platform-name zub1cg_sbc_2022_2 -git-branch xlnx_rel_v2022.2 -overlay -compile -out ./dtg_output
exit


ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/pfm/dtg_output/dtg_output/zub1cg_sbc_2022_2/psu_cortexa53_0/device_tree_domain/bsp ディレクトリに pl.dtsi ファイルが生成された。

pl.dtsi をコンパイルして pl.dtbo を生成する。
cd /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/pfm/dtg_output/dtg_output/zub1cg_sbc_2022_2/psu_cortexa53_0/device_tree_domain/bsp
dtc -@ -O dtb -o pl.dtbo pl.dtsi


pl.dtbo が生成された。

Vitis 作業
すでに source /media/masaaki/Ubuntu_Disk/tools/Xilinx/Vitis/2022.2/settings64.sh は実行済みだ。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base ディレクトリに移動する。
vitis &
で Vitis 2022.2 を起動した。

Vitis IDE Launcher ダイアログが表示された。
Workspace に ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/vitis_work を指定した。
Launch ボタンをクリックした。

Vitis 2022.2 が立ち上がった。
Create Platform Project をクリックして、プラットフォーム・プロジェクトを作成する。

New Platform Project ダイアログの Create new platform project 画面が開く。
Platform project name に zub1cg_sbc_2022_2 と入力した。
Next > ボタンをクリックする。

Platform 画面
Hardware Specification の XSA File に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/hdl/projects/zub1cg_sbc_base_2022_2/zub1cg_sbc_base.xsa を指定した。
Software Specification の Operating system には linux を、Processor には psu_cortexa53 を指定した。
Boot Componetnts の Generate boot components のチェックを外す。
Finish ボタンをクリックする。

zub1cg_sbc_2022_2 プラットフォーム・プロジェクトが作成された。
platform.spr で、zub1cg_sbc_2022_2 -> psu_cortexa53 -> linux on psu_cortexa53 をクリックして選択する。
Bif File: の Browse... の右端の下向き三角をクリックし、Generate Bif を選択する。

Boot Components Directory: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/pfm/boot を指定した。
FAT32 Partition Directory: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/pfm/sd_dir を指定した。
トンカチ・ボタンをクリックして、ビルドを行った。

Explorer の export -> zub1cg_sbc_2022_2 プラットフォームが生成された
その下に hw と sw ディレクトリが生成されている。

Vitis 2022.2 でアプリケーション・プロジェクトを作成する。
Vitis 2022.2 で File メニューから New -> Application Project... を選択してアプリケーション・プロジェクトを新規作成する。
New Application Project ダイアログの Create a New Application Project 画面が開く。
Next > ボタンをクリックする。

Platform 画面
zub1cg_sbc_2022_2 プラットフォームを選択する。
Next > ボタンをクリックする。

Application Project Details 画面
Application project name: に zub1cg_sbc_vadd と入力する。
Next > ボタンをクリックする。

Domain 画面
Application settings を入力する。
Sysroot paht: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/sysroots/cortexa72-cortexa53-xilinx-linux を入力する。
Root FS: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/images/linux/rootfs.ext4 を入力する。
Kernel Image: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/images/linux/Image を入力する。
Next > ボタンをクリックする。

Template 画面
Simple Vector Addition を選択する。
Finish ボタンをクリックする。

Active build configuration: で Hardware を選択し、Explorer で zub1cg_sbc_vadd_system を選択し、トンカチ・ボタンをクリックしてビルドを行った。

ビルドに成功した。

ZUBoard 1CG の Petalinux 作業
最初に、Balena Etcher を使用して ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base_2022_2/images/linux/rootfs.wic を MicroSD カードに書き込んだ。
ZUBoard 1CG に MicroSD カードを挿入した。
SW2 を SD カード・ブートに設定した。 SW2-1 から OFF - ON - OFF - ON
ZUBoard 1CG に電源を供給した。(私の使用してる電源は、Anker PowerPort III 65W Pod を使用している。ノートパソコン用の電源を流用している)
基板右下の SW7 を押して、Petalinux を起動した。

ファイルを ZUBoard 1CG に転送するために必要なファイルを集める。
ZUBoard1CG/Avnet_2022_2/vitis_work/vadd_file_transfer ディレクトリを作成した。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/pfm/dtg_output/dtg_output/zub1cg_sbc_2022_2/psu_cortexa53_0/device_tree_domain/bsp/pl.dtbo を vadd_file_transfer ディレクトリにコピーした。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/vitis_work/zub1cg_sbc_vadd_system/Hardware/binary_container_1.xclbin を vadd_file_transfer ディレクトリにコピーした。

shell.json を作成して、vadd_file_transfer ディレクトリにセーブした。
Accelerated Design Development on Kria KR260 in Vitis 2022.1”から shell.json の内容を引用する。

{
  "shell_type" : "XRT_FLAT",
  "num_slots": "1"
}


ZUBoard 1CG で Petalinux 2022.2 を起動した。
ホーム・ディレクトリに examples/zub1cg_sbc_vadd ディレクトリを作成した。
cd
mkdir examples
cd examples
mkdir zub1cg_sbc_vadd
cd zub1cg_sbc_vadd


FileZilla を起動して、ZUBoard 1CG の Petalinux 2022.2 へ SFTP で vadd_file_transfer ディレクトリのファイルを転送した。

/lib/firmware/xilinx/zub1cg_sbc_vadd ディレクトリを作成した。
sudo mkdir /lib/firmware/xilinx/zub1cg_sbc_vadd

binary_container_1.xclbin の名前を binary_container_1.bin に変更する。こうしないと、XRT は FPGA ビットストリームを抽出して Kria のプログラマブル ロジックをコンフィグレーションすることができないそうだ。
mv binary_container_1.xclbin binary_container_1.bin

pl.dtbo binary_container_1.bin shell.json ファイルを /lib/firmware/xilinx/zub1cg_sbc_vadd ディレクトリにコピーした。
sudo cp pl.dtbo binary_container_1.bin shell.json /lib/firmware/xilinx/zub1cg_sbc_vadd

アクセラレーション・アプリケーションを確認して、zub1cg_sbc_vadd をロードしたところエラーになった。
sudo xmutil loadapp zub1cg_sbc_vadd
ZUBoard1CG_201_230725.png

ZUBoard1CG_202_230725.png

今度は、違うアプローチで攻めてみよう。
  1. 2023年07月25日 15:34 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

ZUBoard 1CG で Vitis-AI 3.0 をやってみる6

ZUBoard 1CG で Vitis-AI 3.0 をやってみる5”の続き。

ZUBoard - Adding support for Vitis-AI 3.0”をやっていたが、どうもうまく行かないので、そのBSP を使って”KV260向けにVitisプラットフォームを作成してDPUを動かす その1 (Vitis 2022.1 + Vitis-AI v2.5)”の手順でやってみようということで、前回は、dpuprj_system_hw_link/Hardware/dpu-link.cfg を修正して、make を行ったところ、Vivado プロジェクトが生成され、論理合成、インプリメンテーション、ビットストリームの生成が実行された。今回は、必要なファイルを集めて、ZUBoard 1CG の Petalinux 2022.2 に転送し、環境を整備して、xmutil でロードしたとしたところエラーになってしまった。また pl.dtbi の firmware-name を変更して、同様に xmutil でロードしたところエラーになった。

操作手順は”KV260向けにVitisプラットフォームを作成してDPUを動かす その1 (Vitis 2022.1 + Vitis-AI v2.5)”から引用している。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2 ディレクトリに sd ディレクトリを作成した。
ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/pfm/dtg_output/dtg_output/zub1cg_sbc_2022_2/psu_cortexa53_0/device_tree_domain/bsp/pl.dtbo を sd ディレクトリにコピーした。
ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/vitis_work/dpuprj_system_hw_link/Hardware/dpu.xclbin を sd ディレクトリにコピーした。
sd ディレクトリで shell.json ファイルを作成した。
shell.json の内容を示す。

{
    "shell_type" : "XRT_FLAT"
    "num_slots": "1"
}


現在の sd ディレクトリを示す。
ZUBoard1CG_193_230722.png

ZUBoard 1CG の Petalinux 2022.2 のホーム・ディレクトリに下に examples/dpuprj ディレクトリを作成した。
ここからは、ZUBoard 1CG の Petalinux 2022.2 での作業になる。

examples/dpuprj ディレクトリに sd ディレクトリの内容を転送した。
ZUBoard1CG_194_230722.png

/lib/firmware/xilinx/dpuprj ディレクトリを作成し、pl.dtbo と shell.json をコピーした。dpu.xclbin は binary_container_1.bin としてコピーした。
sudo mkdir /lib/firmware/xilinx/dpuprj
sudo cp pl.dtbo shell.json /lib/firmware/xilinx/dpuprj/
sudo cp dpu.xclbin /lib/firmware/xilinx/dpuprj/binary_container_1.bin

ZUBoard1CG_195_230722.png

xmutil で dpuprj をロードしたところエラーだった。
ZUBoard1CG_196_230722.png

xmutil で dpuprj をロードした時のターミナルの様子を示す。
ZUBoard1CG_197_230722.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/pfm/dtg_output/dtg_output/zub1cg_sbc_2022_2/psu_cortexa53_0/device_tree_domain/bsp/pl.dtbi の firmware-name を変更して、同様にやってみたが xmutil でロードしたところエラーだった。
ZUBoard1CG_198_230722.png

ZUBoard1CG_199_230722.png

ZUBoard1CG_200_230722.png

どうも ZUBoard 1CG をやり始めてから xmutil で成功したことが無い気がする。
  1. 2023年07月24日 05:09 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

ZUBoard 1CG で Vitis-AI 3.0 をやってみる5

ZUBoard 1CG で Vitis-AI 3.0 をやってみる4”の続き。

ZUBoard - Adding support for Vitis-AI 3.0”をやっていたが、どうもうまく行かないので、そのBSP を使って”KV260向けにVitisプラットフォームを作成してDPUを動かす その1 (Vitis 2022.1 + Vitis-AI v2.5)”の手順でやってみようということで、前回は、Vitis 2022.2 を立ち上げて zub1cg_sbc_2022_2 プラットフォームを作成し、dpuprj アプリケーション・プロジェクトを作成し、ビルドを行ったところ失敗した。しかし、これで良いそうだ。今回は、dpuprj_system_hw_link/Hardware/dpu-link.cfg を修正して、make を行ったところ、Vivado プロジェクトが生成され、論理合成、インプリメンテーション、ビットストリームの生成が実行された。

操作手順は”KV260向けにVitisプラットフォームを作成してDPUを動かす その1 (Vitis 2022.1 + Vitis-AI v2.5)”から引用している。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/vitis_work/dpuprj_system_hw_link/Hardware/dpu-link.cfg を編集する。
ZUBoard1CG_184_230722.png

DPUCZDX8G_2 に関連する部分を削除した。
ZUBoard1CG_185_230722.png

vitis_work/dpuprj_system_hw_link/Hardware ディレクトリに行って、make を行った。
cd vitis_work/dpuprj_system_hw_link/Hardware/
make

ZUBoard1CG_186_230722.png

ZUBoard1CG_187_230722.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/vitis_work/dpuprj_system_hw_link/Hardware/dpu.build/link/vivado/vpl/prj ディレクトリに Vivado 2022.2 のプロジェクトが生成された。
ZUBoard1CG_189_230722.png

ブロック・デザインの全体を表示した。
ZUBoard1CG_190_230722.png

DPU の部分を拡大した。
ZUBoard1CG_191_230722.png

Address Editor 画面を示す。
ZUBoard1CG_192_230722.png
  1. 2023年07月22日 04:40 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

ZUBoard 1CG で Vitis-AI 3.0 をやってみる4

ZUBoard 1CG で Vitis-AI 3.0 をやってみる3”の続き。

ZUBoard - Adding support for Vitis-AI 3.0”をやっていたが、どうもうまく行かないので、そのBSP を使って”KV260向けにVitisプラットフォームを作成してDPUを動かす その1 (Vitis 2022.1 + Vitis-AI v2.5)”の手順でやってみようということで、前回は、petalinux-package --boot で BOOT.BIN を生成し、petalinux-package --wic で SD カード・イメージを作成し、MicroSD カードに書いて、ZUBoard 1CG に挿入して、電源 ON したが、ブートしなかった。そこで、ブート・パーティションに書くファイルを変更して、もう一度、ZUBoard 1CG に挿入して、電源 ON したところ、Petalinux のブートが途中で止まってしまった。petalinux-build で作成された rootfs.wic を MicroSD カードに書いて、ZUBoard 1CG に挿入して、電源 ON したところ、Petalinux 2022.2 が起動した。今回は、Vitis 2022.2 を立ち上げて zub1cg_sbc_2022_2 プラットフォームを作成し、dpuprj アプリケーション・プロジェクトを作成し、ビルドを行ったところ失敗した。しかし、これで良いそうだ。

操作手順は”KV260向けにVitisプラットフォームを作成してDPUを動かす その1 (Vitis 2022.1 + Vitis-AI v2.5)”から引用している。

すでに source /media/masaaki/Ubuntu_Disk/tools/Xilinx/Vitis/2022.2/settings64.sh は実行済みだ。

vitis &
で Vitis 2022.2 を起動した。

Vitis IDE Launcher ダイアログが表示された。
Workspace に ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/vitis_work を指定した。
Launch ボタンをクリックした。

Vitis 2022.2 が立ち上がった。
Create Platform Project をクリックして、プラットフォーム・プロジェクトを作成する。
ZUBoard1CG_154_230718.png

New Platform Project ダイアログの Create new platform project 画面が開く。
Platform project name に zub1cg_sbc_2022_2 と入力した。
Next > ボタンをクリックする。
ZUBoard1CG_155_230718.png

Platform 画面
Hardware Specification の XSA File に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/hdl/projects/zub1cg_sbc_base_2022_2/zub1cg_sbc_base.xsa を指定した。
Software Specification の Operating system には linux を、Processor には psu_cortexa53 を指定した。
Boot Componetnts の Generate boot components のチェックを外す。
Finish ボタンをクリックする。
ZUBoard1CG_156_230718.png

zub1cg_sbc_2022_2 プラットフォーム・プロジェクトが作成された。
platform.spr で、zub1cg_sbc_2022_2 -> psu_cortexa53 -> linux on psu_cortexa53 をクリックして選択する。
Bif File: の Browse... の右端の下向き三角をクリックし、Generate Bif を選択する。

Boot Components Directory: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/pfm/boot を指定した。
FAT32 Partition Directory: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/pfm/sd_dir を指定した。
トンカチ・ボタンをクリックして、ビルドを行った。
ZUBoard1CG_160_230718.png

Explorer の export -> zub1cg_sbc_2022_2 プラットフォームが生成された
その下に hw と sw ディレクトリが生成されている。
ZUBoard1CG_161_230718.png

プラットフォーム情報を確認する。
platforminfo ./zub1cg_sbc_2022_2/export/zub1cg_sbc_2022_2/zub1cg_sbc_2022_2.xpfm
ログを示す。

(base) masaaki@masaaki-H110M4-M01:/media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/vitis_work$ platforminfo ./zub1cg_sbc_2022_2/export/zub1cg_sbc_2022_2/zub1cg_sbc_2022_2.xpfm
==========================
Basic Platform Information
==========================
Platform:           zub1cg_sbc_2022_2
File:               /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/vitis_work/zub1cg_sbc_2022_2/export/zub1cg_sbc_2022_2/zub1cg_sbc_2022_2.xpfm
Description:        
zub1cg_sbc_2022_2
    

=====================================
Hardware Platform (Shell) Information
=====================================
Vendor:                           avnet.com
Board:                            zub1cg_sbc_base
Name:                             zub1cg_sbc_base
Version:                          1.0
Generated Version:                2022.2
Hardware:                         1
Software Emulation:               1
Hardware Emulation:               1
Hardware Emulation Platform:      0
FPGA Family:                      zynquplus
FPGA Device:                      xczu1cg
Board Vendor:                     avnet.com
Board Name:                       avnet.com:zuboard_1cg:1.1
Board Part:                       xczu1cg-sbva484-1-e

=================
Clock Information
=================
  Default Clock Index: 0
  Clock Index:         0
    Frequency:         150.000000
  Clock Index:         1
    Frequency:         300.000000
  Clock Index:         2
    Frequency:         75.000000
  Clock Index:         3
    Frequency:         100.000000
  Clock Index:         4
    Frequency:         200.000000
  Clock Index:         5
    Frequency:         400.000000
  Clock Index:         6
    Frequency:         600.000000

=====================
Resource Availability
=====================
  =====
  Total
  =====
    LUTs:  33938
    FFs:   71128
    BRAMs: 108
    DSPs:  216

==================
Memory Information
==================
  Bus SP Tag: HP0
  Bus SP Tag: HP1
  Bus SP Tag: HP2
  Bus SP Tag: HP3
  Bus SP Tag: HPC0
  Bus SP Tag: HPC1

=============================
Software Platform Information
=============================
Number of Runtimes:            1
Default System Configuration:  zub1cg_sbc_2022_2
System Configurations:
  System Config Name:                      zub1cg_sbc_2022_2
  System Config Description:               zub1cg_sbc_2022_2
  System Config Default Processor Group:   linux_domain
  System Config Default Boot Image:        standard
  System Config Is QEMU Supported:         1
  System Config Processor Groups:
    Processor Group Name:      linux on psu_cortexa53
    Processor Group CPU Type:  cortex-a53
    Processor Group OS Name:   linux
  System Config Boot Images:
    Boot Image Name:           standard
    Boot Image Type:           
    Boot Image BIF:            zub1cg_sbc_2022_2/boot/linux.bif
    Boot Image Data:           zub1cg_sbc_2022_2/linux_domain/image
    Boot Image Boot Mode:      sd
    Boot Image RootFileSystem: 
    Boot Image Mount Path:     /mnt
    Boot Image Read Me:        zub1cg_sbc_2022_2/boot/generic.readme
    Boot Image QEMU Args:      zub1cg_sbc_2022_2/qemu/pmu_args.txt:zub1cg_sbc_2022_2/qemu/qemu_args.txt
    Boot Image QEMU Boot:      
    Boot Image QEMU Dev Tree:  
Supported Runtimes:
  Runtime: OpenCL



Vitis-AI/reference_design から DPUCZDX8G をダウンロードした。
ZUBoard1CG_171_230720.png

ダウンロードした DPUCZDX8G.tar.gz を ZUBoard1CG/Avnet_2022_2 ディレクトリに展開した。
ZUBoard1CG_172_230720.png

Vitis の Window メニューから Preferences を選択した。
Preferences ダイアログが開く。
Library Repositories をクリックし、Add ボタンをクリックした。
ZUBoard1CG_173_230720.png

Location に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/DPUCZDX8G を設定した。
Git URL と Branch はクリアした。
ZUBoard1CG_174_230720.png

File メニューから new -> Application Project... を選択して、dpuprj を作成する。
New Application Project ダイアログの Create a New Application Project 画面が開く。
Next > ボタンをクリックする。

Platform 画面
zub1cg_sbc_2022_2 プラットフォームを選択する。
Next > ボタンをクリックする。
ZUBoard1CG_175_230720.png

Application Project Details 画面
Application project name: に dpuprj と入力する。
Next > ボタンをクリックする。
ZUBoard1CG_176_230720.png

Domain 画面
Application settings を入力する。
Sysroot paht: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/sysroots/cortexa72-cortexa53-xilinx-linux を入力する。
Root FS: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/images/linux/rootfs.ext4 を入力する。
Kernel Image: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/images/linux/Image を入力する。
Next > ボタンをクリックする。
ZUBoard1CG_177_230720.png

Template 画面
DPU kernel (RTL Kernel) を選択する。
Finish ボタンをクリックする。
ZUBoard1CG_178_230720.png

dpuprj アプリケーション・プロジェクトが作成された。
ZUBoard1CG_179_230720.png

Explorerウインドウの dpu_trd_kernelsからsrc->prj->Vitis->dpu_conf.vh を開いた。
`define B4096 をコメントアウトして、`define B512 を追加した。
ZUBoard1CG_180_230720.png

Explorerから dpuprj_system_hw_link.prj を開いた。
DPUCZDX8G の個数を 1 に変更し、softmax_xrt_top を削除した。
Active build configuration を Hardware に変更した。
ZUBoard1CG_181_230720.png

Explorerから dpuprj_system を選択し、ビルド・ボタンをクリックして、ビルドを行った。
ZUBoard1CG_182_230720.png

ビルドが失敗したが、dpuprj_kernels はビルドが成功している。
ZUBoard1CG_183_230720.png
  1. 2023年07月21日 04:55 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

ZUBoard 1CG で Vitis-AI 3.0 をやってみる3

ZUBoard 1CG で Vitis-AI 3.0 をやってみる2”の続き。

ZUBoard - Adding support for Vitis-AI 3.0”をやっていたが、どうもうまく行かないので、そのBSP を使って”KV260向けにVitisプラットフォームを作成してDPUを動かす その1 (Vitis 2022.1 + Vitis-AI v2.5)”の手順でやってみようということで、前回は、Sysroot(SDK)をビルドし、できた sdk.sh を展開して、sysroot を生成した。xsct を使用したデバイスツリー・オーバレイを作成し、pl.dtsi をコンパイルして pl.dtbo を生成した。今回は、petalinux-package --boot で BOOT.BIN を生成し、petalinux-package --wic で SD カード・イメージを作成し、MicroSD カードに書いて、ZUBoard 1CG に挿入して、電源 ON したが、ブートしなかった。そこで、ブート・パーティションに書くファイルを変更して、もう一度、ZUBoard 1CG に挿入して、電源 ON したところ、Petalinux のブートが途中で止まってしまった。petalinux-build で作成された rootfs.wic を MicroSD カードに書いて、ZUBoard 1CG に挿入して、電源 ON したところ、Petalinux 2022.2 が起動した。

KV260向けにVitisプラットフォームを作成してDPUを動かす その1 (Vitis 2022.1 + Vitis-AI v2.5)”の手順を実行する。

BOOT.BIN を作成した。
petalinux-package --boot --u-boot --force
ZUBoard1CG_163_230719.png

KV260向けにVitisプラットフォームを作成してDPUを動かす その1 (Vitis 2022.1 + Vitis-AI v2.5)”の手順の boot パーティションに入るファイルが少ないがある分だけ、入れることにする。オプションを変更した。
petalinux-package --wic --images-dir images/linux/ --bootfiles "boot.scr,Image,system.dtb" --disk-name "mmcblk1"
ZUBoard1CG_164_230719.png

petalinux-sdimage.wic が生成されたので、これを balenaEtcher で MicroSD カードに書いて、ZUBoard 1CG に挿入して、電源 ON したが、ターミナルに起動メッセージが全くでなかった。つまり、ブートしなかった。

ZUBoard 1CG に入っていて Petalinux が起動していた MicroSD カードの boot パーティションを見ると、boot.bin, boot.scr, image.ub が入っている。
ZUBoard1CG_165_230719.png

petalinux-package --wic で SD カード・イメージを作成する時に、boot パーティションに BOOT.BIN, boot.scr, image.ub が入るようにコマンドを書き換えた。
petalinux-package --wic --images-dir images/linux/ --bootfiles "BOOT.BIN,boot.scr,image.ub" --disk-name "mmcblk1"
ZUBoard1CG_166_230719.png

petalinux-sdimage.wic が再生成されたので、これを balenaEtcher で MicroSD カードに書いて、ZUBoard 1CG に挿入して、電源 ON したところ、ブートが途中で止まってしまった。
ZUBoard1CG_168_230719.png

ZUBoard - Adding support for Vitis-AI 3.0” でやったように、petalinux-build の時に生成された rootfs.wic を balenaEtcher で MicroSD カードに書いて、ZUBoard 1CG に挿入して、電源 ON した。Petalinux 2022.2 が起動した。
ZUBoard1CG_169_230719.png

ログイン・プロンプトだったので、ログインした。ID は Petalinux でログインし、パスワードは新しいパスワードを登録した。
ifconfig すると IP がアサインされていた。
ZUBoard1CG_170_230719.png

ブート・ログを貼っておく。

Xilinx Zynq MP First Stage Boot Loader 
Release 2022.2   Oct  7 2022  -  04:56:16
PMU Firmware 2022.2 Oct  7 2022   04:56:16
PMU_ROM Version: xpbr-v8.1.0-0
NOTICE:  BL31: v2.6(release):xlnx_rebase_v2.6_2022.1_update3-18-g0897efd45
NOTICE:  BL31: Built : 03:55:03, Sep  9 2022


U-Boot 2022.01 (Sep 20 2022 - 06:35:33 +0000)

CPU:   ZynqMP
Silicon: v3
Board: Xilinx ZynqMP
DRAM:  1023 MiB
PMUFW:  v1.1
PMUFW no permission to change config object
EL Level:   EL2
Chip ID:    zu1eg
NAND:  0 MiB
MMC:   mmc@ff160000: 1, mmc@ff170000: 0
Loading Environment from FAT... *** Error - No Valid Environment Area found
*** Warning - bad env area, using default environment

In:    serial
Out:   serial
Err:   serial
Bootmode: SD_MODE1
Reset reason:   SOFT 
Net:   FEC: can't find phy-handle

ZYNQ GEM: ff0d0000, mdio bus ff0d0000, phyaddr 7, interface rgmii-id
eth0: ethernet@ff0d0000
scanning bus for devices...
starting USB...
No working controllers 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
2777 bytes read in 14 ms (193.4 KiB/s)
## Executing script at 20000000
Trying to load boot images from mmc0
9461028 bytes read in 862 ms (10.5 MiB/s)
## Loading kernel from FIT Image at 10000000 ...
   Using 'conf-system-top.dtb' configuration
   Trying 'kernel-1' kernel subimage
     Description:  Linux kernel
     Created:      2022-10-03   7:50:07 UTC
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x100000fc
     Data Size:    9402605 Bytes = 9 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x00200000
     Entry Point:  0x00200000
     Hash algo:    sha256
     Hash value:   612af571a1ff2948e56a033715575c67385ca15976889801ba20617d76b535ae
   Verifying Hash Integrity ... sha256+ OK
## Loading fdt from FIT Image at 10000000 ...
   Using 'conf-system-top.dtb' configuration
   Trying 'fdt-system-top.dtb' fdt subimage
     Description:  Flattened Device Tree blob
     Created:      2022-10-03   7:50:07 UTC
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x108f7afc
     Data Size:    56511 Bytes = 55.2 KiB
     Architecture: AArch64
     Hash algo:    sha256
     Hash value:   f8e4703bc3521c18f2296edd31374fa4cc152c5aa1875dcc7d57e5dee41b13dd
   Verifying Hash Integrity ... sha256+ OK
   Booting using the fdt blob at 0x108f7afc
   Uncompressing Kernel Image
   Loading Device Tree to 000000003bbe6000, end 000000003bbf6cbe ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.15.36-xilinx-v2022.2 (oe-user@oe-host) (aarch64-xilinx-linux-gcc (GCC) 11.2.0, GNU ld (GNU Binutils) 2.37.20210721) #1 SMP Mon Oct 3 07:50:07 UTC 2022
[    0.000000] Machine model: xlnx,zynqmp
[    0.000000] earlycon: cdns0 at MMIO 0x00000000ff000000 (options '115200n8')
[    0.000000] printk: bootconsole [cdns0] enabled
[    0.000000] efi: UEFI not found.
[    0.000000] Zone ranges:
[    0.000000]   DMA32    [mem 0x0000000000000000-0x000000003fefffff]
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000003fefffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003fefffff]
[    0.000000] On node 0, zone DMA32: 256 pages in unavailable ranges
[    0.000000] cma: Reserved 512 MiB at 0x000000001b800000
[    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.2
[    0.000000] percpu: Embedded 18 pages/cpu s34328 r8192 d31208 u73728
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 257796
[    0.000000] Kernel command line: earlycon console=ttyPS0,115200 clk_ignore_unused root=/dev/mmcblk0p2 rw rootwait cma=512M
[    0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 480852K/1047552K available (14144K kernel code, 1006K rwdata, 3960K rodata, 2176K init, 574K bss, 42412K reserved, 524288K 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=16 to nr_cpu_ids=2.
[    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=2
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GIC: Adjusting CPU interface base to 0x00000000f902f000
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] random: get_random_bytes called from start_kernel+0x474/0x6d8 with crng_init=0
[    0.000000] arch_timer: cp15 timer(s) running at 100.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x171024e7e0, max_idle_ns: 440795205315 ns
[    0.000001] sched_clock: 56 bits at 100MHz, resolution 10ns, wraps every 4398046511100ns
[    0.008451] Console: colour dummy device 80x25
[    0.012486] Calibrating delay loop (skipped), value calculated using timer frequency.. 200.00 BogoMIPS (lpj=400000)
[    0.022837] pid_max: default: 32768 minimum: 301
[    0.027678] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.034779] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.043937] rcu: Hierarchical SRCU implementation.
[    0.047596] EFI services will not be available.
[    0.051937] smp: Bringing up secondary CPUs ...
[    0.056757] Detected VIPT I-cache on CPU1
[    0.056814] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.056897] smp: Brought up 1 node, 2 CPUs
[    0.070844] SMP: Total of 2 processors activated.
[    0.075516] CPU features: detected: 32-bit EL0 Support
[    0.080619] CPU features: detected: CRC32 instructions
[    0.085765] CPU: All CPU(s) started at EL2
[    0.089798] alternatives: patching kernel code
[    0.095153] devtmpfs: initialized
[    0.103271] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.107378] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.133466] pinctrl core: initialized pinctrl subsystem
[    0.134066] DMI not present or invalid.
[    0.137231] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.144009] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
[    0.149836] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.157690] audit: initializing netlink subsys (disabled)
[    0.163100] audit: type=2000 audit(0.116:1): state=initialized audit_enabled=0 res=1
[    0.163541] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.177484] ASID allocator initialised with 65536 entries
[    0.182929] Serial: AMBA PL011 UART driver
[    0.208122] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.209190] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[    0.215861] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.222532] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[    1.298874] cryptd: max_cpu_qlen set to 1000
[    1.324151] DRBG: Continuing without Jitter RNG
[    1.426024] raid6: neonx8   gen()  2125 MB/s
[    1.494079] raid6: neonx8   xor()  1581 MB/s
[    1.562146] raid6: neonx4   gen()  2175 MB/s
[    1.630207] raid6: neonx4   xor()  1551 MB/s
[    1.698282] raid6: neonx2   gen()  2065 MB/s
[    1.766333] raid6: neonx2   xor()  1428 MB/s
[    1.834404] raid6: neonx1   gen()  1769 MB/s
[    1.902461] raid6: neonx1   xor()  1207 MB/s
[    1.970527] raid6: int64x8  gen()  1366 MB/s
[    2.038584] raid6: int64x8  xor()   773 MB/s
[    2.106648] raid6: int64x4  gen()  1598 MB/s
[    2.174704] raid6: int64x4  xor()   839 MB/s
[    2.242792] raid6: int64x2  gen()  1397 MB/s
[    2.310834] raid6: int64x2  xor()   746 MB/s
[    2.378910] raid6: int64x1  gen()  1032 MB/s
[    2.446965] raid6: int64x1  xor()   517 MB/s
[    2.447007] raid6: using algorithm neonx4 gen() 2175 MB/s
[    2.450955] raid6: .... xor() 1551 MB/s, rmw enabled
[    2.455891] raid6: using neon recovery algorithm
[    2.461182] iommu: Default domain type: Translated 
[    2.465325] iommu: DMA domain TLB invalidation policy: strict mode 
[    2.471808] SCSI subsystem initialized
[    2.475446] usbcore: registered new interface driver usbfs
[    2.480746] usbcore: registered new interface driver hub
[    2.486014] usbcore: registered new device driver usb
[    2.491086] mc: Linux media interface: v0.10
[    2.495267] videodev: Linux video capture interface: v2.00
[    2.500737] pps_core: LinuxPPS API ver. 1 registered
[    2.505629] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    2.514719] PTP clock support registered
[    2.518624] EDAC MC: Ver: 3.0.0
[    2.522053] zynqmp-ipi-mbox mailbox@ff990400: Registered ZynqMP IPI mbox with TX/RX channels.
[    2.530438] FPGA manager framework
[    2.533706] Advanced Linux Sound Architecture Driver Initialized.
[    2.540029] Bluetooth: Core ver 2.22
[    2.543186] NET: Registered PF_BLUETOOTH protocol family
[    2.548447] Bluetooth: HCI device and connection manager initialized
[    2.554765] Bluetooth: HCI socket layer initialized
[    2.559608] Bluetooth: L2CAP socket layer initialized
[    2.564629] Bluetooth: SCO socket layer initialized
[    2.569923] clocksource: Switched to clocksource arch_sys_counter
[    2.575677] VFS: Disk quotas dquot_6.6.0
[    2.579455] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    2.591064] NET: Registered PF_INET protocol family
[    2.591221] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    2.599048] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear)
[    2.606763] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    2.614500] TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear)
[    2.621780] TCP: Hash tables configured (established 8192 bind 8192)
[    2.628040] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    2.634536] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    2.641617] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    2.647477] RPC: Registered named UNIX socket transport module.
[    2.653039] RPC: Registered udp transport module.
[    2.657698] RPC: Registered tcp transport module.
[    2.662368] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    2.668773] PCI: CLS 0 bytes, default 64
[    2.672991] armv8-pmu pmu: hw perfevents: no interrupt-affinity property, guessing.
[    2.680409] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available
[    2.715397] Initialise system trusted keyrings
[    2.715567] workingset: timestamp_bits=46 max_order=18 bucket_order=0
[    2.721432] NFS: Registering the id_resolver key type
[    2.725739] Key type id_resolver registered
[    2.729796] Key type id_legacy registered
[    2.733791] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    2.740435] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    2.747786] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[    2.754194] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    2.798343] NET: Registered PF_ALG protocol family
[    2.798395] xor: measuring software checksum speed
[    2.806448]    8regs           :  2363 MB/sec
[    2.810094]    32regs          :  2799 MB/sec
[    2.815419]    arm64_neon      :  2180 MB/sec
[    2.815462] xor: using function: 32regs (2799 MB/sec)
[    2.820250] Key type asymmetric registered
[    2.824314] Asymmetric key parser 'x509' registered
[    2.829201] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 244)
[    2.836514] io scheduler mq-deadline registered
[    2.841009] io scheduler kyber registered
[    2.875811] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    2.877920] Serial: AMBA driver
[    2.880620] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    2.890737] brd: module loaded
[    2.894371] loop: module loaded
[    2.895494] mtdoops: mtd device (mtddev=name/number) must be supplied
[    2.901559] tun: Universal TUN/TAP device driver, 1.6
[    2.903406] CAN device driver interface
[    2.907986] usbcore: registered new interface driver rtl8150
[    2.912756] usbcore: registered new interface driver r8152
[    2.918197] usbcore: registered new interface driver asix
[    2.923560] usbcore: registered new interface driver ax88179_178a
[    2.929612] usbcore: registered new interface driver cdc_ether
[    2.935407] usbcore: registered new interface driver net1080
[    2.941029] usbcore: registered new interface driver cdc_subset
[    2.946911] usbcore: registered new interface driver zaurus
[    2.952462] usbcore: registered new interface driver cdc_ncm
[    2.958925] usbcore: registered new interface driver uas
[    2.963363] usbcore: registered new interface driver usb-storage
[    2.969471] gadgetfs: USB Gadget filesystem, version 24 Aug 2004
[    2.975923] rtc_zynqmp ffa60000.rtc: registered as rtc0
[    2.980470] rtc_zynqmp ffa60000.rtc: setting system clock to 2023-07-19T13:17:54 UTC (1689772674)
[    2.989341] i2c_dev: i2c /dev entries driver
[    2.995561] usbcore: registered new interface driver uvcvideo
[    2.999723] Bluetooth: HCI UART driver ver 2.3
[    3.003640] Bluetooth: HCI UART protocol H4 registered
[    3.008740] Bluetooth: HCI UART protocol BCSP registered
[    3.014036] Bluetooth: HCI UART protocol LL registered
[    3.019120] Bluetooth: HCI UART protocol ATH3K registered
[    3.024498] Bluetooth: HCI UART protocol Three-wire (H5) registered
[    3.030749] Bluetooth: HCI UART protocol Intel registered
[    3.036087] Bluetooth: HCI UART protocol QCA registered
[    3.041289] usbcore: registered new interface driver bcm203x
[    3.046912] usbcore: registered new interface driver bpa10x
[    3.052464] usbcore: registered new interface driver bfusb
[    3.057898] usbcore: registered new interface driver btusb
[    3.063361] usbcore: registered new interface driver ath3k
[    3.068861] EDAC MC: ECC not enabled
[    3.072473] EDAC DEVICE0: Giving out device to module edac controller cache_err: DEV edac (POLLED)
[    3.081402] EDAC DEVICE1: Giving out device to module zynqmp-ocm-edac controller zynqmp_ocm: DEV ff960000.memory-controller (INTERRUPT)
[    3.093724] sdhci: Secure Digital Host Controller Interface driver
[    3.099480] sdhci: Copyright(c) Pierre Ossman
[    3.103804] sdhci-pltfm: SDHCI platform and OF driver helper
[    3.109776] ledtrig-cpu: registered to indicate activity on CPUs
[    3.115519] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    3.121873] zynqmp_firmware_probe Platform Management API v1.1
[    3.127594] zynqmp_firmware_probe Trustzone version v1.0
[    3.161640] securefw securefw: securefw probed
[    3.161793] zynqmp_aes firmware:zynqmp-firmware:zynqmp-aes: The zynqmp-aes driver shall be deprecated in 2022.2 and removed in 2023.1
[    3.172726] alg: No test for xilinx-zynqmp-aes (zynqmp-aes)
[    3.178123] zynqmp_aes firmware:zynqmp-firmware:zynqmp-aes: AES Successfully Registered
[    3.186111] zynqmp-keccak-384 firmware:zynqmp-firmware:sha384: The zynqmp-sha-deprecated driver shall be deprecated in 2022.2 and removed in 2023.1 release
[    3.199898] alg: No test for xilinx-keccak-384 (zynqmp-keccak-384)
[    3.206187] alg: No test for xilinx-zynqmp-rsa (zynqmp-rsa)
[    3.211706] usbcore: registered new interface driver usbhid
[    3.217036] usbhid: USB HID core driver
[    3.220937] xlnk xlnk: Major 240
[    3.224136] xlnk xlnk: xlnk driver loaded
[    3.228022] xlnk xlnk: xlnk_pdev is not null
[    3.233599] xadc a0090000.system_management_wiz: IRQ index 0 not found
[    3.240877] ARM CCI_400_r1 PMU driver probed
[    3.241594] fpga_manager fpga0: Xilinx ZynqMP FPGA Manager registered
[    3.249853] usbcore: registered new interface driver snd-usb-audio
[    3.256478] pktgen: Packet Generator for packet performance testing. Version: 2.75
[    3.263633] Initializing XFRM netlink socket
[    3.267380] NET: Registered PF_INET6 protocol family
[    3.272840] Segment Routing with IPv6
[    3.275871] In-situ OAM (IOAM) with IPv6
[    3.279824] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    3.286051] NET: Registered PF_PACKET protocol family
[    3.290658] NET: Registered PF_KEY protocol family
[    3.295419] can: controller area network core
[    3.299763] NET: Registered PF_CAN protocol family
[    3.304485] can: raw protocol
[    3.307427] can: broadcast manager protocol
[    3.311582] can: netlink gateway - max_hops=1
[    3.316004] Bluetooth: RFCOMM TTY layer initialized
[    3.320756] Bluetooth: RFCOMM socket layer initialized
[    3.325864] Bluetooth: RFCOMM ver 1.11
[    3.329573] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    3.334843] Bluetooth: BNEP filters: protocol multicast
[    3.340043] Bluetooth: BNEP socket layer initialized
[    3.344964] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    3.350851] Bluetooth: HIDP socket layer initialized
[    3.355814] 8021q: 802.1Q VLAN Support v1.8
[    3.360064] 9pnet: Installing 9P2000 support
[    3.364197] Key type dns_resolver registered
[    3.368571] registered taskstats version 1
[    3.372475] Loading compiled-in X.509 certificates
[    3.378654] Btrfs loaded, crc32c=crc32c-generic, zoned=no, fsverity=no
[    3.394820] ff000000.serial: ttyPS0 at MMIO 0xff000000 (irq = 60, base_baud = 6249999) is a xuartps
[    3.403866] printk: console [ttyPS0] enabled
[    3.403866] printk: console [ttyPS0] enabled
[    3.408169] printk: bootconsole [cdns0] disabled
[    3.408169] printk: bootconsole [cdns0] disabled
[    3.418397] of-fpga-region fpga-full: FPGA Region probed
[    3.426998] irq-xilinx: mismatch in kind-of-intr param
[    3.432135] irq-xilinx: /amba_pl@0/interrupt-controller@a0060000: num_irq=32, sw_irq=0, edge=0x1
[    3.442903] xilinx-zynqmp-dma fd500000.dma-controller: ZynqMP DMA driver Probe success
[    3.451008] xilinx-zynqmp-dma fd510000.dma-controller: ZynqMP DMA driver Probe success
[    3.459101] xilinx-zynqmp-dma fd520000.dma-controller: ZynqMP DMA driver Probe success
[    3.467208] xilinx-zynqmp-dma fd530000.dma-controller: ZynqMP DMA driver Probe success
[    3.475311] xilinx-zynqmp-dma fd540000.dma-controller: ZynqMP DMA driver Probe success
[    3.483416] xilinx-zynqmp-dma fd550000.dma-controller: ZynqMP DMA driver Probe success
[    3.491515] xilinx-zynqmp-dma fd560000.dma-controller: ZynqMP DMA driver Probe success
[    3.499612] xilinx-zynqmp-dma fd570000.dma-controller: ZynqMP DMA driver Probe success
[    3.507785] xilinx-zynqmp-dma ffa80000.dma-controller: ZynqMP DMA driver Probe success
[    3.515878] xilinx-zynqmp-dma ffa90000.dma-controller: ZynqMP DMA driver Probe success
[    3.523981] xilinx-zynqmp-dma ffaa0000.dma-controller: ZynqMP DMA driver Probe success
[    3.532075] xilinx-zynqmp-dma ffab0000.dma-controller: ZynqMP DMA driver Probe success
[    3.540177] xilinx-zynqmp-dma ffac0000.dma-controller: ZynqMP DMA driver Probe success
[    3.548271] xilinx-zynqmp-dma ffad0000.dma-controller: ZynqMP DMA driver Probe success
[    3.556369] xilinx-zynqmp-dma ffae0000.dma-controller: ZynqMP DMA driver Probe success
[    3.564461] xilinx-zynqmp-dma ffaf0000.dma-controller: ZynqMP DMA driver Probe success
[    3.572817] xilinx-zynqmp-dpdma fd4c0000.dma-controller: Xilinx DPDMA engine is probed
[    3.580889] a0080000.serial: ttyUL1 at MMIO 0xa0080000 (irq = 71, base_baud = 0) is a uartlite
[    3.591351] xilinx-psgtr fd400000.phy: lane 1 (type 8, protocol 4): PLL lock timeout
[    3.599101] phy phy-fd400000.phy.1: phy poweron failed --> -110
[    3.605023] zynqmp-display fd4a0000.display: failed to power on phy lane 0
[    3.611936] zynqmp-display: probe of fd4a0000.display failed with error -110
[    3.620039] st-press-spi spi1.0: supply vdd not found, using dummy regulator
[    3.627180] st-press-spi spi1.0: supply vddio not found, using dummy regulator
[    3.635006] iio iio:device1: registered pressure sensor lps22hh
[    3.641846] spi-nor spi0.0: found is25wp256d, expected mt25qu256a
[    3.649914] spi-nor spi0.0: is25wp256d (32768 Kbytes)
[    3.654994] 2 fixed-partitions partitions found on MTD device spi0.0
[    3.661349] Creating 2 MTD partitions on "spi0.0":
[    3.666141] 0x000000000000-0x000001c00000 : "system"
[    3.672054] 0x000001c00000-0x000002000000 : "user"
[    3.678049] macb ff0d0000.ethernet: Not enabling partial store and forward
[    3.686608] macb ff0d0000.ethernet eth0: Cadence GEM rev 0x50070106 at 0xff0d0000 irq 37 (fc:c2:3d:42:bb:ae)
[    3.696809] xilinx-axipmon ffa00000.perf-monitor: Probed Xilinx APM
[    3.703351] xilinx-axipmon fd0b0000.perf-monitor: Probed Xilinx APM
[    3.709854] xilinx-axipmon fd490000.perf-monitor: Probed Xilinx APM
[    3.716351] xilinx-axipmon ffa10000.perf-monitor: Probed Xilinx APM
[    3.725176] at24 0-0058: supply vcc not found, using dummy regulator
[    3.731849] at24 0-0058: 6 byte 24mac402 EEPROM, read-only
[    3.737369] cdns-i2c ff030000.i2c: 400 kHz mmio ff030000 irq 39
[    3.747454] st_stts22h_i2c 1-003f: V1.0: probe ok
[    3.753369] cdns-wdt fd4d0000.watchdog: Xilinx Watchdog Timer with timeout 60s
[    3.760827] cdns-wdt ff150000.watchdog: Xilinx Watchdog Timer with timeout 10s
[    3.772291] of_cfs_init
[    3.774797] of_cfs_init: OK
[    3.777742] clk: Not disabling unused clocks
[    3.782237] ALSA device list:
[    3.785194]   No soundcards found.
[    3.803399] mmc1: SDHCI controller on ff160000.mmc [ff160000.mmc] using ADMA 64-bit
[    3.811070] mmc0: SDHCI controller on ff170000.mmc [ff170000.mmc] using ADMA 64-bit
[    3.819034] Waiting for root device /dev/mmcblk0p2...
[    3.858021] mmc0: Problem switching card into high-speed mode!
[    3.864434] mmc0: new SDHC card at address 0001
[    3.869445] mmcblk0: mmc0:0001 SPCC  29.0 GiB 
[    3.875778]  mmcblk0: p1 p2
[    3.915882] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[    3.925659] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    3.933358] devtmpfs: mounted
[    3.937226] Freeing unused kernel memory: 2176K
[    3.941828] Run /sbin/init as init process
[    3.948615] random: fast init done
[    5.133367] systemd[1]: systemd 249.7+ running in system mode (+PAM -AUDIT -SELINUX -APPARMOR +IMA -SMACK +SECCOMP -GCRYPT -GNUTLS -OPENSSL +ACL +BLKID -CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP +LIBFDISK -PCRE2 -PWQUALITY -P11KIT -QRENCODE -BZIP2 -LZ4 -XZ -ZLIB +ZSTD +XKBCOMMON +UTMP +SYSVINIT default-hierarchy=hybrid)
[    5.163658] systemd[1]: Detected architecture arm64.

Welcome to PetaLinux 2022.2_release_S10071807 (honister)!

[    5.211246] systemd[1]: Hostname set to <zub1cg-sbc-2022-2>.
[    5.424820] systemd-sysv-generator[229]: SysV service '/etc/init.d/sshd' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.450216] systemd-sysv-generator[229]: SysV service '/etc/init.d/watchdog-init' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.478894] systemd-sysv-generator[229]: SysV service '/etc/init.d/umountnfs.sh' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.503539] systemd-sysv-generator[229]: SysV service '/etc/init.d/inetd.busybox' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.530944] systemd-sysv-generator[229]: SysV service '/etc/init.d/nfsserver' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.555164] systemd-sysv-generator[229]: SysV service '/etc/init.d/sendsigs' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.579315] systemd-sysv-generator[229]: SysV service '/etc/init.d/urandom' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.604009] systemd-sysv-generator[229]: SysV service '/etc/init.d/nfscommon' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.628081] systemd-sysv-generator[229]: SysV service '/etc/init.d/single' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.652286] systemd-sysv-generator[229]: SysV service '/etc/init.d/halt' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.676539] systemd-sysv-generator[229]: SysV service '/etc/init.d/rng-tools' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.701771] systemd-sysv-generator[229]: SysV service '/etc/init.d/save-rtc.sh' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.726963] systemd-sysv-generator[229]: SysV service '/etc/init.d/reboot' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.752049] systemd-sysv-generator[229]: SysV service '/etc/init.d/umountfs' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    6.172649] systemd[1]: Queued start job for default target Graphical Interface.
[    6.181261] random: systemd: uninitialized urandom read (16 bytes read)
[    6.215415] systemd[1]: Created slice Slice /system/getty.
[  OK  ] Created slice Slice /system/getty.
[    6.238091] random: systemd: uninitialized urandom read (16 bytes read)
[    6.246227] systemd[1]: Created slice Slice /system/modprobe.
[  OK  ] Created slice Slice /system/modprobe.
[    6.266015] random: systemd: uninitialized urandom read (16 bytes read)
[    6.273971] systemd[1]: Created slice Slice /system/serial-getty.
[  OK  ] Created slice Slice /system/serial-getty.
[    6.299138] systemd[1]: Created slice User and Session Slice.
[  OK  ] Created slice User and Session Slice.
[    6.322228] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[  OK  ] Started Dispatch Password …ts to Console Directory Watch.
[    6.346138] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[  OK  ] Started Forward Password R…uests to Wall Directory Watch.
[    6.370315] systemd[1]: Reached target Path Units.
[  OK  ] Reached target Path Units.
[    6.386018] systemd[1]: Reached target Remote File Systems.
[  OK  ] Reached target Remote File Systems.
[    6.406019] systemd[1]: Reached target Slice Units.
[  OK  ] Reached target Slice Units.
[    6.422033] systemd[1]: Reached target Swaps.
[  OK  ] Reached target Swaps.
[    6.439979] systemd[1]: Listening on RPCbind Server Activation Socket.
[  OK  ] Listening on RPCbind Server Activation Socket.
[    6.462025] systemd[1]: Reached target RPC Port Mapper.
[  OK  ] Reached target RPC Port Mapper.
[    6.483614] systemd[1]: Listening on Syslog Socket.
[  OK  ] Listening on Syslog Socket.
[    6.498198] systemd[1]: Listening on initctl Compatibility Named Pipe.
[  OK  ] Listening on initctl Compatibility Named Pipe.
[    6.522597] systemd[1]: Listening on Journal Audit Socket.
[  OK  ] Listening on Journal Audit Socket.
[    6.542238] systemd[1]: Listening on Journal Socket (/dev/log).
[  OK  ] Listening on Journal Socket (/dev/log).
[    6.566331] systemd[1]: Listening on Journal Socket.
[  OK  ] Listening on Journal Socket.
[    6.582522] systemd[1]: Listening on Network Service Netlink Socket.
[  OK  ] Listening on Network Service Netlink Socket.
[    6.606410] systemd[1]: Listening on udev Control Socket.
[  OK  ] Listening on udev Control Socket.
[    6.626224] systemd[1]: Listening on udev Kernel Socket.
[  OK  ] Listening on udev Kernel Socket.
[    6.646257] systemd[1]: Listening on User Database Manager Socket.
[  OK  ] Listening on User Database Manager Socket.
[    6.673141] systemd[1]: Mounting Huge Pages File System...
         Mounting Huge Pages File System...
[    6.693357] systemd[1]: Mounting POSIX Message Queue File System...
         Mounting POSIX Message Queue File System...
[    6.717459] systemd[1]: Mounting Kernel Debug File System...
         Mounting Kernel Debug File System...
[    6.734443] systemd[1]: Condition check resulted in Kernel Trace File System being skipped.
[    6.747807] systemd[1]: Mounting Temporary Directory /tmp...
         Mounting Temporary Directory /tmp...
[    6.772758] systemd[1]: Condition check resulted in Create List of Static Device Nodes being skipped.
[    6.785823] systemd[1]: Starting Load Kernel Module configfs...
         Starting Load Kernel Module configfs...
[    6.810167] systemd[1]: Starting Load Kernel Module drm...
         Starting Load Kernel Module drm...
[    6.834097] systemd[1]: Starting Load Kernel Module fuse...
         Starting Load Kernel Module fuse...
[    6.858075] systemd[1]: Starting RPC Bind...
         Starting RPC Bind...
[    6.878203] systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
[    6.917398] systemd[1]: Starting Load Kernel Modules...
         Starting Load Kernel Modules...
[    6.938408] systemd[1]: Starting Remount Root and Kernel File Systems...
         Starting Remount Root and Kernel File Systems...
[    6.966405] systemd[1]: Starting Coldplug All udev Devices...
         Starting Coldplug All udev Devices...
[    6.980154] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null). Quota mode: none.
[    6.989677] dmaproxy: loading out-of-tree module taints kernel.
[    7.006006] systemd[1]: Mounted Huge Pages File System.
[  OK  ] Mounted Huge Pages File System.
[    7.026472] systemd[1]: Mounted POSIX Message Queue File System.
[  OK  ] Mounted POSIX Message Queue File System.
[    7.050573] systemd[1]: Started RPC Bind.
[  OK  ] Started RPC Bind.
[    7.066736] systemd[1]: Mounted Kernel Debug File System.
[  OK  ] Mounted Kernel Debug File System.
[    7.094445] systemd[1]: Mounted Temporary Directory /tmp.
[  OK  ] Mounted Temporary Directory /tmp.
[    7.114931] systemd[1]: modprobe@configfs.service: Deactivated successfully.
[    7.123451] systemd[1]: Finished Load Kernel Module configfs.
[  OK  ] Finished Load Kernel Module configfs.
[    7.146851] systemd[1]: modprobe@drm.service: Deactivated successfully.
[    7.154802] systemd[1]: Finished Load Kernel Module drm.
[  OK  ] Finished Load Kernel Module drm.
[    7.178898] systemd[1]: modprobe@fuse.service: Deactivated successfully.
[    7.187266] systemd[1]: Finished Load Kernel Module fuse.
[  OK  ] Finished Load Kernel Module fuse.
[    7.211784] systemd[1]: Finished Load Kernel Modules.
[  OK  ] Finished Load Kernel Modules.
[    7.232333] systemd[1]: Finished Remount Root and Kernel File Systems.
[  OK  ] Finished Remount Root and Kernel File Systems.
[    7.261869] systemd[1]: Mounting NFSD configuration filesystem...
         Mounting NFSD configuration filesystem...
[    7.278723] systemd[1]: Condition check resulted in FUSE Control File System being skipped.
[    7.290811] systemd[1]: Mounting Kernel Configuration File System...
         Mounting Kernel Configuration File System...
[    7.324938] systemd[1]: Condition check resulted in Rebuild Hardware Database being skipped.
[    7.333698] systemd[1]: Condition check resulted in Platform Persistent Storage Archival being skipped.
[    7.347050] systemd[1]: Starting Apply Kernel Variables...
         Starting Apply Kernel Variables...
[    7.362302] systemd[1]: Condition check resulted in Create System Users being skipped.
         Starting Create Static Device Nodes in /dev...
[  OK  ] Mounted NFSD configuration filesystem.
[  OK  ] Mounted Kernel Configuration File System.
[  OK  ] Finished Apply Kernel Variables.
[  OK  ] Finished Create Static Device Nodes in /dev.
[  OK  ] Reached target Preparation for Local File Systems.
         Mounting /var/volatile...
[  OK  ] Started Entropy Daemon based on the HAVEGE algorithm.
         Starting Journal Service...
         Starting Rule-based Manage…for Device Events and Files...
[  OK  ] Mounted /var/volatile.
         Starting Load/Save Random Seed...
[  OK  ] Started Journal Service.
         Starting Flush Journal to Persistent Storage...
[  OK  ] Finished Flush Journal to Persistent Storage.
[  OK  ] Finished Coldplug All udev Devices.
[  OK  ] Started Rule-based Manager for Device Events and Files.
         Starting Wait for udev To …plete Device Initialization...
[    8.415360] zocl-drm amba_pl@0:zyxclmm_drm: IRQ index 32 not found
[  OK  ] Reached target Hardware activated USB gadget.
[  OK  ] Found device /dev/mmcblk0p1.
[  OK  ] Listening on Load/Save RF …itch Status /dev/rfkill Watch.
         Mounting /boot...
[  OK  ] Mounted /boot.
[  OK  ] Reached target Local File Systems.
         Starting Create Volatile Files and Directories...
[  OK  ] Finished Create Volatile Files and Directories.
         Starting Network Time Synchronization...
         Starting Record System Boot/Shutdown in UTMP...
[  OK  ] Finished Load/Save Random Seed.
[  OK  ] Finished Record System Boot/Shutdown in UTMP.
[  OK  ] Finished Wait for udev To Complete Device Initialization.
[  OK  ] Started Network Time Synchronization.
[  OK  ] Reached target System Time Set.
[  OK  ] Started Hardware RNG Entropy Gatherer Daemon.
[  OK  ] Reached target System Initialization.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Reached target Timer Units.
[  OK  ] Listening on D-Bus System Message Bus Socket.
         Starting sshd.socket...
[  OK  ] Listening on sshd.socket.
[  OK  ] Reached target Socket Units.
[  OK  ] Reached target Basic System.
[  OK  ] Started Kernel Logging Service.
[  OK  ] Started System Logging Service.
[  OK  ] Started D-Bus System Message Bus.
         Starting dfx-mgrd Dynamic Function eXchange...
         Starting Common GPIO Utilities...
         Starting IPv6 Packet Filtering Framework...
         Starting IPv4 Packet Filtering Framework...
         Starting rng-tools.service...
         Starting Resets System Activity Logs...
         Starting User Login Management...
[  OK  ] Started Xserver startup without a display manager.
         Starting OpenSSH Key Generation...
[  OK  ] Started dfx-mgrd Dynamic Function eXchange.
[  OK  ] Finished OpenSSH Key Generation.
[  OK  ] Finished IPv6 Packet Filtering Framework.
[  OK  ] Finished IPv4 Packet Filtering Framework.
[  OK  ] Started rng-tools.service.
[  OK  ] Finished Resets System Activity Logs.
[  OK  ] Finished Common GPIO Utilities.
[  OK  ] Reached target Preparation for Network.
         Starting Blinky Sample Application...
         Starting LSB: NFS support for both client and server...
         Starting Network Configuration...
 
*********************************************************************
***
***   Avnet ZUBoard 1CG Out Of Box PetaLinux Build V1.2
***   The PS LED is mapped to 334
***
*********************************************************************
 
[  OK  ] Started Blinky Sample Application.
[  OK  ] Started User Login Management.
[  OK  ] Started LSB: NFS support for both client and server.
         Starting inetd.busybox.service...
         Starting LSB: Kernel NFS server support...
[  OK  ] Started inetd.busybox.service.
[  OK  ] Started Network Configuration.
[  OK  ] Reached target Sound Card.
         Starting Network Name Resolution...
[FAILED] Failed to start LSB: Kernel NFS server support.
See 'systemctl status nfsserver.service' for details.
[  OK  ] Started Network Name Resolution.
[  OK  ] Reached target Network.
[  OK  ] Reached target Host and Network Name Lookups.
[  OK  ] Started NFS status monitor for NFSv2/3 locking..
         Starting Permit User Sessions...
         Starting Target Communication Framework agent...
[  OK  ] Started Xinetd A Powerful Replacement For Inetd.
[  OK  ] Finished Permit User Sessions.
[  OK  ] Started Getty on tty1.
[  OK  ] Started Serial Getty on ttyPS0.
[  OK  ] Reached target Login Prompts.
[  OK  ] Started Target Communication Framework agent.
[  OK  ] Reached target Multi-User System.
[  OK  ] Reached target Graphical Interface.
         Starting Record Runlevel Change in UTMP...
[  OK  ] Finished Record Runlevel Change in UTMP.

PetaLinux 2022.2_release_S10071807 zub1cg-sbc-2022-2 ttyPS0

zub1cg-sbc-2022-2 login: 

  1. 2023年07月20日 04:10 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

ZUBoard 1CG で Vitis-AI 3.0 をやってみる2

ZUBoard 1CG で Vitis-AI 3.0 をやってみる1”の続き。

ZUBoard - Adding support for Vitis-AI 3.0”をやっていたが、どうもうまく行かないので、そのBSP を使って”KV260向けにVitisプラットフォームを作成してDPUを動かす その1 (Vitis 2022.1 + Vitis-AI v2.5)”の手順でやってみようということで、前回は、Petalinux のプロジェクトを zub1cg_sbc_base_2022_2_jupyter.bsp を使って作成し、Vitis-AI を使う環境を整えて、ビルドしたところ成功した。今回は、Sysroot(SDK)をビルドし、できた sdk.sh を展開して、sysroot を生成した。xsct を使用したデバイスツリー・オーバレイを作成し、pl.dtsi をコンパイルして pl.dtbo を生成した。

Sysroot(SDK)をビルドする。
petalinux-build --sdk
ZUBoard1CG_151_230718.png

sdk.sh が ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/images/linux ディレクトリに生成された。

sysroots ディレクトリを ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2 ディレクトリに展開した。
images/linux/sdk.sh -d ./
ZUBoard1CG_152_230718.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/sysroots ディレクトリが生成され、その下に cortexa72-cortexa53-xilinx-linux, x86_64-petalinux-linux ディレクトリが生成された。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2 ディレクトリに pfm ディレクトリを作成し、その下に boot ディレクトリと sd_dir ディレクトリを作成した。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/images/linux ディレクトリの bl31.elf, pmufw.elf, system.dtb, u-boot.elf, zynqmp_fsbl.elf のファイルを ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/pfm/boot ディレクトリにコピーした。
ZUBoard1CG_153_230718.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/pfm ディレクトリで xsct コマンドを実行した。
xsct
createdts -hw ../../../../hdl/projects/zub1cg_sbc_base_2022_2/zub1cg_sbc_base.xsa -zocl -platform-name zub1cg_sbc_2022_2 -git-branch xlnx_rel_v2022.2 -overlay -compile -out ./dtg_output
exit

ZUBoard1CG_157_230718.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/pfm/dtg_output/dtg_output/zub1cg_sbc_2022_2/psu_cortexa53_0/device_tree_domain/bsp ディレクトリに pl.dtsi ファイルが生成された。

pl.dtsi をコンパイルして pl.dtbo を生成する。
cd /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/pfm/dtg_output/dtg_output/zub1cg_sbc_2022_2/psu_cortexa53_0/device_tree_domain/bsp
dtc -@ -O dtb -o pl.dtbo pl.dtsi

ZUBoard1CG_158_230718.png

pl.dtbo が生成された。
ZUBoard1CG_159_230718.png
  1. 2023年07月19日 04:11 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

ZUBoard 1CG で Vitis-AI 3.0 をやってみる1

ZUBoard - Adding support for Vitis-AI 3.0”をやっていたが、どうもうまく行かないので、そのBSP を使って”KV260向けにVitisプラットフォームを作成してDPUを動かす その1 (Vitis 2022.1 + Vitis-AI v2.5)”の手順でやってみようと思う。今回は、Petalinux のプロジェクトを zub1cg_sbc_base_2022_2_jupyter.bsp を使って作成し、Vitis-AI を使う環境を整えて、ビルドしたところ成功した。

最初に zub1cg_sbc_2022_2 ディレクトリを消去した。
ZUBoard1CG/Avnet_2022_2/petalinux/projects ディレクトリに移動した。

”ZUBoard - Combining designs into a single platform”の真似をしてみる1”で作成した zub1cg_sbc_base_2022_2_jupyter.bsp を使用して、Petalinux 2022.2 プロジェクトの zub1cg_sbc_2022_2 プロジェクトを作成した。
petalinux-create -t project -s zub1cg_sbc_base_2022_2_jupyter.bsp -n zub1cg_sbc_2022_2

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/project-spec/configs/config ファイルを編集する。
以下のように変更した。

CONFIG_SUBSYSTEM_HOSTNAME="zub1cg-sbc-2022-2"
CONFIG_SUBSYSTEM_PRODUCT="zub1cg_sbc_2022_2"


base の Viavdo プロジェクトを使用するように設定した。
cd zub1cg_sbc_2022_2/
petalinux-config --silentconfig --get-hw-description=../../../hdl/projects/zub1cg_sbc_base_2022_2


ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/project-spec/meta-user/conf/user-rootfsconfig に以下の項目を追加した。

CONFIG_xmutil
CONFIG_xrt
CONFIG_vitis-ai-library
CONFIG_vitis-ai-library-dev
CONFIG_vitis-ai-library-dbg


xmutil, xrt, vitis-ai-library の有効化を行った。
petalinux-config -c rootfs
user packages に入って、xmutil, xrt, vitis-ai-library にスペース・キーで * を表示させて有効化した。
ZUBoard1CG_148_230717.png

ビルドを行ったところ、成功した。
petalinux-build
ZUBoard1CG_149_230717.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/images/linux/rootfs.wic が生成された。
ZUBoard1CG_150_230717.png
  1. 2023年07月18日 04:47 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

”ZUBoard - Adding support for Vitis-AI 3.0”をやってみる2

”ZUBoard - Adding support for Vitis-AI 3.0”をやってみる1”の続き。

ZUBoard - Adding support for Vitis-AI 3.0”をやって見ようということで、前回は、、”kria-vitis プラットフォームを理解する”と”zub1cg_sbc_base プラットフォームの構築”、”ベンチマークオーバーレイの構築”をやってみた。今回は、”avnet-zub1cg-benchmark アプリの作成”と”Vitis-AI 3.0 yocto レシピの追加”をやってみた。petalinux-build を行ったところエラーになったが、User layer を追加すると petalinux-build が成功した。

avnet-zub1cg-benchmark アプリの作成
avnet_zub1cg_benchmark ディレクトリを作成し、bit, xclbin, shell.json, dtsi ファイルを用意する。
cd ../../petalinux/projects/zub1cg_sbc_2022_2/
mkdir -p firmware/avnet_zub1cg_benchmark
cp ../../../avnet-vitis-platforms/zub1cg/overlays/examples/benchmark/binary_container_1/sd_card/zub1cg_sbc_base_wrapper.bit firmware/avnet_zub1cg_benchmark/avnet_zub1cg_benchmark.bit
cp ../../../avnet-vitis-platforms/zub1cg/overlays/examples/benchmark/binary_container_1/sd_card/dpu.xclbin firmware/avnet_zub1cg_benchmark/avnet_zub1cg_benchmark.xclbin
cp pfm/dtg_output/dtg_output/zub1cg_sbc_2022_2/psu_cortexa53_0/device_tree_domain/bsp/pl.dtsi firmware/avnet_zub1cg_benchmark/avnet_zub1cg_benchmark.dtsi

ZUBoard1CG_126_230717.png

dtsi ファイルは pfm/dtg_output/dtg_output/zub1cg_sbc_2022_2/psu_cortexa53_0/device_tree_domain/bsp/pl.dtsi を使用した。
現在の avnet_zub1cg_benchmark ディレクトリを示す。
ZUBoard1CG_127_230717.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/firmware/avnet_zub1cg_benchmark/avnet_zub1cg_benchmark.dtsi のビットストリーム名を avnet_zub1cg_benchmark.bit.bin に変更した。
ZUBoard1CG_128_230717.png

petalinux-create でファームウェア オーバーレイを作成した。
petalinux-create -t apps \
                  --template fpgamanager -n avnet-zub1cg-benchmark \
                  --enable \
                  --srcuri "firmware/avnet_zub1cg_benchmark/avnet_zub1cg_benchmark.bit  \
                            firmware/avnet_zub1cg_benchmark/avnet_zub1cg_benchmark.xclbin \
                            firmware/avnet_zub1cg_benchmark/avnet_zub1cg_benchmark.dtsi \
                            firmware/avnet_zub1cg_benchmark/shell.json" \
                  --force

ZUBoard1CG_129_230717.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/project-spec/meta-user/conf/user-rootfsconfig に次の行を追加した。

CONFIG_vitis_ai_library
CONFIG_vitis_ai_library-dev
CONFIG_vitis_ai_library-dbg


ZUBoard1CG_130_230717.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/project-spec/configs/rootfs_config に次の行を追加した。

CONFIG_vitis_ai_library=y
CONFIG_vitis_ai_library-dev=y


ZUBoard1CG_131_230717.png

Vitis-AI 3.0 yocto レシピの追加
Vitis-AI 3.0 リポジトリのクローンを作成する。
cd ../../..
git clone -b v3.0 https://github.com/Xilinx/Vitis-AI

ZUBoard1CG_132_230717.png

Vitis-AI 3.0 の yocto レシピをコピーして、vart_3.0_vivado.bb レシピを削除する。
cd petalinux/projects/zub1cg_sbc_2022_2
cp -r ../../../Vitis-AI/src/vai_petalinux_recipes/recipes-vitis-ai project-spec/meta-user/.
rm project-spec/meta-user/recipes-vitis-ai/vart/vart_3.0_vivado.bb

ZUBoard1CG_133_230717.png

ビルドしたらエラーだった。
petalinux-build
ZUBoard1CG_134_230717.png

エラー内容を示す。

ERROR: Nothing RPROVIDES 'vitis' (but /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/components/yocto/layers/meta-petalinux/recipes-core/images/petalinux-image-minimal.bb RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'vitis' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['vitis']
ERROR: Required build target 'petalinux-image-minimal' has no buildable providers.
Missing or unbuildable dependency chain was: ['petalinux-image-minimal', 'vitis']

  1. 2023年07月17日 07:41 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

”ZUBoard - Adding support for Vitis-AI 3.0”をやってみる1

ZUBoard - Adding support for Vitis-AI 3.0”をやって見ようということで、今回は、”kria-vitis プラットフォームを理解する”と”zub1cg_sbc_base プラットフォームの構築”、”ベンチマークオーバーレイの構築”をやってみた。

kria-vitis プラットフォームを理解する
プラットフォーム毎に(KV260など)ディレクトリ構造はオーバーレイとプラットフォームに分かれているそうです。
https://github.com/Xilinx/kria-vitis-platforms/tree/xlnx_rel_v2022.2
ZUBoard1CG_117_230714.png

Avnet の zub1cg のディレクトリ構造もオーバーレイとプラットフォームに分かれているようだ。
ZUBoard1CG_118_230714.png

avnet-vitis-platforms のダウンロード
avnet-vitis-platforms を構築する方法が ”ZUBoard - Adding support for Vitis-AI 3.0” に書いてあるが、Github から Avnet_2022_2 ディレクトリにクローンすることにする。
git clone -b 2022.2 https://github.com/AlbertaBeef/avnet-vitis-platforms --recursive
ZUBoard1CG_119_230715.png

zub1cg_sbc_base プラットフォームの構築
Avnet_2022_2/avnet-vitis-platforms/zub1cg ディレクトリに行ってビルドを行って成功した。
make platform PFM=zub1cg_sbc_base
ZUBoard1CG_120_230715.png
ZUBoard1CG_121_230715.png

Vitis プラットフォームにクエリを実行した。
platforminfo platforms/avnet_zub1cg_sbc_base_2022_2/zub1cg_sbc_base.xpfm
ZUBoard1CG_122_230715.png

(base) masaaki@masaaki-H110M4-M01:/media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/avnet-vitis-platforms/zub1cg$ platforminfo platforms/avnet_zub1cg_sbc_base_2022_2/zub1cg_sbc_base.xpfm
==========================
Basic Platform Information
==========================
Platform:           zub1cg_sbc_base
File:               /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/avnet-vitis-platforms/zub1cg/platforms/avnet_zub1cg_sbc_base_2022_2/zub1cg_sbc_base.xpfm
Description:        
zub1cg_sbc_base
    

=====================================
Hardware Platform (Shell) Information
=====================================
Vendor:                           avnet
Board:                            zub1cg_sbc_base
Name:                             zub1cg_sbc_base
Version:                          1.0
Generated Version:                2022.2
Hardware:                         1
Software Emulation:               1
Hardware Emulation:               1
Hardware Emulation Platform:      0
FPGA Family:                      zynquplus
FPGA Device:                      xczu1cg
Board Vendor:                     avnet.com
Board Name:                       avnet.com:zuboard_1cg:1.1
Board Part:                       xczu1cg-sbva484-1-e

=================
Clock Information
=================
  Default Clock Index: 0
  Clock Index:         0
    Frequency:         150.000000
  Clock Index:         1
    Frequency:         300.000000
  Clock Index:         2
    Frequency:         75.000000
  Clock Index:         3
    Frequency:         100.000000
  Clock Index:         4
    Frequency:         200.000000
  Clock Index:         5
    Frequency:         400.000000
  Clock Index:         6
    Frequency:         600.000000

=====================
Resource Availability
=====================
  =====
  Total
  =====
    LUTs:  33938
    FFs:   71128
    BRAMs: 108
    DSPs:  216

==================
Memory Information
==================
  Bus SP Tag: HP0
  Bus SP Tag: HP1
  Bus SP Tag: HP2
  Bus SP Tag: HP3
  Bus SP Tag: HPC0
  Bus SP Tag: HPC1

=============================
Software Platform Information
=============================
Number of Runtimes:            1
Default System Configuration:  zub1cg_sbc_base
System Configurations:
  System Config Name:                      zub1cg_sbc_base
  System Config Description:               zub1cg_sbc_base
  System Config Default Processor Group:   smp_linux
  System Config Default Boot Image:        standard
  System Config Is QEMU Supported:         1
  System Config Processor Groups:
    Processor Group Name:      smp_linux
    Processor Group CPU Type:  cortex-a53
    Processor Group OS Name:   linux
  System Config Boot Images:
    Boot Image Name:           standard
    Boot Image Type:           
    Boot Image BIF:            zub1cg_sbc_base/boot/linux.bif
    Boot Image Data:           zub1cg_sbc_base/smp_linux/image
    Boot Image Boot Mode:      sd
    Boot Image RootFileSystem: 
    Boot Image Mount Path:     /mnt
    Boot Image Read Me:        zub1cg_sbc_base/boot/generic.readme
    Boot Image QEMU Args:      zub1cg_sbc_base/qemu/pmu_args.txt:zub1cg_sbc_base/qemu/qemu_args.txt
    Boot Image QEMU Boot:      
    Boot Image QEMU Dev Tree:  
Supported Runtimes:
  Runtime: OpenCL


ベンチマークオーバーレイの構築
ベンチマーク オーバーレイを構築した。
make overlay OVERLAY=benchmark
ZUBoard1CG_123_230715.png
ZUBoard1CG_124_230715.png

ビルドした結果として生成されたファイルを示す。
ZUBoard1CG_125_230715.png
  1. 2023年07月15日 15:17 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

”ZUBoard - Combining designs into a single platform”の真似をしてみる4

”ZUBoard - Combining designs into a single platform”の真似をしてみる3”の続き。

デバイス・ツリーのエラーの原因が分からないので、”ZUBoard - Combining designs into a single platform”と似たような事を独自にやっていこうということで、前回は、Vitis 2022.2 を立ち上げて zub1cg_sbc_2022_2 プラットフォームを作成し、zub1cg_sbc_vadd アプリケーション・プロジェクトを作成し、ビルドを行って成功した。Vivado のプロジェクトの zub1cg_sbc_base ブロック・デザインを確認した。今回は、ZUBoard 1CG に送るファイルを集めて、SFTP で転送し、xmutil で zub1cg_sbc_vadd をロードしたところエラーになった。

ファイルを ZUBoard 1CG に転送するために必要なファイルを集める。
ZUBoard1CG/Avnet_2022_2/vitis_work/vadd_file_transfer ディレクトリを作成した。
ZUBoard1CG_108_230713.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/pfm/dtg_output/dtg_output/zub1cg_sbc_2022_2/psu_cortexa53_0/device_tree_domain/bsp/pl.dtbo を vadd_file_transfer ディレクトリにコピーした。
ZUBoard1CG_109_230713.png

ZUBoard1CG/Avnet_2022_2/vitis_work/zub1cg_sbc_vadd_system/Hardware/binary_container_1.xclbin を vadd_file_transfer ディレクトリにコピーした。
ZUBoard1CG_110_230713.png

ZUBoard1CG/Avnet_2022_2/vitis_work/zub1cg_sbc_vadd/Hardware/zub1cg_sbc_vadd を vadd_file_transfer ディレクトリにコピーした。
ZUBoard1CG_111_230713.png

shell.json を作成して、vadd_file_transfer ディレクトリにセーブした。
Accelerated Design Development on Kria KR260 in Vitis 2022.1”から shell.json の内容を引用する。

{
  "shell_type" : "XRT_FLAT",
  "num_slots": "1"
}


現在の vadd_file_transfer ディレクトリの様子を示す。
ZUBoard1CG_112_230713.png

ZUBoard 1CG で Petalinux 2022.2 を起動した。
ホーム・ディレクトリに examples/zub1cg_sbc_vadd ディレクトリを作成した。
cd
mkdir examples
cd examples
mkdir zub1cg_sbc_vadd
cd zub1cg_sbc_vadd


FileZilla を起動して、ZUBoard 1CG の Petalinux 2022.2 へ SFTP で vadd_file_transfer ディレクトリのファイルを転送した。
ZUBoard1CG_113_230713.png

/lib/firmware/xilinx/zub1cg_sbc_vadd ディレクトリを作成した。
sudo mkdir /lib/firmware/xilinx/zub1cg_sbc_vadd

binary_container_1.xclbin の名前を binary_container_1.bin に変更する。こうしないと、XRT は FPGA ビットストリームを抽出して Kria のプログラマブル ロジックをコンフィグレーションすることができないそうだ。
mv binary_container_1.xclbin binary_container_1.bin

pl.dtbo binary_container_1.bin shell.json ファイルを /lib/firmware/xilinx/zub1cg_sbc_vadd ディレクトリにコピーした。
sudo cp pl.dtbo binary_container_1.bin shell.json /lib/firmware/xilinx/zub1cg_sbc_vadd
ZUBoard1CG_114_230713.png

アクセラレーション・アプリケーションを確認して、zub1cg_sbc_vadd をロードしたところエラーになった。
ZUBoard1CG_115_230713.png

ターミナルの様子を示す。
ZUBoard1CG_116_230713.png
  1. 2023年07月14日 04:01 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

”ZUBoard - Combining designs into a single platform”の真似をしてみる3

”ZUBoard - Combining designs into a single platform”の真似をしてみる2”の続き。

デバイス・ツリーのエラーの原因が分からないので、”ZUBoard - Combining designs into a single platform”と似たような事を独自にやっていこうということで、前回は、Sysroot(SDK)をビルドし、できた sdk.sh を展開して、sysroot を生成した。xsct を使用したデバイスツリー・オーバレイを作成し、pl.dtsi をコンパイルして pl.dtbo を生成した。今回は、Vitis 2022.2 を立ち上げて zub1cg_sbc_2022_2 プラットフォームを作成し、zub1cg_sbc_vadd アプリケーション・プロジェクトを作成し、ビルドを行って成功した。Vivado のプロジェクトの zub1cg_sbc_base ブロック・デザインを確認した。

すでに source /media/masaaki/Ubuntu_Disk/tools/Xilinx/Vitis/2022.2/settings64.sh は実行済みだ。

vitis &
で Vitis 2022.2 を起動した。

Vitis IDE Launcher ダイアログが表示された。
Workspace に ZUBoard1CG/Avnet_2022_2/vitis_work を指定した。
Launch ボタンをクリックした。
ZUBoard1CG_93_230712.png

Vitis 2022.2 が立ち上がった。
Create Platform Project をクリックして、プラットフォーム・プロジェクトを作成する。
ZUBoard1CG_94_230712.png

New Platform Project ダイアログの Create new platform project 画面が開く。
Platform project name に zub1cg_sbc_2022_2 と入力した。
Next > ボタンをクリックする。
ZUBoard1CG_95_230712.png

Platform 画面
Hardware Specification の XSA File に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/hdl/projects/zub1cg_sbc_base_2022_2/zub1cg_sbc_base.xsa を指定した。
Software Specification の Operating system には linux を、Processor には psu_cortexa53 を指定した。
Boot Componetnts の Generate boot components のチェックを外す
Finish ボタンをクリックする。
ZUBoard1CG_96_230712.png

zub1cg_sbc_2022_2 プラットフォーム・プロジェクトが作成された。
platform.spr で、zub1cg_sbc_2022_2 -> psu_cortexa53 -> linux on psu_cortexa53 をクリックして選択する。
Bif File: の Browse... の右端の下向き三角をクリックし、Generate Bif を選択する。

Boot Components Directory: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/pfm/boot を指定した。
FAT32 Partition Directory: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/pfm/sd_dir を指定した。
トンカチ・ボタンをクリックして、ビルドを行った。
ZUBoard1CG_97_230712.png

Explorer の export -> zub1cg_sbc_2022_2 プラットフォームが生成された
その下に hw と sw ディレクトリが生成されている。
ZUBoard1CG_98_230712.png

Vitis 2022.2 でアプリケーション・プロジェクトを作成する。
Vitis 2022.2 で File メニューから New -> Application Project... を選択してアプリケーション・プロジェクトを新規作成する。
New Application Project ダイアログの Create a New Application Project 画面が開く。
Next > ボタンをクリックする。

Platform 画面
zub1cg_sbc_2022_2 プラットフォームを選択する。
Next > ボタンをクリックする。
ZUBoard1CG_99_230712.png

Application Project Details 画面
Application project name: に zub1cg_sbc_vadd と入力する。
Next > ボタンをクリックする。
ZUBoard1CG_100_230712.png

Domain 画面
Application settings を入力する。
Sysroot paht: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/sysroots/cortexa72-cortexa53-xilinx-linux を入力する。
Root FS: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/images/linux/rootfs.ext4 を入力する。
Kernel Image: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/images/linux/Image を入力する。
Next > ボタンをクリックする。
ZUBoard1CG_101_230712.png

Template 画面
Simple Vector Addition を選択する。
Finish ボタンをクリックする。
ZUBoard1CG_102_230712.png

Active build configuration: で Hardware を選択し、Explorer で zub1cg_sbc_vadd_system を選択し、トンカチ・ボタンをクリックしてビルドを行った。
ZUBoard1CG_103_230712.png

ビルドに成功した。
ZUBoard1CG_104_230712.png

ビルド後の Vivado プロジェクトを見てみよう。
Vivado プロジェクトは ZUBoard1CG/Avnet_2022_2/vitis_work/zub1cg_sbc_vadd_system_hw_link/Hardware/binary_container_1.build/link/vivado/vpl/prj に作成されていた。
ZUBoard1CG_105_230712.png

Vivado 2022.2 を起動して、プロジェクトを読み込んだ。
zub1cg_sbc_base ブロック・デザインを示す。
ZUBoard1CG_106_230712.png

Address Editor 画面を示す。
ZUBoard1CG_107_230712.png
  1. 2023年07月12日 05:11 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

”ZUBoard - Combining designs into a single platform”の真似をしてみる2

”ZUBoard - Combining designs into a single platform”の真似をしてみる1”の続き。

デバイス・ツリーのエラーの原因が分からないので、”ZUBoard - Combining designs into a single platform”と似たような事を独自にやっていこうということで、前回は、、zub1cg_sbc_base_2022_2 だけの Petalinux プロジェクト zub1cg_sbc_2022_2 を作成しビルドして、成功した。できた wic ファイルを MicroSD カードに書いて、ZUBoard 1CG に挿入して、ブートしたところ Petalinux 起動した。今回は、Sysroot(SDK)をビルドし、できた sdk.sh を展開して、sysroot を生成した。xsct を使用したデバイスツリー・オーバレイを作成し、pl.dtsi をコンパイルして pl.dtbo を生成した。

Sysroot(SDK)をビルドする。
petalinux-build --sdk
ZUBoard1CG_83_230709.png

sdk.sh が ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/images/linux ディレクトリに生成された。
ZUBoard1CG_85_230709.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2 ディレクトリに pfm ディレクトリを作成し、その下に boot ディレクトリと sd_dir ディレクトリを作成した。
mkdir pfm
cd pfm
mkdir boot
mkdir sd_dir


ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/images/linux ディレクトリの bl31.elf, pmufw.elf, system.dtb, u-boot.elf, zynqmp_fsbl.elf のファイルを ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/pfm/boot ディレクトリにコピーした。
ZUBoard1CG_86_230709.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/images/linux ディレクトリで sysroots ディレクトリを ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2 ディレクトリに展開した。
./sdk.sh -d ../../
ZUBoard1CG_89_230709.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/sysroots ディレクトリが生成され、その下に cortexa72-cortexa53-xilinx-linux, x86_64-petalinux-linux ディレクトリが生成された。
ZUBoard1CG_90_230709.png

xsct コマンドを使用してデバイスツリー・オーバレイの pl.dtsi と pl.dtbo を作成する

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/pfm ディレクトリで xsct コマンドを実行した。
xsct
createdts -hw ../../../../hdl/projects/zub1cg_sbc_base_2022_2/zub1cg_sbc_base.xsa -zocl -platform-name zub1cg_sbc_2022_2 -git-branch xlnx_rel_v2022.2 -overlay -compile -out ./dtg_output
exit

ZUBoard1CG_87_230709.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/pfm/dtg_output/dtg_output/zub1cg_sbc_2022_2/psu_cortexa53_0/device_tree_domain/bsp ディレクトリに pl.dtsi ファイルが生成された。
ZUBoard1CG_88_230709.png

pl.dtsi を貼っておく。

/*
 * CAUTION: This file is automatically generated by Xilinx.
 * Version: XSCT 2022.2
 * Today is: Mon Jul 10 20:29:15 2023
 */


/dts-v1/;
/plugin/;
/ {
    fragment@0 {
        target = <&fpga_full>;
        overlay0: __overlay__ {
            #address-cells = <2>;
            #size-cells = <2>;
            firmware-name = "zub1cg_sbc_base.bit.bin";
            pid = <0x0>;
            resets = <&zynqmp_reset 116>;
            uid = <0x0>;
        };
    };
    fragment@1 {
        target = <&amba>;
        overlay1: __overlay__ {
            afi0: afi0 {
                compatible = "xlnx,afi-fpga";
                config-afi = < 0 0>, <1 0>, <2 0>, <3 0>, <4 0>, <5 0>, <6 0>, <7 0>, <8 0>, <9 0>, <10 0>, <11 0>, <12 0>, <13 0>, <14 0xa00>, <15 0x000>;
            };
            clocking0: clocking0 {
                #clock-cells = <0>;
                assigned-clock-rates = <100000000>;
                assigned-clocks = <&zynqmp_clk 71>;
                clock-output-names = "fabric_clk";
                clocks = <&zynqmp_clk 71>;
                compatible = "xlnx,fclk";
            };
        };
    };
    fragment@2 {
        target = <&amba>;
        overlay2: __overlay__ {
            #address-cells = <2>;
            #size-cells = <2>;
            axi_gpio_0: gpio@a0000000 {
                #gpio-cells = <2>;
                clock-names = "s_axi_aclk";
                clocks = <&zynqmp_clk 71>;
                compatible = "xlnx,axi-gpio-2.0", "xlnx,xps-gpio-1.00.a";
                gpio-controller ;
                reg = <0x0 0xa0000000 0x0 0x10000>;
                xlnx,all-inputs = <0x0>;
                xlnx,all-inputs-2 = <0x0>;
                xlnx,all-outputs = <0x1>;
                xlnx,all-outputs-2 = <0x0>;
                xlnx,dout-default = <0x00000000>;
                xlnx,dout-default-2 = <0x00000000>;
                xlnx,gpio-width = <0x3>;
                xlnx,gpio2-width = <0x20>;
                xlnx,interrupt-present = <0x0>;
                xlnx,is-dual = <0x0>;
                xlnx,tri-default = <0xFFFFFFFF>;
                xlnx,tri-default-2 = <0xFFFFFFFF>;
            };
            axi_gpio_1: gpio@a0010000 {
                #gpio-cells = <2>;
                clock-names = "s_axi_aclk";
                clocks = <&zynqmp_clk 71>;
                compatible = "xlnx,axi-gpio-2.0", "xlnx,xps-gpio-1.00.a";
                gpio-controller ;
                reg = <0x0 0xa0010000 0x0 0x10000>;
                xlnx,all-inputs = <0x0>;
                xlnx,all-inputs-2 = <0x0>;
                xlnx,all-outputs = <0x1>;
                xlnx,all-outputs-2 = <0x0>;
                xlnx,dout-default = <0x00000000>;
                xlnx,dout-default-2 = <0x00000000>;
                xlnx,gpio-width = <0x3>;
                xlnx,gpio2-width = <0x20>;
                xlnx,interrupt-present = <0x0>;
                xlnx,is-dual = <0x0>;
                xlnx,tri-default = <0xFFFFFFFF>;
                xlnx,tri-default-2 = <0xFFFFFFFF>;
            };
            axi_gpio_2: gpio@a0020000 {
                #gpio-cells = <2>;
                clock-names = "s_axi_aclk";
                clocks = <&zynqmp_clk 71>;
                compatible = "xlnx,axi-gpio-2.0", "xlnx,xps-gpio-1.00.a";
                gpio-controller ;
                reg = <0x0 0xa0020000 0x0 0x10000>;
                xlnx,all-inputs = <0x1>;
                xlnx,all-inputs-2 = <0x0>;
                xlnx,all-outputs = <0x0>;
                xlnx,all-outputs-2 = <0x0>;
                xlnx,dout-default = <0x00000000>;
                xlnx,dout-default-2 = <0x00000000>;
                xlnx,gpio-width = <0x1>;
                xlnx,gpio2-width = <0x20>;
                xlnx,interrupt-present = <0x0>;
                xlnx,is-dual = <0x0>;
                xlnx,tri-default = <0xFFFFFFFF>;
                xlnx,tri-default-2 = <0xFFFFFFFF>;
            };
            axi_iic_0: i2c@a0030000 {
                #address-cells = <1>;
                #size-cells = <0>;
                clock-names = "s_axi_aclk";
                clocks = <&zynqmp_clk 71>;
                compatible = "xlnx,axi-iic-2.1", "xlnx,xps-iic-2.00.a";
                interrupt-names = "iic2intc_irpt";
                interrupt-parent = <&gic>;
                interrupts = <0 89 4>;
                reg = <0x0 0xa0030000 0x0 0x10000>;
            };
            axi_iic_1: i2c@a0040000 {
                #address-cells = <1>;
                #size-cells = <0>;
                clock-names = "s_axi_aclk";
                clocks = <&zynqmp_clk 71>;
                compatible = "xlnx,axi-iic-2.1", "xlnx,xps-iic-2.00.a";
                interrupt-names = "iic2intc_irpt";
                interrupt-parent = <&gic>;
                interrupts = <0 90 4>;
                reg = <0x0 0xa0040000 0x0 0x10000>;
            };
            axi_iic_2: i2c@a0050000 {
                #address-cells = <1>;
                #size-cells = <0>;
                clock-names = "s_axi_aclk";
                clocks = <&zynqmp_clk 71>;
                compatible = "xlnx,axi-iic-2.1", "xlnx,xps-iic-2.00.a";
                interrupt-names = "iic2intc_irpt";
                interrupt-parent = <&gic>;
                interrupts = <0 91 4>;
                reg = <0x0 0xa0050000 0x0 0x10000>;
            };
            axi_intc_0: interrupt-controller@a0060000 {
                #interrupt-cells = <2>;
                clock-names = "s_axi_aclk";
                clocks = <&zynqmp_clk 71>;
                compatible = "xlnx,axi-intc-4.1", "xlnx,xps-intc-1.00.a";
                interrupt-controller ;
                interrupt-names = "irq";
                interrupt-parent = <&gic>;
                interrupts = <0 94 1>;
                reg = <0x0 0xa0060000 0x0 0x10000>;
                xlnx,kind-of-intr = <0x1>;
                xlnx,num-intr-inputs = <0x20>;
            };
            axi_quad_spi_0: axi_quad_spi@a0070000 {
                bits-per-word = <8>;
                clock-names = "ext_spi_clk", "s_axi_aclk";
                clocks = <&zynqmp_clk 71>, <&zynqmp_clk 71>;
                compatible = "xlnx,axi-quad-spi-3.2", "xlnx,xps-spi-2.00.a";
                fifo-size = <16>;
                interrupt-names = "ip2intc_irpt";
                interrupt-parent = <&gic>;
                interrupts = <0 93 1>;
                num-cs = <0x2>;
                reg = <0x0 0xa0070000 0x0 0x10000>;
                xlnx,num-ss-bits = <0x2>;
                xlnx,spi-mode = <0>;
            };
            axi_uartlite_0: serial@a0080000 {
                clock-names = "s_axi_aclk";
                clocks = <&zynqmp_clk 71>;
                compatible = "xlnx,axi-uartlite-2.0", "xlnx,xps-uartlite-1.00.a";
                current-speed = <115200>;
                device_type = "serial";
                interrupt-names = "interrupt";
                interrupt-parent = <&gic>;
                interrupts = <0 92 1>;
                port-number = <0>;
                reg = <0x0 0xa0080000 0x0 0x10000>;
                xlnx,baudrate = <0x1c200>;
                xlnx,data-bits = <0x8>;
                xlnx,odd-parity = <0x0>;
                xlnx,s-axi-aclk-freq-hz-d = "100.0";
                xlnx,use-parity = <0x0>;
            };
            system_management_wiz_0: system_management_wiz@a0090000 {
                /* This is a place holder node for a custom IP, user may need to update the entries */
                clock-names = "s_axi_aclk";
                clocks = <&zynqmp_clk 71>;
                compatible = "xlnx,system-management-wiz-1.3";
                reg = <0x0 0xa0090000 0x0 0x10000>;
                xlnx,alarm-limit-r0 = <0xb794>;
                xlnx,alarm-limit-r1 = <0x4e81>;
                xlnx,alarm-limit-r10 = <0x4963>;
                xlnx,alarm-limit-r11 = <0x451e>;
                xlnx,alarm-limit-r12 = <0x4963>;
                xlnx,alarm-limit-r13 = <0x451e>;
                xlnx,alarm-limit-r14 = <0x9a74>;
                xlnx,alarm-limit-r15 = <0x91eb>;
                xlnx,alarm-limit-r2 = <0xa147>;
                xlnx,alarm-limit-r3 = <0xcba3>;
                xlnx,alarm-limit-r4 = <0xab03>;
                xlnx,alarm-limit-r5 = <0x4963>;
                xlnx,alarm-limit-r6 = <0x9555>;
                xlnx,alarm-limit-r7 = <0xb00a>;
                xlnx,alarm-limit-r8 = <0x4e81>;
                xlnx,alarm-limit-r9 = <0x4963>;
                xlnx,alarm-limit-slave0-ssit-usl1 = <0x4c5e>;
                xlnx,alarm-limit-slave0-ssit-usl2 = <0x4bf2>;
                xlnx,alarm-limit-slave0-ssit-usl3 = <0x98bf>;
                xlnx,alarm-limit-slave0-ssit-usl4 = <0x98bf>;
                xlnx,alarm-limit-slave0-ssit-usu1 = <0x4d39>;
                xlnx,alarm-limit-slave0-ssit-usu2 = <0x4da7>;
                xlnx,alarm-limit-slave0-ssit-usu3 = <0x9a74>;
                xlnx,alarm-limit-slave0-ssit-usu4 = <0x9a74>;
                xlnx,alarm-limit-slave1-ssit-usl1 = <0x4c5e>;
                xlnx,alarm-limit-slave1-ssit-usl2 = <0x4bf2>;
                xlnx,alarm-limit-slave1-ssit-usl3 = <0x98bf>;
                xlnx,alarm-limit-slave1-ssit-usl4 = <0x98bf>;
                xlnx,alarm-limit-slave1-ssit-usu1 = <0x4d39>;
                xlnx,alarm-limit-slave1-ssit-usu2 = <0x4da7>;
                xlnx,alarm-limit-slave1-ssit-usu3 = <0x9a74>;
                xlnx,alarm-limit-slave1-ssit-usu4 = <0x9a74>;
                xlnx,alarm-limit-slave2-ssit-usl1 = <0x4c5e>;
                xlnx,alarm-limit-slave2-ssit-usl2 = <0x4bf2>;
                xlnx,alarm-limit-slave2-ssit-usl3 = <0x98bf>;
                xlnx,alarm-limit-slave2-ssit-usl4 = <0x98bf>;
                xlnx,alarm-limit-slave2-ssit-usu1 = <0x4d39>;
                xlnx,alarm-limit-slave2-ssit-usu2 = <0x4da7>;
                xlnx,alarm-limit-slave2-ssit-usu3 = <0x9a74>;
                xlnx,alarm-limit-slave2-ssit-usu4 = <0x9a74>;
                xlnx,alarm-limit-usl1 = <0x4c5e>;
                xlnx,alarm-limit-usl2 = <0x4bf2>;
                xlnx,alarm-limit-usl3 = <0x98bf>;
                xlnx,alarm-limit-usl4 = <0x98bf>;
                xlnx,alarm-limit-usu1 = <0x4d39>;
                xlnx,alarm-limit-usu2 = <0x4da7>;
                xlnx,alarm-limit-usu3 = <0x9a74>;
                xlnx,alarm-limit-usu4 = <0x9a74>;
                xlnx,average-en-slave0-ssit-vuser0 = <0x0>;
                xlnx,average-en-slave0-ssit-vuser1 = <0x0>;
                xlnx,average-en-slave0-ssit-vuser2 = <0x0>;
                xlnx,average-en-slave0-ssit-vuser3 = <0x0>;
                xlnx,average-en-slave1-ssit-vuser0 = <0x0>;
                xlnx,average-en-slave1-ssit-vuser1 = <0x0>;
                xlnx,average-en-slave1-ssit-vuser2 = <0x0>;
                xlnx,average-en-slave1-ssit-vuser3 = <0x0>;
                xlnx,average-en-slave2-ssit-vuser0 = <0x0>;
                xlnx,average-en-slave2-ssit-vuser1 = <0x0>;
                xlnx,average-en-slave2-ssit-vuser2 = <0x0>;
                xlnx,average-en-slave2-ssit-vuser3 = <0x0>;
                xlnx,average-en-vuser0 = <0x0>;
                xlnx,average-en-vuser1 = <0x0>;
                xlnx,average-en-vuser2 = <0x0>;
                xlnx,average-en-vuser3 = <0x0>;
                xlnx,avg-slave0-ssit-vuser = <0x0>;
                xlnx,avg-slave1-ssit-vuser = <0x0>;
                xlnx,avg-slave2-ssit-vuser = <0x0>;
                xlnx,avg-vuser = <0x0>;
                xlnx,channel-cnt = <0x5>;
                xlnx,common-n-source = "Null";
                xlnx,configuration-r0 = <0x0>;
                xlnx,configuration-r1 = <0x2f9f>;
                xlnx,configuration-r2 = <0x1400>;
                xlnx,configuration-r3 = <0xf>;
                xlnx,configuration-r4 = <0x0>;
                xlnx,configuration-r4-1 = <0xc>;
                xlnx,configuration-r4-2 = <0xd>;
                xlnx,configuration-r4-3 = <0xe>;
                xlnx,configuration-r4-4 = <0xa>;
                xlnx,configuration-slave0-ssit-r3 = <0xf>;
                xlnx,configuration-slave0-ssit-r4-1 = <0xc>;
                xlnx,configuration-slave0-ssit-r4-2 = <0xd>;
                xlnx,configuration-slave0-ssit-r4-3 = <0xe>;
                xlnx,configuration-slave0-ssit-r4-4 = <0xa>;
                xlnx,configuration-slave1-ssit-r3 = <0xf>;
                xlnx,configuration-slave1-ssit-r4-1 = <0xc>;
                xlnx,configuration-slave1-ssit-r4-2 = <0xd>;
                xlnx,configuration-slave1-ssit-r4-3 = <0xe>;
                xlnx,configuration-slave1-ssit-r4-4 = <0xa>;
                xlnx,configuration-slave2-ssit-r3 = <0xf>;
                xlnx,configuration-slave2-ssit-r4-1 = <0xc>;
                xlnx,configuration-slave2-ssit-r4-2 = <0xd>;
                xlnx,configuration-slave2-ssit-r4-3 = <0xe>;
                xlnx,configuration-slave2-ssit-r4-4 = <0xa>;
                xlnx,dclk-frequency = <0x64>;
                xlnx,div-vuser0 = <0x6>;
                xlnx,div-vuser0-slave0 = <0x6>;
                xlnx,div-vuser0-slave1 = <0x6>;
                xlnx,div-vuser0-slave2 = <0x6>;
                xlnx,div-vuser1 = <0x3>;
                xlnx,div-vuser1-slave0 = <0x3>;
                xlnx,div-vuser1-slave1 = <0x3>;
                xlnx,div-vuser1-slave2 = <0x3>;
                xlnx,div-vuser2 = <0x3>;
                xlnx,div-vuser2-slave0 = <0x3>;
                xlnx,div-vuser2-slave1 = <0x3>;
                xlnx,div-vuser2-slave2 = <0x3>;
                xlnx,div-vuser3 = <0x3>;
                xlnx,div-vuser3-slave0 = <0x3>;
                xlnx,div-vuser3-slave1 = <0x3>;
                xlnx,div-vuser3-slave2 = <0x3>;
                xlnx,dual-seq = <0x0>;
                xlnx,dual-sequence-r0 = <0x0>;
                xlnx,dual-sequence-r1 = <0x0>;
                xlnx,dual-sequence-r2 = <0x0>;
                xlnx,dual0-register = <0x0>;
                xlnx,dual1-register = <0x0>;
                xlnx,dual2-register = <0x0>;
                xlnx,dual3-register = <0x0>;
                xlnx,enable-adc-data-out-master = <0x0>;
                xlnx,enable-adc-data-out-slave0 = <0x0>;
                xlnx,enable-adc-data-out-slave1 = <0x0>;
                xlnx,enable-adc-data-out-slave2 = <0x0>;
                xlnx,enable-dual-sequence-mode = <0x0>;
                xlnx,enable-slave0 = <0x0>;
                xlnx,enable-slave1 = <0x0>;
                xlnx,enable-slave2 = <0x0>;
                xlnx,external-mux-channel = "VP_VN";
                xlnx,external-muxaddr-enable = <0x0>;
                xlnx,fifo-depth = <0x7>;
                xlnx,has-axi = <0x1>;
                xlnx,has-axi4stream = <0x0>;
                xlnx,has-busy = <0x1>;
                xlnx,has-channel = <0x1>;
                xlnx,has-convst = <0x0>;
                xlnx,has-convstclk = <0x0>;
                xlnx,has-dclk = <0x1>;
                xlnx,has-drp = <0x0>;
                xlnx,has-eoc = <0x1>;
                xlnx,has-eos = <0x1>;
                xlnx,has-external-mux = <0x0>;
                xlnx,has-i2c = <0x0>;
                xlnx,has-i2c-slave = <0x0>;
                xlnx,has-jtagbusy = <0x0>;
                xlnx,has-jtaglocked = <0x0>;
                xlnx,has-jtagmodified = <0x0>;
                xlnx,has-ot-alarm = <0x0>;
                xlnx,has-pmbus = <0x0>;
                xlnx,has-pmc = <0x0>;
                xlnx,has-pmc-master = <0x0>;
                xlnx,has-reset = <0x0>;
                xlnx,has-slave0-ssit-temp-ch = <0x1>;
                xlnx,has-slave0-ssit-vuser0 = <0x0>;
                xlnx,has-slave0-ssit-vuser1 = <0x0>;
                xlnx,has-slave0-ssit-vuser2 = <0x0>;
                xlnx,has-slave0-ssit-vuser3 = <0x0>;
                xlnx,has-slave1-ssit-temp-ch = <0x1>;
                xlnx,has-slave1-ssit-vuser0 = <0x0>;
                xlnx,has-slave1-ssit-vuser1 = <0x0>;
                xlnx,has-slave1-ssit-vuser2 = <0x0>;
                xlnx,has-slave1-ssit-vuser3 = <0x0>;
                xlnx,has-slave2-ssit-temp-ch = <0x1>;
                xlnx,has-slave2-ssit-vuser0 = <0x0>;
                xlnx,has-slave2-ssit-vuser1 = <0x0>;
                xlnx,has-slave2-ssit-vuser2 = <0x0>;
                xlnx,has-slave2-ssit-vuser3 = <0x0>;
                xlnx,has-temp-bus = <0x0>;
                xlnx,has-under-ot-alarm = <0x0>;
                xlnx,has-under-temp-alarm = <0x0>;
                xlnx,has-user-supply0-alarm = <0x0>;
                xlnx,has-user-supply0-slave0-ssit-alarm = <0x0>;
                xlnx,has-user-supply0-slave1-ssit-alarm = <0x0>;
                xlnx,has-user-supply0-slave2-ssit-alarm = <0x0>;
                xlnx,has-user-supply1-alarm = <0x0>;
                xlnx,has-user-supply1-slave0-ssit-alarm = <0x0>;
                xlnx,has-user-supply1-slave1-ssit-alarm = <0x0>;
                xlnx,has-user-supply1-slave2-ssit-alarm = <0x0>;
                xlnx,has-user-supply2-alarm = <0x0>;
                xlnx,has-user-supply2-slave0-ssit-alarm = <0x0>;
                xlnx,has-user-supply2-slave1-ssit-alarm = <0x0>;
                xlnx,has-user-supply2-slave2-ssit-alarm = <0x0>;
                xlnx,has-user-supply3-alarm = <0x0>;
                xlnx,has-user-supply3-slave0-ssit-alarm = <0x0>;
                xlnx,has-user-supply3-slave1-ssit-alarm = <0x0>;
                xlnx,has-user-supply3-slave2-ssit-alarm = <0x0>;
                xlnx,has-user-temp-alarm = <0x0>;
                xlnx,has-vbram-alarm = <0x0>;
                xlnx,has-vccaux-alarm = <0x0>;
                xlnx,has-vccddro-alarm = <0x0>;
                xlnx,has-vccint-alarm = <0x0>;
                xlnx,has-vccpaux-alarm = <0x0>;
                xlnx,has-vccpint-alarm = <0x0>;
                xlnx,has-vccpsaux-alarm = <0x0>;
                xlnx,has-vccpsintfp-alarm = <0x0>;
                xlnx,has-vccpsintlp-alarm = <0x0>;
                xlnx,has-vn = <0x1>;
                xlnx,has-vp = <0x1>;
                xlnx,has-vuser0 = <0x0>;
                xlnx,has-vuser1 = <0x0>;
                xlnx,has-vuser2 = <0x0>;
                xlnx,has-vuser3 = <0x0>;
                xlnx,i2c-clk-period = "2500.000";
                xlnx,i2c-sclk-loc = "F3";
                xlnx,i2c-sda-loc = "D2";
                xlnx,i2c-slave-address = <0x20>;
                xlnx,i2c-slave0-address = <0x20>;
                xlnx,i2c-slave1-address = <0x20>;
                xlnx,i2c-slave2-address = <0x20>;
                xlnx,include-intr = <0x1>;
                xlnx,is-diablo = <0x1>;
                xlnx,is-ssit-slave0 = <0x0>;
                xlnx,is-ssit-slave0-analog-bank = <0x0>;
                xlnx,is-ssit-slave1 = <0x0>;
                xlnx,is-ssit-slave1-analog-bank = <0x0>;
                xlnx,is-ssit-slave2 = <0x0>;
                xlnx,is-ssit-slave2-analog-bank = <0x0>;
                xlnx,sampling-rate = "192307.6923076923";
                xlnx,sequence-r0 = <0x4701>;
                xlnx,sequence-r1 = <0x0>;
                xlnx,sequence-r2 = <0x0>;
                xlnx,sequence-r3 = <0x0>;
                xlnx,sequence-r4 = <0x0>;
                xlnx,sequence-r5 = <0x0>;
                xlnx,sequence-r6 = <0x0>;
                xlnx,sequence-r7 = <0x0>;
                xlnx,sequence-r8 = <0x0>;
                xlnx,sequence-slave0-ssit-r0 = <0x100>;
                xlnx,sequence-slave0-ssit-r8 = <0x0>;
                xlnx,sequence-slave1-ssit-r0 = <0x100>;
                xlnx,sequence-slave1-ssit-r8 = <0x0>;
                xlnx,sequence-slave2-ssit-r0 = <0x100>;
                xlnx,sequence-slave2-ssit-r8 = <0x0>;
                xlnx,sim-device = "ZYNQ_ULTRASCALE";
                xlnx,sim-file-name = "design";
                xlnx,sim-file-rel-path = "./";
                xlnx,sim-file-sel = "Default";
                xlnx,user-supply0-bank = <0x2c>;
                xlnx,user-supply0-slave0-ssit-bank = <0x2c>;
                xlnx,user-supply0-slave0-ssit-source = "VCCO";
                xlnx,user-supply0-slave1-ssit-bank = <0x2c>;
                xlnx,user-supply0-slave1-ssit-source = "VCCO";
                xlnx,user-supply0-slave2-ssit-bank = <0x2c>;
                xlnx,user-supply0-slave2-ssit-source = "VCCO";
                xlnx,user-supply0-source = "VCCO";
                xlnx,user-supply1-bank = <0x2c>;
                xlnx,user-supply1-slave0-ssit-bank = <0x2c>;
                xlnx,user-supply1-slave0-ssit-source = "VCCINT";
                xlnx,user-supply1-slave1-ssit-bank = <0x2c>;
                xlnx,user-supply1-slave1-ssit-source = "VCCINT";
                xlnx,user-supply1-slave2-ssit-bank = <0x2c>;
                xlnx,user-supply1-slave2-ssit-source = "VCCINT";
                xlnx,user-supply1-source = "VCCINT";
                xlnx,user-supply2-bank = <0x2c>;
                xlnx,user-supply2-slave0-ssit-bank = <0x2c>;
                xlnx,user-supply2-slave0-ssit-source = "VCCAUX";
                xlnx,user-supply2-slave1-ssit-bank = <0x2c>;
                xlnx,user-supply2-slave1-ssit-source = "VCCAUX";
                xlnx,user-supply2-slave2-ssit-bank = <0x2c>;
                xlnx,user-supply2-slave2-ssit-source = "VCCAUX";
                xlnx,user-supply2-source = "VCCAUX";
                xlnx,user-supply3-bank = <0x41>;
                xlnx,user-supply3-slave0-ssit-bank = <0x41>;
                xlnx,user-supply3-slave0-ssit-source = "VCCO";
                xlnx,user-supply3-slave1-ssit-bank = <0x41>;
                xlnx,user-supply3-slave1-ssit-source = "VCCO";
                xlnx,user-supply3-slave2-ssit-bank = <0x41>;
                xlnx,user-supply3-slave2-ssit-source = "VCCO";
                xlnx,user-supply3-source = "VCCO";
                xlnx,vaux0 = <0x0>;
                xlnx,vaux1 = <0x0>;
                xlnx,vaux10 = <0x0>;
                xlnx,vaux11 = <0x0>;
                xlnx,vaux12 = <0x0>;
                xlnx,vaux13 = <0x0>;
                xlnx,vaux14 = <0x0>;
                xlnx,vaux15 = <0x0>;
                xlnx,vaux2 = <0x0>;
                xlnx,vaux3 = <0x0>;
                xlnx,vaux4 = <0x0>;
                xlnx,vaux5 = <0x0>;
                xlnx,vaux6 = <0x0>;
                xlnx,vaux7 = <0x0>;
                xlnx,vaux8 = <0x0>;
                xlnx,vaux9 = <0x0>;
                xlnx,vauxn0-loc = "A6";
                xlnx,vauxn1-loc = "B5";
                xlnx,vauxn10-loc = "F6";
                xlnx,vauxn11-loc = "G5";
                xlnx,vauxn12-loc = "L29";
                xlnx,vauxn13-loc = "K30";
                xlnx,vauxn14-loc = "M27";
                xlnx,vauxn15-loc = "M32";
                xlnx,vauxn2-loc = "A7";
                xlnx,vauxn3-loc = "A9";
                xlnx,vauxn4-loc = "C7";
                xlnx,vauxn5-loc = "C5";
                xlnx,vauxn6-loc = "D8";
                xlnx,vauxn7-loc = "D6";
                xlnx,vauxn8-loc = "F7";
                xlnx,vauxn9-loc = "E5";
                xlnx,vauxp0-loc = "B7";
                xlnx,vauxp1-loc = "B6";
                xlnx,vauxp10-loc = "G7";
                xlnx,vauxp11-loc = "G6";
                xlnx,vauxp12-loc = "L28";
                xlnx,vauxp13-loc = "L30";
                xlnx,vauxp14-loc = "N27";
                xlnx,vauxp15-loc = "M31";
                xlnx,vauxp2-loc = "A8";
                xlnx,vauxp3-loc = "B9";
                xlnx,vauxp4-loc = "C8";
                xlnx,vauxp5-loc = "D5";
                xlnx,vauxp6-loc = "E8";
                xlnx,vauxp7-loc = "D7";
                xlnx,vauxp8-loc = "F8";
                xlnx,vauxp9-loc = "E6";
                xlnx,vpvn = <0x0>;
            };
            zyxclmm_drm {
                compatible = "xlnx,zocl";
                interrupts-extended = <&axi_intc_0 0 4>, <&axi_intc_0 1 4>, <&axi_intc_0 2 4>, <&axi_intc_0 3 4>, <&axi_intc_0 4 4>, <&axi_intc_0 5 4>, <&axi_intc_0 6 4>, <&axi_intc_0 7 4>, <&axi_intc_0 8 4>, <&axi_intc_0 9 4>,
<&axi_intc_0 10 4>, <&axi_intc_0 11 4>, <&axi_intc_0 12 4>, <&axi_intc_0 13 4>, <&axi_intc_0 14 4>,
<&axi_intc_0 15 4>, <&axi_intc_0 16 4>, <&axi_intc_0 17 4>, <&axi_intc_0 18 4>, <&axi_intc_0 19 4>,
<&axi_intc_0 20 4>, <&axi_intc_0 21 4>, <&axi_intc_0 22 4>, <&axi_intc_0 23 4>, <&axi_intc_0 24 4>,
<&axi_intc_0 25 4>, <&axi_intc_0 26 4>, <&axi_intc_0 27 4>, <&axi_intc_0 28 4>, <&axi_intc_0 29 4>,
<&axi_intc_0 30 4>, <&axi_intc_0 31 4 >;
            };
        };
    };
};


pl.dtsi をコンパイルして pl.dtbo を生成する。
cd /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/pfm/dtg_output/dtg_output/zub1cg_sbc_2022_2/psu_cortexa53_0/device_tree_domain/bsp
dtc -@ -O dtb -o pl.dtbo pl.dtsi

ZUBoard1CG_91_230709.png

pl.dtbo が生成された。
ZUBoard1CG_92_230709.png
  1. 2023年07月11日 04:48 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

”ZUBoard - Combining designs into a single platform”の真似をしてみる1

”ZUBoard - Combining designs into a single platform”をやってみる3”の続き。

ZUBoard - Combining designs into a single platform”をやってみようということで、前回は、ファームウェアオーバーレイの作成で、avnet_zub1cg_base と avnet_zub1cg_dualcam を合体させようとしたが、デバイス・ツリーのエラーでビルドが通らなかった。今回は、どうしてもデバイス・ツリーのエラーの原因が分からないので、”ZUBoard - Combining designs into a single platform”に沿ってやっていくのは諦めて、似たような事を独自にやっていこうと思う。具体的には、zub1cg_sbc_base_2022_2 だけの Petalinux プロジェクト zub1cg_sbc_2022_2 を作成しビルドした。

最初に zub1cg_sbc_2022_2 ディレクトリを消去した。

zub1cg_sbc_base_2022_2_jupyter.bsp を作成する。
petalinux-package --bsp -p zub1cg_sbc_base_2022_2 --output zub1cg_sbc_base_2022_2_jupyter.bsp
ZUBoard1CG_74_230709.png

Petalinux 2022.2 プロジェクトの zub1cg_sbc_2022_2 プロジェクトを作成した。
petalinux-create -t project -s zub1cg_sbc_base_2022_2_jupyter.bsp -n zub1cg_sbc_2022_2

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/project-spec/configs/config ファイルを編集する。
以下のように変更した。

CONFIG_SUBSYSTEM_HOSTNAME="zub1cg-sbc-2022-2"
CONFIG_SUBSYSTEM_PRODUCT="zub1cg_sbc_2022_2"


ZUBoard1CG_75_230709.png

base の Viavdo プロジェクトを使用するように設定した。
cd zub1cg_sbc_2022_2/
petalinux-config --silentconfig --get-hw-description=../../../hdl/projects/zub1cg_sbc_base_2022_2

ZUBoard1CG_76_230709.png

ビルドしたところ成功した。
petalinux-build
ZUBoard1CG_77_230709.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/project-spec/meta-user/conf/user-rootfsconfig に CONFIG_xmutil を追加した。
ZUBoard1CG_78_230709.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/project-spec/configs/rootfs_config に CONFIG_xmutil=y を追加した。
ZUBoard1CG_79_230709.png

もう一度、ビルドしたところ成功した。
petalinux-build
ZUBoard1CG_80_230709.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/images/linux/rootfs.wic ができている。
ZUBoard1CG_81_230709.png

balenaEtcher で rootfs.wic を 32 GB の MicroSD カードに書き込んだ。
ZUBoard 1CG に MIcroSD カードを挿入して、電源 ON し、SW7 を押して Petalinux を起動できた。
ZUBoard1CG_82_230709.png

IP も割り振られている。
ZUBoard1CG_83_230709.png
  1. 2023年07月10日 04:51 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

”ZUBoard - Combining designs into a single platform”をやってみる3

”ZUBoard - Combining designs into a single platform”をやってみる2”の続き。

ZUBoard - Combining designs into a single platform”をやってみようということで、前回は、デバイス・ツリーを消去して、もう一度、ビルドを行ったところ成功した。今回は、ファームウェアオーバーレイの作成で、avnet_zub1cg_base と avnet_zub1cg_dualcam を合体させようとしたが、デバイス・ツリーのエラーでビルドが通らなかった。

ファームウェアオーバーレイの作成
ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/firmware/avnet_zub1cg_base を作成し、bit ファイルをコピーして、shell.json ファイルを作成した。
mkdir -p firmware/avnet_zub1cg_base
cp ../../../hdl/projects/zub1cg_sbc_base_2022_2/zub1cg_sbc_base.runs/impl_1/zub1cg_sbc_base_wrapper.bit firmware/avnet_zub1cg_base/avnet_zub1cg_base.bit
echo '{ "shell_type":"XRT_FLAT", "num_slots":1 }' > firmware/avnet_zub1cg_base/shell.json

ZUBoard1CG_52_230707.png

ZUBoard1CG_53_230707.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/firmware/avnet_zub1cg_dualcam を作成し、bit ファイルをコピーして、shell.json ファイルを作成した。
mkdir -p firmware/avnet_zub1cg_dualcam
cp ../../../hdl/projects/zub1cg_sbc_dualcam_2022_2/zub1cg_sbc_dualcam.runs/impl_1/zub1cg_sbc_dualcam_wrapper.bit firmware/avnet_zub1cg_dualcam/avnet_zub1cg_dualcam.bit
echo '{ "shell_type":"XRT_FLAT", "num_slots":1 }' > firmware/avnet_zub1cg_dualcam/shell.json

ZUBoard1CG_54_230707.png

ZUBoard1CG_55_230707.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/firmware/avnet_zub1cg_base/avnet_zub1cg_base.dtsi を作成した。

ZUBoard - Combining designs into a single platform”からデバイス・ツリーのコードを引用した。
ZUBoard1CG_56_230707.png

最後の &amba{} のセクションに ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base_2022_2/components/plnx_workspace/device-tree/device-tree/pl.dtsi の内容を追加した。
pl.dtsi を示す。
ZUBoard1CG_57_230707.png

現在の ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/firmware/avnet_zub1cg_base/avnet_zub1cg_base.dtsi を示す。
ZUBoard1CG_58_230707.png

&axi_iic_0 を ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/firmware/avnet_zub1cg_base/avnet_zub1cg_base.dtsi に追加した。
現在の avnet_zub1cg_base.dtsi を示す。

/dts-v1/;
/plugin/;

#include <dt-bindings/gpio/gpio.h>

&fpga_full {
   #address-cells = <2>;
   #size-cells = <2>;
   firmware-name = "avnet_zub1cg_base.bit.bin";
   resets = <&zynqmp_reset 116>, <&zynqmp_reset 117>, <&zynqmp_reset 118>, <&zynqmp_reset 119>;
}

&amba {
   afi0: afi0 {
      compatible = "xlnx,afi-fpga";
      config-afi = <0 0>, <1 0>, <2 0>, <3 0>, <4 1>, <5 1>, <6 0>, <7 0>, <8 1>, <9 1>, <10 2>, <11 2>, <12 2>, <13 2>, <14 0x000>, <15 0x000>;
      resets = <&zynqmp_reset 116>, <&zynqmp_reset 117>, <&zynqmp_reset 118>, <&zynqmp_reset 119>;
      reset-names = "pl0", "pl1", "pl2", "pl3";
   };
};

&amba {
    amba_pl: amba_pl@0 {
        #address-cells = <2>;
        #size-cells = <2>;
        compatible = "simple-bus";
        ranges ;
        axi_gpio_0: gpio@a0000000 {
            #gpio-cells = <2>;
            clock-names = "s_axi_aclk";
            clocks = <&zynqmp_clk 71>;
            compatible = "xlnx,axi-gpio-2.0", "xlnx,xps-gpio-1.00.a";
            gpio-controller ;
            reg = <0x0 0xa0000000 0x0 0x10000>;
            xlnx,all-inputs = <0x0>;
            xlnx,all-inputs-2 = <0x0>;
            xlnx,all-outputs = <0x1>;
            xlnx,all-outputs-2 = <0x0>;
            xlnx,dout-default = <0x00000000>;
            xlnx,dout-default-2 = <0x00000000>;
            xlnx,gpio-width = <0x3>;
            xlnx,gpio2-width = <0x20>;
            xlnx,interrupt-present = <0x0>;
            xlnx,is-dual = <0x0>;
            xlnx,tri-default = <0xFFFFFFFF>;
            xlnx,tri-default-2 = <0xFFFFFFFF>;
        };
        axi_gpio_1: gpio@a0010000 {
            #gpio-cells = <2>;
            clock-names = "s_axi_aclk";
            clocks = <&zynqmp_clk 71>;
            compatible = "xlnx,axi-gpio-2.0", "xlnx,xps-gpio-1.00.a";
            gpio-controller ;
            reg = <0x0 0xa0010000 0x0 0x10000>;
            xlnx,all-inputs = <0x0>;
            xlnx,all-inputs-2 = <0x0>;
            xlnx,all-outputs = <0x1>;
            xlnx,all-outputs-2 = <0x0>;
            xlnx,dout-default = <0x00000000>;
            xlnx,dout-default-2 = <0x00000000>;
            xlnx,gpio-width = <0x3>;
            xlnx,gpio2-width = <0x20>;
            xlnx,interrupt-present = <0x0>;
            xlnx,is-dual = <0x0>;
            xlnx,tri-default = <0xFFFFFFFF>;
            xlnx,tri-default-2 = <0xFFFFFFFF>;
        };
        axi_gpio_2: gpio@a0020000 {
            #gpio-cells = <2>;
            clock-names = "s_axi_aclk";
            clocks = <&zynqmp_clk 71>;
            compatible = "xlnx,axi-gpio-2.0", "xlnx,xps-gpio-1.00.a";
            gpio-controller ;
            reg = <0x0 0xa0020000 0x0 0x10000>;
            xlnx,all-inputs = <0x1>;
            xlnx,all-inputs-2 = <0x0>;
            xlnx,all-outputs = <0x0>;
            xlnx,all-outputs-2 = <0x0>;
            xlnx,dout-default = <0x00000000>;
            xlnx,dout-default-2 = <0x00000000>;
            xlnx,gpio-width = <0x1>;
            xlnx,gpio2-width = <0x20>;
            xlnx,interrupt-present = <0x0>;
            xlnx,is-dual = <0x0>;
            xlnx,tri-default = <0xFFFFFFFF>;
            xlnx,tri-default-2 = <0xFFFFFFFF>;
        };
        axi_iic_0: i2c@a0030000 {
            #address-cells = <1>;
            #size-cells = <0>;
            clock-names = "s_axi_aclk";
            clocks = <&zynqmp_clk 71>;
            compatible = "xlnx,axi-iic-2.1", "xlnx,xps-iic-2.00.a";
            interrupt-names = "iic2intc_irpt";
            interrupt-parent = <&gic>;
            interrupts = <0 89 4>;
            reg = <0x0 0xa0030000 0x0 0x10000>;
        };
        axi_iic_1: i2c@a0040000 {
            #address-cells = <1>;
            #size-cells = <0>;
            clock-names = "s_axi_aclk";
            clocks = <&zynqmp_clk 71>;
            compatible = "xlnx,axi-iic-2.1", "xlnx,xps-iic-2.00.a";
            interrupt-names = "iic2intc_irpt";
            interrupt-parent = <&gic>;
            interrupts = <0 90 4>;
            reg = <0x0 0xa0040000 0x0 0x10000>;
        };
        axi_iic_2: i2c@a0050000 {
            #address-cells = <1>;
            #size-cells = <0>;
            clock-names = "s_axi_aclk";
            clocks = <&zynqmp_clk 71>;
            compatible = "xlnx,axi-iic-2.1", "xlnx,xps-iic-2.00.a";
            interrupt-names = "iic2intc_irpt";
            interrupt-parent = <&gic>;
            interrupts = <0 91 4>;
            reg = <0x0 0xa0050000 0x0 0x10000>;
        };
        axi_intc_0: interrupt-controller@a0060000 {
            #interrupt-cells = <2>;
            clock-names = "s_axi_aclk";
            clocks = <&zynqmp_clk 71>;
            compatible = "xlnx,axi-intc-4.1", "xlnx,xps-intc-1.00.a";
            interrupt-controller ;
            interrupt-names = "irq";
            interrupt-parent = <&gic>;
            interrupts = <0 94 1>;
            reg = <0x0 0xa0060000 0x0 0x10000>;
            xlnx,kind-of-intr = <0x1>;
            xlnx,num-intr-inputs = <0x20>;
        };
        axi_quad_spi_0: axi_quad_spi@a0070000 {
            bits-per-word = <8>;
            clock-names = "ext_spi_clk", "s_axi_aclk";
            clocks = <&zynqmp_clk 71>, <&zynqmp_clk 71>;
            compatible = "xlnx,axi-quad-spi-3.2", "xlnx,xps-spi-2.00.a";
            fifo-size = <16>;
            interrupt-names = "ip2intc_irpt";
            interrupt-parent = <&gic>;
            interrupts = <0 93 1>;
            num-cs = <0x2>;
            reg = <0x0 0xa0070000 0x0 0x10000>;
            xlnx,num-ss-bits = <0x2>;
            xlnx,spi-mode = <0>;
        };
        axi_uartlite_0: serial@a0080000 {
            clock-names = "s_axi_aclk";
            clocks = <&zynqmp_clk 71>;
            compatible = "xlnx,axi-uartlite-2.0", "xlnx,xps-uartlite-1.00.a";
            current-speed = <115200>;
            device_type = "serial";
            interrupt-names = "interrupt";
            interrupt-parent = <&gic>;
            interrupts = <0 92 1>;
            port-number = <1>;
            reg = <0x0 0xa0080000 0x0 0x10000>;
            xlnx,baudrate = <0x1c200>;
            xlnx,data-bits = <0x8>;
            xlnx,odd-parity = <0x0>;
            xlnx,s-axi-aclk-freq-hz-d = "100.0";
            xlnx,use-parity = <0x0>;
        };
        system_management_wiz_0: system_management_wiz@a0090000 {
            clock-names = "s_axi_aclk";
            clocks = <&zynqmp_clk 71>;
            compatible = "xlnx,system-management-wiz-1.3";
            reg = <0x0 0xa0090000 0x0 0x10000>;
            xlnx,alarm-limit-r0 = <0xb794>;
            xlnx,alarm-limit-r1 = <0x4e81>;
            xlnx,alarm-limit-r10 = <0x4963>;
            xlnx,alarm-limit-r11 = <0x451e>;
            xlnx,alarm-limit-r12 = <0x4963>;
            xlnx,alarm-limit-r13 = <0x451e>;
            xlnx,alarm-limit-r14 = <0x9a74>;
            xlnx,alarm-limit-r15 = <0x91eb>;
            xlnx,alarm-limit-r2 = <0xa147>;
            xlnx,alarm-limit-r3 = <0xcba3>;
            xlnx,alarm-limit-r4 = <0xab03>;
            xlnx,alarm-limit-r5 = <0x4963>;
            xlnx,alarm-limit-r6 = <0x9555>;
            xlnx,alarm-limit-r7 = <0xb00a>;
            xlnx,alarm-limit-r8 = <0x4e81>;
            xlnx,alarm-limit-r9 = <0x4963>;
            xlnx,alarm-limit-slave0-ssit-usl1 = <0x4c5e>;
            xlnx,alarm-limit-slave0-ssit-usl2 = <0x4bf2>;
            xlnx,alarm-limit-slave0-ssit-usl3 = <0x98bf>;
            xlnx,alarm-limit-slave0-ssit-usl4 = <0x98bf>;
            xlnx,alarm-limit-slave0-ssit-usu1 = <0x4d39>;
            xlnx,alarm-limit-slave0-ssit-usu2 = <0x4da7>;
            xlnx,alarm-limit-slave0-ssit-usu3 = <0x9a74>;
            xlnx,alarm-limit-slave0-ssit-usu4 = <0x9a74>;
            xlnx,alarm-limit-slave1-ssit-usl1 = <0x4c5e>;
            xlnx,alarm-limit-slave1-ssit-usl2 = <0x4bf2>;
            xlnx,alarm-limit-slave1-ssit-usl3 = <0x98bf>;
            xlnx,alarm-limit-slave1-ssit-usl4 = <0x98bf>;
            xlnx,alarm-limit-slave1-ssit-usu1 = <0x4d39>;
            xlnx,alarm-limit-slave1-ssit-usu2 = <0x4da7>;
            xlnx,alarm-limit-slave1-ssit-usu3 = <0x9a74>;
            xlnx,alarm-limit-slave1-ssit-usu4 = <0x9a74>;
            xlnx,alarm-limit-slave2-ssit-usl1 = <0x4c5e>;
            xlnx,alarm-limit-slave2-ssit-usl2 = <0x4bf2>;
            xlnx,alarm-limit-slave2-ssit-usl3 = <0x98bf>;
            xlnx,alarm-limit-slave2-ssit-usl4 = <0x98bf>;
            xlnx,alarm-limit-slave2-ssit-usu1 = <0x4d39>;
            xlnx,alarm-limit-slave2-ssit-usu2 = <0x4da7>;
            xlnx,alarm-limit-slave2-ssit-usu3 = <0x9a74>;
            xlnx,alarm-limit-slave2-ssit-usu4 = <0x9a74>;
            xlnx,alarm-limit-usl1 = <0x4c5e>;
            xlnx,alarm-limit-usl2 = <0x4bf2>;
            xlnx,alarm-limit-usl3 = <0x98bf>;
            xlnx,alarm-limit-usl4 = <0x98bf>;
            xlnx,alarm-limit-usu1 = <0x4d39>;
            xlnx,alarm-limit-usu2 = <0x4da7>;
            xlnx,alarm-limit-usu3 = <0x9a74>;
            xlnx,alarm-limit-usu4 = <0x9a74>;
            xlnx,average-en-slave0-ssit-vuser0 = <0x0>;
            xlnx,average-en-slave0-ssit-vuser1 = <0x0>;
            xlnx,average-en-slave0-ssit-vuser2 = <0x0>;
            xlnx,average-en-slave0-ssit-vuser3 = <0x0>;
            xlnx,average-en-slave1-ssit-vuser0 = <0x0>;
            xlnx,average-en-slave1-ssit-vuser1 = <0x0>;
            xlnx,average-en-slave1-ssit-vuser2 = <0x0>;
            xlnx,average-en-slave1-ssit-vuser3 = <0x0>;
            xlnx,average-en-slave2-ssit-vuser0 = <0x0>;
            xlnx,average-en-slave2-ssit-vuser1 = <0x0>;
            xlnx,average-en-slave2-ssit-vuser2 = <0x0>;
            xlnx,average-en-slave2-ssit-vuser3 = <0x0>;
            xlnx,average-en-vuser0 = <0x0>;
            xlnx,average-en-vuser1 = <0x0>;
            xlnx,average-en-vuser2 = <0x0>;
            xlnx,average-en-vuser3 = <0x0>;
            xlnx,avg-slave0-ssit-vuser = <0x0>;
            xlnx,avg-slave1-ssit-vuser = <0x0>;
            xlnx,avg-slave2-ssit-vuser = <0x0>;
            xlnx,avg-vuser = <0x0>;
            xlnx,channel-cnt = <0x5>;
            xlnx,common-n-source = "Null";
            xlnx,configuration-r0 = <0x0>;
            xlnx,configuration-r1 = <0x2f9f>;
            xlnx,configuration-r2 = <0x1400>;
            xlnx,configuration-r3 = <0xf>;
            xlnx,configuration-r4 = <0x0>;
            xlnx,configuration-r4-1 = <0xc>;
            xlnx,configuration-r4-2 = <0xd>;
            xlnx,configuration-r4-3 = <0xe>;
            xlnx,configuration-r4-4 = <0xa>;
            xlnx,configuration-slave0-ssit-r3 = <0xf>;
            xlnx,configuration-slave0-ssit-r4-1 = <0xc>;
            xlnx,configuration-slave0-ssit-r4-2 = <0xd>;
            xlnx,configuration-slave0-ssit-r4-3 = <0xe>;
            xlnx,configuration-slave0-ssit-r4-4 = <0xa>;
            xlnx,configuration-slave1-ssit-r3 = <0xf>;
            xlnx,configuration-slave1-ssit-r4-1 = <0xc>;
            xlnx,configuration-slave1-ssit-r4-2 = <0xd>;
            xlnx,configuration-slave1-ssit-r4-3 = <0xe>;
            xlnx,configuration-slave1-ssit-r4-4 = <0xa>;
            xlnx,configuration-slave2-ssit-r3 = <0xf>;
            xlnx,configuration-slave2-ssit-r4-1 = <0xc>;
            xlnx,configuration-slave2-ssit-r4-2 = <0xd>;
            xlnx,configuration-slave2-ssit-r4-3 = <0xe>;
            xlnx,configuration-slave2-ssit-r4-4 = <0xa>;
            xlnx,dclk-frequency = <0x64>;
            xlnx,div-vuser0 = <0x6>;
            xlnx,div-vuser0-slave0 = <0x6>;
            xlnx,div-vuser0-slave1 = <0x6>;
            xlnx,div-vuser0-slave2 = <0x6>;
            xlnx,div-vuser1 = <0x3>;
            xlnx,div-vuser1-slave0 = <0x3>;
            xlnx,div-vuser1-slave1 = <0x3>;
            xlnx,div-vuser1-slave2 = <0x3>;
            xlnx,div-vuser2 = <0x3>;
            xlnx,div-vuser2-slave0 = <0x3>;
            xlnx,div-vuser2-slave1 = <0x3>;
            xlnx,div-vuser2-slave2 = <0x3>;
            xlnx,div-vuser3 = <0x3>;
            xlnx,div-vuser3-slave0 = <0x3>;
            xlnx,div-vuser3-slave1 = <0x3>;
            xlnx,div-vuser3-slave2 = <0x3>;
            xlnx,dual-seq = <0x0>;
            xlnx,dual-sequence-r0 = <0x0>;
            xlnx,dual-sequence-r1 = <0x0>;
            xlnx,dual-sequence-r2 = <0x0>;
            xlnx,dual0-register = <0x0>;
            xlnx,dual1-register = <0x0>;
            xlnx,dual2-register = <0x0>;
            xlnx,dual3-register = <0x0>;
            xlnx,enable-adc-data-out-master = <0x0>;
            xlnx,enable-adc-data-out-slave0 = <0x0>;
            xlnx,enable-adc-data-out-slave1 = <0x0>;
            xlnx,enable-adc-data-out-slave2 = <0x0>;
            xlnx,enable-dual-sequence-mode = <0x0>;
            xlnx,enable-slave0 = <0x0>;
            xlnx,enable-slave1 = <0x0>;
            xlnx,enable-slave2 = <0x0>;
            xlnx,external-mux-channel = "VP_VN";
            xlnx,external-muxaddr-enable = <0x0>;
            xlnx,fifo-depth = <0x7>;
            xlnx,has-axi = <0x1>;
            xlnx,has-axi4stream = <0x0>;
            xlnx,has-busy = <0x1>;
            xlnx,has-channel = <0x1>;
            xlnx,has-convst = <0x0>;
            xlnx,has-convstclk = <0x0>;
            xlnx,has-dclk = <0x1>;
            xlnx,has-drp = <0x0>;
            xlnx,has-eoc = <0x1>;
            xlnx,has-eos = <0x1>;
            xlnx,has-external-mux = <0x0>;
            xlnx,has-i2c = <0x0>;
            xlnx,has-i2c-slave = <0x0>;
            xlnx,has-jtagbusy = <0x0>;
            xlnx,has-jtaglocked = <0x0>;
            xlnx,has-jtagmodified = <0x0>;
            xlnx,has-ot-alarm = <0x0>;
            xlnx,has-pmbus = <0x0>;
            xlnx,has-pmc = <0x0>;
            xlnx,has-pmc-master = <0x0>;
            xlnx,has-reset = <0x0>;
            xlnx,has-slave0-ssit-temp-ch = <0x1>;
            xlnx,has-slave0-ssit-vuser0 = <0x0>;
            xlnx,has-slave0-ssit-vuser1 = <0x0>;
            xlnx,has-slave0-ssit-vuser2 = <0x0>;
            xlnx,has-slave0-ssit-vuser3 = <0x0>;
            xlnx,has-slave1-ssit-temp-ch = <0x1>;
            xlnx,has-slave1-ssit-vuser0 = <0x0>;
            xlnx,has-slave1-ssit-vuser1 = <0x0>;
            xlnx,has-slave1-ssit-vuser2 = <0x0>;
            xlnx,has-slave1-ssit-vuser3 = <0x0>;
            xlnx,has-slave2-ssit-temp-ch = <0x1>;
            xlnx,has-slave2-ssit-vuser0 = <0x0>;
            xlnx,has-slave2-ssit-vuser1 = <0x0>;
            xlnx,has-slave2-ssit-vuser2 = <0x0>;
            xlnx,has-slave2-ssit-vuser3 = <0x0>;
            xlnx,has-temp-bus = <0x0>;
            xlnx,has-under-ot-alarm = <0x0>;
            xlnx,has-under-temp-alarm = <0x0>;
            xlnx,has-user-supply0-alarm = <0x0>;
            xlnx,has-user-supply0-slave0-ssit-alarm = <0x0>;
            xlnx,has-user-supply0-slave1-ssit-alarm = <0x0>;
            xlnx,has-user-supply0-slave2-ssit-alarm = <0x0>;
            xlnx,has-user-supply1-alarm = <0x0>;
            xlnx,has-user-supply1-slave0-ssit-alarm = <0x0>;
            xlnx,has-user-supply1-slave1-ssit-alarm = <0x0>;
            xlnx,has-user-supply1-slave2-ssit-alarm = <0x0>;
            xlnx,has-user-supply2-alarm = <0x0>;
            xlnx,has-user-supply2-slave0-ssit-alarm = <0x0>;
            xlnx,has-user-supply2-slave1-ssit-alarm = <0x0>;
            xlnx,has-user-supply2-slave2-ssit-alarm = <0x0>;
            xlnx,has-user-supply3-alarm = <0x0>;
            xlnx,has-user-supply3-slave0-ssit-alarm = <0x0>;
            xlnx,has-user-supply3-slave1-ssit-alarm = <0x0>;
            xlnx,has-user-supply3-slave2-ssit-alarm = <0x0>;
            xlnx,has-user-temp-alarm = <0x0>;
            xlnx,has-vbram-alarm = <0x0>;
            xlnx,has-vccaux-alarm = <0x0>;
            xlnx,has-vccddro-alarm = <0x0>;
            xlnx,has-vccint-alarm = <0x0>;
            xlnx,has-vccpaux-alarm = <0x0>;
            xlnx,has-vccpint-alarm = <0x0>;
            xlnx,has-vccpsaux-alarm = <0x0>;
            xlnx,has-vccpsintfp-alarm = <0x0>;
            xlnx,has-vccpsintlp-alarm = <0x0>;
            xlnx,has-vn = <0x1>;
            xlnx,has-vp = <0x1>;
            xlnx,has-vuser0 = <0x0>;
            xlnx,has-vuser1 = <0x0>;
            xlnx,has-vuser2 = <0x0>;
            xlnx,has-vuser3 = <0x0>;
            xlnx,i2c-clk-period = "2500.000";
            xlnx,i2c-sclk-loc = "F3";
            xlnx,i2c-sda-loc = "D2";
            xlnx,i2c-slave-address = <0x20>;
            xlnx,i2c-slave0-address = <0x20>;
            xlnx,i2c-slave1-address = <0x20>;
            xlnx,i2c-slave2-address = <0x20>;
            xlnx,include-intr = <0x1>;
            xlnx,is-diablo = <0x1>;
            xlnx,is-ssit-slave0 = <0x0>;
            xlnx,is-ssit-slave0-analog-bank = <0x0>;
            xlnx,is-ssit-slave1 = <0x0>;
            xlnx,is-ssit-slave1-analog-bank = <0x0>;
            xlnx,is-ssit-slave2 = <0x0>;
            xlnx,is-ssit-slave2-analog-bank = <0x0>;
            xlnx,sampling-rate = "192307.6923076923";
            xlnx,sequence-r0 = <0x4701>;
            xlnx,sequence-r1 = <0x0>;
            xlnx,sequence-r2 = <0x0>;
            xlnx,sequence-r3 = <0x0>;
            xlnx,sequence-r4 = <0x0>;
            xlnx,sequence-r5 = <0x0>;
            xlnx,sequence-r6 = <0x0>;
            xlnx,sequence-r7 = <0x0>;
            xlnx,sequence-r8 = <0x0>;
            xlnx,sequence-slave0-ssit-r0 = <0x100>;
            xlnx,sequence-slave0-ssit-r8 = <0x0>;
            xlnx,sequence-slave1-ssit-r0 = <0x100>;
            xlnx,sequence-slave1-ssit-r8 = <0x0>;
            xlnx,sequence-slave2-ssit-r0 = <0x100>;
            xlnx,sequence-slave2-ssit-r8 = <0x0>;
            xlnx,sim-device = "ZYNQ_ULTRASCALE";
            xlnx,sim-file-name = "design";
            xlnx,sim-file-rel-path = "./";
            xlnx,sim-file-sel = "Default";
            xlnx,user-supply0-bank = <0x2c>;
            xlnx,user-supply0-slave0-ssit-bank = <0x2c>;
            xlnx,user-supply0-slave0-ssit-source = "VCCO";
            xlnx,user-supply0-slave1-ssit-bank = <0x2c>;
            xlnx,user-supply0-slave1-ssit-source = "VCCO";
            xlnx,user-supply0-slave2-ssit-bank = <0x2c>;
            xlnx,user-supply0-slave2-ssit-source = "VCCO";
            xlnx,user-supply0-source = "VCCO";
            xlnx,user-supply1-bank = <0x2c>;
            xlnx,user-supply1-slave0-ssit-bank = <0x2c>;
            xlnx,user-supply1-slave0-ssit-source = "VCCINT";
            xlnx,user-supply1-slave1-ssit-bank = <0x2c>;
            xlnx,user-supply1-slave1-ssit-source = "VCCINT";
            xlnx,user-supply1-slave2-ssit-bank = <0x2c>;
            xlnx,user-supply1-slave2-ssit-source = "VCCINT";
            xlnx,user-supply1-source = "VCCINT";
            xlnx,user-supply2-bank = <0x2c>;
            xlnx,user-supply2-slave0-ssit-bank = <0x2c>;
            xlnx,user-supply2-slave0-ssit-source = "VCCAUX";
            xlnx,user-supply2-slave1-ssit-bank = <0x2c>;
            xlnx,user-supply2-slave1-ssit-source = "VCCAUX";
            xlnx,user-supply2-slave2-ssit-bank = <0x2c>;
            xlnx,user-supply2-slave2-ssit-source = "VCCAUX";
            xlnx,user-supply2-source = "VCCAUX";
            xlnx,user-supply3-bank = <0x41>;
            xlnx,user-supply3-slave0-ssit-bank = <0x41>;
            xlnx,user-supply3-slave0-ssit-source = "VCCO";
            xlnx,user-supply3-slave1-ssit-bank = <0x41>;
            xlnx,user-supply3-slave1-ssit-source = "VCCO";
            xlnx,user-supply3-slave2-ssit-bank = <0x41>;
            xlnx,user-supply3-slave2-ssit-source = "VCCO";
            xlnx,user-supply3-source = "VCCO";
            xlnx,vaux0 = <0x0>;
            xlnx,vaux1 = <0x0>;
            xlnx,vaux10 = <0x0>;
            xlnx,vaux11 = <0x0>;
            xlnx,vaux12 = <0x0>;
            xlnx,vaux13 = <0x0>;
            xlnx,vaux14 = <0x0>;
            xlnx,vaux15 = <0x0>;
            xlnx,vaux2 = <0x0>;
            xlnx,vaux3 = <0x0>;
            xlnx,vaux4 = <0x0>;
            xlnx,vaux5 = <0x0>;
            xlnx,vaux6 = <0x0>;
            xlnx,vaux7 = <0x0>;
            xlnx,vaux8 = <0x0>;
            xlnx,vaux9 = <0x0>;
            xlnx,vauxn0-loc = "A6";
            xlnx,vauxn1-loc = "B5";
            xlnx,vauxn10-loc = "F6";
            xlnx,vauxn11-loc = "G5";
            xlnx,vauxn12-loc = "L29";
            xlnx,vauxn13-loc = "K30";
            xlnx,vauxn14-loc = "M27";
            xlnx,vauxn15-loc = "M32";
            xlnx,vauxn2-loc = "A7";
            xlnx,vauxn3-loc = "A9";
            xlnx,vauxn4-loc = "C7";
            xlnx,vauxn5-loc = "C5";
            xlnx,vauxn6-loc = "D8";
            xlnx,vauxn7-loc = "D6";
            xlnx,vauxn8-loc = "F7";
            xlnx,vauxn9-loc = "E5";
            xlnx,vauxp0-loc = "B7";
            xlnx,vauxp1-loc = "B6";
            xlnx,vauxp10-loc = "G7";
            xlnx,vauxp11-loc = "G6";
            xlnx,vauxp12-loc = "L28";
            xlnx,vauxp13-loc = "L30";
            xlnx,vauxp14-loc = "N27";
            xlnx,vauxp15-loc = "M31";
            xlnx,vauxp2-loc = "A8";
            xlnx,vauxp3-loc = "B9";
            xlnx,vauxp4-loc = "C8";
            xlnx,vauxp5-loc = "D5";
            xlnx,vauxp6-loc = "E8";
            xlnx,vauxp7-loc = "D7";
            xlnx,vauxp8-loc = "F8";
            xlnx,vauxp9-loc = "E6";
            xlnx,vpvn = <0x0>;
        };
        zyxclmm_drm {
            compatible = "xlnx,zocl";
            interrupts-extended = <&axi_intc_0 0 4>, <&axi_intc_0 1 4>, <&axi_intc_0 2 4>, <&axi_intc_0 3 4>, <&axi_intc_0 4 4>, <&axi_intc_0 5 4>, <&axi_intc_0 6 4>, <&axi_intc_0 7 4>, <&axi_intc_0 8 4>, <&axi_intc_0 9 4>,
<&axi_intc_0 10 4>, <&axi_intc_0 11 4>, <&axi_intc_0 12 4>, <&axi_intc_0 13 4>, <&axi_intc_0 14 4>,
<&axi_intc_0 15 4>, <&axi_intc_0 16 4>, <&axi_intc_0 17 4>, <&axi_intc_0 18 4>, <&axi_intc_0 19 4>,
<&axi_intc_0 20 4>, <&axi_intc_0 21 4>, <&axi_intc_0 22 4>, <&axi_intc_0 23 4>, <&axi_intc_0 24 4>,
<&axi_intc_0 25 4>, <&axi_intc_0 26 4>, <&axi_intc_0 27 4>, <&axi_intc_0 28 4>, <&axi_intc_0 29 4>,
<&axi_intc_0 30 4>, <&axi_intc_0 31 4 >;
        };
    };
};

&axi_iic_0 {
  #address-cells = <1>;
  #size-cells = <0>;
  clock-frequency = <100000>;
  stts22htr: stts22htr@3f {
    compatible = "st,stts22h";
    reg = <0x3f>;
  };
};


現在の ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/firmware/avnet_zub1cg_base ディレクトリの様子を示す。
ZUBoard1CG_59_230707.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/firmware/avnet_zub1cg_dualcam/avnet_zub1cg_dualcam.dtsi を作成した。

ZUBoard - Combining designs into a single platform”からデバイス・ツリーのコードを引用した。
ZUBoard1CG_60_230707.png

最後の &amba{} のセクションに ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_dualcam_2022_2/components/plnx_workspace/device-tree/device-tree/pl.dtsi の内容を追加した。
pl.dtsi を示す。
ZUBoard1CG_61_230707.png

現在の ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/firmware/avnet_zub1cg_dualcam/avnet_zub1cg_dualcam.dtsi を示す。
ZUBoard1CG_62_230707.png

デュアルカム用の追加コンテンツを ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/firmware/avnet_zub1cg_dualcam/avnet_zub1cg_dualcam.dtsi に追加した。
現在の avnet_zub1cg_dualcam.dtsi を示す。

/dts-v1/;
/plugin/;

#include <dt-bindings/gpio/gpio.h>

&fpga_full {
   #address-cells = <2>;
   #size-cells = <2>;
   firmware-name = "avnet_zub1cg_dualcam.bit.bin";
   resets = <&zynqmp_reset 116>, <&zynqmp_reset 117>, <&zynqmp_reset 118>, <&zynqmp_reset 119>;
}

&amba {
   afi0: afi0 {
      compatible = "xlnx,afi-fpga";
      config-afi = <0 0>, <1 0>, <2 0>, <3 0>, <4 1>, <5 1>, <6 0>, <7 0>, <8 1>, <9 1>, <10 2>, <11 2>, <12 2>, <13 2>, <14 0x000>, <15 0x000>;
      resets = <&zynqmp_reset 116>, <&zynqmp_reset 117>, <&zynqmp_reset 118>, <&zynqmp_reset 119>;
      reset-names = "pl0", "pl1", "pl2", "pl3";
   };
};

&amba {
    amba_pl: amba_pl@0 {
        #address-cells = <2>;
        #size-cells = <2>;
        compatible = "simple-bus";
        ranges ;
        CAPTURE_PIPELINE_mipi_csi2_rx_subsyst_0: mipi_csi2_rx_subsystem@b0000000 {
            clock-names = "lite_aclk", "dphy_clk_200M", "video_aclk";
            clocks = <&misc_clk_0>, <&misc_clk_0>, <&misc_clk_0>;
            compatible = "xlnx,mipi-csi2-rx-subsystem-5.2", "xlnx,mipi-csi2-rx-subsystem-5.0";
            interrupt-names = "csirxss_csi_irq";
            interrupt-parent = <&gic>;
            interrupts = <0 91 4>;
            reg = <0x0 0xb0000000 0x0 0x2000>;
            xlnx,axis-tdata-width = <32>;
            xlnx,csi-pxl-format = <0x18>;
            xlnx,dphy-present ;
            xlnx,en-active-lanes ;
            xlnx,max-lanes = <4>;
            xlnx,ppc = <2>;
            xlnx,vc = <4>;
            xlnx,vfb ;
            mipi_csi_portsCAPTURE_PIPELINE_mipi_csi2_rx_subsyst_0: ports {
                #address-cells = <1>;
                #size-cells = <0>;
                mipi_csi_port1CAPTURE_PIPELINE_mipi_csi2_rx_subsyst_0: port@1 {
                    /* Fill cfa-pattern=rggb for raw data types, other fields video-format and video-width user needs to fill */
                    reg = <1>;
                    xlnx,cfa-pattern = "rggb";
                    xlnx,video-format = <12>;
                    xlnx,video-width = <8>;
                    mipi_csirx_outCAPTURE_PIPELINE_mipi_csi2_rx_subsyst_0: endpoint {
                        remote-endpoint = <&CAPTURE_PIPELINE_v_proc_ss_csc_0CAPTURE_PIPELINE_mipi_csi2_rx_subsyst_0>;
                    };
                };
                mipi_csi_port0CAPTURE_PIPELINE_mipi_csi2_rx_subsyst_0: port@0 {
                    /* Fill cfa-pattern=rggb for raw data types, other fields video-format,video-width user needs to fill */
                    /* User need to add something like remote-endpoint=<&out> under the node csiss_in:endpoint */
                    reg = <0>;
                    xlnx,cfa-pattern = "rggb";
                    xlnx,video-format = <12>;
                    xlnx,video-width = <8>;
                    mipi_csi_inCAPTURE_PIPELINE_mipi_csi2_rx_subsyst_0: endpoint {
                        data-lanes = <1 2 3 4>;
                    };
                };
            };
        };
        misc_clk_0: misc_clk_0 {
            #clock-cells = <0>;
            clock-frequency = <200000000>;
            compatible = "fixed-clock";
        };
        CAPTURE_PIPELINE_v_frmbuf_wr_0: v_frmbuf_wr@b0010000 {
            #dma-cells = <1>;
            clock-names = "ap_clk";
            clocks = <&misc_clk_0>;
            compatible = "xlnx,v-frmbuf-wr-2.4", "xlnx,axi-frmbuf-wr-v2.2";
            interrupt-names = "interrupt";
            interrupt-parent = <&gic>;
            interrupts = <0 90 4>;
            reg = <0x0 0xb0010000 0x0 0x10000>;
            xlnx,dma-addr-width = <32>;
            xlnx,dma-align = <16>;
            xlnx,max-height = <2160>;
            xlnx,max-width = <3840>;
            xlnx,pixels-per-clock = <2>;
            xlnx,s-axi-ctrl-addr-width = <0x7>;
            xlnx,s-axi-ctrl-data-width = <0x20>;
            xlnx,vid-formats = "rgb888", "uyvy", "y8", "yuyv";
            xlnx,video-width = <8>;
        };
        CAPTURE_PIPELINE_v_proc_ss_csc_0: v_proc_ss@b0020000 {
            clock-names = "aclk";
            clocks = <&misc_clk_0>;
            compatible = "xlnx,v-proc-ss-2.3", "xlnx,vpss-csc", "xlnx,v-vpss-csc";
            reg = <0x0 0xb0020000 0x0 0x10000>;
            xlnx,colorspace-support = <1>;
            xlnx,csc-enable-window = "true";
            xlnx,max-height = <2160>;
            xlnx,max-width = <3840>;
            xlnx,num-video-components = <3>;
            xlnx,samples-per-clk = <2>;
            xlnx,topology = <3>;
            xlnx,use-uram = <0>;
            xlnx,video-width = <8>;
            csc_portsCAPTURE_PIPELINE_v_proc_ss_csc_0: ports {
                #address-cells = <1>;
                #size-cells = <0>;
                csc_port1CAPTURE_PIPELINE_v_proc_ss_csc_0: port@1 {
                    /* For xlnx,video-format user needs to fill as per their requirement */
                    reg = <1>;
                    xlnx,video-format = <3>;
                    xlnx,video-width = <8>;
                    csc_outCAPTURE_PIPELINE_v_proc_ss_csc_0: endpoint {
                        remote-endpoint = <&CAPTURE_PIPELINE_v_proc_ss_scaler_0CAPTURE_PIPELINE_v_proc_ss_csc_0>;
                    };
                };
                csc_port0CAPTURE_PIPELINE_v_proc_ss_csc_0: port@0 {
                    /* For xlnx,video-format user needs to fill as per their requirement */
                    reg = <0>;
                    xlnx,video-format = <3>;
                    xlnx,video-width = <8>;
                    CAPTURE_PIPELINE_v_proc_ss_csc_0CAPTURE_PIPELINE_mipi_csi2_rx_subsyst_0: endpoint {
                        remote-endpoint = <&mipi_csirx_outCAPTURE_PIPELINE_mipi_csi2_rx_subsyst_0>;
                    };
                };
            };
        };
        CAPTURE_PIPELINE_v_proc_ss_scaler_0: v_proc_ss@b0040000 {
            clock-names = "aclk_axis", "aclk_ctrl";
            clocks = <&misc_clk_0>, <&misc_clk_0>;
            compatible = "xlnx,v-proc-ss-2.3", "xlnx,vpss-scaler-2.2", "xlnx,v-vpss-scaler-2.2", "xlnx,vpss-scaler";
            reg = <0x0 0xb0040000 0x0 0x40000>;
            xlnx,colorspace-support = <1>;
            xlnx,csc-enable-window = "true";
            xlnx,enable-csc = "true";
            xlnx,h-scaler-phases = <64>;
            xlnx,h-scaler-taps = <8>;
            xlnx,max-height = <2160>;
            xlnx,max-num-phases = <64>;
            xlnx,max-width = <3840>;
            xlnx,num-hori-taps = <8>;
            xlnx,num-vert-taps = <8>;
            xlnx,pix-per-clk = <2>;
            xlnx,samples-per-clk = <2>;
            xlnx,scaler-algorithm = <2>;
            xlnx,topology = <0>;
            xlnx,use-uram = <0>;
            xlnx,v-scaler-phases = <64>;
            xlnx,v-scaler-taps = <8>;
            xlnx,video-width = <8>;
            scaler_portsCAPTURE_PIPELINE_v_proc_ss_scaler_0: ports {
                #address-cells = <1>;
                #size-cells = <0>;
                scaler_port1CAPTURE_PIPELINE_v_proc_ss_scaler_0: port@1 {
                    /* For xlnx,video-format user needs to fill as per their requirement */
                    reg = <1>;
                    xlnx,video-format = <3>;
                    xlnx,video-width = <8>;
                    sca_outCAPTURE_PIPELINE_v_proc_ss_scaler_0: endpoint {
                        remote-endpoint = <&CAPTURE_PIPELINE_v_frmbuf_wr_0CAPTURE_PIPELINE_v_proc_ss_scaler_0>;
                    };
                };
                scaler_port0CAPTURE_PIPELINE_v_proc_ss_scaler_0: port@0 {
                    /* For xlnx,video-format user needs to fill as per their requirement */
                    reg = <0>;
                    xlnx,video-format = <3>;
                    xlnx,video-width = <8>;
                    CAPTURE_PIPELINE_v_proc_ss_scaler_0CAPTURE_PIPELINE_v_proc_ss_csc_0: endpoint {
                        remote-endpoint = <&csc_outCAPTURE_PIPELINE_v_proc_ss_csc_0>;
                    };
                };
            };
        };
        GPIO_axi_gpio_0: gpio@a0000000 {
            #gpio-cells = <2>;
            clock-names = "s_axi_aclk";
            clocks = <&zynqmp_clk 71>;
            compatible = "xlnx,axi-gpio-2.0", "xlnx,xps-gpio-1.00.a";
            gpio-controller ;
            reg = <0x0 0xa0000000 0x0 0x10000>;
            xlnx,all-inputs = <0x0>;
            xlnx,all-inputs-2 = <0x0>;
            xlnx,all-outputs = <0x1>;
            xlnx,all-outputs-2 = <0x0>;
            xlnx,dout-default = <0x00000000>;
            xlnx,dout-default-2 = <0x00000000>;
            xlnx,gpio-width = <0x8>;
            xlnx,gpio2-width = <0x20>;
            xlnx,interrupt-present = <0x0>;
            xlnx,is-dual = <0x0>;
            xlnx,tri-default = <0xFFFFFFFF>;
            xlnx,tri-default-2 = <0xFFFFFFFF>;
        };
        axi_iic_0: i2c@a0010000 {
            #address-cells = <1>;
            #size-cells = <0>;
            clock-names = "s_axi_aclk";
            clocks = <&zynqmp_clk 71>;
            compatible = "xlnx,axi-iic-2.1", "xlnx,xps-iic-2.00.a";
            interrupt-names = "iic2intc_irpt";
            interrupt-parent = <&gic>;
            interrupts = <0 94 4>;
            reg = <0x0 0xa0010000 0x0 0x10000>;
        };
        axi_intc_0: interrupt-controller@a0020000 {
            #interrupt-cells = <2>;
            clock-names = "s_axi_aclk";
            clocks = <&zynqmp_clk 71>;
            compatible = "xlnx,axi-intc-4.1", "xlnx,xps-intc-1.00.a";
            interrupt-controller ;
            interrupt-names = "irq";
            interrupt-parent = <&gic>;
            interrupts = <0 95 1>;
            reg = <0x0 0xa0020000 0x0 0x10000>;
            xlnx,kind-of-intr = <0x1>;
            xlnx,num-intr-inputs = <0x20>;
        };
        system_management_wiz_0: system_management_wiz@a0030000 {
            clock-names = "s_axi_aclk";
            clocks = <&zynqmp_clk 71>;
            compatible = "xlnx,system-management-wiz-1.3";
            reg = <0x0 0xa0030000 0x0 0x10000>;
            xlnx,alarm-limit-r0 = <0xb794>;
            xlnx,alarm-limit-r1 = <0x4e81>;
            xlnx,alarm-limit-r10 = <0x4963>;
            xlnx,alarm-limit-r11 = <0x451e>;
            xlnx,alarm-limit-r12 = <0x4963>;
            xlnx,alarm-limit-r13 = <0x451e>;
            xlnx,alarm-limit-r14 = <0x9a74>;
            xlnx,alarm-limit-r15 = <0x91eb>;
            xlnx,alarm-limit-r2 = <0xa147>;
            xlnx,alarm-limit-r3 = <0xcba3>;
            xlnx,alarm-limit-r4 = <0xab03>;
            xlnx,alarm-limit-r5 = <0x4963>;
            xlnx,alarm-limit-r6 = <0x9555>;
            xlnx,alarm-limit-r7 = <0xb00a>;
            xlnx,alarm-limit-r8 = <0x4e81>;
            xlnx,alarm-limit-r9 = <0x4963>;
            xlnx,alarm-limit-slave0-ssit-usl1 = <0x4c5e>;
            xlnx,alarm-limit-slave0-ssit-usl2 = <0x4bf2>;
            xlnx,alarm-limit-slave0-ssit-usl3 = <0x98bf>;
            xlnx,alarm-limit-slave0-ssit-usl4 = <0x98bf>;
            xlnx,alarm-limit-slave0-ssit-usu1 = <0x4d39>;
            xlnx,alarm-limit-slave0-ssit-usu2 = <0x4da7>;
            xlnx,alarm-limit-slave0-ssit-usu3 = <0x9a74>;
            xlnx,alarm-limit-slave0-ssit-usu4 = <0x9a74>;
            xlnx,alarm-limit-slave1-ssit-usl1 = <0x4c5e>;
            xlnx,alarm-limit-slave1-ssit-usl2 = <0x4bf2>;
            xlnx,alarm-limit-slave1-ssit-usl3 = <0x98bf>;
            xlnx,alarm-limit-slave1-ssit-usl4 = <0x98bf>;
            xlnx,alarm-limit-slave1-ssit-usu1 = <0x4d39>;
            xlnx,alarm-limit-slave1-ssit-usu2 = <0x4da7>;
            xlnx,alarm-limit-slave1-ssit-usu3 = <0x9a74>;
            xlnx,alarm-limit-slave1-ssit-usu4 = <0x9a74>;
            xlnx,alarm-limit-slave2-ssit-usl1 = <0x4c5e>;
            xlnx,alarm-limit-slave2-ssit-usl2 = <0x4bf2>;
            xlnx,alarm-limit-slave2-ssit-usl3 = <0x98bf>;
            xlnx,alarm-limit-slave2-ssit-usl4 = <0x98bf>;
            xlnx,alarm-limit-slave2-ssit-usu1 = <0x4d39>;
            xlnx,alarm-limit-slave2-ssit-usu2 = <0x4da7>;
            xlnx,alarm-limit-slave2-ssit-usu3 = <0x9a74>;
            xlnx,alarm-limit-slave2-ssit-usu4 = <0x9a74>;
            xlnx,alarm-limit-usl1 = <0x4c5e>;
            xlnx,alarm-limit-usl2 = <0x4bf2>;
            xlnx,alarm-limit-usl3 = <0x98bf>;
            xlnx,alarm-limit-usl4 = <0x98bf>;
            xlnx,alarm-limit-usu1 = <0x4d39>;
            xlnx,alarm-limit-usu2 = <0x4da7>;
            xlnx,alarm-limit-usu3 = <0x9a74>;
            xlnx,alarm-limit-usu4 = <0x9a74>;
            xlnx,average-en-slave0-ssit-vuser0 = <0x0>;
            xlnx,average-en-slave0-ssit-vuser1 = <0x0>;
            xlnx,average-en-slave0-ssit-vuser2 = <0x0>;
            xlnx,average-en-slave0-ssit-vuser3 = <0x0>;
            xlnx,average-en-slave1-ssit-vuser0 = <0x0>;
            xlnx,average-en-slave1-ssit-vuser1 = <0x0>;
            xlnx,average-en-slave1-ssit-vuser2 = <0x0>;
            xlnx,average-en-slave1-ssit-vuser3 = <0x0>;
            xlnx,average-en-slave2-ssit-vuser0 = <0x0>;
            xlnx,average-en-slave2-ssit-vuser1 = <0x0>;
            xlnx,average-en-slave2-ssit-vuser2 = <0x0>;
            xlnx,average-en-slave2-ssit-vuser3 = <0x0>;
            xlnx,average-en-vuser0 = <0x0>;
            xlnx,average-en-vuser1 = <0x0>;
            xlnx,average-en-vuser2 = <0x0>;
            xlnx,average-en-vuser3 = <0x0>;
            xlnx,avg-slave0-ssit-vuser = <0x0>;
            xlnx,avg-slave1-ssit-vuser = <0x0>;
            xlnx,avg-slave2-ssit-vuser = <0x0>;
            xlnx,avg-vuser = <0x0>;
            xlnx,channel-cnt = <0x5>;
            xlnx,common-n-source = "Null";
            xlnx,configuration-r0 = <0x0>;
            xlnx,configuration-r1 = <0x2f9f>;
            xlnx,configuration-r2 = <0x1400>;
            xlnx,configuration-r3 = <0xf>;
            xlnx,configuration-r4 = <0x0>;
            xlnx,configuration-r4-1 = <0xc>;
            xlnx,configuration-r4-2 = <0xd>;
            xlnx,configuration-r4-3 = <0xe>;
            xlnx,configuration-r4-4 = <0xa>;
            xlnx,configuration-slave0-ssit-r3 = <0xf>;
            xlnx,configuration-slave0-ssit-r4-1 = <0xc>;
            xlnx,configuration-slave0-ssit-r4-2 = <0xd>;
            xlnx,configuration-slave0-ssit-r4-3 = <0xe>;
            xlnx,configuration-slave0-ssit-r4-4 = <0xa>;
            xlnx,configuration-slave1-ssit-r3 = <0xf>;
            xlnx,configuration-slave1-ssit-r4-1 = <0xc>;
            xlnx,configuration-slave1-ssit-r4-2 = <0xd>;
            xlnx,configuration-slave1-ssit-r4-3 = <0xe>;
            xlnx,configuration-slave1-ssit-r4-4 = <0xa>;
            xlnx,configuration-slave2-ssit-r3 = <0xf>;
            xlnx,configuration-slave2-ssit-r4-1 = <0xc>;
            xlnx,configuration-slave2-ssit-r4-2 = <0xd>;
            xlnx,configuration-slave2-ssit-r4-3 = <0xe>;
            xlnx,configuration-slave2-ssit-r4-4 = <0xa>;
            xlnx,dclk-frequency = <0x64>;
            xlnx,div-vuser0 = <0x6>;
            xlnx,div-vuser0-slave0 = <0x6>;
            xlnx,div-vuser0-slave1 = <0x6>;
            xlnx,div-vuser0-slave2 = <0x6>;
            xlnx,div-vuser1 = <0x3>;
            xlnx,div-vuser1-slave0 = <0x3>;
            xlnx,div-vuser1-slave1 = <0x3>;
            xlnx,div-vuser1-slave2 = <0x3>;
            xlnx,div-vuser2 = <0x3>;
            xlnx,div-vuser2-slave0 = <0x3>;
            xlnx,div-vuser2-slave1 = <0x3>;
            xlnx,div-vuser2-slave2 = <0x3>;
            xlnx,div-vuser3 = <0x3>;
            xlnx,div-vuser3-slave0 = <0x3>;
            xlnx,div-vuser3-slave1 = <0x3>;
            xlnx,div-vuser3-slave2 = <0x3>;
            xlnx,dual-seq = <0x0>;
            xlnx,dual-sequence-r0 = <0x0>;
            xlnx,dual-sequence-r1 = <0x0>;
            xlnx,dual-sequence-r2 = <0x0>;
            xlnx,dual0-register = <0x0>;
            xlnx,dual1-register = <0x0>;
            xlnx,dual2-register = <0x0>;
            xlnx,dual3-register = <0x0>;
            xlnx,enable-adc-data-out-master = <0x0>;
            xlnx,enable-adc-data-out-slave0 = <0x0>;
            xlnx,enable-adc-data-out-slave1 = <0x0>;
            xlnx,enable-adc-data-out-slave2 = <0x0>;
            xlnx,enable-dual-sequence-mode = <0x0>;
            xlnx,enable-slave0 = <0x0>;
            xlnx,enable-slave1 = <0x0>;
            xlnx,enable-slave2 = <0x0>;
            xlnx,external-mux-channel = "VP_VN";
            xlnx,external-muxaddr-enable = <0x0>;
            xlnx,fifo-depth = <0x7>;
            xlnx,has-axi = <0x1>;
            xlnx,has-axi4stream = <0x0>;
            xlnx,has-busy = <0x1>;
            xlnx,has-channel = <0x1>;
            xlnx,has-convst = <0x0>;
            xlnx,has-convstclk = <0x0>;
            xlnx,has-dclk = <0x1>;
            xlnx,has-drp = <0x0>;
            xlnx,has-eoc = <0x1>;
            xlnx,has-eos = <0x1>;
            xlnx,has-external-mux = <0x0>;
            xlnx,has-i2c = <0x0>;
            xlnx,has-i2c-slave = <0x0>;
            xlnx,has-jtagbusy = <0x0>;
            xlnx,has-jtaglocked = <0x0>;
            xlnx,has-jtagmodified = <0x0>;
            xlnx,has-ot-alarm = <0x0>;
            xlnx,has-pmbus = <0x0>;
            xlnx,has-pmc = <0x0>;
            xlnx,has-pmc-master = <0x0>;
            xlnx,has-reset = <0x0>;
            xlnx,has-slave0-ssit-temp-ch = <0x1>;
            xlnx,has-slave0-ssit-vuser0 = <0x0>;
            xlnx,has-slave0-ssit-vuser1 = <0x0>;
            xlnx,has-slave0-ssit-vuser2 = <0x0>;
            xlnx,has-slave0-ssit-vuser3 = <0x0>;
            xlnx,has-slave1-ssit-temp-ch = <0x1>;
            xlnx,has-slave1-ssit-vuser0 = <0x0>;
            xlnx,has-slave1-ssit-vuser1 = <0x0>;
            xlnx,has-slave1-ssit-vuser2 = <0x0>;
            xlnx,has-slave1-ssit-vuser3 = <0x0>;
            xlnx,has-slave2-ssit-temp-ch = <0x1>;
            xlnx,has-slave2-ssit-vuser0 = <0x0>;
            xlnx,has-slave2-ssit-vuser1 = <0x0>;
            xlnx,has-slave2-ssit-vuser2 = <0x0>;
            xlnx,has-slave2-ssit-vuser3 = <0x0>;
            xlnx,has-temp-bus = <0x0>;
            xlnx,has-under-ot-alarm = <0x0>;
            xlnx,has-under-temp-alarm = <0x0>;
            xlnx,has-user-supply0-alarm = <0x0>;
            xlnx,has-user-supply0-slave0-ssit-alarm = <0x0>;
            xlnx,has-user-supply0-slave1-ssit-alarm = <0x0>;
            xlnx,has-user-supply0-slave2-ssit-alarm = <0x0>;
            xlnx,has-user-supply1-alarm = <0x0>;
            xlnx,has-user-supply1-slave0-ssit-alarm = <0x0>;
            xlnx,has-user-supply1-slave1-ssit-alarm = <0x0>;
            xlnx,has-user-supply1-slave2-ssit-alarm = <0x0>;
            xlnx,has-user-supply2-alarm = <0x0>;
            xlnx,has-user-supply2-slave0-ssit-alarm = <0x0>;
            xlnx,has-user-supply2-slave1-ssit-alarm = <0x0>;
            xlnx,has-user-supply2-slave2-ssit-alarm = <0x0>;
            xlnx,has-user-supply3-alarm = <0x0>;
            xlnx,has-user-supply3-slave0-ssit-alarm = <0x0>;
            xlnx,has-user-supply3-slave1-ssit-alarm = <0x0>;
            xlnx,has-user-supply3-slave2-ssit-alarm = <0x0>;
            xlnx,has-user-temp-alarm = <0x0>;
            xlnx,has-vbram-alarm = <0x0>;
            xlnx,has-vccaux-alarm = <0x0>;
            xlnx,has-vccddro-alarm = <0x0>;
            xlnx,has-vccint-alarm = <0x0>;
            xlnx,has-vccpaux-alarm = <0x0>;
            xlnx,has-vccpint-alarm = <0x0>;
            xlnx,has-vccpsaux-alarm = <0x0>;
            xlnx,has-vccpsintfp-alarm = <0x0>;
            xlnx,has-vccpsintlp-alarm = <0x0>;
            xlnx,has-vn = <0x1>;
            xlnx,has-vp = <0x1>;
            xlnx,has-vuser0 = <0x0>;
            xlnx,has-vuser1 = <0x0>;
            xlnx,has-vuser2 = <0x0>;
            xlnx,has-vuser3 = <0x0>;
            xlnx,i2c-clk-period = "2500.000";
            xlnx,i2c-sclk-loc = "F3";
            xlnx,i2c-sda-loc = "D2";
            xlnx,i2c-slave-address = <0x20>;
            xlnx,i2c-slave0-address = <0x20>;
            xlnx,i2c-slave1-address = <0x20>;
            xlnx,i2c-slave2-address = <0x20>;
            xlnx,include-intr = <0x1>;
            xlnx,is-diablo = <0x1>;
            xlnx,is-ssit-slave0 = <0x0>;
            xlnx,is-ssit-slave0-analog-bank = <0x0>;
            xlnx,is-ssit-slave1 = <0x0>;
            xlnx,is-ssit-slave1-analog-bank = <0x0>;
            xlnx,is-ssit-slave2 = <0x0>;
            xlnx,is-ssit-slave2-analog-bank = <0x0>;
            xlnx,sampling-rate = "192307.6923076923";
            xlnx,sequence-r0 = <0x4701>;
            xlnx,sequence-r1 = <0x0>;
            xlnx,sequence-r2 = <0x0>;
            xlnx,sequence-r3 = <0x0>;
            xlnx,sequence-r4 = <0x0>;
            xlnx,sequence-r5 = <0x0>;
            xlnx,sequence-r6 = <0x0>;
            xlnx,sequence-r7 = <0x0>;
            xlnx,sequence-r8 = <0x0>;
            xlnx,sequence-slave0-ssit-r0 = <0x100>;
            xlnx,sequence-slave0-ssit-r8 = <0x0>;
            xlnx,sequence-slave1-ssit-r0 = <0x100>;
            xlnx,sequence-slave1-ssit-r8 = <0x0>;
            xlnx,sequence-slave2-ssit-r0 = <0x100>;
            xlnx,sequence-slave2-ssit-r8 = <0x0>;
            xlnx,sim-device = "ZYNQ_ULTRASCALE";
            xlnx,sim-file-name = "design";
            xlnx,sim-file-rel-path = "./";
            xlnx,sim-file-sel = "Default";
            xlnx,user-supply0-bank = <0x2c>;
            xlnx,user-supply0-slave0-ssit-bank = <0x2c>;
            xlnx,user-supply0-slave0-ssit-source = "VCCO";
            xlnx,user-supply0-slave1-ssit-bank = <0x2c>;
            xlnx,user-supply0-slave1-ssit-source = "VCCO";
            xlnx,user-supply0-slave2-ssit-bank = <0x2c>;
            xlnx,user-supply0-slave2-ssit-source = "VCCO";
            xlnx,user-supply0-source = "VCCO";
            xlnx,user-supply1-bank = <0x2c>;
            xlnx,user-supply1-slave0-ssit-bank = <0x2c>;
            xlnx,user-supply1-slave0-ssit-source = "VCCINT";
            xlnx,user-supply1-slave1-ssit-bank = <0x2c>;
            xlnx,user-supply1-slave1-ssit-source = "VCCINT";
            xlnx,user-supply1-slave2-ssit-bank = <0x2c>;
            xlnx,user-supply1-slave2-ssit-source = "VCCINT";
            xlnx,user-supply1-source = "VCCINT";
            xlnx,user-supply2-bank = <0x2c>;
            xlnx,user-supply2-slave0-ssit-bank = <0x2c>;
            xlnx,user-supply2-slave0-ssit-source = "VCCAUX";
            xlnx,user-supply2-slave1-ssit-bank = <0x2c>;
            xlnx,user-supply2-slave1-ssit-source = "VCCAUX";
            xlnx,user-supply2-slave2-ssit-bank = <0x2c>;
            xlnx,user-supply2-slave2-ssit-source = "VCCAUX";
            xlnx,user-supply2-source = "VCCAUX";
            xlnx,user-supply3-bank = <0x41>;
            xlnx,user-supply3-slave0-ssit-bank = <0x41>;
            xlnx,user-supply3-slave0-ssit-source = "VCCO";
            xlnx,user-supply3-slave1-ssit-bank = <0x41>;
            xlnx,user-supply3-slave1-ssit-source = "VCCO";
            xlnx,user-supply3-slave2-ssit-bank = <0x41>;
            xlnx,user-supply3-slave2-ssit-source = "VCCO";
            xlnx,user-supply3-source = "VCCO";
            xlnx,vaux0 = <0x0>;
            xlnx,vaux1 = <0x0>;
            xlnx,vaux10 = <0x0>;
            xlnx,vaux11 = <0x0>;
            xlnx,vaux12 = <0x0>;
            xlnx,vaux13 = <0x0>;
            xlnx,vaux14 = <0x0>;
            xlnx,vaux15 = <0x0>;
            xlnx,vaux2 = <0x0>;
            xlnx,vaux3 = <0x0>;
            xlnx,vaux4 = <0x0>;
            xlnx,vaux5 = <0x0>;
            xlnx,vaux6 = <0x0>;
            xlnx,vaux7 = <0x0>;
            xlnx,vaux8 = <0x0>;
            xlnx,vaux9 = <0x0>;
            xlnx,vauxn0-loc = "A6";
            xlnx,vauxn1-loc = "B5";
            xlnx,vauxn10-loc = "F6";
            xlnx,vauxn11-loc = "G5";
            xlnx,vauxn12-loc = "L29";
            xlnx,vauxn13-loc = "K30";
            xlnx,vauxn14-loc = "M27";
            xlnx,vauxn15-loc = "M32";
            xlnx,vauxn2-loc = "A7";
            xlnx,vauxn3-loc = "A9";
            xlnx,vauxn4-loc = "C7";
            xlnx,vauxn5-loc = "C5";
            xlnx,vauxn6-loc = "D8";
            xlnx,vauxn7-loc = "D6";
            xlnx,vauxn8-loc = "F7";
            xlnx,vauxn9-loc = "E5";
            xlnx,vauxp0-loc = "B7";
            xlnx,vauxp1-loc = "B6";
            xlnx,vauxp10-loc = "G7";
            xlnx,vauxp11-loc = "G6";
            xlnx,vauxp12-loc = "L28";
            xlnx,vauxp13-loc = "L30";
            xlnx,vauxp14-loc = "N27";
            xlnx,vauxp15-loc = "M31";
            xlnx,vauxp2-loc = "A8";
            xlnx,vauxp3-loc = "B9";
            xlnx,vauxp4-loc = "C8";
            xlnx,vauxp5-loc = "D5";
            xlnx,vauxp6-loc = "E8";
            xlnx,vauxp7-loc = "D7";
            xlnx,vauxp8-loc = "F8";
            xlnx,vauxp9-loc = "E6";
            xlnx,vpvn = <0x0>;
        };
        zyxclmm_drm {
            compatible = "xlnx,zocl";
            interrupts-extended = <&axi_intc_0 0 4>, <&axi_intc_0 1 4>, <&axi_intc_0 2 4>, <&axi_intc_0 3 4>, <&axi_intc_0 4 4>, <&axi_intc_0 5 4>, <&axi_intc_0 6 4>, <&axi_intc_0 7 4>, <&axi_intc_0 8 4>, <&axi_intc_0 9 4>,
<&axi_intc_0 10 4>, <&axi_intc_0 11 4>, <&axi_intc_0 12 4>, <&axi_intc_0 13 4>, <&axi_intc_0 14 4>,
<&axi_intc_0 15 4>, <&axi_intc_0 16 4>, <&axi_intc_0 17 4>, <&axi_intc_0 18 4>, <&axi_intc_0 19 4>,
<&axi_intc_0 20 4>, <&axi_intc_0 21 4>, <&axi_intc_0 22 4>, <&axi_intc_0 23 4>, <&axi_intc_0 24 4>,
<&axi_intc_0 25 4>, <&axi_intc_0 26 4>, <&axi_intc_0 27 4>, <&axi_intc_0 28 4>, <&axi_intc_0 29 4>,
<&axi_intc_0 30 4>, <&axi_intc_0 31 4 >;
        };
        vcap_CAPTURE_PIPELINE_v_proc_ss_scaler_0 {
            compatible = "xlnx,video";
            dma-names = "port0";
            dmas = <&CAPTURE_PIPELINE_v_frmbuf_wr_0 0>;
            vcap_portsCAPTURE_PIPELINE_v_proc_ss_scaler_0: ports {
                #address-cells = <1>;
                #size-cells = <0>;
                vcap_portCAPTURE_PIPELINE_v_proc_ss_scaler_0: port@0 {
                    direction = "input";
                    reg = <0>;
                    CAPTURE_PIPELINE_v_frmbuf_wr_0CAPTURE_PIPELINE_v_proc_ss_scaler_0: endpoint {
                        remote-endpoint = <&sca_outCAPTURE_PIPELINE_v_proc_ss_scaler_0>;
                    };
                };
            };
        };
    };
};

&axi_iic_0 {
  #address-cells = <1>;
  #size-cells = <0>;
  clock-frequency = <100000>;
  stts22htr: stts22htr@3f {
    compatible = "st,stts22h";
    reg = <0x3f>;
  };
};

&amba {
  ap1302_osc: ap1302oscillator {
    compatible = "fixed-clock";
    #clock-cells = <0>;
    clock-frequency  = <48000000>;
    clock-output-names = "ap1302osc";
  };

};


現在の ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/firmware/avnet_zub1cg_dualcam ディレクトリを示す。
ZUBoard1CG_63_230707.png

ファームウェア・オーバーレイを作成した。
petalinux-create -t apps \
                  --template fpgamanager -n avnet-zub1cg-base \
                  --enable \
                  --srcuri "firmware/avnet_zub1cg_base/avnet_zub1cg_base.bit \
                            firmware/avnet_zub1cg_base/avnet_zub1cg_base.dtsi \
                            firmware/avnet_zub1cg_base/shell.json" \
                  --force

ZUBoard1CG_66_230707.png

petalinux-create -t apps \
                  --template fpgamanager -n avnet-zub1cg-dualcam \
                  --enable \
                  --srcuri "firmware/avnet_zub1cg_dualcam/avnet_zub1cg_dualcam.bit \
                            firmware/avnet_zub1cg_dualcam/avnet_zub1cg_dualcam.dtsi \
                            firmware/avnet_zub1cg_dualcam/shell.json" \
                  --force

ZUBoard1CG_67_230707.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/project-spec/meta-user/conf/user-rootfsconfig に CONFIG_xmutil を追加した。
ZUBoard1CG_68_230707.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/project-spec/configs/rootfs_config に CONFIG_xmutil=y を追加した。
ZUBoard1CG_69_230707.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/project-spec/meta-on-semiconductor/recipes-core/images/petalinux-image-minimal.bbappend に IMAGE_INSTALL:append:zub1cg-sbc-base の項を追加した。

IMAGE_INSTALL:append:zub1cg-sbc-base += "\
                ap1302 \
                libdrm \
                libdrm-tests \
                libdrm-kms \
                dualcam-python-examples \
"


ZUBoard1CG_70_230707.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/project-spec/meta-on-semiconductor/recipes-app/dualcam-python-examples/dualcam-python-examples_git.bb の camera-setup
ZUBoard1CG_71_230707.png

dualcam-python-examples に変更した。
ZUBoard1CG_72_230707.png

ビルドを行ったところ、デバイス・ツリーのコンパイルエラーが発生した。
petalinux-build
ZUBoard1CG_73_230707.png

Error: /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/build/tmp/work/zub1cg_sbc_base-xilinx-linux/avnet-zub1cg-base/1.0-r0/avnet_zub1cg_base.dtsi:11.2-12.1 syntax error
FATAL ERROR: Unable to parse input tree


デバイス・ツリーのエラーなんだけど、何処がシンタックス・エラーなのか分からない?
昨日いろいろとやってみたのだが。。。何処の文法が悪いのか?分かったらコメント欄で教えてください。よろしくお願いいたします。
  1. 2023年07月09日 06:19 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

”ZUBoard - Combining designs into a single platform”をやってみる2

”ZUBoard - Combining designs into a single platform”をやってみる1”の続き。

ZUBoard - Combining designs into a single platform”をやってみようということで、前回は、xmutil コマンドを確認した後で、Petalinux 2022.2 の zub1cg_sbc_2022_2 プロジェクトを作成し、設定を行ってビルドしたが、エラーになってしまった。今回は、デバイス・ツリーを消去して、もう一度、ビルドを行ったところ成功した。

デバイスツリーの消去
PL のデバイス・ツリーを生成しないようにプロジェクトを構成する。
ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/project-spec/configs/config ファイルの CONFIG_SUBSYSTEM_REMOVE_PL_DTB を y に設定する。

CONFIG_SUBSYSTEM_REMOVE_PL_DTB=y


ZUBoard1CG_46_230706.png

ZUBoard の DualCam デザインの場合、追加のデバイス ツリー コンテンツは次のファイルで定義されるそうだ。
ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/project-spec/meta-on-semiconductor/recipes-bsp/device-tree/files/zub1cg-sbc-dualcam/system-user.dtsi
ZUBoard1CG_47_230706.png

新しい petalinux デザインはデフォルトで DualCam デザインのデバイス・ツリーになっているため、このデバイス・ツリーのコンテンツを削除できるそうだ。
rm -r project-spec/meta-on-semiconductor/recipes-bsp/device-tree

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/project-spec/meta-avnet/recipes-bsp/device-tree/files/zub1cg-sbc/system-bsp.dtsi を編集して、PL 定義 (axi_iic_0) をコメント・アウトした。
ZUBoard1CG_48_230706.png

もう一度、ビルドしたところ成功した。
ZUBoard1CG_51_230706.png
  1. 2023年07月07日 04:11 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

”ZUBoard - Combining designs into a single platform”をやってみる1

ZUBoard - Combining designs into a single platform”をやってみようということで、今回は、xmutil コマンドを確認した後で、Petalinux 2022.2 の zub1cg_sbc_2022_2 プロジェクトを作成し、設定を行ってビルドしたが、エラーになってしまった。

XMUTIL の概要
ZUBoard - Combining designs into a single platform”によると、今まで使用してきた xmutil は AMD (ザイリンクス) による Linux でのオープン ソース FPGA MANAGER サービスの実装である DFX-MGR を内部で呼び出すそうだ。
ZUBoard - Combining designs into a single platform”の図を引用する。
ZUBoard1CG_49_230706.png

xmutil ユーティリティによって呼び出される dfx-mgr-client コマンドを示す。
ZUBoard - Combining designs into a single platform”の表を引用する。
ZUBoard1CG_50_230706.png

xmutil って dfx-mgr-client コマンドを呼び出しているんだ。。。勉強になった。

新しいプラットフォームの作成
zub1cg-sbc-base と zub1cg-sbc-dualcam を合わせて zub1cg-sbc プラットフォームを作成するそうだ。

BSP にパッケージ化する。
cd /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects
petalinux-package --bsp -p zub1cg_sbc_dualcam_2022_2 --output zub1cg_sbc_dualcam_2022_2_jupyter.bsp

ZUBoard1CG_40_230706.png

zub1cg_sbc_dualcam_2022_2_jupyter.bsp が作成された。

Petalinux 2022.2 プロジェクトの zub1cg_sbc_2022_2 プロジェクトを作成した。
petalinux-create -t project -s zub1cg_sbc_dualcam_2022_2_jupyter.bsp -n zub1cg_sbc_2022_2
ZUBoard1CG_41_230706.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2/project-spec/configs/config ファイルを編集する。
以下のように変更した。

CONFIG_SUBSYSTEM_HOSTNAME="zub1cg-sbc-2022-2"
CONFIG_SUBSYSTEM_PRODUCT="zub1cg_sbc_2022_2"
CONFIG_YOCTO_MACHINE_NAME="zub1cg-sbc-base"


ZUBoard1CG_42_230706.png

dualcam の Viavdo プロジェクトを使用するように設定した。
cd /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_2022_2
petalinux-config --silentconfig --get-hw-description=../../../hdl/projects/zub1cg_sbc_dualcam_2022_2

ZUBoard1CG_43_230706.png

ビルドしたがエラーになってしまった。
petalinux-build
ZUBoard1CG_44_230706.png

デバイス・ツリー関連でエラーのようだ。
ZUBoard1CG_45_230706.png
  1. 2023年07月06日 04:26 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

”ZUBoard - Building the foundational designs”をやってみる5

”ZUBoard - Building the foundational designs”をやってみる4”の続き。

hackstar.io の”ZUBoard - Building the foundational designs”をやってみようということで、前回は、petalinux-image-minimal.bbappend ファイルに packagegroup-petalinux-jupyter を追加してビルドした。ビルドしたイメージ・ファイルを再度 MicroSD カードに書き込んだ。MicroSD カードを ZUBoard 1CG に挿入して Petalinux 2022.2 を起動して、Jupyter Notebook を起動した。Jupyter Notebook にファイルを作成し、それ上で、カメラ画像を表示した。今回は、Dual Camera モジュール用の zub1cg_sbc_dualcam デザインをビルドしたが、Dual Camera モジュールを持っていないので、ここまでとした。

zub1cg_sbc_dualcam を構築する。
Dual Camera モジュール用の zub1cg_sbc_dualcam デザインをビルドする。
/media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux ディレクトリに行って、make_zub1cg_sbc_dualcam.sh を実行した。
scripts/make_zub1cg_sbc_dualcam.sh
ZUBoard1CG_36_230705.png
ZUBoard1CG_37_230705.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects ディレクトリに zub1cg_sbc_dualcam_2022_2 ディレクトリが生成された。
bsp も生成されている。
ZUBoard1CG_38_230705.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_dualcam_2022_2/images/linux ディレクトリに SD カード・イメージの rootfs.wic が生成された。
ZUBoard1CG_39_230705.png

Dual Camera モジュールを持っていないので、ここまでとする。
  1. 2023年07月05日 04:26 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

”ZUBoard - Building the foundational designs”をやってみる4

”ZUBoard - Building the foundational designs”をやってみる3”の続き。

hackstar.io の”ZUBoard - Building the foundational designs”をやってみようということで、前回は、ロジテックの HD Pro Webcam C920 カメラを USB ポートに接続して、動作環境を確認し、カメラを起動して、ウインドウにカメラ画像を表示した。今回は、petalinux-image-minimal.bbappend ファイルに packagegroup-petalinux-jupyter を追加してビルドした。ビルドしたイメージ・ファイルを再度 MicroSD カードに書き込んだ。MicroSD カードを ZUBoard 1CG に挿入して Petalinux 2022.2 を起動して、Jupyter Notebook を起動した。Jupyter Notebook にファイルを作成し、それ上で、カメラ画像を表示した。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base_2022_2/project-spec/meta-avnet/recipes-core/images/petalinux-image-minimal.bbappend を編集する。
ZUBoard1CG_28_230704.png

”IMAGE_INSTALL:append:zub1cg-sbc”に”packagegroup-petalinux-jupyter”を追加した。

packagegroup-petalinux-jupyter \


ZUBoard1CG_29_230704.png

zub1cg_sbc_base_2022_2 ディレクトリでビルドした。
petalinux-build
ZUBoard1CG_30_230704.png

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base_2022_2/images/linux/rootfs.wic が再生成されていた。
ZUBoard1CG_31_230704.png

Balena Etcher を使用して ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base_2022_2/images/linux/rootfs.wic を MicroSD カードに書き込んだ。

ZUBoard 1CG に MicroSD カードを挿入した。
SW2 を SD カード・ブートに設定した。 SW2-1 から OFF - ON - OFF - ON
ZUBoard 1CG に電源を供給した。(私の使用してる電源は、Anker PowerPort III 65W Pod を使用している。ノートパソコン用の電源を流用している)
基板右下の SW7 を押して、Petalinux を起動する。

ssh でログインして、jupyter notebook を起動した。
jupyter-lab --allow-root --ip 192.168.3.41 &
ZUBoard1CG_32_230704.png

ホストパソコン上の chrome で次の URL を見た。
http://192.168.3.41:8888/lab?token=0766b8096dd7f275580388adf3478a6fb8ce7deb02760f09
ZUBoard1CG_33_230704.png

jupyter notebook 画面が表示された。
Notebook の Python3 (ipykernel) をクリックして、新しい notebook を作成した。
名前は usbcam_live_view.ipynb にした。(”ZUBoard - Building the foundational designs”から引用)
ZUBoard - Building the foundational designs” によるとコードは、”Display your live webcam feed in a Jupyter notebook using OpenCV”から引用したそうだ。ここでも引用する。

import matplotlib.pyplot as plt
import cv2
import numpy as np
from IPython.display import display, Image
import ipywidgets as widgets
import threading
# Stop button
# ================
stopButton = widgets.ToggleButton(
    value=False,
    description='Stop',
    disabled=False,
    button_style='danger', # 'success', 'info', 'warning', 'danger' or ''
    tooltip='Description',
    icon='square' # (FontAwesome names without the `fa-` prefix)
)

# Display function
# ================
def view(button):
    cap = cv2.VideoCapture(0)
    display_handle=display(None, display_id=True)
    i = 0
    while True:
        _, frame = cap.read()
        frame = cv2.flip(frame, 1) # if your camera reverses your image
        _, frame = cv2.imencode('.jpeg', frame)
        display_handle.update(Image(data=frame.tobytes()))
        if stopButton.value==True:
            cap.release()
            display_handle.update(None)

# Run
# ================
display(stopButton)
thread = threading.Thread(target=view, args=(stopButton,))
thread.start()


ZUBoard1CG_34_230704.png

実行ボタンをクリックして、実行したところ、カメラ画像が表示された。
ZUBoard1CG_35_230704.jpg
  1. 2023年07月04日 05:06 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

”ZUBoard - Building the foundational designs”をやってみる3

”ZUBoard - Building the foundational designs”をやってみる2”の続き。

hackstar.io の”ZUBoard - Building the foundational designs”をやってみようということで、前回は、rootfs.wic を MicroSD カードに書き込んで、ZUBoard 1CG に挿入して、Petalinux をブートした。そして、”ZUBoard 1CG の Petalinux の環境を整備しようとしたらインストールされてた”でファイル・マネージャーやテキスト・エディタのインストールも確認した。今回は、ロジテックの HD Pro Webcam C920 カメラを USB ポートに接続して、動作環境を確認し、カメラを起動して、ウインドウにカメラ画像を表示した。

ZUBoard 1CG ボードにロジテックの HD Pro Webcam C920 カメラを接続した。
現在の ZUBoard 1CG ボードの様子を示す。
ZUBoard1CG_27_230703.jpg

まずは、ZUBoard 1CG ボードで動作している Petalinux 2022.2 に ssh でログインした。
ssh 192.168.3.41 -X -l root

これで、X11 Window を表示することができる。

USB カメラの状態を確認する。
/dev/media* を確認すると media0 があった。
ls /dev/media*
/dev/media0

/dev/video* を確認すると video0 と video1 があった。
ls /dev/video*
/dev/video0 /dev/video1

media0, video0, video1 の設定を確認する。
media-ctl -p /dev/media0
ZUBoard1CG_21_230703.png
ZUBoard1CG_22_230703.png

ログを示す。

root@zub1cg-sbc-base-2022-2:~# media-ctl -p /dev/media0
Media controller API version 5.15.36

Media device information
------------------------
driver          uvcvideo
model           HD Pro Webcam C920
serial          683C9FCF
bus info        usb-xhci-hcd.2.auto-1
hw revision     0x21
driver version  5.15.36

Device topology
- entity 1: HD Pro Webcam C920 (1 pad, 1 link)
            type Node subtype V4L flags 1
            device node name /dev/video0
    pad0: Sink
        <- "Processing 3":1 [ENABLED,IMMUTABLE]

- entity 4: HD Pro Webcam C920 (0 pad, 0 link)
            type Node subtype V4L flags 0
            device node name /dev/video1

- entity 8: Processing 3 (2 pads, 8 links)
            type V4L2 subdev subtype Unknown flags 0
    pad0: Sink
        <- "Camera 1":0 [ENABLED,IMMUTABLE]
    pad1: Source
        -> "HD Pro Webcam C920":0 [ENABLED,IMMUTABLE]
        -> "Extension 6":0 [ENABLED,IMMUTABLE]
        -> "Extension 8":0 [ENABLED,IMMUTABLE]
        -> "Extension 9":0 [ENABLED,IMMUTABLE]
        -> "Extension 10":0 [ENABLED,IMMUTABLE]
        -> "Extension 11":0 [ENABLED,IMMUTABLE]
        -> "Extension 13":0 [ENABLED,IMMUTABLE]

- entity 11: Extension 6 (2 pads, 1 link)
             type V4L2 subdev subtype Unknown flags 0
    pad0: Sink
        <- "Processing 3":1 [ENABLED,IMMUTABLE]
    pad1: Source

- entity 14: Extension 8 (2 pads, 1 link)
             type V4L2 subdev subtype Unknown flags 0
    pad0: Sink
        <- "Processing 3":1 [ENABLED,IMMUTABLE]
    pad1: Source

- entity 17: Extension 9 (2 pads, 1 link)
             type V4L2 subdev subtype Unknown flags 0
    pad0: Sink
        <- "Processing 3":1 [ENABLED,IMMUTABLE]
    pad1: Source

- entity 20: Extension 10 (2 pads, 1 link)
             type V4L2 subdev subtype Unknown flags 0
    pad0: Sink
        <- "Processing 3":1 [ENABLED,IMMUTABLE]
    pad1: Source

- entity 23: Extension 11 (2 pads, 1 link)
             type V4L2 subdev subtype Unknown flags 0
    pad0: Sink
        <- "Processing 3":1 [ENABLED,IMMUTABLE]
    pad1: Source

- entity 26: Extension 13 (2 pads, 1 link)
             type V4L2 subdev subtype Unknown flags 0
    pad0: Sink
        <- "Processing 3":1 [ENABLED,IMMUTABLE]
    pad1: Source

- entity 29: Camera 1 (1 pad, 1 link)
             type V4L2 subdev subtype Sensor flags 0
    pad0: Source
        -> "Processing 3":0 [ENABLED,IMMUTABLE]


v4l2-ctl -D -d /dev/video0
ZUBoard1CG_23_230703.png

ログを示す。

root@zub1cg-sbc-base-2022-2:~# v4l2-ctl -D -d /dev/video0
Driver Info:
    Driver name      : uvcvideo
    Card type        : HD Pro Webcam C920
    Bus info         : usb-xhci-hcd.2.auto-1
    Driver version   : 5.15.36
    Capabilities     : 0x84a00001
        Video Capture
        Metadata Capture
        Streaming
        Extended Pix Format
        Device Capabilities
    Device Caps      : 0x04200001
        Video Capture
        Streaming
        Extended Pix Format
Media Driver Info:
    Driver name      : uvcvideo
    Model            : HD Pro Webcam C920
    Serial           : 683C9FCF
    Bus info         : usb-xhci-hcd.2.auto-1
    Media version    : 5.15.36
    Hardware revision: 0x00000021 (33)
    Driver version   : 5.15.36
Interface Info:
    ID               : 0x03000002
    Type             : V4L Video
Entity Info:
    ID               : 0x00000001 (1)
    Name             : HD Pro Webcam C920
    Function         : V4L2 I/O
    Flags         : default
    Pad 0x01000007   : 0: Sink
      Link 0x0200001f: from remote pad 0x100000a of entity 'Processing 3': Data, Enabled, Immutable


v4l2-ctl -D -d /dev/video1
ログを示す。

root@zub1cg-sbc-base-2022-2:~# v4l2-ctl -D -d /dev/video1
Driver Info:
    Driver name      : uvcvideo
    Card type        : HD Pro Webcam C920
    Bus info         : usb-xhci-hcd.2.auto-1
    Driver version   : 5.15.36
    Capabilities     : 0x84a00001
        Video Capture
        Metadata Capture
        Streaming
        Extended Pix Format
        Device Capabilities
    Device Caps      : 0x04a00000
        Metadata Capture
        Streaming
        Extended Pix Format
Media Driver Info:
    Driver name      : uvcvideo
    Model            : HD Pro Webcam C920
    Serial           : 683C9FCF
    Bus info         : usb-xhci-hcd.2.auto-1
    Media version    : 5.15.36
    Hardware revision: 0x00000021 (33)
    Driver version   : 5.15.36
Interface Info:
    ID               : 0x03000005
    Type             : V4L Video
Entity Info:
    ID               : 0x00000004 (4)
    Name             : HD Pro Webcam C920
    Function         : V4L2 I/O


カメラ画像を Ubuntu 18.04 のパソコン上に表示する。
カメラ画像を表示する Python3 で書かれたソフトウェアの usbcam_passthrough.py を”ZUBoard - Building the foundational designs”から引用する。
usbcam_passthrough.py は ChatGPT に "Python code USBcam passthrough 640x480" のワードを与えて生成されたソフトウェアだそうだ。

import cv2

# Open the camera
cap = cv2.VideoCapture(0)

# Set the resolution
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)

# Create a display window
cv2.namedWindow("USB Cam Passthrough", cv2.WINDOW_NORMAL)

while True:
    # Read a frame from the camera
    ret, frame = cap.read()

    if ret:
        # Display the frame in the window
        cv2.imshow("USB Cam Passthrough", frame)

    # Check for key presses
    key = cv2.waitKey(1)
    if key == 27:   # Pressing the Esc key exits the program
        break

# Release the camera and destroy the display window
cap.release()
cv2.destroyAllWindows()


ZUBoard1CG_24_230703.png

usbcam_passthrough.py を走らせたところ、Ubuntu 18.04 のホストパソコン上にカメラ画像が表示された。
python3 usbcam_passthrough.py
ZUBoard1CG_26_230703.png

ZUBoard1CG_25_230703.jpg
  1. 2023年07月03日 04:47 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

ZUBoard 1CG の Petalinux の環境を整備しようとしたらインストールされてた

”ZUBoard - Building the foundational designs”をやってみる2”で ZUBoard 1CG で Petalinux 2022.2 が起動したので、環境を設定しようとしたが、pcmanfm も l3afpad もインストールされていた。

最初に pcmanfm をインストールしようとしたが、すでにインストールされていたようだ。
sudo dnf install pcmanfm.cortexa72_cortexa53
ZUBoard1CG_18_230702.png

pcmanfm & で pcmanfm が起動した。
ZUBoard1CG_19_230702.png

どうやら l3afpad もインストールされているようだ。
l3afpad &
ZUBoard1CG_20_230702.png
  1. 2023年07月02日 20:35 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

”ZUBoard - Building the foundational designs”をやってみる2

”ZUBoard - Building the foundational designs”をやってみる1”の続き。

hackstar.io の”ZUBoard - Building the foundational designs”をやってみようということで、Avnet の Guthub リポジトリをクローンして、zub1cg_sbc_base を構築した。今回は、rootfs.wic を MicroSD カードに書き込んで、ZUBoard 1CG に挿入して、Petalinux をブートした。

キャッシュを再度有効にする
ダウンロードされた Petalinux 関連のパッケージはビルド中はキャッシュされているが、今後もキャッシュを有効ぬするため、config ファイルを書き換えた。

まずは、ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base_2022_2/project-spec/configs/config ファイルを編集する。
CONFIG_YOCTO_NETWORK_SSTATE_FEEDS_URL と CONFIG_PRE_MIRROR_URL をネットワークのアドレスからファイルの絶対パスに変更した。

CONFIG_YOCTO_NETWORK_SSTATE_FEEDS_URL="file:///media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/cache/sstate_2022.2/aarch64"
CONFIG_PRE_MIRROR_URL="file:///media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/cache/sstate_2022.2/aarch64"


ZUBoard - Building the foundational designs”の通りに書くと上のようになるのだが、"file:///media... " と書いて良いのだろうか? エラーなる場合は書き換えるつもりだ。

また、”ZUBoard - Building the foundational designs”によると”project-spec/meta-user/configs/petalinuxbsp.conf”は存在しない。たぶん、”ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base_2022_2/project-spec/meta-user/conf/petalinuxbsp.conf”だと思うのだが、どのように書き換えれば良いのか?良く分からないので、変更しないことにした。

zub1cg_sbc_baseの実行
Balena Etcher を使用して ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base_2022_2/images/linux/rootfs.wic を MicroSD カードに書き込んだ。
ZUBoard1CG_13_230701.png

Micro SD カードの boot パーティションを示す。
ZUBoard1CG_14_230701.png

Micro SD カードの root パーティションを示す。
ZUBoard1CG_15_230701.png

ZUBoard 1CG に MicroSD カードを挿入した。
SW2 を SD カード・ブートに設定した。 SW2-1 から OFF - ON - OFF - ON
ZUBoard 1CG に電源を供給した。(私の使用してる電源は、Anker PowerPort III 65W Pod を使用している。ノートパソコン用の電源を流用している)
基板右下の SW7 を押して、Petalinux を起動する。
ZUBoard1CG_16_230701.png

ID は rootpassword 無しでログインできた。

LAN ケーブルを接続していたので、IP アドレスが割り振られている。
ZUBoard1CG_17_230701.png

Petalinux の起動ログを示す。

Xilinx Zynq MP First Stage Boot Loader 
Release 2022.2   Oct  7 2022  -  04:56:16
PMU Firmware 2022.2 Oct  7 2022   04:56:16
PMU_ROM Version: xpbr-v8.1.0-0
NOTICE:  BL31: v2.6(release):xlnx_rebase_v2.6_2022.1_update3-18-g0897efd45
NOTICE:  BL31: Built : 03:55:03, Sep  9 2022


U-Boot 2022.01 (Sep 20 2022 - 06:35:33 +0000)

CPU:   ZynqMP
Silicon: v3
Board: Xilinx ZynqMP
DRAM:  1023 MiB
PMUFW:  v1.1
PMUFW no permission to change config object
EL Level:   EL2
Chip ID:    zu1eg
NAND:  0 MiB
MMC:   mmc@ff160000: 1, mmc@ff170000: 0
Loading Environment from FAT... *** Error - No Valid Environment Area found
*** Warning - bad env area, using default environment

In:    serial
Out:   serial
Err:   serial
Bootmode: SD_MODE1
Reset reason:   SOFT 
Net:   FEC: can't find phy-handle

ZYNQ GEM: ff0d0000, mdio bus ff0d0000, phyaddr 7, interface rgmii-id
eth0: ethernet@ff0d0000
scanning bus for devices...
starting USB...
No working controllers 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
2777 bytes read in 13 ms (208 KiB/s)
## Executing script at 20000000
Trying to load boot images from mmc0
9461028 bytes read in 862 ms (10.5 MiB/s)
## Loading kernel from FIT Image at 10000000 ...
   Using 'conf-system-top.dtb' configuration
   Trying 'kernel-1' kernel subimage
     Description:  Linux kernel
     Created:      2022-10-03   7:50:07 UTC
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x100000fc
     Data Size:    9402605 Bytes = 9 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x00200000
     Entry Point:  0x00200000
     Hash algo:    sha256
     Hash value:   f65a23bd5203999365303bad94f838cc14b9dcefef1eeca94b37912b2e2d9ae1
   Verifying Hash Integrity ... sha256+ OK
## Loading fdt from FIT Image at 10000000 ...
   Using 'conf-system-top.dtb' configuration
   Trying 'fdt-system-top.dtb' fdt subimage
     Description:  Flattened Device Tree blob
     Created:      2022-10-03   7:50:07 UTC
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x108f7afc
     Data Size:    56511 Bytes = 55.2 KiB
     Architecture: AArch64
     Hash algo:    sha256
     Hash value:   f8e4703bc3521c18f2296edd31374fa4cc152c5aa1875dcc7d57e5dee41b13dd
   Verifying Hash Integrity ... sha256+ OK
   Booting using the fdt blob at 0x108f7afc
   Uncompressing Kernel Image
   Loading Device Tree to 000000003bbe6000, end 000000003bbf6cbe ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.15.36-xilinx-v2022.2 (oe-user@oe-host) (aarch64-xilinx-linux-gcc (GCC) 11.2.0, GNU ld (GNU Binutils) 2.37.20210721) #1 SMP Mon Oct 3 07:50:07 UTC 2022
[    0.000000] Machine model: xlnx,zynqmp
[    0.000000] earlycon: cdns0 at MMIO 0x00000000ff000000 (options '115200n8')
[    0.000000] printk: bootconsole [cdns0] enabled
[    0.000000] efi: UEFI not found.
[    0.000000] Zone ranges:
[    0.000000]   DMA32    [mem 0x0000000000000000-0x000000003fefffff]
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000003fefffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003fefffff]
[    0.000000] On node 0, zone DMA32: 256 pages in unavailable ranges
[    0.000000] cma: Reserved 512 MiB at 0x000000001b800000
[    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.2
[    0.000000] percpu: Embedded 18 pages/cpu s34328 r8192 d31208 u73728
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 257796
[    0.000000] Kernel command line: earlycon console=ttyPS0,115200 clk_ignore_unused root=/dev/mmcblk0p2 rw rootwait cma=512M
[    0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 480852K/1047552K available (14144K kernel code, 1006K rwdata, 3960K rodata, 2176K init, 574K bss, 42412K reserved, 524288K 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=16 to nr_cpu_ids=2.
[    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=2
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GIC: Adjusting CPU interface base to 0x00000000f902f000
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] random: get_random_bytes called from start_kernel+0x474/0x6d8 with crng_init=0
[    0.000000] arch_timer: cp15 timer(s) running at 100.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x171024e7e0, max_idle_ns: 440795205315 ns
[    0.000001] sched_clock: 56 bits at 100MHz, resolution 10ns, wraps every 4398046511100ns
[    0.008452] Console: colour dummy device 80x25
[    0.012487] Calibrating delay loop (skipped), value calculated using timer frequency.. 200.00 BogoMIPS (lpj=400000)
[    0.022837] pid_max: default: 32768 minimum: 301
[    0.027679] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.034779] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.043930] rcu: Hierarchical SRCU implementation.
[    0.047592] EFI services will not be available.
[    0.051935] smp: Bringing up secondary CPUs ...
[    0.056760] Detected VIPT I-cache on CPU1
[    0.056816] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.056899] smp: Brought up 1 node, 2 CPUs
[    0.070844] SMP: Total of 2 processors activated.
[    0.075516] CPU features: detected: 32-bit EL0 Support
[    0.080620] CPU features: detected: CRC32 instructions
[    0.085764] CPU: All CPU(s) started at EL2
[    0.089798] alternatives: patching kernel code
[    0.095151] devtmpfs: initialized
[    0.103265] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.107370] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.133481] pinctrl core: initialized pinctrl subsystem
[    0.134089] DMI not present or invalid.
[    0.137253] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.144021] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
[    0.149853] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.157704] audit: initializing netlink subsys (disabled)
[    0.163117] audit: type=2000 audit(0.116:1): state=initialized audit_enabled=0 res=1
[    0.163565] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.177502] ASID allocator initialised with 65536 entries
[    0.182945] Serial: AMBA PL011 UART driver
[    0.208146] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.209217] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[    0.215886] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.222558] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[    1.298924] cryptd: max_cpu_qlen set to 1000
[    1.324159] DRBG: Continuing without Jitter RNG
[    1.426056] raid6: neonx8   gen()  2130 MB/s
[    1.494108] raid6: neonx8   xor()  1581 MB/s
[    1.562173] raid6: neonx4   gen()  2177 MB/s
[    1.630231] raid6: neonx4   xor()  1551 MB/s
[    1.698297] raid6: neonx2   gen()  2064 MB/s
[    1.766358] raid6: neonx2   xor()  1428 MB/s
[    1.834424] raid6: neonx1   gen()  1768 MB/s
[    1.902484] raid6: neonx1   xor()  1207 MB/s
[    1.970549] raid6: int64x8  gen()  1366 MB/s
[    2.038607] raid6: int64x8  xor()   773 MB/s
[    2.106671] raid6: int64x4  gen()  1597 MB/s
[    2.174739] raid6: int64x4  xor()   848 MB/s
[    2.242808] raid6: int64x2  gen()  1397 MB/s
[    2.310864] raid6: int64x2  xor()   749 MB/s
[    2.378941] raid6: int64x1  gen()  1032 MB/s
[    2.446987] raid6: int64x1  xor()   517 MB/s
[    2.447029] raid6: using algorithm neonx4 gen() 2177 MB/s
[    2.450973] raid6: .... xor() 1551 MB/s, rmw enabled
[    2.455909] raid6: using neon recovery algorithm
[    2.461202] iommu: Default domain type: Translated 
[    2.465342] iommu: DMA domain TLB invalidation policy: strict mode 
[    2.471827] SCSI subsystem initialized
[    2.475461] usbcore: registered new interface driver usbfs
[    2.480765] usbcore: registered new interface driver hub
[    2.486031] usbcore: registered new device driver usb
[    2.491104] mc: Linux media interface: v0.10
[    2.495286] videodev: Linux video capture interface: v2.00
[    2.500755] pps_core: LinuxPPS API ver. 1 registered
[    2.505646] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    2.514737] PTP clock support registered
[    2.518642] EDAC MC: Ver: 3.0.0
[    2.522065] zynqmp-ipi-mbox mailbox@ff990400: Registered ZynqMP IPI mbox with TX/RX channels.
[    2.530461] FPGA manager framework
[    2.533726] Advanced Linux Sound Architecture Driver Initialized.
[    2.540048] Bluetooth: Core ver 2.22
[    2.543206] NET: Registered PF_BLUETOOTH protocol family
[    2.548465] Bluetooth: HCI device and connection manager initialized
[    2.554783] Bluetooth: HCI socket layer initialized
[    2.559625] Bluetooth: L2CAP socket layer initialized
[    2.564647] Bluetooth: SCO socket layer initialized
[    2.569942] clocksource: Switched to clocksource arch_sys_counter
[    2.575697] VFS: Disk quotas dquot_6.6.0
[    2.579473] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    2.591063] NET: Registered PF_INET protocol family
[    2.591218] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    2.599070] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear)
[    2.606782] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    2.614518] TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear)
[    2.621801] TCP: Hash tables configured (established 8192 bind 8192)
[    2.628056] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    2.634554] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    2.641632] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    2.647538] RPC: Registered named UNIX socket transport module.
[    2.653056] RPC: Registered udp transport module.
[    2.657716] RPC: Registered tcp transport module.
[    2.662386] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    2.668791] PCI: CLS 0 bytes, default 64
[    2.673009] armv8-pmu pmu: hw perfevents: no interrupt-affinity property, guessing.
[    2.680428] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available
[    2.715409] Initialise system trusted keyrings
[    2.715577] workingset: timestamp_bits=46 max_order=18 bucket_order=0
[    2.721436] NFS: Registering the id_resolver key type
[    2.725750] Key type id_resolver registered
[    2.729805] Key type id_legacy registered
[    2.733800] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    2.740444] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    2.747795] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[    2.754203] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    2.796815] NET: Registered PF_ALG protocol family
[    2.796867] xor: measuring software checksum speed
[    2.804916]    8regs           :  2363 MB/sec
[    2.808568]    32regs          :  2799 MB/sec
[    2.813636]    arm64_neon      :  2308 MB/sec
[    2.813694] xor: using function: 32regs (2799 MB/sec)
[    2.818720] Key type asymmetric registered
[    2.822783] Asymmetric key parser 'x509' registered
[    2.827670] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 244)
[    2.834986] io scheduler mq-deadline registered
[    2.839478] io scheduler kyber registered
[    2.872929] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    2.875044] Serial: AMBA driver
[    2.877727] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    2.887806] brd: module loaded
[    2.891456] loop: module loaded
[    2.892573] mtdoops: mtd device (mtddev=name/number) must be supplied
[    2.898699] tun: Universal TUN/TAP device driver, 1.6
[    2.900471] CAN device driver interface
[    2.905084] usbcore: registered new interface driver rtl8150
[    2.909853] usbcore: registered new interface driver r8152
[    2.915298] usbcore: registered new interface driver asix
[    2.920654] usbcore: registered new interface driver ax88179_178a
[    2.926706] usbcore: registered new interface driver cdc_ether
[    2.932502] usbcore: registered new interface driver net1080
[    2.938125] usbcore: registered new interface driver cdc_subset
[    2.944005] usbcore: registered new interface driver zaurus
[    2.949557] usbcore: registered new interface driver cdc_ncm
[    2.956027] usbcore: registered new interface driver uas
[    2.960460] usbcore: registered new interface driver usb-storage
[    2.966570] gadgetfs: USB Gadget filesystem, version 24 Aug 2004
[    2.973026] rtc_zynqmp ffa60000.rtc: registered as rtc0
[    2.977563] rtc_zynqmp ffa60000.rtc: setting system clock to 1970-01-01T00:01:41 UTC (101)
[    2.985830] i2c_dev: i2c /dev entries driver
[    2.992037] usbcore: registered new interface driver uvcvideo
[    2.996209] Bluetooth: HCI UART driver ver 2.3
[    3.000127] Bluetooth: HCI UART protocol H4 registered
[    3.005228] Bluetooth: HCI UART protocol BCSP registered
[    3.010522] Bluetooth: HCI UART protocol LL registered
[    3.015612] Bluetooth: HCI UART protocol ATH3K registered
[    3.020987] Bluetooth: HCI UART protocol Three-wire (H5) registered
[    3.027237] Bluetooth: HCI UART protocol Intel registered
[    3.032576] Bluetooth: HCI UART protocol QCA registered
[    3.037778] usbcore: registered new interface driver bcm203x
[    3.043400] usbcore: registered new interface driver bpa10x
[    3.048946] usbcore: registered new interface driver bfusb
[    3.054386] usbcore: registered new interface driver btusb
[    3.059851] usbcore: registered new interface driver ath3k
[    3.065350] EDAC MC: ECC not enabled
[    3.068961] EDAC DEVICE0: Giving out device to module edac controller cache_err: DEV edac (POLLED)
[    3.077895] EDAC DEVICE1: Giving out device to module zynqmp-ocm-edac controller zynqmp_ocm: DEV ff960000.memory-controller (INTERRUPT)
[    3.090217] sdhci: Secure Digital Host Controller Interface driver
[    3.095968] sdhci: Copyright(c) Pierre Ossman
[    3.100291] sdhci-pltfm: SDHCI platform and OF driver helper
[    3.106269] ledtrig-cpu: registered to indicate activity on CPUs
[    3.112003] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    3.118357] zynqmp_firmware_probe Platform Management API v1.1
[    3.124085] zynqmp_firmware_probe Trustzone version v1.0
[    3.158136] securefw securefw: securefw probed
[    3.158291] zynqmp_aes firmware:zynqmp-firmware:zynqmp-aes: The zynqmp-aes driver shall be deprecated in 2022.2 and removed in 2023.1
[    3.169222] alg: No test for xilinx-zynqmp-aes (zynqmp-aes)
[    3.174621] zynqmp_aes firmware:zynqmp-firmware:zynqmp-aes: AES Successfully Registered
[    3.182611] zynqmp-keccak-384 firmware:zynqmp-firmware:sha384: The zynqmp-sha-deprecated driver shall be deprecated in 2022.2 and removed in 2023.1 release
[    3.196401] alg: No test for xilinx-keccak-384 (zynqmp-keccak-384)
[    3.202685] alg: No test for xilinx-zynqmp-rsa (zynqmp-rsa)
[    3.208200] usbcore: registered new interface driver usbhid
[    3.213533] usbhid: USB HID core driver
[    3.217437] xlnk xlnk: Major 240
[    3.220638] xlnk xlnk: xlnk driver loaded
[    3.224518] xlnk xlnk: xlnk_pdev is not null
[    3.230105] xadc a0090000.system_management_wiz: IRQ index 0 not found
[    3.237367] ARM CCI_400_r1 PMU driver probed
[    3.238096] fpga_manager fpga0: Xilinx ZynqMP FPGA Manager registered
[    3.246361] usbcore: registered new interface driver snd-usb-audio
[    3.252971] pktgen: Packet Generator for packet performance testing. Version: 2.75
[    3.260119] Initializing XFRM netlink socket
[    3.263874] NET: Registered PF_INET6 protocol family
[    3.269334] Segment Routing with IPv6
[    3.272368] In-situ OAM (IOAM) with IPv6
[    3.276321] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    3.282539] NET: Registered PF_PACKET protocol family
[    3.287155] NET: Registered PF_KEY protocol family
[    3.291915] can: controller area network core
[    3.296259] NET: Registered PF_CAN protocol family
[    3.300983] can: raw protocol
[    3.303925] can: broadcast manager protocol
[    3.308079] can: netlink gateway - max_hops=1
[    3.312498] Bluetooth: RFCOMM TTY layer initialized
[    3.317254] Bluetooth: RFCOMM socket layer initialized
[    3.322365] Bluetooth: RFCOMM ver 1.11
[    3.326071] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    3.331340] Bluetooth: BNEP filters: protocol multicast
[    3.336534] Bluetooth: BNEP socket layer initialized
[    3.341461] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    3.347354] Bluetooth: HIDP socket layer initialized
[    3.352311] 8021q: 802.1Q VLAN Support v1.8
[    3.356560] 9pnet: Installing 9P2000 support
[    3.360693] Key type dns_resolver registered
[    3.365064] registered taskstats version 1
[    3.368971] Loading compiled-in X.509 certificates
[    3.375147] Btrfs loaded, crc32c=crc32c-generic, zoned=no, fsverity=no
[    3.391312] ff000000.serial: ttyPS0 at MMIO 0xff000000 (irq = 60, base_baud = 6249999) is a xuartps
[    3.400363] printk: console [ttyPS0] enabled
[    3.400363] printk: console [ttyPS0] enabled
[    3.404666] printk: bootconsole [cdns0] disabled
[    3.404666] printk: bootconsole [cdns0] disabled
[    3.414760] of-fpga-region fpga-full: FPGA Region probed
[    3.423495] irq-xilinx: mismatch in kind-of-intr param
[    3.428632] irq-xilinx: /amba_pl@0/interrupt-controller@a0060000: num_irq=32, sw_irq=0, edge=0x1
[    3.439389] xilinx-zynqmp-dma fd500000.dma-controller: ZynqMP DMA driver Probe success
[    3.447498] xilinx-zynqmp-dma fd510000.dma-controller: ZynqMP DMA driver Probe success
[    3.455591] xilinx-zynqmp-dma fd520000.dma-controller: ZynqMP DMA driver Probe success
[    3.463698] xilinx-zynqmp-dma fd530000.dma-controller: ZynqMP DMA driver Probe success
[    3.471806] xilinx-zynqmp-dma fd540000.dma-controller: ZynqMP DMA driver Probe success
[    3.479913] xilinx-zynqmp-dma fd550000.dma-controller: ZynqMP DMA driver Probe success
[    3.488010] xilinx-zynqmp-dma fd560000.dma-controller: ZynqMP DMA driver Probe success
[    3.496108] xilinx-zynqmp-dma fd570000.dma-controller: ZynqMP DMA driver Probe success
[    3.504284] xilinx-zynqmp-dma ffa80000.dma-controller: ZynqMP DMA driver Probe success
[    3.512375] xilinx-zynqmp-dma ffa90000.dma-controller: ZynqMP DMA driver Probe success
[    3.520477] xilinx-zynqmp-dma ffaa0000.dma-controller: ZynqMP DMA driver Probe success
[    3.528574] xilinx-zynqmp-dma ffab0000.dma-controller: ZynqMP DMA driver Probe success
[    3.536674] xilinx-zynqmp-dma ffac0000.dma-controller: ZynqMP DMA driver Probe success
[    3.544769] xilinx-zynqmp-dma ffad0000.dma-controller: ZynqMP DMA driver Probe success
[    3.552865] xilinx-zynqmp-dma ffae0000.dma-controller: ZynqMP DMA driver Probe success
[    3.560958] xilinx-zynqmp-dma ffaf0000.dma-controller: ZynqMP DMA driver Probe success
[    3.569316] xilinx-zynqmp-dpdma fd4c0000.dma-controller: Xilinx DPDMA engine is probed
[    3.577392] a0080000.serial: ttyUL1 at MMIO 0xa0080000 (irq = 71, base_baud = 0) is a uartlite
[    3.587777] xilinx-psgtr fd400000.phy: lane 1 (type 8, protocol 4): PLL lock timeout
[    3.595525] phy phy-fd400000.phy.1: phy poweron failed --> -110
[    3.601440] zynqmp-display fd4a0000.display: failed to power on phy lane 0
[    3.608349] zynqmp-display: probe of fd4a0000.display failed with error -110
[    3.616410] st-press-spi spi1.0: supply vdd not found, using dummy regulator
[    3.623544] st-press-spi spi1.0: supply vddio not found, using dummy regulator
[    3.631225] iio iio:device1: registered pressure sensor lps22hh
[    3.638060] spi-nor spi0.0: found is25wp256d, expected mt25qu256a
[    3.646011] spi-nor spi0.0: is25wp256d (32768 Kbytes)
[    3.651089] 2 fixed-partitions partitions found on MTD device spi0.0
[    3.657434] Creating 2 MTD partitions on "spi0.0":
[    3.662217] 0x000000000000-0x000001c00000 : "system"
[    3.668089] 0x000001c00000-0x000002000000 : "user"
[    3.674048] macb ff0d0000.ethernet: Not enabling partial store and forward
[    3.682614] macb ff0d0000.ethernet eth0: Cadence GEM rev 0x50070106 at 0xff0d0000 irq 37 (fc:c2:3d:42:bb:ae)
[    3.692797] xilinx-axipmon ffa00000.perf-monitor: Probed Xilinx APM
[    3.699341] xilinx-axipmon fd0b0000.perf-monitor: Probed Xilinx APM
[    3.705832] xilinx-axipmon fd490000.perf-monitor: Probed Xilinx APM
[    3.712329] xilinx-axipmon ffa10000.perf-monitor: Probed Xilinx APM
[    3.721156] at24 0-0058: supply vcc not found, using dummy regulator
[    3.727830] at24 0-0058: 6 byte 24mac402 EEPROM, read-only
[    3.733355] cdns-i2c ff030000.i2c: 400 kHz mmio ff030000 irq 39
[    3.743449] st_stts22h_i2c 1-003f: V1.0: probe ok
[    3.749357] cdns-wdt fd4d0000.watchdog: Xilinx Watchdog Timer with timeout 60s
[    3.756836] cdns-wdt ff150000.watchdog: Xilinx Watchdog Timer with timeout 10s
[    3.770245] of_cfs_init
[    3.772736] of_cfs_init: OK
[    3.775695] clk: Not disabling unused clocks
[    3.780190] ALSA device list:
[    3.783156]   No soundcards found.
[    3.807009] mmc0: SDHCI controller on ff170000.mmc [ff170000.mmc] using ADMA 64-bit
[    3.814677] mmc1: SDHCI controller on ff160000.mmc [ff160000.mmc] using ADMA 64-bit
[    3.822591] Waiting for root device /dev/mmcblk0p2...
[    3.849240] mmc0: Problem switching card into high-speed mode!
[    3.855670] mmc0: new SDHC card at address 0001
[    3.860678] mmcblk0: mmc0:0001 SPCC  29.0 GiB 
[    3.866979]  mmcblk0: p1 p2
[    3.895024] random: fast init done
[    3.904655] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[    3.914430] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    3.921907] devtmpfs: mounted
[    3.925778] Freeing unused kernel memory: 2176K
[    3.930440] Run /sbin/init as init process
[    5.030377] systemd[1]: System time before build time, advancing clock.
[    5.130453] systemd[1]: systemd 249.7+ running in system mode (+PAM -AUDIT -SELINUX -APPARMOR +IMA -SMACK +SECCOMP -GCRYPT -GNUTLS -OPENSSL +ACL +BLKID -CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP +LIBFDISK -PCRE2 -PWQUALITY -P11KIT -QRENCODE -BZIP2 -LZ4 -XZ -ZLIB +ZSTD +XKBCOMMON +UTMP +SYSVINIT default-hierarchy=hybrid)
[    5.160727] systemd[1]: Detected architecture arm64.

Welcome to PetaLinux 2022.2_release_S10071807 (honister)!

[    5.219295] systemd[1]: Hostname set to <zub1cg-sbc-base-2022-2>.
[    5.429555] systemd-sysv-generator[229]: SysV service '/etc/init.d/nfscommon' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.483313] systemd-sysv-generator[229]: SysV service '/etc/init.d/reboot' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.507461] systemd-sysv-generator[229]: SysV service '/etc/init.d/sendsigs' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.532867] systemd-sysv-generator[229]: SysV service '/etc/init.d/rng-tools' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.559772] systemd-sysv-generator[229]: SysV service '/etc/init.d/nfsserver' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.583840] systemd-sysv-generator[229]: SysV service '/etc/init.d/umountfs' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.607931] systemd-sysv-generator[229]: SysV service '/etc/init.d/single' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.631862] systemd-sysv-generator[229]: SysV service '/etc/init.d/urandom' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.656761] systemd-sysv-generator[229]: SysV service '/etc/init.d/sshd' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.680664] systemd-sysv-generator[229]: SysV service '/etc/init.d/umountnfs.sh' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.705685] systemd-sysv-generator[229]: SysV service '/etc/init.d/save-rtc.sh' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.729873] systemd-sysv-generator[229]: SysV service '/etc/init.d/halt' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.753455] systemd-sysv-generator[229]: SysV service '/etc/init.d/watchdog-init' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    5.779696] systemd-sysv-generator[229]: SysV service '/etc/init.d/inetd.busybox' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    6.198060] systemd[1]: Queued start job for default target Graphical Interface.
[    6.206720] random: systemd: uninitialized urandom read (16 bytes read)
[    6.240357] systemd[1]: Created slice Slice /system/getty.
[  OK  ] Created slice Slice /system/getty.
[    6.262115] random: systemd: uninitialized urandom read (16 bytes read)
[    6.270243] systemd[1]: Created slice Slice /system/modprobe.
[  OK  ] Created slice Slice /system/modprobe.
[    6.290034] random: systemd: uninitialized urandom read (16 bytes read)
[    6.298012] systemd[1]: Created slice Slice /system/serial-getty.
[  OK  ] Created slice Slice /system/serial-getty.
[    6.323144] systemd[1]: Created slice User and Session Slice.
[  OK  ] Created slice User and Session Slice.
[    6.346257] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[  OK  ] Started Dispatch Password …ts to Console Directory Watch.
[    6.370154] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[  OK  ] Started Forward Password R…uests to Wall Directory Watch.
[    6.394273] systemd[1]: Reached target Path Units.
[  OK  ] Reached target Path Units.
[    6.410044] systemd[1]: Reached target Remote File Systems.
[  OK  ] Reached target Remote File Systems.
[    6.430034] systemd[1]: Reached target Slice Units.
[  OK  ] Reached target Slice Units.
[    6.446061] systemd[1]: Reached target Swaps.
[  OK  ] Reached target Swaps.
[    6.468189] systemd[1]: Listening on RPCbind Server Activation Socket.
[  OK  ] Listening on RPCbind Server Activation Socket.
[    6.490055] systemd[1]: Reached target RPC Port Mapper.
[  OK  ] Reached target RPC Port Mapper.
[    6.511545] systemd[1]: Listening on Syslog Socket.
[  OK  ] Listening on Syslog Socket.
[    6.526200] systemd[1]: Listening on initctl Compatibility Named Pipe.
[  OK  ] Listening on initctl Compatibility Named Pipe.
[    6.550614] systemd[1]: Listening on Journal Audit Socket.
[  OK  ] Listening on Journal Audit Socket.
[    6.570275] systemd[1]: Listening on Journal Socket (/dev/log).
[  OK  ] Listening on Journal Socket (/dev/log).
[    6.594345] systemd[1]: Listening on Journal Socket.
[  OK  ] Listening on Journal Socket.
[    6.610542] systemd[1]: Listening on Network Service Netlink Socket.
[  OK  ] Listening on Network Service Netlink Socket.
[    6.634494] systemd[1]: Listening on udev Control Socket.
[  OK  ] Listening on udev Control Socket.
[    6.654239] systemd[1]: Listening on udev Kernel Socket.
[  OK  ] Listening on udev Kernel Socket.
[    6.674268] systemd[1]: Listening on User Database Manager Socket.
[  OK  ] Listening on User Database Manager Socket.
[    6.701252] systemd[1]: Mounting Huge Pages File System...
         Mounting Huge Pages File System...
[    6.721428] systemd[1]: Mounting POSIX Message Queue File System...
         Mounting POSIX Message Queue File System...
[    6.745449] systemd[1]: Mounting Kernel Debug File System...
         Mounting Kernel Debug File System...
[    6.762478] systemd[1]: Condition check resulted in Kernel Trace File System being skipped.
[    6.775779] systemd[1]: Mounting Temporary Directory /tmp...
         Mounting Temporary Directory /tmp...
[    6.796733] systemd[1]: Condition check resulted in Create List of Static Device Nodes being skipped.
[    6.809977] systemd[1]: Starting Load Kernel Module configfs...
         Starting Load Kernel Module configfs...
[    6.830123] systemd[1]: Starting Load Kernel Module drm...
         Starting Load Kernel Module drm...
[    6.850316] systemd[1]: Starting Load Kernel Module fuse...
         Starting Load Kernel Module fuse...
[    6.870700] systemd[1]: Starting RPC Bind...
         Starting RPC Bind...
[    6.886209] systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
[    6.920325] systemd[1]: Starting Load Kernel Modules...
         Starting Load Kernel Modules...
[    6.942309] systemd[1]: Starting Remount Root and Kernel File Systems...
         Starting Remount Root and Kernel File Systems...
[    6.970444] systemd[1]: Starting Coldplug All udev Devices...
         Starting Coldplug All udev Devices...
[    6.982233] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null). Quota mode: none.
[    7.002312] dmaproxy: loading out-of-tree module taints kernel.
[    7.003216] systemd[1]: Mounted Huge Pages File System.
[  OK  ] Mounted Huge Pages File System.
[    7.034794] systemd[1]: Mounted POSIX Message Queue File System.
[  OK  ] Mounted POSIX Message Queue File System.
[    7.058439] systemd[1]: Mounted Kernel Debug File System.
[  OK  ] Mounted Kernel Debug File System.
[    7.078451] systemd[1]: Mounted Temporary Directory /tmp.
[  OK  ] Mounted Temporary Directory /tmp.
[    7.102669] systemd[1]: Started RPC Bind.
[  OK  ] Started RPC Bind.
[    7.119058] systemd[1]: modprobe@configfs.service: Deactivated successfully.
[    7.128776] systemd[1]: Finished Load Kernel Module configfs.
[  OK  ] Finished Load Kernel Module configfs.
[    7.150941] systemd[1]: modprobe@drm.service: Deactivated successfully.
[    7.158782] systemd[1]: Finished Load Kernel Module drm.
[  OK  ] Finished Load Kernel Module drm.
[    7.186854] systemd[1]: modprobe@fuse.service: Deactivated successfully.
[    7.195142] systemd[1]: Finished Load Kernel Module fuse.
[  OK  ] Finished Load Kernel Module fuse.
[    7.219936] systemd[1]: Finished Load Kernel Modules.
[  OK  ] Finished Load Kernel Modules.
[    7.235807] systemd[1]: Finished Remount Root and Kernel File Systems.
[  OK  ] Finished Remount Root and Kernel File Systems.
[    7.261976] systemd[1]: Mounting NFSD configuration filesystem...
         Mounting NFSD configuration filesystem...
[    7.286693] systemd[1]: Condition check resulted in FUSE Control File System being skipped.
[    7.298680] systemd[1]: Mounting Kernel Configuration File System...
         Mounting Kernel Configuration File System...
[    7.328924] systemd[1]: Condition check resulted in Rebuild Hardware Database being skipped.
[    7.337658] systemd[1]: Condition check resulted in Platform Persistent Storage Archival being skipped.
[    7.351188] systemd[1]: Starting Apply Kernel Variables...
         Starting Apply Kernel Variables...
[    7.370490] systemd[1]: Condition check resulted in Create System Users being skipped.
[    7.384173] systemd[1]: Starting Create Static Device Nodes in /dev...
         Starting Create Static Device Nodes in /dev...
[  OK  ] Mounted NFSD configuration filesystem.
[  OK  ] Mounted Kernel Configuration File System.
[  OK  ] Finished Apply Kernel Variables.
[  OK  ] Finished Create Static Device Nodes in /dev.
[  OK  ] Reached target Preparation for Local File Systems.
         Mounting /var/volatile...
[  OK  ] Started Entropy Daemon based on the HAVEGE algorithm.
         Starting Journal Service...
         Starting Rule-based Manage…for Device Events and Files...
[  OK  ] Mounted /var/volatile.
         Starting Load/Save Random Seed...
[  OK  ] Started Journal Service.
         Starting Flush Journal to Persistent Storage...
[  OK  ] Finished Flush Journal to Persistent Storage.
[  OK  ] Started Rule-based Manager for Device Events and Files.
[  OK  ] Finished Coldplug All udev Devices.
         Starting Wait for udev To …plete Device Initialization...
[    8.484225] zocl-drm amba_pl@0:zyxclmm_drm: IRQ index 32 not found
[  OK  ] Reached target Hardware activated USB gadget.
[  OK  ] Found device /dev/mmcblk0p1.
[  OK  ] Listening on Load/Save RF …itch Status /dev/rfkill Watch.
         Mounting /boot...
[  OK  ] Mounted /boot.
[  OK  ] Reached target Local File Systems.
         Starting Create Volatile Files and Directories...
[  OK  ] Finished Create Volatile Files and Directories.
[  OK  ] Finished Load/Save Random Seed.
         Starting Network Time Synchronization...
         Starting Record System Boot/Shutdown in UTMP...
[  OK  ] Finished Record System Boot/Shutdown in UTMP.
[  OK  ] Finished Wait for udev To Complete Device Initialization.
[  OK  ] Started Network Time Synchronization.
[  OK  ] Reached target System Time Set.
[  OK  ] Started Hardware RNG Entropy Gatherer Daemon.
[  OK  ] Reached target System Initialization.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Reached target Timer Units.
[  OK  ] Listening on D-Bus System Message Bus Socket.
         Starting sshd.socket...
[  OK  ] Listening on sshd.socket.
[  OK  ] Reached target Socket Units.
[  OK  ] Reached target Basic System.
[  OK  ] Started Kernel Logging Service.
[  OK  ] Started System Logging Service.
[  OK  ] Started D-Bus System Message Bus.
         Starting Common GPIO Utilities...
         Starting IPv6 Packet Filtering Framework...
         Starting IPv4 Packet Filtering Framework...
         Starting rng-tools.service...
         Starting Resets System Activity Logs...
         Starting User Login Management...
[  OK  ] Started Xserver startup without a display manager.
         Starting OpenSSH Key Generation...
[  OK  ] Finished Resets System Activity Logs.
[  OK  ] Finished IPv6 Packet Filtering Framework.
[  OK  ] Finished IPv4 Packet Filtering Framework.
[  OK  ] Started rng-tools.service.
[  OK  ] Finished Common GPIO Utilities.
[  OK  ] Reached target Preparation for Network.
         Starting Blinky Sample Application...
         Starting LSB: NFS support for both client and server...
         Starting Network Configuration...
[  OK  ] Finished OpenSSH Key Generation.
 
*********************************************************************
***
***   Avnet ZUBoard 1CG Out Of Box PetaLinux Build V1.2
***   The PS LED is mapped to 334
***
*********************************************************************
 
[  OK  ] Started User Login Management.
[  OK  ] Started Blinky Sample Application.
[  OK  ] Started LSB: NFS support for both client and server.
         Starting inetd.busybox.service...
         Starting LSB: Kernel NFS server support...
[  OK  ] Started inetd.busybox.service.
[FAILED] Failed to start LSB: Kernel NFS server support.
See 'systemctl status nfsserver.service' for details.
[  OK  ] Started Network Configuration.
         Starting Network Name Resolution...
[  OK  ] Started Network Name Resolution.
[  OK  ] Reached target Network.
[  OK  ] Reached target Host and Network Name Lookups.
[  OK  ] Started NFS status monitor for NFSv2/3 locking..
         Starting Permit User Sessions...
         Starting Target Communication Framework agent...
[  OK  ] Started Xinetd A Powerful Replacement For Inetd.
[  OK  ] Finished Permit User Sessions.
[  OK  ] Started Getty on tty1.
[  OK  ] Started Serial Getty on ttyPS0.
[  OK  ] Reached target Login Prompts.
[  OK  ] Started Target Communication Framework agent.
[  OK  ] Reached target Multi-User System.
[  OK  ] Reached target Graphical Interface.
         Starting Record Runlevel Change in UTMP...
[  OK  ] Finished Record Runlevel Change in UTMP.

PetaLinux 2022.2_release_S10071807 zub1cg-sbc-base-2022-2 ttyPS0

zub1cg-sbc-base-2022-2 login: 

  1. 2023年07月01日 16:54 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0