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 is compliant with SystemReady Devicetree band v3.1 requirements.

The following waivers are applied to the Architecture Compliance Suite (ACS) results:

  • Devicetree validation missing schema errors, due to the ACS validating the Devicetree against a fixed version (v6.18) of Linux which predates the schemas being upstreamed.

  • Ping errors, due to the ping protocol being an accepted limitation of the Fixed Virtual Platform.

  • UpdateCapsule conformance error, due to U-Boot not checking all cases of invalid input.

  • SimpleTextInputEx protocol warning, due to U-Boot SetState() implementation limitations.

  • HII Database protocol conformance errors, functional error, and skipped tests.

  • QueryVariableInfo conformance error, due to U-Boot not checking all cases of invalid input.

The support for running the Linux distribution installations and 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.

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. RD-Aspen is not currently BBSR-compliant, but has a long-term goal to be. 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.1 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 specification requires that at least three Linux distributions must be able to install and boot using the UEFI boot flow. Virtio block 1 (vdb) is used for the source storage and virtio block 0 (vda) is used for the destination storage.

This Software Stack currently supports the following three Linux distributions:

  • Debian v13.0.0

  • Rocky Linux v10.1

  • openSUSE v16.0

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 all three Linux distribution unattended installations and ACS tests use cases. This requires that all three Linux distribution unattended installations are 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 Rocky Linux).