Kria SOMs & Starter Kits

The purpose of this page is to provide developers with information and links to collateral available for the Kria Production SOMs and Starter Kits, 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

Kria Platforms Overview

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

Production SOMs

K26

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). The K26 SOMs do not include ECC support.

K24

The K24 system-on-module (SOM) is a production ready hardware platform. The K24 SOM is shipped without any preloaded FW or SW configurations in the non-volatile memory devices (QSPI and eMMC). The I-grade K24 SOM includes ECC support while the C-grade K24 SOM does not.

 

Starter Kits

Kria Starter Kits are intended to be used for initial evaluation and early development platform for the K26 and K24 SOM. They consist of either a K26 or K24 SOM coupled with an application focused carrier card. 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. A pre-built Kria Starter Kit Linux image is provided for each SOM variant set of Starter Kits. Pre-built applications are then made available over-the-air (OTA) via Linux package feeds. Details on the Kria Starter Kit Linux images and example applications are outlined below.

KV260 Starter Kit

The KV260 is an evaluation kit based on the K26 SOM focused on vision applications.

KR260 Starter Kit

The KR260 is an evaluation kit based on the K26 SOM focused on robotics and machine vision applications.

KD240 Starter Kit

The KD240 is an evaluation kit based on the K24 SOM focused on electric drives and motor applications.

Kria Product Summary

As outlined on this page there are variants of production and corresponding starter kit SOMs. The starter kits are built with SOMs that are component/part population only variants of the production SOM. The following table summarizes the key functional difference in the Kria product variants.

Module

eMMC Populated

Thermal Solution

Temperate Range

K26 Production SOM - C Grade

Yes

Heat spreader plate

0C to 85C

K26 Production SOM - I Grade

Yes

Heat spreader plate

-40C to 100C

K24 Production SOM - C Grade

Yes

Heat spreader clam shell

0C to 85C

KV260 Starter Kit SOM

No

Fansink

0C to 35C

KR260 Starter Kit SOM

No

Fansink

0C to 35C

KD240 Starter Kit SOM

No

Passive heat sink

0C to 35C

Getting Started

First time Kria 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.

The Kria adventure map is a map of links to help users discover useful documentation according to their evaluation stages.

Additional technical assets and resources such as 3D CAD model, bill of materials, carrier schematic, carrier PCB layout and schematic source files can be accessed in the Carrier Card Design Resources section of the following Kria Starter Kit product pages:

K26 Documentation

K24 Documentation

Kria Shared Documentation

Starter Kit Pre-Built Software

The Kria 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 Starter Kit pre-built FW and SW are aligned with their specific Starter Kits. The K26 and K24 Starter Kit SD card images are available in the tables 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.

The K26 based Starter Kits are supported with Ubuntu Desktop 22.04 and the K24 Starter Kits are supported with Ubuntu Server 22.04. The configurations between the two Ubuntu OS are primarily the same with the primary functional difference being the inclusion of the desktop GUI.

K26 Starter Kit Linux

The K26 Kria Starter Kits supported with Ubuntu Desktop 22.04 for the initial out-of-box support and example applications. An embedded Linux built within Yocto is also provided as a reference implementation for customers intending to target a custom embedded Linux during evaluation and production. Each Starter Kit also has a corresponding PetaLinux BSP. The Ubuntu Desktop 22.04 is the primary OS targeted by the KV260 and KR260 pre-built applications and out of box workflows.

Ubuntu Desktop LTS

The following table outlines the Ubuntu images available for the Kria Starter Kit. For additional details on the Ubuntu support for Kria see the Xilinx Ubuntu Wiki. Kria Ubuntu default login:

  • Username: ubuntu

  • Password: ubuntu (Will be prompted to change on first login)

Kira Starter Kit users of Ubuntu 22.04 LTS should update their boot FW to the recommended version in the table below to ensure full platform functionality.

Legacy KV260 kits REQUIRE the 2022.1 boot FW update prior to booting Ubuntu 22.04. Update should be completed with your current Linux image or via the Boot Image Recovery tool.

Starter Kit Ubuntu Image

Description

Kits Supported

Recommended FW

Download Link

Starter Kit Ubuntu Image

Description

Kits Supported

Recommended FW

Download Link

Ubuntu Desktop 22.04 LTS

Kria K26 Starter Kit Ubuntu Desktop 22.04 image

KV260, KR260

2022.1 K26 Boot FW Update or later

https://ubuntu.com/download/amd-xilinx

Ubuntu Desktop 20.04 LTS

Kria Starter Kit Ubuntu Desktop 20.04 image

KV260

2021.1 K26 Boot FW Update 2 or later

https://ubuntu.com/download/amd-xilinx

Kria Ubuntu 22.04 LTS has the following known limitations:

  • Suspend/resume functionality is not supported including Ethernet wake-on-LAN (WOL)

  • Audio playback on DisplayPort occasionally produces a “clicking” noise in concert with actual audio playback

  • KV260: Legacy boot FW (2021.1) will not boot the Ubuntu 22.04 image. Upgrade to 2022.1 Boot FW prior to loading Ubuntu 22.04 image.

  • KR260 USB2.0 devices not functional on U46 interfaces. Upgrade to 2022.1 Boot FW.

