Kira KV260

  • Working Petalinux or Ubuntu needs to be loaded first to update the firmware if latest image is not booting due to firmware mismatch
  • DC power jack is not standard 5.5/2.1 mm but 5.5/2.5 mm

https://docs.xilinx.com/v/u/en-US/zynq-ultrascale-plus-product-selection-guide
https://docs.xilinx.com/r/en-US/ds986-kv260-starter-kit/Summary

  • Zynq UltraScale+ XCK26-SFVC784-2LV-C/I MPSoC (Custom-Built for K26 SOM)
  • Equivalent of Zynq UltraScale+ XCZU5EV MPSoC

Option A: Certified Ubuntu
https://ubuntu.com/download/amd-xilinx

Option B: PetaLinux
https://www.xilinx.com/products/som/kria/kv260-vision-starter-kit/kv260-getting-started/setting-up-the-sd-card-image.html

Option C: PetaLinux for Vitis AI (DPU)
https://xilinx.github.io/Vitis-AI/docs/board_setup/board_setup_mpsoc.html

  • Selection Criteria:
    1. Option C is firstly recommended if using Vitis AI
    2. Option A is the primary choice of Xilinx - Recommended if using pre-built applications on Xilinx App Store (e.g., Smart Camera)
    3. Option B is the official OS released by Xilinx - Recommended if customizing everything on processing system deeply
  • DC barrel plug converter from 5.5/2.5 mm to 5.5/2.1 mm (power side)
  • Inline power switch with 5.5/2.1 mm barrel connectors
  • DC barrel plug converter from 5.5/2.1 mm to 5.5/2.5 mm (board side)

https://www.xilinx.com/products/som/kria/kv260-vision-starter-kit/kv260-getting-started-ubuntu/booting-your-starter-kit.html

  • Baud rate = 115200
  • Data bits = 8
  • Stop bits = 1
  • Flow control = None
  • Parity = None
  • Username = ubuntu
  • Password = ubuntu

SSH becomes available after updating the password

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/2363129857/Getting+Started+with+Certified+Ubuntu+22.04+LTS+for+Xilinx+Devices

## Network Confirmation
ping 8.8.8.8
## Update
sudo apt update
#sudo apt upgrade
## Package Installation
sudo apt install net-tools
## Xilinx Development Environment
#sudo snap install xlnx-config --classic
sudo snap install xlnx-config --classic --channel=2.x
## Config
sudo xlnx-config.sysinit

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/1641152513/Kria+K26+SOM#Boot-FW-Update-Process
https://qiita.com/ikwzm/items/4e5e954eabc988bd78d5
https://qiita.com/ikwzm/items/67902c8e1446c13e8d81

sudo xmutil bootfw_status
Image A: Bootable
Image B: Bootable
Requested Boot Image: Image A
Last Booted Image: Image A
XilinxSom_QspiImage_v1.1_20210422

ImageA Revision Info: Not defined
ImageB Revision Info: Not defined
## Backup Current Boot Firmware
sudo dd if=/dev/mtd5 of=boot_image-a.bin bs=1024
#sudo dd if=/dev/mtd7 of=boot_image-b.bin bs=1024
## Download the latest boot firmware from Xilinx
sudo xmutil bootfw_update -i BOOT_xilinx-k26-starterkit-v2022.1-09152304_update3.BIN
sudo xmutil bootfw_status
Image A: Bootable
Image B: Non Bootable
Requested Boot Image: Image B
Last Booted Image: Image A
XilinxSom_QspiImage_v1.1_20210422

ImageA Revision Info: Not defined
ImageB Revision Info: XilinxSOM_BootFW_20220915
## Power off (not reboot) by pressing the RESET button or following command
sudo systemctl poweroff
## [IMPORTANT] Validate successful boot against the new firmware !!!
sudo xmutil bootfw_update -v
sudo xmutil bootfw_status
Image A: Bootable
Image B: Bootable
Requested Boot Image: Image B
Last Booted Image: Image B
XilinxSom_QspiImage_v1.1_20210422

ImageA Revision Info: Not defined
ImageB Revision Info: XilinxSOM_BootFW_20220915

Check if the boot loader displayed on the boot screen is updated:
kv260_boot.log.gz

Xilinx Zynq MP First Stage Boot Loader
Release 2022.1   Sep 16 2022  -  04:56:15
...
## CUI Only (as needed)
sudo systemctl set-default multi-user.target
## Shutdown GNOME (as needed)
sudo systemctl stop gdm
sudo vi /etc/default/flash-kernel
======================================================
LINUX_KERNEL_CMDLINE="quiet splash cma=512M"
LINUX_KERNEL_CMDLINE_DEFAULTS=""
======================================================
## Completing Update
sudo flash-kernel
## Verifying Bootargs
cat /proc/cmdline

[IMPORTANT] Device is not shown if DPU IP Core has not been downloaded to the FPGA chip !!!

