Arm SystemReady Devicetree

Arm SystemReady is a compliance program based on a set of hardware and firmware standards that enable interoperability with generic off-the-shelf operating systems and hypervisors.

The Arm SystemReady program enables software to run seamlessly across compliant Arm-based systems, helping developers and hardware partners build once and deploy widely. The compliance requirements are described in Arm SystemReady Compliance SRS.

Arm SystemReady is divided into two bands, each with a combination of specs available to suit the different devices and markets. Arm SystemReady Devicetree is one of these bands.

Arm SystemReady Devicetree compliant platforms implement a minimum set of hardware and firmware features that an operating system can depend on to deploy the operating system image. Hence, Arm SystemReady Devicetree ensures that the deployment and maintenance of standard firmware interfaces and targets both custom (Yocto, OpenWRT, Buildroot) and pre-built (Debian, Fedora, SUSE) Linux distributions.

For more information regarding requirements and recommendations for systems to comply with SystemReady Devicetree band, refer to Arm SystemReady Compliance SRS

Support in Arm Automotive Solutions

This Reference Software Stack aims to be aligned with Arm SystemReady Devicetree ACS version 3.1.0 by implementing its requirements.

The support for running the Architectural Compliance Tests (ACS) is included in the Reference Software Stack. For more details on how to run it, see the Arm SystemReady Devicetree Architecture Compliance Suite (ACS) tests section of this documentation.

Identified non-alignments on RD-Aspen

The Reference Software Stack is currently known to have the following non-alignments:

Following non-alignments are required to be addressed for SystemReady compliance:

  • Reference Software Stack

    • RD-Aspen does not support Capsule Updates.

    • RD-Aspen does not support verifying signed db/dbx update, which will lead to “SecureBoot - Verify signed db/dbx update” test failures in BBSR.

  • Devicetree

    • Missing schemas for components which have not yet been or are not appropriate to be upstreamed (arm,rdaspen, arm,cortex-a720ae, arm,dsu-l3-cache).

    • MHUv3 is not enabled in the ACS kernel configuration.

  • Model - FVP

    • Ping is a limitation of the FVP

  • Distros

    • The SystemReady Devicetree specification requires that three actively supported distributions are installed and tested, however only Debian distro is actively supported.

    • For the Debian Distro following warning is expected:

      EFI stub: ERROR: efi_get_random_bytes() failed (0x8000000000000007)
      

Following non-alignments are recommended to be addressed for SystemReady compliance:

  • Reference Software Stack

    • BBSR v1.3 recommends that the default secure boot variables (PKDefault, KEKDefault, dbDefault, dbxDefault) are implemented. However this is not implemented and leads to test failures.

    • BBSR v1.3 recommends to validate that the MOR Variable is created by the platform in accordance with TCG Spec. However this is not implemented by U-Boot and leads to test failures.

Arm SystemReady Devicetree tests

ACS tests

The Arm SystemReady Architecture Compliance Suite (ACS) is a set of tests that ensure architectural compliance across different implementations and variants of the architecture. The ACS is delivered as a prebuilt release image. The image is a bootable live OS image containing a collection of test suites.

The ACS includes an optional Base Boot Security Requirements (BBSR) test. This Reference Software Stack supports running the BBSR suite to test authenticated variables, UEFI Secure Boot variables, and UEFI Secure Boot image loading.

The yocto/meta-arm-systemready-devicetree/classes/arm-systemready-acs.bbclass class contains the common logic to deploy the Arm SystemReady Devicetree ACS version 3.1.0 pre-built image and set up the testimage environment. It also contains a testimage “postfunc” called acs_logs_handle which generates report files and checks the results.

The script yocto/meta-arm-systemready-devicetree/lib/oeqa/runtime/cases/arm_systemready_devicetree_acs.py monitors the ACS tests output from the bitbake testimage task.

To run the tests, see Arm SystemReady Devicetree Architecture Compliance Suite (ACS) tests.

Linux Distributions Installation Tests

The Arm SystemReady Devicetree requires that at least three Linux distributions must be able to install and boot using the UEFI boot flow. This Software Stack currently supports three Linux distributions:

  • Debian v12.8.0

  • Fedora v39.1.5

  • openSUSE v15.5

For the ACS tests use case to pass, these distributions must be tested and the results of such tests loaded onto the ACS prebuilt release image before the ACS tests are run. In the Reference Software Stack, this process is automated for the Debian unattended installation and ACS tests use cases. This requires that the Debian unattended installation isn’t run before the ACS tests.

Recipes for testing the installation of Linux distributions are provided under meta-arm-systemready/recipes-test/arm-systemready-linux-distros. These recipes help to download the installation CD for the Linux distribution and generate an empty disk as the target disk for the installation.

See meta-arm-systemready/README.md for more details. To run the Debian unattended installation, see Debian. To run the ACS tests, see Linux distribution installation (Debian, openSUSE and Fedora).