K26 Embedded Linux (Yocto)

Starting with 2023.1 the Kria Starter Kits embedded Linux reference image has been built natively in Yocto to support users not using the Xilinx specific PetaLinux tool. The Kria Yocto reference image is built to support multiple platforms while the PetaLinux BSPs only support a single static HW configuration. Thus you will find a Yocto reference image that supports both K26 Starter Kits (KV260, KR260), while PetaLinux has a 1-to-1 mapping of BSPs to individual platforms. For additional details on Kria platform Yocto support see the Kria App Dev Guide. For details on Yocto vs PetaLinux support for KRia, refer to https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/1641152513/Kria+SOMs+Starter+Kits#Yocto-Vs-PetaLinux-Support-and-Released-Artifacts. Yocto image default login:

  • Username: petalinux

  • Password: Will be prompted to change on first login

K26 Starter Kit Yocto Image

Description

Kits Supported

Recommended FW

Download Link

K26 Starter Kit Yocto Image

Description

Kits Supported

Recommended FW

Download Link

Kria K26 Starter Kit embedded Linux 2023.1

Kria K26 Starter Kit embedded Linux

KV260, KR260

2023.1 K26 Boot FW Update or later

Xilinx Download

K26 PetaLinux

The following table outlines the PetaLinux based pre-built Linux images. Default login:

  • Username: petalinux

  • Password: Will be prompted to change on first login

K26 Starter Kit PetaLinux Image

Description

Kits Supported

Recommended FW

Download Link

K26 Starter Kit PetaLinux Image

Description

Kits Supported

Recommended FW

Download Link

Kria K26 Starter Kit 2022.1

2022.1 PetaLinux Starter Kit Linux pre-built SD card image

KV260, KR260

2022.1 K26 Boot FW Update

Xilinx download

Kria K26 Starter Kit 2021.1

2021.1 PetaLinux Starter Kit Linux pre-built SD card image

KV260

2021.1 K26 Boot FW Update 2 or later

Xilinx download

Kria K26 Starter Kit 2020.2.2

2020.2.2 PetaLinux Starter Kit Linux pre-built SD card image

KV260

2020.2.2 K26 Boot FW Update or later

Xilinx download

PetaLinux Images SD Card Boot “Update”

After initial boot of a new SD card image it is best practice to execute sudo dnf update (PetaLinux) or sudo apt update (Ubuntu) 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.

K26 Boot Firmware Updates

The K26 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 starter kits 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.

K26 Starter Kit boot firmware has evolved to a Yocto based flow for generation and maintenance. This transition is reflected with a migration to semantic based versioning for the images and what is reported in the bootfw_status string. The Yocto generated images are later updates than those noted under the “legacy” boot firmware versions, which references the AMD-Xilinx 202X.Y tools versioning methodology.

K26 Boot FW (Yocto + semantic versioning)

Kria Boot FW Image

Description

Kits Supported

Download Link

Kria Boot FW Image

Description

Kits Supported

Download Link

K26 Boot FW 1.01

K26 Starter Kit Boot FW Update - Improves USB5744 I2C driver

KV260, KR260

AMD Download - K26-BootFW-01.01.bin

K26 Boot FW (Legacy versioning)

Kria Boot FW Image

Description

Kits Supported

Download Link

Kria Boot FW Image

Description

Kits Supported

Download Link

2022.2 Boot FW update

Unified FW for KV260 and KR260 Starter Kits. Required update for precision time application.

KV260, KR260

Xilinx download - 2022.2_update1_BOOT.BIN

2022.1 Boot FW Update

Unified FW for KV260 and KR260 Starter Kits. Addresses KR260 USB2.0 interfaces on U46 connector stack. Addresses KR260 PS Ethernet functionality on J10C physical interface. Fixes Linux WOL functionality for KR260 SGMII interface. Workaround for vai-lab chipset based USB hub.

KV260, KR260

Xilinx download - 2022.1_update3_BOOT.BIN

2021.1 Boot FW Update

KV260 boot FW update to address potential platform SW reboot induced failure. Behavior is reboot is not successful as PS power domain is unintentionally disabled.

NOTE: This update is atomic (does not required Update 1 to be installed prior)

KV260

Xilinx download - 2021.1_update2_BOOT.BIN

2020.2.2 Boot FW Update

PLL configuration update to support Smart Cam audio PLL requirement.

KV260

Xilinx download- BOOT.BIN

K24 Starter Kit Linux

The K24 Kria Starter Kits supported with Ubuntu Server 22.04 for the initial out-of-box support and example applications. An embedded Linux built within Yocto is also provided as a reference implementation for customers intending to target a custom embedded Linux during evaluation and production. Each Starter Kit also has a corresponding PetaLinux BSP. The Ubuntu Server 22.04 is the primary OS targeted by the KD240 pre-built applications and out of box workflows.