xbutil examine
System Configuration
  OS Name              : Linux
  Release              : 5.15.0-1020-xilinx-zynqmp
  Version              : #22-Ubuntu SMP Fri Feb 24 14:14:20 UTC 2023
  Machine              : aarch64
  CPU Cores            : 4
  Memory               : 3906 MB
  Distribution         : Ubuntu 22.04.2 LTS
  GLIBC                : 2.35
  Model                : ZynqMP SMK-K26 Rev1/B/A

XRT
  Version              : 2.13.0
  Branch               :
  Hash                 :
  Hash Date            : 2022-09-15 17:01:20
  ZOCL                 : 2.13.0,

Devices present
BDF             :  Shell  Platform UUID  Device ID     Device Ready*
[0000:00:00.0]  :  edge   0x0            user(inst=0)  Yes

* Devices that are not ready will have reduced functionality when using XRT tools

https://xilinx.github.io/kria-apps-docs/kv260/2022.1/build/html/docs/smartcamera/docs/app_deployment.html

[IMPORTANT] Smart Camera Application uses DPUCZDX8G_ISA1_B3136 DPU Architecture !!!

## Install Application
sudo apt search xlnx-firmware-kv260
sudo apt install xlnx-firmware-kv260-smartcam
## Disable Desktop
sudo xmutil desktop_disable
#sudo xmutil desktop_enable
## Load Application
sudo xmutil listapps
sudo xmutil unloadapp
sudo xmutil loadapp kv260-smartcam
## Docker Installation
sudo apt install docker.io
sudo docker pull xilinx/smartcam:2022.1
sudo docker images
## Launch Docker
sudo docker run --env="DISPLAY" -h "xlnx-docker" --env="XDG_SESSION_TYPE" --net=host --privileged --volume="$HOME/.Xauthority:/root/.Xauthority:rw" \
-v /tmp:/tmp -v /dev:/dev -v /sys:/sys -v /etc/vart.conf:/etc/vart.conf -v /lib/firmware/xilinx:/lib/firmware/xilinx -v /run:/run -it xilinx/smartcam:2022.1 bash
==========================================
 _  __     _         ____   ___  __  __
| |/ /_ __(_) __ _  / ___| / _ \|  \/  |
| ' /|  __| |/ _  | \___ \| | | | |\/| |
| . \| |  | | (_| |  ___) | |_| | |  | |
|_|\_\_|  |_|\__ _| |____/ \___/|_|  |_|
==========================================
root@xlnx-docker:/# 
## Checking Video Devices
v4l2-ctl --list-devices
## Run Application with MIPI Camera (AR1335)
#smartcam --mipi -W 1920 -H 1080 -r 30 --target dp
smartcam --mipi -W 1920 -H 1080 -r 30 --target rtsp
## Run Application with USB Camera
#smartcam --usb 1 -W 1920 -H 1080 -r 30 --target dp
#smartcam --usb 1 -W 1920 -H 1080 -r 30 --target rtsp
## Open network stream via VLC
rtsp://192.168.1.128:554/test

Put new application files in /lib/firmware/xilinx/

sudo xmutil listapps
sudo xmutil unloadapp
sudo xmutil loadapp [appname]
## Check if successfully loaded
## [appname]: loaded to slot 0
## Install Application with DPUCZDX8G_ISA1_B4096
sudo apt install xlnx-firmware-kv260-benchmark-b4096
## Load Application
sudo xmutil listapps
sudo xmutil unloadapp
sudo xmutil loadapp kv260-benchmark-b4096

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/2072838191/Building+Vitis-AI+Sample+Applications+on+Certified+Ubuntu+20.04+LTS+for+Xilinx+Devices
https://www.xilinx.com/developer/articles/building-running-vitis-ai-on-kria-with-ubuntu.html

sudo apt -y update
sudo apt -y install libopencv-dev
sudo apt -y install libgoogle-glog-dev
## For Ubuntu 22.04
sudo apt -y install vitis-ai-library
sudo apt -y install libjson-c-dev
## Git Clone
cd
git clone https://github.com/Xilinx/Vitis-AI.git
## Version Selection
cd Vitis-AI
#git checkout tags/v1.3.2
#git checkout tags/v2.5
git checkout tags/v3.0
## Checking DPU Availability
export DEBUG_DPU_CONTROLLER=1
show_dpu
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0608 07:18:30.595397 82819 dpu_controller.cpp:43] add factory method 02_xrt
I0608 07:18:30.595608 82819 dpu_control_xrt.cpp:106] register the xrt edge dpu controller
I0608 07:18:30.595679 82819 dpu_controller_dnndk.cpp:258] cancel register the dnndk dpu controller, because /dev/dpu is not opened
I0608 07:18:30.704615 82819 dpu_control_xrt.cpp:51] xrt dpu cu  is detected, kernel = DPUCZDX8G
I0608 07:18:30.704684 82819 dpu_control_xrt.cpp:80] create DpuControllerXrtEdge for DPUCZDX8G
I0608 07:18:30.704720 82819 dpu_control_xrt_edge.cpp:51] creating dpu controller:  this=0xaaaacf2bd7c0
I0608 07:18:30.704747 82819 dpu_controller.cpp:54] create dpu controller via 02_xrt ret= 0xaaaacf2bd7c0
device_core_id=0 device= 0 core = 0 fingerprint = 0x101000016010406 batch = 1 full_cu_name=DPUCZDX8G:DPUCZDX8G_1

