1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-05-29 12:10:15 +00:00
Commit Graph

275 Commits

Author SHA1 Message Date
Jon Mason 6182cec88c arm/qemuarm64-secureboot: get edk2 and trusted-firmware a working
Do the changes necessary to get qemuarm64-secureboot to work with edk2
firmware, and add it to CI.  The CI changes needed to make it dynamic
based on edk2.yml or u-boot.yml required moving the relevant parts into
inc files.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2026-03-11 09:00:05 -04:00
Jon Mason 7f7b065c61 CI/uefi-secureboot: remove duplicate entry
Signed-off-by: Jon Mason <jon.mason@arm.com>
2026-03-11 09:00:05 -04:00
Gabor Toth 315d4e139e arm/trusted-services: Enable tpm2-tool self tests
Enable execution of the tpm2-tools self-test against the Trusted
Services fTPM SP. The test is integrated into OEQA but is disabled by
default due to its long execution time (over three hours on fvp-base)
and inconsistent results. While individual tests pass when run in
isolation, running the full suite results in failures. Despite this,
it remains the most comprehensive verification currently available.
Testing can be enabled by setting the RUN_TPM2_TESTS variable.

Signed-off-by: Gabor Toth <gabor.toth2@arm.com>
Signed-off-by: Gyorgy Szing <gyorgy.szint@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2026-03-04 04:00:05 -05:00
Jon Mason dcc34c19fe CI: add LTS versions for testing
Add a CI test for the LTS versions of recipes currently supported.
Use fvp-base, since that provides good coverage and is being used for
the latest version testing.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2026-03-02 12:00:07 -05:00
Ross Burton 3c92c9950f CI: don't testimage core-image-initramfs-boot
A recent change to image dependencies in oe-core master[1] means that
TESTIMAGE_AUTO tries to test more images than before.

Explicitly reset TESTIMAGE_AUTO for core-image-initramfs-boot so that it
doesn't try to testimage an initramfs.