Ubuntu Server LTS

The following table outlines the Ubuntu images available for the K24 Kria Starter Kit. For additional details on the Ubuntu support for Kria see the Xilinx Ubuntu Wiki. Kria Ubuntu default login:

  • Username: ubuntu

  • Password: ubuntu (Will be prompted to change on first login)

Starter Kit Ubuntu Image

Description

Kits Supported

Recommended FW

Download Link

Starter Kit Ubuntu Image

Description

Kits Supported

Recommended FW

Download Link

Ubuntu Server 22.04 LTS

Kria K24 Starter Kit Ubuntu Server 22.04 image

KD240

2023.1 K24 Boot FW Update or later

https://ubuntu.com/download/amd

Known issue:

  • on certified Ubuntu 22.04 kd05, RS485 driver is not present as it is in the process of being upstreamed. It is still available on Ubuntu 22.04 kd03 version

K24 Embedded Linux (Yocto)

The K24 Kria Starter Kits embedded Linux reference image has been built natively in Yocto to support users not using the Xilinx specific PetaLinux tool. The Kria Yocto reference image is built to support multiple platforms while the PetaLinux BSPs only support a single static HW configuration. Thus you will find a Yocto reference image that supports both K24 Starter Kits (KD240), while PetaLinux has a 1-to-1 mapping of BSPs to individual platforms. For additional details on Kria platform Yocto support see the Kria App Dev Guide. For additional details on Kria platform Yocto support see the Kria App Dev Guide. For details on Yocto vs PetaLinux support for KRia, refer to . Yocto image default login:

  • Username: petalinux

  • Password: Will be prompted to change on first login

K24 Starter Kit Yocto Image

Description

Kits Supported

Recommended FW

Download Link

K24 Starter Kit Yocto Image

Description

Kits Supported

Recommended FW

Download Link

Kria K24 Starter Kit embedded Linux 2023.1

Kria K24 Starter Kit embedded Linux

KD240

2023.1 K24 Boot FW Update or later

AMD Download - K24 Embedded Linux image

Known issue:

  • RS485 Driver is not integrated in PetaLinux 2023.2, refer to AR000035701 for more information.

K24 Boot Firmware Updates (Yocto)

The K24 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 starter kits 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.

Kria Boot FW Image

Description

Kits Supported

Download Link

Kria Boot FW Image

Description

Kits Supported

Download Link

K24 Boot FW 1.01

KD240 Boot FW Update - Adds TPM reset HW option capability, improves USB5744 I2C driver

KD240

AMD Download - K24-BootFW-01.01.bin

K24 Boot FW 1.00

KD240 Boot FW Update - Adds CAN and RS485 interface subsystem enablement

KD240

AMD Download - K24-BootFW-01.00.bin

On-Target Utilities

The Kria runtime software provides a number of platform management helper utilities available under a common wrapper called “xmutil”. The following table summarizes these utilities which can be called using “xmutil <utility name>” in both Starter Kit Linux OS variants available. Use the -h or help functions with each utility to get detailed use instructions. Using sudo is required with many of the xmutil functions. The utilities and procedures are the same for all Kria Starter Kits.

Utility Name

Description

Utility Name

Description

xmutil boardid

Reads all board EEPROM contents. Prints information summary to command line interface.

xmutil bootfw_status

Reads primary boot device information. Prints A/B status information, image IDs, and checksums to command line interface.

xmutil bootfw_update

Tool for updating the primary boot device with a new boot image in the inactive partition.

xmutil getpkgs

Queries Xilinx package feeds and provides a summary to the debug interface of relevant packages for the active platform based on board ID information.

NOTE: This functionality is not supported in Kria Ubuntu.

xmutil listapps

Queries on the target hardware resource manager daemon of pre-built applications that are available on the platform and provides a summary to the debug interface.

xmutil loadapp

Loads the integrated HW+SW application inclusive of the bitstream, and starts the corresponding pre-built application software executable.

xmutil unloadapp

Removes accelerated application inclusive of unloading its bitstream.

xmutil xlnx_platformstats

Reads and prints a summary of the following performance related information: CPU frequency, RAM usage, temperature, and power information.

xmutil ddrqos

Utility for changing configuration of PS DDR quality of service (QoS) settings. Initial implementation focuses on PS DDR memory controller traffic class configuration.

xmutil axiqos

Utility for changing configuration of PS/PL AXI interface quality of service (QoS) settings. Initial implementation focuses on AXI port read/write priority configurations.

xmutil pwrctl

Utility for PL power control and status

xmutil desktop_disable

Disables the desktop environment

NOTE: This functionality is not supported in Kria Ubuntu Server.

xmutil desktop_enable

Enables the desktop environment

NOTE: This functionality is not supported in Kria Ubuntu Server.

xmutil dp_bind

Binds the display driver

xmutil dp_unbind

Unbinds the display driver

Boot FW Update Process

