Kria K26 SOM

The purpose of this page is to provide developers with information and links to collateral available for the Kria K26 SOM, including documentation, pre-built images, firmware updates, and GitHub repositories. It is meant to augment other official documentation found at the Kria SOM product page at Xilinx.com.

Table of Contents

Introduction

Xilinx Kria is a portfolio of System-On-Modules (SOMs) designed for edge applications in a variety of use cases and production settings. The K26C/I SOMs are meant to be integrated directly into a customers production design and the SOM Starter Kit (e.g. KV260) are an evaluation and early development platform. The Kria lineup simplifies and accelerates the system development, helping you get your product to market faster.

K26 SOM

The K26 system-on-module (SOM) is a production ready hardware platform. The K26 SOM is shipped without any preloaded FW or SW configurations in the non-volatile memory devices (QSPI and eMMC).

KV260 Starter Kit

The KV260 is an evaluation kit based on the K26 SOM focused on vision applications. The Kria Starter Kits are shipped with a pre-loaded boot FW stored in the QSPI non-volatile memory device and a preset boot mode configuration of QSPI32. Details on QSPI memory configuration and content are outlined below.

 

Both the K26 SOM and the KV260 Starter Kit are sold in encryption enabled (G) and encryption disabled (-ED) variants. This designation refers to the availability of the MPSoC hardened crypto block that enables the SHA and AES accelerator functions.

Getting Started

First time SOM Starter Kit users should refer to the on-line “Getting Started” guide for their kit:

Developer Resources

The following section provides links to the product documentation, pre-built firmware and software binaries, and application examples that apply to the K26 SOM.

Documentation

Starter Kit Pre-Built Binaries

SD Card Images

The SOM Starter Kits use a two stage boot process. The primary boot firmware is pre-installed at the factory on the QSPI device. The secondary boot device is an SD card containing the Linux kernel and Linux root filesystem (rootfs). The SD card images are available in the table below. When using pre-built applications from the Xilinx App Store you need to ensure to align your Starter Kit Linux version with the target application assumed Linux version.

Starter Kit SD Card Image

Description

Download Link

Starter Kit SD Card Image

Description

Download Link

Kria Starter Kit 2021.1

2021.1 Starter Kit Linux pre-built SD card image (*.wic) for KV260 Starter Kit.

https://www.xilinx.com/member/forms/download/xef.html?filename=petalinux-sdimage-2021.1-update1.wic.xz

Kria Starter Kit 2020.2.2

2020.2.2 Starter Kit Linux pre-built SD card image (*.wic) for KV260 Starter Kit.

https://www.xilinx.com/member/forms/download/xef.html?filename=petalinux-sdimage.wic.gz

After initial boot of a new SD card image it is best practice to execute sudo dnf update in order to update core utilities that may have been released following the SD card image release.

In some scenarios it may be required to clean the local dnf cache first. To do so execute sudo dnf clean all

With 2021.1 package feeds when doing dnf update you will see a number packages that are flagged for update but are only revision metadata updates. You do not need to install these dnf tracked changes, but if you do it will only update/align the associated revision information.

Accelerated Applications & Library Packages

The SOM Starter Kits use the Linux dnf package manager to deploy, update, and maintain the accelerated application (AA) and their supporting libraries. These application packages are available in the SOM Starter Kit package feed at petalinux.xilinx.com. The xmutil “getpkgs” function provides an easy to use method to query and identify the packages applicable to the Starter Kit it is actively running on. The “getpkgs” uses normal dnf functionality which is supported and enabled by default in the SOM Starter Linux images. The AA documentation including install, getting started, and how to build is maintained on the Starter Kit documentation GitHub.

Boot Firmware Updates

The SOM Starter Kits have factory pre-programmed boot firmware that is installed and maintained in the SOM QSPI device. Occasionally firmware updates will be made available in the table below which can be updated from Linux using the “xmutil bootfw_update” on-target utility. The KV260 supports an A/B update mechanism to ensure that the platform has a known good fallback in the event of an issue during the upgrade process. The on-target utility will update the new boot firmware (BOOT.BIN file) into the non-active slot and then set the firmware to become active on the next boot cycle.

KV260 Boot FW Image

Description

Download Link

KV260 Boot FW Image

Description

Download Link

KV260 2021.1 Boot FW Update

2021.1 aligned boot firmware pre-built content. NOTE: This update is optional as the 2021.1 SD card image is backwards compatible.

https://www.xilinx.com/member/forms/download/xef.html?filename=2021.1_update1_BOOT.BIN

KV260 2020.2.2 Boot FW Update

PLL configuration update to support Smart Cam audio PLL requirement.

https://www.xilinx.com/member/forms/download/xef.html?filename=BOOT.BIN

Boot FW via xmutil

The SOM on-target management utility xmutil provides bootfw_update and bootfw_status utility for updating and checking the status of the boot FW from Linux.

