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 amd.com.
Table of Contents
- 1 Kria Platforms Overview
- 1.1 Production SOMs
- 1.2 Starter Kits
- 1.2.1 KV260 Starter Kit
- 1.2.2 KR260 Starter Kit
- 1.2.3 KD240 Starter Kit
- 1.3 Kria Product Summary
- 2 Getting Started
- 3 Developer Resources
- 3.1 K26 Documentation
- 3.2 K24 Documentation
- 3.3 Kria Shared Documentation
- 3.4 Starter Kit Pre-Built Software
- 3.4.1 K26 Starter Kit Linux
- 3.4.1.1 Ubuntu Desktop LTS
- 3.4.1.2 K26 Embedded Linux (Yocto)
- 3.4.1.3 K26 PetaLinux
- 3.4.2 K26 Boot Firmware Updates
- 3.4.3 K24 Starter Kit Linux
- 3.4.3.1 Ubuntu Server LTS
- 3.4.3.2 K24 Embedded Linux (Yocto)
- 3.4.4 K24 Boot Firmware Updates (Yocto)
- 3.4.1 K26 Starter Kit Linux
- 3.5 On-Target Utilities
- 3.6 Boot FW Update Process
- 3.7 Boot FW QSPI Memory Map
- 3.8 Bitstream Management
- 3.9 Fan Control
- 3.10 PetaLinux & Ubuntu LTS
- 4 AMD-Xilinx Tools Support
- 4.1 Yocto Build instructions
- 4.2 PetaLinux Board Support Packages
- 4.2.1 K26 Platforms
- 4.2.2 K24 Platforms
- 4.2.3 PetaLinux Tools Release Notes
- 4.2.3.1 PetaLinux 2023.1 Release
- 4.2.3.2 PetaLinux 2022.1 Release
- 4.2.4 PetaLinux Build instructions
- 4.2.5 Regenerating boot firmware from BSP
- 4.3 Yocto Vs PetaLinux Support and Released Artifacts
- 4.4 Vivado Board Support Packages
- 4.4.2 SOM XDC Files
- 5 Kria Accelerated Applications
- 6 Custom & Production SOM Design Guidance
- 6.1 Hardware
- 6.1.1 K26 Devices
- 6.1.2 K24 Devices
- 6.1.3 K26 Qualification Data
- 6.2 Firmware
- 6.2.1 MPSoC PMU FW
- 6.3 Linux
- 6.3.1 Fan Control
- 6.1 Hardware
- 7 Known Issues & Limitations
- 7.1 All Starter Kits
- 7.2 Ubuntu
- 7.3 K24 & KD240 Starter Kit
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 |
---|---|---|---|---|
Ubuntu Desktop 22.04 LTS | Kria K26 Starter Kit Ubuntu Desktop 22.04 image | KV260, KR260 | 2022.1 K26 Boot FW Update or later | |
Ubuntu Desktop 20.04 LTS | Kria Starter Kit Ubuntu Desktop 20.04 image | KV260 | 2021.1 K26 Boot FW Update 2 or later |
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 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 |
---|---|---|---|---|
Kria K26 Starter Kit embedded Linux 2023.2 | Kria K26 Starter Kit embedded Linux | KV260, KR260 | 01.02 K26 Boot FW Update or later | |
Kria K26 Starter Kit embedded Linux 2023.1 | Kria K26 Starter Kit embedded Linux | KV260, KR260 | 2023.1 K26 Boot FW Update or later |
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 |
---|---|---|---|---|
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 | |
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 | |
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 |
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
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 |
---|---|---|---|---|
Ubuntu Server 22.04 LTS | Kria K24 Starter Kit Ubuntu Server 22.04 image | KD240 | 2023.1 K24 Boot FW Update or later |
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 |
---|---|---|---|---|
Kria K24 Starter Kit embedded Linux 2023.2 | Kria K24 Starter Kit embedded Linux | KD240 | 01.02 K24 Boot FW Update or later | |
Kria K24 Starter Kit embedded Linux 2023.1 | Kria K24 Starter Kit embedded Linux | KD240 | 2023.1 K24 Boot FW Update or later |
Known issue:
RS485 Driver is not integrated in PetaLinux 2023.2, refer to AR000035701 for more information.
K24 Boot Firmware Updates (Yocto)
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 |
---|---|
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. NOTE: The PS APB-DRP access to PL SysMon access is assumed by this utility. If PL SysMon access is not available the PL Temperature will read -280C. See this section of UG1085 for details on configurations that change PS to PL SysMon access. |
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
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 |
---|---|---|---|
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 |
---|---|---|
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 |
---|---|---|
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. | 2024.1 - Xilinx download 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. | 2024.1 - Xilinx download 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. | 2024.1 - Xilinx download 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 |
---|---|---|
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. | 2024.1 - AMD download 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. | 2024.1 - AMD download 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. | 2024.1 - AMD download 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.
petalinux-create -t project -s <kria_starterkit>.bsp
cd <kria_starter_kit_petalinux_folder>
petalinux-build
petalinux-package --boot --u-boot --force
Final image packaging steps by platform
2023.2 for KV260, KR260, KD240:
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"
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"
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"
2022.1, 2022.2, 2023.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"
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"
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"
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 | Available in https://github.com/Xilinx/meta-kria | BSPs published on xilinx.com, linked here | Boot FW = BOOT.BIN (targets QSPI) |
K26C Production SOM | K26 Production SOM + UART DT | Machine Config: k26-sm | In PetaLinux BSP pre-built | |
KV260 Starter Kit | K26 Starter Kit SOM DT + KV carrier card DT | Machine Config: k26-smk-kv | In PetaLinux BSP pre-built | |
KR260 Starter Kit | K26 Starter Kit SOM DT + KR carrier card DT | Machine Config: k26-smk-kr | In PetaLinux BSP pre-built | |
K24C Production SOM | K24C Production SOM DT + UART | Machine Config: k24c-sm | In PetaLinux BSP pre-built | |
K24I Production SOM | K24I Production SOM DT + UART | Machine Config: k24i-sm | In PetaLinux BSP pre-built | |
KD240 Starter Kit | K24 Starter Kit SOM DT + KD carrier card DT | Machine Config: k24-smk-kd | 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 | |
K24 Starter Kit SOM | K24 Starter Kit SOM DT + KD carrier card dynamic DT selection. | Machine Config: k24-smk | N/A |
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 |
---|---|---|
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.
Starter Kit Linux Version | |||
---|---|---|---|
Kria Starter Kit Linux 2021.1 (PetaLinux) | N/A | N/A | |
Kria Starter Kit Linux 2022.1 (PetaLinux) | None | None | N/A |
Kria Ubuntu 20.04 | N/A | N/A | |
Kria Ubuntu 22.04 | SmartCam, AI-Box ReID, Defect-Detect, NLP-SmartVision, AI-Box Distributed ReID, Built-In Self-Test | ROS TSN Pub/Sub, MV Camera, ROS2 Perception Node, Precision Time Management, Built-In Self-Test |
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 |
---|---|
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 |
---|---|
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. . The PMU GPIO connection to MIOs can be found and enabled in Kria SOM’s Vivado designs in the Processor Subsystem configuration – “I/O Configuration” tab, under “Low Speed” -> “I/O Peripherals” -> “PMU”.
PMU GPI (MIO31): The MIO31 pin is mapped to PMU GPI 5 and it 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. The corresponding PMU optional runtime feature is implemented using the PMU FW build-time PMU_MIO_INPUT_PIN in PMUFW.
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 to PMU GPO3. 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. The corresponding flag in PMU FW is EXT_RESET_GPO_PIN.
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 corresponding macro in PMUFW is BOARD_SHUTDOWN_PIN. 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. There is no macro for this pin in PMUFW, however, it is initialized in psu_init with register name
IOU_SLCR_MIO_PIN_33_OFFSET
.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.
All Starter Kits
Issue Description | Workaround |
---|---|
Starter Kit IPMI FRU records may throw a checksum error like shown below: FRU Error: multirecord area checksum invalid
ipmi_fru_next: multirecord area checksum invalid
ipmi-fru returned error code 1 | Some Starter Kits had an incorrect byte set at time of manufacturing within the EEPOM IPMI record, and the checks are enforced more strictly by the later IPMI upstream library (ipmi-fru) used by xmutil. In order to use “xmutil boardid” to read the records include the “--ignore-errors” flag as shown below. |
Ubuntu
Issue Description | Workaround |
---|---|
USB Suspend Wakeup - The Kria Ubuntu image USB wake following a suspend cycle ('systemctl suspend') is not enabled by default. This will cause the system after a suspend to not be able to be woken up by a USB keyboard interaction. | User must enable the USB wake feature if they want to use it. The following steps provide guidance on how to enable. The steps are written generically since the USB HW structure is different between the Kria Starter Kits. Note these commands need to be run as root . This will produce a list of the USB wakes for that specific platform that can be enabled. The following commands are an example and will need to be modified per the specific Starter Kit by using the output of the above “find” command. |
K24 & KD240 Starter Kit
Issue Description | Workaround |
---|---|
KD240 Vitis Stand-Alone BSP Selection - The 2023.1 Vitis tool will auto-select UART0 as the serial console for all projects. The KD240 MIO mapping requires that the serial console be mapped to UART1 as UART0 is used for the RS485 physical interface. | When users import the KD240 Vivado board file to the Vitis tool the users must manually configure the console UART to be UART1 instead of UART0. |
KD240 CAN not functional - Deployed production FW did not enable the CAN. | User needs to apply the K24 Boot FW 1.01 or later linked above. |
KD240 RS485 not functional - Two issues impacting RS485 functionality.
RS485 driver is also not integrated in PetaLinux 2023.2 due to up-streaming efforts. | Boot FW - User needs to apply the K24 Boot FW 1.01 or later linked above. This applies to all OSes. Ubuntu - No workaround for Ubuntu kd05 at present. The non-certified Ubuntu 22.04 kd03 has RS485 driver. Expectation is for RS485 upstream driver to be picked up in next Ubuntu SRU. PetaLinux, - Refer to AR000035701 for workaround. |
PL Pins not mappable by user application - The KD240 has two pins that are not mappable as user I/O as they are VRP pins. | None. The VRP I/O are not intended for use by customer application. See AR-000034463 for details. |
2023.1 KD240 PetaLinux BSP no default bitstream - The KD240 2023.1 PetaLinux BSP does not include a default bitstream which will result in the “xmutil xlnx_platformstats” PL temperature to read -280 and “xmutil listapps” to report an empty set of bitstreams. | User can manually copy in the K24 Starter Kit default firmware from the Kria Base FW repo. |
KD240 & K24C Vivado LPDDR4 configuration - There is a Vivado issue in setting LPDDR4 configuration correctly for the KD240 Starter Kit and K24 C-grade production SOM. The issue causes there to be a double-termination of the DDR lines as the HW includes the discrete termination required for K24I, and the K24C and KD240 are built with the ECC device not populated. | To work around the issue in Vivado, after instantiating PS and loading board pre-sets , set PSU__DDRC__ENABLE_LP4_HAS_ECC_COMP to 1 in tcl console. If using TCL script based build, user can copy and paste 4 lines at the end of the build script, before building the design. set_property CONFIG. PSU__DDRC__ENABLE_LP4_HAS_ECC_COMP {1} [get_bd_cells <PS instance name>] generate_target all [get_files <filename>.bd] |
© Copyright 2019 - 2022 Xilinx Inc. Privacy Policy