|
2 months ago | |
---|---|---|
.. | ||
classes | 10 months ago | |
conf | 7 months ago | |
lib | 4 months ago | |
recipes-bsp | 1 year ago | |
recipes-devtools | 1 year ago | |
recipes-test | 2 months ago | |
README.md | 10 months ago |
This layer contains classes and recipes for building and running Arm SystemReady validation on the supported machines.
Information regarding contributing, reporting bugs, etc can be found in the top-level meta-arm README.md file.
This layer provides support for the following on supported machines:
This layer is designed to work alongside with a BSP layer. For example, the
meta-arm-bsp
layer in the top-level meta-arm defines the
fvp-base
machine, which can be used with the recipes provided by this
layer to build the firmware, run the Arm SystemReady IR ACS tests, and
run Linux distributions installation. Note that users can use this layer
with their BSP layer to perform the same build and tests.
The arm-systemready-firmware.bb
recipe is to build the firmware. It requires
the ARM_SYSTEMREADY_FIRMWARE
variable set at the MACHINE configuration level
to list the build dependencies.
The recipe to run the ACS tests fetches and deploys the prebuilt ACS test suite
disk image, and generates the necessary metadata to support executing the test
suite using the bitbake testimage
task. A test case SystemReadyACSTest
is
introduced in lib/oeqa/runtime/cases
to monitor the ACS tests output from the
bitbake testimage
task. The ARM_SYSTEMREADY_ACS_CONSOLE
variable must be set
at the MACHINE configuration level for this test case.
There are two additional recipes for generating the Arm SystemReady ACS tests
report files through the use of the EDK2 SCT Results Parser and the
Arm SystemReady scripts. These packages are installed in the
edk2-test-parser-native.bb
and arm-systemready-scripts-native.bb
recipes
respectively.
The class arm-systemready-acs.bbclass
implements the common logic to deploy
the Arm SystemReady ACS prebuilt image and set up the testimage
environment.
This class also contains a testimage
"postfunc"
called acs_logs_handle
which generates report files and analyzes the test results.
The test result analysis is performed by first using the EDK2 SCT Results Parser to create a results.md file, then running the Arm SystemReady result check script to check the contents of the result partition as well as the console log. The result check will fail if any of the expected files or directories are missing, or if any file's contents do not pass its file-specific checks.
The ACS test results which are checked by the script can be viewed in
${TMPDIR}/work/aarch64-oe-linux/arm-systemready-ir-acs/2.0.0-r0/testimage/
. If
the check fails, the bitbake testimage
task will fail.
Recipes for testing the installation of Linux distributions are provided under
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.
Arm SystemReady has four bands:
Currently, this layer only supports
Arm SystemReady IR ACS version v23.03_2.0.0, which is verified on the
fvp-base
machine.
To build the firmware for Arm SystemReady on the supported machines (take the
fvp-base
machine as an example):
ARM_FVP_EULA_ACCEPT=1 kas build kas/fvp-base.yml:kas/arm-systemready-firmware.yml
To run the Arm SystemReady ACS tests on the supported machines (take running
Arm SystemReady IR on the fvp-base
machine as an example):
ARM_FVP_EULA_ACCEPT=1 kas build kas/fvp-base.yml:kas/arm-systemready-ir-acs.yml
To run the Linux distributions installation on the supported machines (take
installing openSUSE on the fvp-base
machine as an example):
ARM_FVP_EULA_ACCEPT=1 kas build kas/fvp-base.yml:kas/arm-systemready-linux-distros-opensuse.yml
kas shell \
kas/fvp-base.yml:kas/arm-systemready-linux-distros-opensuse.yml \
-c "../scripts/runfvp --verbose --console"
Currently, this layer only supports the Arm SystemReady IR band running on the
fvp-base
machine defined in the meta-arm-bsp
layer. The supported Arm
SystemReady IR implementation can be reused on other machines. Furthermore, the
current implementation can be further extended to support SR, ES and LS bands.
To reuse the supported Arm SystemReady IR on other machines, you will need to:
ARM_SYSTEMREADY_FIRMWARE
variable at the MACHINE configuration
level to list the build dependencies. The configuration file of the
fvp-base
machine can be used as a reference.ARM_SYSTEMREADY_ACS_CONSOLE
variable at the MACHINE configuration
level for running the ACS tests in the bitbake testimage
task. Also refer
to the configuration file of the fvp-base
machine.To extend support for other bands, you will need to:
arm-systemready-acs.bbclass
. You can use
arm-systemready-ir-acs.bb
as a reference.testimage
test case for the newly added band. Refer to
arm_systemready_ir_acs.py
.Note: When reusing and extending, the current classes and libs may need to be modified or refactored as necessary.