The xmutil bootfw_update and bootfw_status utilities have a known issue with the factory QSPI image (20210225) in which it will always return a “persistent registers are corrupted” message. If your board has this factory QSPI image you must use the “Image Recovery Tool” to update your Starter Kit boot firmware. To check the factory boot FW version you can directly read the version register information at address 0x2240000 via U-Boot or Linux. For reference the full QSPI image memory layout is defined below.

Boot FW update with xmutil

The xmutil provides a utility to help in the update of the on-target boot firmware with the following steps:

  1. Download the boot firmware update from the table above. It should be a Xilinx BOOT.BIN file.

  2. Move the BOOT.BIN file to the SOM Starter Kit target using FTP (or similar method). Note when copying file remotely you must copy it to the petalinux user directory.

  3. Execute “sudo xmutil bootfw_update -i <path to boot.bin>”.

  4. Restart the platform.

  5. After restart execute “sudo xmutil bootfw_update -v” to validate successful boot of the new image.

Boot FW status with xmutil

The xmutil also provides a “bootfw_status” command which can be used to identify which image is active, which image was last booted, and what image is going to be booted on the next boot. The version information noted from bootfw_status represents the factory installed version and will not change when you update individual boot partitions.

Stand-alone FW Update & Recovery Utility

The K26 boot firmware is comprised of an “Image Selector” application, A/B MPSoC boot FW partitions, and an “Image Recovery” application. It is suggested for users to use the xmutil boot FW update tool as the primary boot FW update mechanism. If the user however gets to a state where they either want to reset the board to factory settings they can use the “Image Recovery Tool” which is a stand alone application for manually loading and configurating content of both A and B boot partitions.

The image recovery tool works in a similar manner to typical home router initial configuration with a static IP and web-server based tool which is used to directly update the A/B partitions and the persistent register states. This tool can be used to write the a factory BOOT.BIN image from the Starter Kit Boot FW table above to overwrite either image partition or both using the “Recover Image” function. The tool can also be used to modify the bootable state of each partition. If uploading a BOOT.BIN the tool will by default configure that partition to a “bootable” state.

The static IP is printed to the UART when the system is powered on with the FWUEN button pressed. See UG1089 for details on set-up and use of the Recovery Tool.

Note that Image Recovery Tool is only validated with following web-browsers:

QSPI image 20210225 -> Firefox only.

QSPI image 20210422 or later -> Firefox & Chrome

When using Image Recovery Tool on the boards with factory QSPI image 20210225; always upload your new boot FW as Image A by selecting the Image A radial button in the Select Image to be recovered and the Requested Boot Image sections of the Image Recovery Tool.

 

Boot FW QSPI Memory Map

The boot FW of the KV260 Starter Kit is pre-loaded at time or production in the SOM QSPI memory. This device is intentionally isolated from the SD card to ensure that the board is always in a bootable state and SW developers can primarily focus on OS level updates and late bound loading of bitstreams. Sectors of the QSPI device are locked during production to prevent accidental overwrite in customer systems; with the only sectors that can be over-written are the A and B boot partitions discussed above and supported by the xmutil and Image Recovery tools. The QSPI memory map and read/write access is defined in the following table.

Offset

Description

Access

Linux mtd

Offset

Description

Access

Linux mtd

0x0

Image Selector Application

R

0

0x80000

Image Selector Application - Fall back

R

1

0x100000

Persistent Register

R/W

2

0x120000

Persistent Register - Backup

R/W

3

0x140000

Reserved

-

4

0x200000

“Image A” - BOOT.BIN

R/W

5

0xF00000

Image Selector - Catch A

R

6

0xF80000

“Image B” - BOOT.BIN

R/W

7

0x1C80000

Image Selector - Catch B

R

8

0x1D00000

Reserved

-

9

0x1E00000

Image Recovery Application

R

10

0x2000000

Image Recovery Application - Backup

R

11

0x2200000

U-Boot Storage Variables

R/W

12

0x2220000

U-Boot Storage Variables - Backup

R/W

13

0x2240000

QSPI Image Version Information

R

14

0x2250000

Open

R/W

15

PetaLinux Board Support Packages

PetaLinux Board Support Packages (BSP) include pre-built images and a pre-defined configuration to rebuild the images from scratch. The Kria K26 product is supported with two BSPs which are analogous to the “SOM” and “Starter Kit” hardware configurations outlined above. Be sure to use the BSP aligned with your selected tools version and target platform.

Product BSP

Description

BSP Download Link

Product BSP

Description

BSP Download Link

Starter Kit SOM BSP

Applies to KV260 kits

The K26 Starter Kit SOM BSP implements a multi-domain (staged boot process), multi-carrier card (dynamic DT loading), and application agnostic BSP which is used to create the Starter Kit Linux SD card images linked above.

This BSP enables the same peripherals that are defined in the Vivado KV260 Starter Kit board file.