I0608 07:18:30.704823 82819 dpu_control_xrt_edge.cpp:58] destroying dpu controller:  this=0xaaaacf2bd7c0
## Checking DPU Availability
xdputil query
WARNING: Logging before InitGoogleLogging() is written to STDERR
E0608 07:18:43.392241 82825 xdputil_query.cpp:182] Unsupported platform fingerprint: 0, cu_idx: 1
I0608 07:18:56.340873 82825 dpu_controller.cpp:43] add factory method 02_xrt
I0608 07:18:56.340953 82825 dpu_control_xrt.cpp:106] register the xrt edge dpu controller
I0608 07:18:56.341037 82825 dpu_controller_dnndk.cpp:258] cancel register the dnndk dpu controller, because /dev/dpu is not opened
{
    "DPU IP Spec":{
        "DPU Core Count":2,
        "IP version":"v4.0.0",
        "generation timestamp":"2022-05-11 13-30-00",
        "git commit id":"9bf4ccf",
        "git commit time":2022051113,
        "regmap":"1to1 version"
    },
    "VAI Version":{
        "libvart-runner.so":"Xilinx vart-runner Version: 2.5.0-  2022-07-20-17:13:58 ",
        "libvitis_ai_library-dpu_task.so":"Xilinx vitis_ai_library dpu_task Version: 2.5.0-  2022-07-15 16:21:46 [UTC] ",
        "libxir.so":"Xilinx xir Version: xir- 2022-07-20-17:06:45",
        "target_factory":"target-factory.2.5.0 d02dcb6041663dbc7ecbc0c6af9fafa087a789de"
    },
    "kernels":[
        {
            "DPU Arch":"DPUCZDX8G_ISA1_B3136",
            "DPU Frequency (MHz)":300,
            "IP Type":"DPU",
            "Load Parallel":2,
            "Load augmentation":"enable",
            "Load minus mean":"disable",
            "Save Parallel":2,
            "XRT Frequency (MHz)":300,
            "cu_addr":"0xa0010000",
            "cu_handle":"0xaaab0cc00900",
            "cu_idx":0,
            "cu_mask":2,
            "cu_name":"DPUCZDX8G:DPUCZDX8G_1",
            "device_id":0,
            "fingerprint":"0x101000016010406",
            "name":"DPU Core 0"
        },
        {
            "DPU Arch":"",
            "cu_addr":"0xa0020000",
            "cu_handle":"0xaaab0cbaeb30",
            "cu_idx":1,
            "cu_mask":1,
            "cu_name":"pp_pipeline_accel:pp_pipeline_accel_1",
            "device_id":0,
            "fingerprint":"0x0",
            "name":"DPU Core 1"
        }
    ]
}

See Vitis AI for running deep-learning libraries

https://www.xilinx.com/products/som/kria/kv260-vision-starter-kit/kv260-getting-started/booting-your-starter-kit.html

  • Baud rate = 115200
  • Data bits = 8
  • Stop bits = 1
  • Flow control = None
  • Parity = None
  • Username = petalinux
  • Password = petalinux
  • Username = root
  • Password = root

SSH becomes available after updating the password

## Root Login (as needed)
sudo su -l root
## Network Confirmation
ping 8.8.8.8

See Vitis AI for running deep-learning libraries

https://www.xilinx.com/products/som/kria/kv260-vision-starter-kit/kv260-getting-started/trying-the-smart-camera-app.html

## Update Package (as needed)
#sudo dnf update
#sudo dnf clean all
## Install Application
sudo xmutil getpkgs
sudo dnf install packagegroup-kv260-smartcam.noarch
## Load Firmware
sudo xmutil listapps
sudo xmutil unloadapp
sudo xmutil loadapp kv260-smartcam
## Run Application with AR1335 Camera
sudo smartcam --mipi -W 1920 -H 1080 -r 30 --target dp
## Run Application with USB Camera
sudo smartcam --usb 0 -W 1920 -H 1080 -r 30 --target dp

Daiphys is a professional-service company for research and development of leading-edge technologies in science and engineering.
Get started accelerating your business through our deep expertise in R&D with AI, quantum computing, and space development; please get in touch with Daiphys today!

Name*


Email*


Message*




* Indicates required field

Daiphys Technologies LLC - https://www.daiphys.com/

  • Last modified: 2023/08/01 04:46
  • by Daiphys