.. # SPDX-FileCopyrightText: Copyright 2025 Arm Limited and/or its # affiliates # # SPDX-License-Identifier: MIT .. _rd-aspen_design_systemready_devicetree: ########################## Arm SystemReady Devicetree ########################## :link_subs:`common: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 :link_subs:`common: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 :link_subs:`common:arm-systemready-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. :link_subs:`rd-aspen: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 :link_subs:`common:arm-systemready-srs` *********************************** Support in Arm Automotive Solutions *********************************** This Reference Software Stack aims to be aligned with Arm SystemReady Devicetree ACS version |SystemReady Devicetree ACS version| 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 :ref:`rd-aspen_user_guide_reproduce_sr_devicetree_acs` section of this documentation. .. _rd-aspen_boot_process_systemready-non_alignments: ************************************* 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: .. code-block:: text 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 ******************************** .. _rd-aspen_systemready_devicetree_acs_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 :link_subs:`base-boot-security-requirements` 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 :repo:`yocto/meta-arm-systemready-devicetree/classes/arm-systemready-acs.bbclass` class contains the common logic to deploy the Arm SystemReady Devicetree ACS version |SystemReady Devicetree ACS version| 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 :repo:`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 :ref:`rd-aspen_user_guide_reproduce_sr_devicetree_acs`. .. _systemready_devicetree_linux_install: 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-repo:`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-repo:`meta-arm-systemready/README.md` for more details. To run the Debian unattended installation, see :ref:`user_guide_reproduce_arm_systemready_devicetree_debian`. To run the ACS tests, see :ref:`user_guide_reproduce_arm_systemready_devicetree_linux`.