2021.1 - https://www.xilinx.com/member/forms/download/xef.html?filename=xilinx-k26-starterkit-v2021.1-final.bsp

2020.2.2 - https://www.xilinx.com/member/forms/download/xef.html?filename=xilinx-k26-starterkit-v2020.2.2-final.bsp

Production K26 SOM

Applies to K26C/I SOM

The K26 Production SOM is a “starter” BSP configuration for customers beginning their production carrier card design. This BSP implements only the hardware peripherals implemented on the K26 SOM itself (e.g. DDR, QSPI, eMMC), with the exception of assuming the carrier card implements PS UART1 on MIO36-37.

This BSP enables the same peripherals that are defined in the Vivado K26C and K26I SOM board files.

Note: That the production SOMs are shipped with no content on the QSPI. Thus the BSP must be used with a single boot device. See UG1091 for details on setting boot mode configurations during carrier card design.

2021.1 - https://www.xilinx.com/member/forms/download/xef.html?filename=xilinx-k26-som-v2021.1-final.bsp

2020.2.2 - https://www.xilinx.com/member/forms/download/xef.html?filename=xilinx-k26-som-v2020.2.2-final.bsp

PetaLinux 2021.1 Release

The Kria SOM is supported in the PetaLinux 2021.1 release through an eSDK update captured under the 2021.1 PetaLinux Update 1, you need to ensure you upgrade your PetaLinux 2021.1 installation prior to using the Kria SOM and Starter Kit 2021.1 BSPs.

In order to use the K26 and Starter Kit BSP you must first install the Update 1 package from the PetaLinux 2021.1 tools downloads page.

PetaLinux 2020.2.2 Release

The April 2020 SOM release is supported by a special release of the PetaLinux tool, version 2020.2.2. This version of PetaLinux is intended to only support the K26 SOM and Starter Kit. The 2020.2.2 SOM BSPs will only work with this specific version of the PetaLinux tool. The PetaLinux 2020.2.2 tool also must be installed with a full install method and not via the petalinux-upgrade function. See the PetaLinux 2020.2 downloads page for the Kria K26 Special Release information, PetaLinux installer, and support files.

Regenerating boot firmware from BSP

To generate a new boot firmware configuration that creates a new or custom “BOOT.BIN” start by following KV260 Starter Kit BSP build instructions at the KV260 GitHub.io documentation.

After building petalinux and generating a WIC image, enter below command to generate BOOT.BIN

petalinux-package --boot --u-boot --dtb images/linux/u-boot.dtb –force

You will find new boot firmware at /image/linux/BOOT.BIN. The new BOOT.BIN can be loaded to the Starter Kit using the xmutil bootfw_update utility described above

The K26 Starter Kit boot mode pins are set for QSPI boot mode. The xmutil and Image Recovery tools provide a facility for updating one of the boot FW partitions of the QSPI device. If you desire to temporarily use a different boot mode for testing you must set the MPSoC BOOT_MODE_USER Register at 0xff5e0200 and issue a reset to override the board default.

Vivado Board Support Packages

The K26 SOM is supported Vivado with three board files that automate the configuration of the SOM based peripherals. These board files are available on Xilinx’s GitHub Board Store and are supported in Vivado 2020.2.2 or later.

  • K26C SOM - Commercial grade K26 SOM.

  • K26I SOM - Industrial grade K26 SOM.

  • KV260 Starter Kit - K26 based Starter Kit SOM with Vision AI Carrier Card connector interface.

Vitis Platforms

A Vitis platform defines the physical peripherals implemented in the FPGA. As the SOM itself is application agnostic and FPGA peripherals are implemented on the carrier card, the Xilinx provided references focus on the SOM Starter Kits.

The KV260 Starter Kit Vitis Platforms and example overlays are available in the KV260 Vitis GitHub. The platform names describe the physical functionality that they enable on the carrier card. As the KV260 carrier card uses a DP/HDMI splitter the platform names including “DP” functionally enable both DisplayPort and HDMI.

  • kv260_isp_MipiRx_vcu_DP - Implements: AP1302 ISP receive interface, VCU encode & decode functions, DisplayPort video output

  • kv260_vcuDecode_vmixDP - Implements: VCU decode only, video mixer + DisplayPort video output

  • kv260_ispMipiRx_vmixDP - Implements: AP1302 ISP receive interface, video mixer + DisplayPort video output

  • kv260_ispMipiRx_DP - Implements: AP1302 ISP receive interface, DisplayPort video output

Application Repositories

KV260 Application Documentation

The KV260 applications are captured in the Kria KV260 Docs repository.

KV260 Accelerated Applications

The source code for the KV260 Accelerated Applications are captured in independent repositories:

SOM Utilities

The KV260 Starter Kit uses a number of on-target utilities that may be useful in your design.

Known Issues

Related Links