[1] oe-core b75c21fb950 ("image_types_wic.bbclass: add depend on initramfs")

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2026-02-27 09:00:06 -05:00
Jon Mason 1aed815677 CI/musca-b1: use LTS tf-m
We currently don't have coverage for trusted-firmware-m 2.1.x, which is
the LTS.  Since musca-b1 and musca-s1 are essentially the same, use b1
for the LTS coverage.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2026-02-23 09:00:04 -05:00
Jon Mason 1e3d3f8b38 arm-bsp/sgi575: change target image for CI
For some reason, sgi575 won't boot to shell with
core-image-full-cmdline, but it will with other images.  Since we're
going to drop this machine soon (as it has been EOL'ed), modify the
image type for CI to core-image-base (As that one appears to boot
faster).

Signed-off-by: Jon Mason <jon.mason@arm.com>
2026-02-23 09:00:04 -05:00
Ross Burton ad92b47668 Remove meta-arm-systemready
meta-arm-systemready was intended to allow people writing BSPs to run
the SystemReady Architecture Compliance Suite[1] within the Yocto build
environment. However, whilst this seems like a good idea, there are
several problems:

- This layer only supports the IR band and v2 of the ACS. The ACS is now
  at v3 and the bands altered, so there is no value in running obsolete
  tests.

- Execution of the tests takes a long time, we have integration to run
  the tests on a virtual fvp-base machine but execution takes many tens
  of hours (our CI times out after 12, on a high-performance worker).
  Running the tests in CI, and in particular inside BitBake, isn't
  obviously the right thing to do.

- Execution on the tests on real hardware is not trivial, as testimage
  has virtual targets as a primary usecase. It is unclear if anyone has
  managed to use this layer on physical hardware.

Because of these issues, remove the layer. There are better integration
points for automated ACS testing, and this integration is obsolete.

[1] https://github.com/ARM-software/arm-systemready

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2026-02-12 08:00:04 -05:00
Jon Mason 98b105ce06 arm/fvps: reorganize CI into segments
The downloads page for FVPs is broken down into sub-pages for each
"Ecosystem".  Organize this file to match that.  Also, rename fvp-v3-r1
to "rd" to make more obvious what this refers to.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2026-02-11 11:00:04 -05:00
Jon Mason d8c879b9e3 arm/corstone1000-a320: split off FVP into a unique file and add to CI
The corstone1000-a320 FVP is a unique download and should be treated as
such in our CI.  Split the relevant parts off, add it to the fvps.yml
file, workaround the staticdev and useless-rpath errors that were
present in the FVP tarball, and the correct depends in the machine
config file.

Also, add this machine to the CI so that any issues can be found with
this unique configuration.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2026-02-11 11:00:04 -05:00
Jon Mason 832ce9bca3 CI/fvp: made the default target core-image-full-cmdline
No need to have the full graphics stack for FVP images.  Slim the image
down by default.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2026-02-11 11:00:04 -05:00
Ross Burton f36c9add46 Revert "CI: work around xen failures until fixed upstream"
The kernel upgrades are now in oe-core, so we can drop this workaround.

This reverts commit 341a0fd976.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2026-01-15 17:00:04 -05:00
Ross Burton 341a0fd976 CI: work around xen failures until fixed upstream
In master, xen images fail to build as the xt-masquerade module is not
built by the kernel. This has been fixed in the linux-yocto 6.18.3
upgrade but that is not yet merged.

Until it is merged, we can temporarily update the kmeta in our CI.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2026-01-12 14:00:05 -05:00
Jon Mason 1baab23041 arm-bsp: add git recipe versions
Add git recipe versions that track the latest git versions of u-boot and
the various OP-TEE recipes.  This, in combination with the previously
existing trusted firmware a and m recipes, allows for using the latest
code in platform development and testing (as part of CI).

For CI usage, a KAS yml file has been created to allow for those recipes
to be used, and an entry for fvp-base has been added to the gitlab CI
yml file.

NOTE: the wildcard for corstone1000 u-boot PREFERRED_VERSION was causing
it to pick-up the newest version (and failing to apply the patches).
The wildcard is unnecessary, since it is using a layer supplied package.
So, remove it and everyone is happy.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-12-10 12:00:04 -05:00
Jon Mason 609c54d364 CI: remove meta-clang
Now that clang is in core, we don't need to use meta-clang anymore.
Also, use PREFERRED_TOOLCHAIN_TARGET to specify the toolchain to use.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-10-20 12:00:05 -04:00
Ross Burton 2b44924959 CI: use bitbake+oe-core instead of poky
Moving forwards, it's expected that the poky repository will no longer be
updated as the integration of bitbake-setup means that users are
encouraged to use bitbake+oe-core separately instead.

We also need to fetch meta-yocto as our CI is currently explicitly based
on the poky distribution.

This is effectively a no-op change, as poky is simply these component
repositories glued into a single repository for convenience.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-10-09 15:05:45 -04:00
Jon Mason feb539589c ci/selftest: remove rm_work
oe-selftest is now logging having rm_work enabled as an error, which is
causing the test to fail.  Remove this from the selftest.yml file, and
everything works as before.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-09-11 09:00:04 -04:00
Ross Burton 56f84d176c CI: no need to configure coresight explicitly
The oe-core perf recipe will now enable coresight support automatically
if the coresight MACHINE_FEATURE is set[1], so we can remove the manual
configuration in our CI and let the machines enable it where appropriate.

[1] oe-core c455bd03910 ("perf: enable coresight if enabled in MACHINE_FEATURES")

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-09-10 06:00:06 -04:00
Ross Burton 7d60c67ad7 CI: align with Poky
Originally we customised the CI build for speed, by switching to ipkg
instead of rpm for the packages and disabling graphical output support
in qemu-system-native.

These are admirable goals, but more admirable is sharing sstate and
people may wish to use the output of this CI without having to make the
same alterations.

Drop these two changes so that our configuration matches poky. I've
verified that with this change, a build of core-image-sato for qemuarm64
can be built almost entirely from the autobuilder's sstate[1].

[1] gator-daemon, opencsd, and perf are built as these are not built on
    the AB in this configuration.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-09-04 13:20:49 -04:00
Ross Burton 5fae879140 CI: move network test skips to fvp.yml
testimage.yml was skipping the opkg tests, but we also need to skip the
dnf tests for when PACKAGE_CLASSES="package_rpm".

These skips are FVP-specific as they are due to the wrong IP being used
by the test suite. This should be fixed in the FVP test harness, but
for now move the exclusions into fvp.yml so they're isolated.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-09-04 13:20:49 -04:00
Csaba Szilágyi 1e37608374 arm/hafnium: add hafnium to qemuarm64-secureboot target
Signed-off-by: Csaba Szilágyi <csaba.szilagyi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-07-30 04:00:05 -04:00
Ross Burton df552ede94 CI: don't force testimage in fvp-base-ts
The caller should (and does) use ci/testimage.yml explicitly instead.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-07-07 15:00:04 -04:00
Jon Mason 4070798969 CI/fvp-base-ts: append the testcases
The test cases for fvp-base will not fully run because the trusted
servies ones are the only ones (instead of being appended to the list).
Correcting this issue so that all the tests can be run.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-06-12 10:00:05 -04:00
Jon Mason 31549c12d2 CI: update sstate-mirror.yml
The Yocto project changed the server name for sstate, though the
previous one does still appear to work.  Update here to the one matching
the YP documentation.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-06-09 11:00:03 -04:00
Ross Burton fe6aa835ef Revert "CI: use walnascar branches"
This switches CI back to using the master branches.

Currently there are two known failures:
- sbsa-ref
- perf on musl

This reverts commit e0c1f0f94a.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-05-22 09:16:23 -04:00
Gyorgy Szing ca9e119083 arm/trusted-services: enable the logging SP
The logging service provides an SPMC agonistic to create log messages.
The current version will simply dump the incoming log messages to a
setial line. Future versions could provide access to log messages from
the NWd, could encrypt the essages and perform more efficient when
logging large messages.

This change enables the logging SP on the fvp_base platform. All log
messages made by SPs after the boot phase will be sent to UART3.

Signed-off-by: Gyorgy Szing <gyorgy.szing@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-05-20 14:00:05 -04:00
Gyorgy Szing ee46a41578 arm/trusted-services: simplify SmmGW configuration
Bound Authenticated Variable configuration related settings to yocto
variables. The aim is easier configuration by hiding SmmGW build system
internals at the yocto recipe level.

For details please see documentation/trusted-services.md

Signed-off-by: Gyorgy Szing <gyorgy.szing@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-05-20 14:00:05 -04:00
Ross Burton e0c1f0f94a CI: use walnascar branches
Signed-off-by: Ross Burton <ross.burton@arm.com>
2025-04-23 11:41:23 -04:00
Jon Mason 62cb568a65 CI: add spaces to TS_ENV
Seeing the warning:
  lack of whitespace around the assignment: 'TS_ENV="sp"'

Add the spaces to address the issue

Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-04-18 10:00:20 -04:00
Jon Mason f94c002d1d arm-bsp/sgi575: add FVP support
Add FVP support to sgi575 and run a boot test as part of CI.  Networking
is not currently working and seems to require an older version of edk2
to boot the kernel.  Also, the unique files for grub and wks do not seem
to be necessary.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-03-28 10:00:08 -04:00
Jon Mason 3bf8bf5d4d arm/fvp: add TC3 and Neoverse v3, remove n1 edge
Add Total Compute 2023, Neoverse V3 R1, and Reference Design-1 AE FVPs.
Also, remove Neoverse N1 Edge.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-03-28 10:00:08 -04:00
Ross Burton 49cad31d10 ci/update-repos: always pass the latest URL
Instead of assuming that the repository was created with the latest URL,
fetch the repository explicitly when fetching.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-03-26 15:00:07 -04:00
Ross Burton 5d0fcd503b CI: use canonical git.yoctoproject.org URLs
The canonical repository URLs don't use /git/.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-03-26 15:00:07 -04:00
Ross Burton 03af0c72f1 arm-toolchain: remove external-arm-toolchain
Integrating the binary Arm GCC toolchain into OE is quite complicated
because the binary release and oe-core's toolchain are arranged slightly
differently, which makes it quite fragile.

As it's obviously a binary release we cannot patch it to fix issues.

Also it has some fairly sizable limitations: for example the kernel
headers are old (from linux 4.19) and the locale packaging is different
so locale package dependencies don't work.

The main historic users of the external toolchain no longer use it, so
remove it.  The recipes will remain in the LTS branches for users who
are using it currently, but will not be part of the next release.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Acked-by: Romain Naour <romain.naour@smile.fr>
Acked-by: Sumit Garg <sumit.garg@linaro.org>
Acked-by: Denys Dmytriyenko <denys@konsulko.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-01-30 07:26:31 -05:00
Mikko Rapeli 682fb426ee uefi-secureboot.yml: switch to Unified Kernel Image (UKI)
Unified Kernel Image includes kernel and initrd which
both are signed with UEFI secure boot. This brings secure
boot closer to userspace.

Use core-image-initramfs-boot to find the real
rootfs and boot systemd init there. No need to hard code
rootfs via qemuboot/runqemu variables.

Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2024-11-25 12:10:17 -05:00
Mikko Rapeli a3523586e5 uefi-secureboot.yml: remove duplicate distro features
Setting INIT_MANAGER to "systemd" already sets needed
feature flags. Appending to them only causes sstate
cache invalidation and recompilations.

Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2024-11-25 12:10:17 -05:00
Jon Mason 853fde2b24 CI: add poky-altcfg in xen.yml for systemd image requirement
xen-image-minimal now requires systemd.  Add poky-altcfg (which has
systemd amongst other things) as an includes in the xen.yml file to work
around this.  Also, xen requires openssh instead of dropbear.  So,
override that entry.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2024-11-21 11:00:04 -05:00
Ross Burton e7898787bb CI: don't use debug-tweaks
As of the following commit in oe-core[1]:

  classes-recipe/core-image: drop debug-tweaks IMAGE_FEATURE

The debug-tweaks feature is no longer valid. Replace it with the options
that we need to perform login over testimage.

[1] https://git.openembedded.org/openembedded-core/commit/?id=2c229f9542c6ba608912e14c9c3f783c3fa89349

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2024-11-08 09:00:03 -05:00
Javier Tia d315a5dec9 arm/uefi-secureboot: Add uefi capsule update support
UEFI capsule update is a mechanism that allows firmware updates to be
delivered and applied in a standardized way. It is part of the UEFI
specification and provides a way to update system firmware components
like the BIOS, UEFI drivers, or other platform firmware.

Signed-off-by: Javier Tia <javier.tia@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2024-10-07 21:00:04 -04:00
Javier Tia a93bdc8e4e arm/uefi-secureboot: Add uefi http boot support
Enable network boot via HTTP protocol. Many embedded and server-class
systems use network boot for booting. Enabling network boot on devices
allows:

- Shipping devices without OS images. When we power up the device, the
  firmware can connect to the Internet and download and install suitable
  boot images for this specific device. Administrators can centrally
  manage the boot images and configuration files on a network server.
  This centralization streamlines the management of boot options and
  ensures consistency across all devices.

- This is particularly useful in enterprise environments. On mass
  deployments, there is a need to install the operating system on
  multiple devices simultaneously.

- Ability to maintain a completely diskless system if needed 

The plain HTTP protocol lacks encryption. It's intended to be used on
local networks. Secure http protocol support is under review. 

Signed-off-by: Javier Tia <javier.tia@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2024-10-07 00:00:04 -04:00
Javier Tia 847fd39b25 arm/qemuarm64-secureboot: Enable UEFI Secure Boot
Encapsulate all UEFI Secure Boot required settings in one Kas
configuration file.

Introduce SBSIGN_KEYS_DIR variable where UEFI keys will be generated
to sign UEFI binaries. 

Introduce uefi-secureboot machine feature, which is being used to
conditionally set the proper UEFI settings in recipes.

Replace Grub bootloader with systemd-boot, which it makes easier to
enable Secure Boot.

Advantages using systemd as Init Manager:

- Extending secure boot to userspace is a lot easier with systemd than
with sysvinit where custom scripts will need to be written for all use
cases.

- systemd supports dm-verity and TPM devices for encryption usecases out
of the box. Enabling them is a lot easier than writing custom scripts
for sysvinit.

- systemd also supports EUFI signing the UKI binaries which merge kernel,
command line and initrd which helps in bringing secure boot towards
rootfs.

- systemd offers a modular structure with unit files that are more
predictable and easier to manage than the complex and varied scripts
used by SysVinit. This modularity allows for better control and
customization of the boot process, which is beneficial in Secure Boot
environments.

- Add CI settings to build and test UEFI Secure Boot.

Add one test to verify Secure Boot using OE Testing infraestructure:

$ kas build ci/qemuarm64-secureboot.yml:ci/meta-secure-core.yml:ci/uefi-secureboot.yml:ci/testimage.yml
...
RESULTS - uefi_secureboot.UEFI_SB_TestSuite.test_uefi_secureboot: PASSED (0.62s)
...
SUMMARY:
core-image-base () - Ran 73 tests in 28.281s
core-image-base - OK - All required tests passed (successes=19, skipped=54, failures=0, errors=0)

Signed-off-by: Javier Tia <javier.tia@linaro.org>
Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org> [yml file include fix]
Signed-off-by: Jon Mason <jon.mason@arm.com>
2024-10-04 10:27:35 -04:00
Jon Mason 7cce43e632 Revert "CI: switch to building against styhead branches where possible"
This reverts commit 2b1348d74f.

Revert to allow the meta-arm master branch to use the master branch of
other layers.
2024-10-01 11:08:47 -04:00
Ross Burton f22852b353 CI: transform testimage reports into JUnit XML reports
Using resulttool we can transform the oeqa JSON reports into JUnit XML,
which GitLab can display in pipelines and merge requests.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2024-09-27 12:00:05 -04:00
Ross Burton 2b1348d74f CI: switch to building against styhead branches where possible
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2024-09-27 11:25:37 -04:00
Jon Mason ea2c1ab5db arm-bsp/fvp: Re-enable parselogs
Re-enable parselogs testing for fvp-base and corstone1000-fvp, and add
an ignore file for the relevant entries.  Also, increase the testing
being done on corstone1000-fvp.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2024-09-20 09:00:04 -04:00
Jon Mason a6e74d3926 arm-bsp/fvp-base: support poky-altcfg
Add the bits to enable poky-altcfg to boot to prompt on fvp-base.
Unfortunately, ssh takes a very long time to come up, which causes the
ssh test to timeout.  So, don't enable this by default in CI.
Also, switch to building full-cmdline instead of sato, since we're never
actually testing the graphics on this platform.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2024-09-20 09:00:04 -04:00
Bence Balogh 7e94669f60 arm-bsp/trusted-firmware-m: corstone1000: add Secure Debug
The Secure Debug functionality can be enabled on MPS3 by using the new
corstone1000-mps3-secure-debug.yml kas file. The kas file adds the new
secure-debug machine feature. The TF-M recipe adds the needed TF-M
build flags and patches in order to make the Secure Debug work.

This way, the Corstone-1000 will only boot fully if a debugger is
connected and a debug authentication is initiated.

Signed-off-by: Bence Balogh <bence.balogh@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2024-08-29 08:36:35 -04:00
Jon Mason 105338c069 CI: remove xorg test removal from edk2
The edk file removed xorg from being tested, which is currently working
on qemuarm and qemuarm64.  Also, the section name collies with one in
fvp.yml, which has other things that are removed.  Remove this removal
to get things working as expected.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2024-07-12 11:16:57 -04:00
Jon Mason a1b240fa55 CI: add poky-altcfg
Add poky-altcfg to give us coverage for systemd (and the other things
that it exercises).

Signed-off-by: Jon Mason <jon.mason@arm.com>
2024-07-10 12:11:37 -04:00
Jon Mason 4cddc5f600 CI: remove unnecessary clang settings
With the resolution of meta-clang issue 766 and
OE-Core 15d09b02b2632ab1cabc3b1bd9f521e6d3d3b83f
many of the settings are no longer necessary to be set as part of our
CI.  Remove them, as it is causing other issues with CI.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2024-07-09 14:40:05 -04:00