Getting Started with KV260

This document explains how to build, deploy, and boot the Cassini distro on Xilinx KV260 Platform.

Building KV260 Images


When building on main branch, the preparation script: kas/scripts/ must be executed before attempting the following steps. This script pins the SHAs for layers involved in KV260 build according to the TRS manifest to follow the same update pace as meta-trustedsubstrate.

This script needs defusedxml Python library to be installed.

The kas configuration file kas/zynqmp-kria-starter-psa.yml can be used to build images which target KV260.

This command can be used to build KV260 images:

kas build --update kas/cassini.yml:kas/zynqmp-kria-starter-psa.yml

This will produce the firmware images here:



And a Cassini distribution image here:



Flashing the Firmware

  1. Connect KV260 Ethernet port to the host machine

  2. Power up the device while holding FWUEN button

  3. In a browser, visit:, this will open Xilinx tool for flashing the firmware

  4. Upload ImageA.bin and ImageB.bin

  5. Reset the device


The ethernet port on the host machine must be configured to have an IP address on the same network as For example:

  • IP address:

  • Subnet mask:

Flashing the Distro Image

  1. Insert the SD card into the host machine

  2. Check if the SD card is seen by the host machine via lsblk.

This will output, for example:

<sd card>   179:0    0    16G  0 disk
├─p1        179:1    0   256M  0 part
└─p2        179:2    0   512M  0 part
  1. Flash the image onto the SD card using bmap-tools:

sudo bmaptool copy --bmap cassini-image-base-zynqmp-kria-starter-psa.rootfs.wic.bmap cassini-image-base-zynqmp-kria-starter-psa.rootfs.wic.gz /dev/<sd card>
  1. Eject the SD card from the host machine, and insert it into KV260

Connecting to the serial port

  1. Connect a cable between the USB port of the host machine and the micro-USB port of KV260.

  2. Check for new TTY USB devices detected by the host machine, via:

ls /dev/ttyUSB*

This will output, for example:

  • ttyUSB1 is used for logs of both secure and non-secure sides.

  • PMU uses one of the other ports, while the rest are not used at the moment.

  1. Connect to the serial console using any terminal client (picocom, minicom, or screen should all work).

sudo picocom -b 115200 /dev/ttyUSB1