For an overview of the Kria Starter Kit A/B boot and primary (QSPI) to secondary (SD card) boot architecture see the Boot Firmware section of the Kria App Developer Guide. For more details on Boot Firmware, see boot firmware section in github.io. The following section provides user facing instructions for using the utilities put in place around this A/B boot architecture to deploy boot FW updates to your platform.

Boot FW management 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.

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 the A/B update process through these steps

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

    2. The tool returns the image (A or B) that is updated, and is marked for boot on the next boot.

    3. You can verify the updated status of the boot firmware using the sudo xmutil bootfw_status utility.

  4. After the image write is completed issue a power-on reset. This can be accomplished by pressing the RESET push-button or power cycling the board.

  5. After restart it is required by the user verify that Linux fully boots with the new boot FW to verify functionality. This is completed by executing “sudo xmutil bootfw_update -v to validate successful boot against the new firmware. Note this must be completed on the platform restart immediately following the update, else the platform will fall back to the other boot partition on the next restart.

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.

Users can also tell which image was booted at start-up based on the reported by FSBL console message that noting the MultiBootOffset.

MultiBootOffset: 0x40 -> “Image A”

MultiBootOffset: 0x1F0 -> “Image B”

Boot Image Recovery Tool

The Kria Starter Kit boot firmware pre-programmed into QSPI is comprised of an “Image Selector” application, A/B MPSoC boot FW partitions, and an “Boot Image Recovery Tool” 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 “Boot Image Recovery Tool” which is a stand alone, ethernet-based application for manually loading and configurating content of both A and B boot partitions. User can also use this tool when customizing the platforms boot firmware with their own BOOT.BIN generated through the Xilinx Vitis / PetaLinux / Yocto tools.

The boot image recovery tool (more details here) provides a simple Ethernet-based interface and application for updating the boot firmware. It works in a similar manner to typical home router initial configuration with a static IP and web-server based tool which is used to 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 chosen image partitions using the “Recover Image” function. The tool can also be used to modify the bootable state of each partition. Uploading a BOOT.BIN the tool will configure that partition to a “bootable” state.

This application and interface is initiated by holding the firmware update button during the power-on sequence. The application uses a fixed IP address of 192.168.0.111. The static IP is printed to the UART when the system is powered on with the FWUEN button pressed. The following figure shows an overview of the set-up.

To use the Boot Image Recovery Tool, follow these steps:

Starter Kit

Ethernet Port for Boot Image Recovery Tool

Starter Kit

Ethernet Port for Boot Image Recovery Tool

KV260

J10

KR260

J10C

KD240

J24

  1. Connect the PC to the Kria Starter Kit via Ethernet as shown in figure above. Ensure that the system is connected to the correct Ethernet port for the chosen Starter Kit (see table above). The other ports will not work for platform recovery.

  2. Set the PC to a static IP address that is on the same subnet as the recovery tool (192.168.0.XYZ), but not 192.168.0.111.

  3. Hold the firmware update button when powering on the device. You should also see the UART print outs from the recovery application.

  4. Use a web-browser (e.g., Chrome or Firefox) on the PC to navigate to the URL http://192.168.0.111 for access to the Ethernet recovery tool.

  5. Use the Ethernet recovery tool GUI in the web-browser to update either the A or B boot firmware partitions with a BOOT.BIN file from the file system on the PC. The Ethernet recovery tool interface is shown in the following figure.

 

Boot FW QSPI Memory Map

The boot FW of the Kria Starter Kits 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 Boot 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

Boot Image Recovery Tool

R

10

0x2000000

Boot Image Recovery Tool- 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

0x2280000

Secure OS Storage

R/W

15

0x22A0000

User Space

R/W

16

Bitstream Management

The Kria Starter Kits use a dynamic bitstream management practice to allow different application bitstreams to be swapped without rebooting the entire platform. The default behavior of Kria Starter Kits is that the platform is booted to Linux with no bitstream loaded. A daemon called dfx-mgr provides the infrastructure for tracking bitstreams that are on the file system and loading/unloading the different bitstreams and their device tree overlays. For details on dfx-mgr operation see:

A default bitstream is loaded after boot as part of the dfx-mgr startup, which bitstream is loaded is determined by the dfx-mgr daemon configuration file located in “/etc/dfx-mgrd/daemon.conf”. Kria Starter Kit Linux images include a default bitstream loaded is called “k2*-starter-kits” has no functional PL logic but provides an EMIO mapping to the carrier card fan control pin via an EMIO and enables the PL SysMon functionality. Removing this bitstream will effectively disable active fan control as the physical pin is no longer accessible to Linux.

Fan Control

Starting with the 2022.1 images Kria Starter Kit pre-built software includes active fan control using the Linux fancontrol library which uses ZU+ PS TTC0 subsystem. The K26 Starter Kit fan pin is connected to PL pin HDA20 (physical pin A12) and thus in order to access it users need to ensure to provide an EMIO pin mapping between TTC0-Clk2 and HDA20. This is accounted for in the Xilinx generated platforms and reference bitstreams. If user wants to use the same fan control mechanism then they need to account for this EMIO mapping when generating their custom bitstream designs.

