Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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.

...

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

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 .

Code Block
languagebash
echo 8 > /proc/sys/kernel/printk
echo 0 > /sys/module/printk/parameters/console_suspend
find /sys/ | grep /power/wakeup\$ | grep usb

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.

Code Block
languagebash
echo enabled > /sys/devices/platform/axi/ff9d0000.usb/fe200000.usb/xhci-hcd.0.auto/usb1/power/wakeup
echo enabled > /sys/devices/platform/axi/ff9d0000.usb/fe200000.usb/xhci-hcd.0.auto/usb1/1-1/power/wakeup
echo enabled > /sys/devices/platform/axi/ff9d0000.usb/fe200000.usb/xhci-hcd.0.auto/usb1/1-1/1-1.1/power/wakeup
echo enabled > /sys/devices/platform/axi/ff9d0000.usb/fe200000.usb/xhci-hcd.0.auto/power/wakeup
echo enabled > /sys/devices/platform/axi/ff9d0000.usb/fe200000.usb/xhci-hcd.0.auto/usb2/2-1/power/wakeup
echo enabled > /sys/devices/platform/axi/ff9d0000.usb/fe200000.usb/xhci-hcd.0.auto/usb2/power/wakeup

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.

  1. Initial KD240 production FW did not have RS485 enabled.

  2. MPSoC UART RS485 Linux driver is not present in Ubuntu 22.04 kd05 as it is was in-process of being up-streamed.

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]