The KD240 Starter Kit ships with a passive heatsink but does have HW hooks for active fan control via J13 jumper on the KD carrier card if users want to add a 12V fan to their system. In K24 the fan control pin is connected to HDA08_CC PL pin.

PetaLinux & Ubuntu LTS

Kria is supported with both a pre-built Ubuntu LTS Linux image as well as being enabled within the PetaLinux development tool and Xilinx Yocto layers. The following table provides an summary of the intended scope that Ubuntu and PetaLinux have in the context of Kria SOM and Starter Kits, supporting the development life-cycle from initial out-of-box (OOB) evaluation to customer end product production.

 

Ubuntu LTS

PetaLinux

 

Ubuntu LTS

PetaLinux

Intent

Support of a great OOB experience with a desktop environment and a rich set of Linux libraries available and tested as part of the Ubuntu community.   Intended initially as an evaluation and early development platform on Kria, it can also be used for production with Canonical's assistance.

Embedded Linux development tool focused on Xilinx silicon and device specific feature enablement via board support packages (BSPs) and pre-built reference(s).

Updates

Kria Ubuntu OS is a Canonical certified OS that is supported with regular updates (e.g. security patches) from Canonical.  A new LTS  version of Ubuntu is provided every two years and each release is supported by Canonical for up to 10 years.

Snapshot image release aligned with Xilinx tools release (e.g. 2022.1) with no regular/planned updates until next  Xilinx tools release (e.g. 2022.2). 

Pre-built apps

Kria example application final end-to-end verification and pre-built public release will be to the Ubuntu OS. 

Kria example applications will build inside the PetaLinux tool but will not be fully verified nor released as pre-built packages. 

Application customization

User can customize userspace applications via on-target development and/or standard Ubuntu development tools/workflows.

User can customize userspace applications via on-target development and/or PetaLinux supported cross-compilation environment.

Kernel customization

LTS certified kernel is maintained by Canonical. User can modify and build their own derivative kernel but is then outside the scope of the certified image and Canonical support.   

Tool enables full customization of the kernel. 

Path to production

If user requires an officially certified and supported Ubuntu OS for their production system they must reach out to Canonical.  Production systems are assumed to have custom hardware (carrier card or chip down).  If any modifications to Ubuntu are needed to support custom hardware customers are encouraged to engage directly with Canonical to maintain certification.   https://ubuntu.com/support 

Canonical has very strict rules about what can be labeled as Ubuntu - please see more here: https://ubuntu.com/legal/intellectual-property-policy

User can use the PetaLinux and or Yocto to create their own fully custom embedded Linux. 

Development Flow

On-target compilation. Cross-compilation.  Sysroot provided by Canonical. 

On-target compilation. Cross-compilation. Sysroot provided by Yocto eSDK - Tight integration with Vivado & Vitis tool sets.

AMD-Xilinx Tools Support

 

Yocto Build instructions

Starting from 2023.1, there is Yocto support for Kria SOM Starterkits. Refer to Yocto Kria Support documentation for more information. There are support for generating .wic image, boot.bin or qspi images.

PetaLinux Board Support Packages

PetaLinux Board Support Packages (BSP) include pre-built images and a pre-defined configuration to rebuild the images from scratch.

K26 Platforms

The Kria K26 products are supported with three 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

KR260 Starter Kit

The KR260 Starter Kit SOM BSP implements a multi-domain (staged boot process) and application agnostic OS which is used to create their own custom boot FW (BOOT.BIN) and/or Linux image reference image.

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

2023.2 - Xilinx download

2023.1 - Xilinx download

2022.2 - Xilinx download

2022.1 - Xilinx download

KV260 Starter Kit

The KV260 Starter Kit SOM BSP implements a multi-domain (staged boot process) and application agnostic OS which is used to create their own custom boot FW (BOOT.BIN) and/or Linux image reference image.

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

2023.2 - Xilinx download

2023.1 - Xilinx download

2022.2 - Xilinx download

2022.1 - Xilinx download

2021.1 - Xilinx download

2020.2.2 - Xilinx download

K26C/I Production 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.

The prebuilt wic image in this BSP is configured to run out of eMMC.

Note: That the production SOMs are shipped with no content on the QSPI. See UG1091 for details on setting boot mode configurations during carrier card design.

2023.2 - Xilinx download

2023.1 - Xilinx download

2022.2 - Xilinx download

2022.1 - Xilinx download

2021.1 - Xilinx download

2020.2.2 - Xilinx download

K24 Platforms

The Kria K24 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

KD240 Starter Kit

The KD240 Starter Kit BSP implements a multi-domain (staged boot process) and application agnostic OS which is used to create their own custom boot FW (BOOT.BIN) and/or Linux image reference image.

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

2023.2 - AMD download

2023.1 PLNX Update 1 - AMD download

K24C Production SOM

The K26C 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 K24 C grade SOM itself (e.g. LPDDR with ecc disabled, 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 K24C SOM board files.

Note: That the production SOMs are shipped with no content on the QSPI. See UG1091 for details on setting boot mode configurations during carrier card design.

2023.2 - AMD download

2023.1 PLNX Update 1 - AMD download

K24I Production SOM

The K26I 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 K24 I grade SOM itself (e.g. LPDDR with ecc enabled, 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 K24I SOM board files.

Note: That the production SOMs are shipped with no content on the QSPI. See UG1091 for details on setting boot mode configurations during carrier card design.

2023.2 - AMD download

 

PetaLinux Tools Release Notes

PetaLinux 2023.1 Release

The Kria K26 platforms are supported in the original PetaLinux 2023.1 release, which can be found in PetaLinux 2023.1 tools download page.

The Kria K24 platforms require the PetaLinux “Update 1” tools package to be installed via the PetaLinux upgrade process to use the K24C and KD240 PetaLinux BSPs. See the PetaLinux upgrade instructions at this link.

PetaLinux 2022.1 Release

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

PetaLinux Build instructions

Building with PetaLinux tool is dependent on first having a proper PetaLinux install aligned with the BSP version being used. See PetaLinux user guide (UG1144) for install requirements and instructions. Most Kria BSPs are release asynchronous to the main tools release and require an eSDK update prior to building with the corresponding Kria BSP. See the Kria PetaLinux BSP table above for guidance.

The following provide short-hand instructions for building a Kria BSP, which given the primary/secondary boot design requires special handling in steps #4 and #5 relative to non-primary/secondary boot platforms.

  1. petalinux-create -t project -s <kria_starterkit>.bsp

  2. cd <kria_starter_kit_petalinux_folder>

  3. petalinux-build

  4. petalinux-package --boot --u-boot --force

  5. Final image packaging steps by platform

    1. 2023.2 for KV260, KR260, KD240:

      1. KV260: petalinux-package --wic --images-dir images/linux/ --bootfiles "ramdisk.cpio.gz.u-boot,boot.scr,Image,system.dtb,system-zynqmp-sck-kv-g-revB.dtb"

      2. KR260: petalinux-package --wic --images-dir images/linux/ --bootfiles "ramdisk.cpio.gz.u-boot,boot.scr,Image,system.dtb,system-zynqmp-sck-kr-g-revB.dtb"

      3. KD240: petalinux-package --wic --images-dir images/linux/ --bootfiles "ramdisk.cpio.gz.u-boot,boot.scr,Image,system.dtb,system-zynqmp-sck-kd-g-revA.dtb"

    2. 2022.1, 2022.2, 2023.1:

      1. KV260: petalinux-package --wic --images-dir images/linux/ --bootfiles "ramdisk.cpio.gz.u-boot,boot.scr,Image,system.dtb,system-zynqmp-sck-kv-g-revB.dtb" --disk-name "mmcblk1"

      2. KR260: petalinux-package --wic --images-dir images/linux/ --bootfiles "ramdisk.cpio.gz.u-boot,boot.scr,Image,system.dtb,system-zynqmp-sck-kr-g-revB.dtb" --disk-name "sda"

      3. KD240 ( 2023.1 only) : petalinux-package --wic --images-dir images/linux/ --bootfiles "ramdisk.cpio.gz.u-boot,boot.scr,Image,system.dtb,system-zynqmp-sck-kd-g-revA.dtb" --disk-name "sda"

    3. 2020.2 & 2021.1 BSPs (KV260 only): petalinux-package --wic --bootfiles "ramdisk.cpio.gz.u-boot boot.scr Image system.dtb"

Regenerating boot firmware from BSP

After building PetaLinux, enter below command to generate a new BOOT.BIN. Note if only developing and adjusting Linux functionality a user does NOT need to update the BOOT.BIN of the target.

petalinux-package --boot --u-boot --force

(in 2020.2 and 2021.1, use “petalinux-package --boot --u-boot --dtb images/linux/u-boot.dtb –force” instead)

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

Yocto Vs PetaLinux Support and Released Artifacts

The table below summarizes Yocto and PetaLinux support for the various platforms within Kria product family.

 

Platform

HW Configuration

Yocto Machine Config

PetaLinux BSP

Pre-builts Binaries Available

Notes:

DTs at https://github.com/Xilinx/linux-xlnx
XSA generated from Vivado board files

Available in https://github.com/Xilinx/meta-kria
User enabled build configurations

BSPs published on xilinx.com, linked here
Each contains pre-built BOOT.BIN & *.wic

Boot FW = BOOT.BIN (targets QSPI)
Linux Image = Image.wic (targets SD card)

K26C Production SOM
K26I Production SOM

K26 Production SOM + UART DT

Machine Config: k26-sm

K26 Production SOM PetaLinux BSP

In PetaLinux BSP pre-built

KV260 Starter Kit

K26 Starter Kit SOM DT + KV carrier card DT

Machine Config: k26-smk-kv

KV260 Starter Kit PetaLinux BSP

In PetaLinux BSP pre-built

KR260 Starter Kit

K26 Starter Kit SOM DT + KR carrier card DT

Machine Config: k26-smk-kr

KR260 Starter Kit PetaLinux BSP

In PetaLinux BSP pre-built

K24C Production SOM

K24C Production SOM DT + UART

Machine Config: k24c-sm

K24C Production SOM PetaLinux BSP

In PetaLinux BSP pre-built

K24I Production SOM

K24I Production SOM DT + UART

Machine Config: k24i-sm

K24I Production SOM PetaLinux BSP

In PetaLinux BSP pre-built

KD240 Starter Kit

K24 Starter Kit SOM DT + KD carrier card DT

Machine Config: k24-smk-kd

KD240 Starter Kit PetaLinux BSP

In PetaLinux BSP pre-built

K26 Starter Kit SOM

K26 Starter Kit SOM DT + KV and KR carrier card dynamic DT selection.

Machine Config: k26-smk

N/A

BOOT.BIN & *.WIC available on Kria Wiki

K24 Starter Kit SOM

K24 Starter Kit SOM DT + KD carrier card dynamic DT selection.

Machine Config: k24-smk

N/A

BOOT.BIN & *.WIC available on Kria Wiki

 

Vivado Board Support Packages

The Kria SOMs and Starter Kits are supported by Vivado with 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 via installation from the XHUB store. Please make sure to use the correct released version corresponding to your chosen BSP/tool version. Note that there are “Starter Kit” SOM board files for each Starter Kit due to their differences detailed in this earlier section.

Board

Description

Availability in tool version

Board

Description

Availability in tool version

K24C SOM

Commercial grade K24 SOM

2023.1 or later

K26C SOM

Commercial grade K26 SOM

2021.1 or later

K26I SOM

Industrial grade K26 SOM

2021.1 or later

KD240 Starter Kit

K24 based Starter Kit SOM with Drives Carrier Card connector interface

2023.1 or later

KV260 Starter Kit

K26 based Starter Kit SOM with Vision AI Carrier Card connector interface

2021.1 or later

KR260 Starter Kit

K26 based Starter Kit SOM with Robotic Carrier Card connector interface

2022.1 or later

Instruction to get from XHUB store

Board files can be installed from XHUB Stores by clicking “tools”-> “Vivado board stores” and selecting the board file to install. When using Starter Kit, make sure to install both the Starter Kit SOM (e.g. Kria KR260 Robotic Starter Kit in snapshot below) and the Carrier Card (e.g. Robotics Starter Kit carrier card in snapshot below).

 

Instructions to download from repo

Alternatively, user can manually download the board files from either board store repo or kria-vitis-platforms repo

and then in Vivado tcl console:

set_param board.repoPaths [list "<path>" “<path2>” “...”]

for an example:

set_param board.repoPaths [list "/home/user/kria-vitis-platforms/kr260/platforms/vivado/board_files/"]

SOM XDC Files

The SOM XDC files are linked as part of a set of files supporting the respective carrier card design guide. Direct links provided here:

Kria Accelerated Applications

The Xilinx Accelerate Applications are example designs pre-built and deployed to a Kria Starter Kit. These accelerated application examples or “AAs” are available are updated asynchronous to the main Xilinx tools releases, but do have dependencies on a corresponding OS. The following table provides a summary of the apps and which of the Kria Linux OS release they are available in. For latest list of all applications, their GitHub repos, and step-by-step application steps refer to the platforms landing pages linked in the table below.

Kria Platform Utilities

The Kria Starter Kits use a number of on-target utilities that may be useful in your design.

  • linux-image-update

    • Description - Linux utility for updating A/B boot firmware partitions of primary boot device.

    • Repository -

  • axi-qos

    • Description - Linux utility for on-target adjustment AXI interface quality-of-service.

    • Repository -

  • ddr-qos

    • Description - Linux utility for on-target adjustment PS subsystem DDR4 interface quality-of-service.

    • Repository -

  • platformstats

    • Description - Linux utility for collecting platform statistics including die temperature, CPU speed, power utilization, etc.

    • Repository -

  • xmutil

    • Description - Linux front-end utility focused on embedded platforms and SOM Starter Kits.

    • Repository -

  • image-recovery (Boot Image Recovery Tool)

    • Description - Stand-alone application using web-server for boot firmware recovery.

    • Repository -

  • image-selector

    • Description - Stand-alone application used to implement A/B firmware selection at MPSoC boot.

    • Repository -

  • kria-dashboard

    • Decryption - GUI based dashboard displaying information from platformstats, and basic application downloading, loading and unloading cockpit

    • Repository -

  • resize-part

    • Description: expand partition tool in default BSP to expose full SD card space for Linux partition

    • Repository -

PL & HW Repositories

  • Pre-built application bitstreams

    • Description: Pre-built bitstreams (*.bit) and corresponding device tree overlays (*.dtsi)

    • Repository -

  • Kria Vitis platforms

    • Description: Vitis platforms for Kria Starter Kits (SOM only meaning no CC peripherals implemented), KR260 Starter Kit, and KV260 Starter Kit

    • Repository -

Custom & Production SOM Design Guidance

Hardware

The Kria SOM Carrier Card Design Guide in UG1091 provides guidance on design of custom carrier card design for both K24 and K26 SOM based designs.

A Kria carrier card schematic checklist has also been created to help custom carrier card hardware development in XTP748.

K26 Devices

The following table captures the Kria K26 SOM memory device part numbers for reference in custom HW and SW designs.

Device

Part Number

Device

Part Number

QSPI Memory

Micron - MT25QU512ABB8E12

eMMC Memory (N/A Starter Kits)

Micron - MTFC16GAPALBH

DDR4 Memory

Micron - MT40A512M16LY-062E

TPM2.0

Infineon - SLM9670

K24 Devices

The following table captures the Kria K24 SOM memory device part numbers for reference in custom HW and SW designs.

Device

Part Number

Device

Part Number

QSPI Memory

Micron - MT25QU512ABB8E12

eMMC Memory (N/A Starter Kits)

Micron - MTFC32GAZAQHD

LPDDR4 Memory

Micron - MT53E512M32D1ZW-046

TPM2.0

Infineon - SLM9670

K26 Qualification Data

The below table shows FIT and MTBF at 40°C under 50% Electrical Load

 For obtaining more details of the reliability stress tests (test conditions & results) and the Reliability Prediction Model, please request access to the Kria SOM Qualification Report Lounge containing RPT264 - Kria K26 SOM Qualification Report

Firmware

This section captures guidance on FW configurations that a Kria SOM developer should be aware of when creating custom firmware and carrier card designs.

MPSoC PMU FW

The MPSoC PMU is used to implement the platform interactions with the SOM power management ICs. Given this coupling between the SOM HW design and PMU FW there are a few PMU controlled MIO signals that require special design considerations. For details on MPSoC FW implementation see the PMU Firmware Wiki.

  • PMU GPI (MIO31): The MIO31 pin is an CC optional PMU input pin that can be used for customer functionality such as an external platform shutdown request (e.g. carrier card push-button). The pin is mapped in the same manner in both K26 and K24 SOMs.

  • PMU GPO (MIO35): The MIO35 pin is an CC optional PMU output pin that can be used for customer functionality such as an external platform such as an external POR_B reset or an external watchdog interface. The pin is mapped in the same manner in both K26 and K24 SOMs. The Kria carrier cards do have different mappings of this pin to CC based functionality.

    • KD240 - Maps the pin to allow the option for PMU to command a POR_B reset of the SOM during reboot processes. This will also cause a full reset of the TPM device of the SOM.

    • KR260 & KV260 - Maps the pin to an external watchdog. The corresponding PMU optional runtime feature is implemented using the PMU FW build-time flag ENABLE_RUNTIME_EXTWDT.

  • SOM_PWR_KILL (MIO34): The PMU controls the overall SOM power enable signal, which is used during shutdown of the platform to disable the power supplies. The PMU GPO2 signal is used to control to physical pin MIO34, which is connected to the SOM PS_PWR_EN signal. The SOM design has a 10kohm pull-up resistor on the signal, but as part of the boot process and the MPSoC dynamic MIO pin selection a developer needs to ensure that they set PMU build time configuration CONNECT_PMU_GPO_2_VAL= 0 . Without this setting there is potential of a glitch on the PS_PWR_EN signal. Details are captured at this Xilinx AR-71952. This pin is used in the same manner in both K26 and K24 SOMs and is not mapped to the SOM/CC connector.

  • PL_PWR_EN (MIO33): The PL power domain of the Kria SOMs can be shutdown independently of the PS (FPD + LPD) power domain. In K24 this is handled with the SOM reserved PMU GPO pin MIO33. To use the feature in custom designs the user should enable the PMU GPO1 pin in their Vivado project. In K26 the PMU cannot directly control the PL power domain and the PL power domain can only be controlled via a Linux owned I2C interface. The PL power domain will be automatically powered off with the SOM_PWR_KILL.

  • Runtime Temperature OT: The PMU has an optional feature of implementing an over-temperature monitoring, using the MPSoC SysMon as the temperature feedback. This is implemented using the PMU FW build-time flag ENABLE_RUNTIME_OVERTEMP.

Linux

This section captures guidance on Linux SW configurations that a Kria SOM developer should be aware of when creating their production Linux images.

Fan Control

Linux fan control library and its use in the ZU+ target requires the following Linux kernel configurations to be enabled:

  • CONFIG_SENSORS_PWM_FAN=y

  • CONFIG_PWM=y

  • CONFIG_PWM_CADENCE=y

The PS subsystem device tree must include the desired TTC node and that node must include the "pwm-cells" property.

Known Issues & Limitations

The following section outlines the known issues and limitations for the Kria platforms.

Ubuntu

Issue Description

Workaround