Add support for the newest release of TF-A.
mnedtls was made a git submodule, and moved location. Given that this
will be the location going forward, I thought it best to change inc file
to point by default to the new location, and have the LTS versions to
point to the old location in their recipes.
Also, seeing some weird behavior with CPUs not coming on line in
sbsa-ref and qemuarm-secureboot. So, pinning those back to the LTS
until they can be sorted out.
Signed-off-by: Jon Mason <jon.mason@arm.com>
Place psa-arch-tests under ${S}/ts-external/psatest and update the
recipe paths to match.
This keeps the external source layout aligned with trusted-services,
updates the Corstone-1000 patch locations, and lets devtool modify work
against the same psa-arch-tests tree that CMake and
apply_local_src_patches use.
Signed-off-by: Arthur Cassegrain <arthur.cassegrain@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Add recipes for newest version of tf-m. Of note, mbedtls has been
removed in favor of the TF-PSA-Crypto library. This is having a cascade
into the other recipes, with a removal from the core inc file and add of
the individual lines to the specific versions.
TF-PSA-Crypto is Apache 2.0 licensed. So, no need to change the recipe
license field.
Signed-off-by: Jon Mason <jon.mason@arm.com>
In TF-M 2.3.0, Musca S1 was removed, but B1 is still present. In an
effort to keep coverage, swapping S1 and B1.
Signed-off-by: Jon Mason <jon.mason@arm.com>
Warnings being always fatal is quite anti-social because sometimes there
are temporary warnings that we don't want to break the CI.
Signed-off-by: Ross Burton <ross.burton@arm.com>
Set the default cache directory to be the build tree so we don't assume
anything about the runner environment by default.
After this change, runners that don't set CACHE_DIR will need to set it
explicltly in their variables.
Signed-off-by: Ross Burton <ross.burton@arm.com>
With the new GCC, we're seeing the following error:
| In file included from /builder/meta-arm/build/tmp/work/armv8-5a-poky-linux/ts-sp-smm-gateway/git/sources/ts/components/common/dlmalloc/malloc_wrapper.c:62:
| /builder/meta-arm/build/tmp/work/armv8-5a-poky-linux/ts-sp-smm-gateway/git/sources/ts/components/common/dlmalloc/malloc.c: In function 'add_segment':
| /builder/meta-arm/build/tmp/work/armv8-5a-poky-linux/ts-sp-smm-gateway/git/sources/ts/components/common/dlmalloc/malloc.c:4002:7: error: variable 'nfences' set but not used [-Werror=unused-but-set-variable=]
| 4002 | int nfences = 0;
| | ^~~~~~~
To workaround this issue, add "-Wno-error=unused-but-set-variable" to TARGET_CFLAGS
Signed-off-by: Jon Mason <jon.mason@arm.com>
New GCC is logging errors for unused-but-set-variable in
tftf/tests/runtime_services/standard_service/psci/api_tests/psci_stat/test_psci_stat.c
Workaround this by adding -Wno-unused-but-set-variable to the Makefile
Refer to https://github.com/TrustedFirmware-A/tf-a-tests/issues/4
For the upstream resolution, if/when that arrives.
Signed-off-by: Jon Mason <jon.mason@arm.com>
Add a separate Corstone-1000 Armv9-A Edge-AI documentation
set for the Cortex-A320 platform.
Populate the new documentation tree with the initial index,
user guide, software architecture, release notes, change log,
and supporting images.
Keep common Corstone-1000 material in the existing documentation
set and move A320-specific content into the new standalone
document set.
Signed-off-by: Michael Safwat <michael.safwat@arm.com>
Signed-off-by: Lisa Durbin <lisa.durbin@arm.com>
Signed-off-by: Alex Chapman <alex.chapman@arm.com>
Signed-off-by: Hugues KAMBA MPIANA <hugues.kambampiana@arm.com>
Add a --dry-run option to scripts/runfvp to print the constructed
FVP command line and exit without launching the model.
This is useful for checking parameters and reusing them with different
FVP binaries.
Signed-off-by: Michael Safwat <michael.safwat@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Some platforms (like Allwinner A64/sun50i_a64) have LTO enabled
in the Makefiles, which causes a linking error when using ld:
| [...]/aarch64-oe-linux/aarch64-oe-linux-ld: -f may not be used without -shared
Add an option to be able to indicate in the recipe if the plaform has LTO enabled,
and only pass LD to make in case LTO is disabled, otherwise let it use $CC (as set by the Makefile).
The option is disabled by default to keep the existing behavior.
Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
GenFv requires libuuid in the native sysroot.
Add util-linux-libuuid-native and pass required flags through to the
BaseTools makefiles. This can be missed on machines with libuuid
headers installed, as the build may find the host copy instead.
Signed-off-by: Alex Chapman <alex.chapman@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
${IMAGE_NAME} expands to a timestamped filename which gets written into
the .fvpconf. A mismatch occurs when do_image reruns (regenerating the
.fvpconf with a new timestamp) but do_image_wic hits sstate (leaving the
old .wic on disk), causing the FVP to fail at startup with:
Can't stat <image>-<timestamp>.wic! (error 2)
Use IMAGE_LINK_NAME instead, which is the stable symlink that always
points to the most recently built .wic.
Signed-off-by: Marek Bykowski <marek.bykowski@gmail.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Remove Cortex-A320-specific content from the base Corstone-1000
documentation.
Drop the A320-only sections, commands, notes, and subsystem image from
the shared Corstone-1000 software architecture and user guide now that
the platform is documented in its own standalone document set.
Signed-off-by: Michael Safwat <michael.safwat@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Add CI coverage for the Corstone-1000 with Cortex-A320 FVP machine.
Build the Corstone-1000 with Cortex-A320 FVP with the firmware-only
configuration and run both `none` and `tftf`.
Also run `none` for the no-firmware build.
Signed-off-by: Alex Chapman <alex.chapman@arm.com>
Signed-off-by: Hugues KAMBA MPIANA <hugues.kambampiana@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Add `corstone1000-a320-fvp` as a dedicated machine instead of enabling
the Cortex-A320 variant through a kas overlay on `corstone1000-fvp`.
Move the A320-specific machine features, overrides, FVP executable
selection, and Ethos-U85 configuration into the new machine
configuration. Keep the generic `corstone1000-fvp` machine focused on
the base FVP platform.
Update the A320 kas to use `corstone1000-a320-fvp` directly, and
allow pregenerated SSH host keys for the new virtual machine.
Signed-off-by: Alex Chapman <alex.chapman@arm.com>
Signed-off-by: Hugues KAMBA MPIANA <hugues.kambampiana@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Add a shared Corstone-1000 kas configuration for building SSH-enabled
mass storage images across the supported Corstone-1000 machines.
Enable Dropbear SSH in the mass storage OS image, add pregenerated SSH
host keys for FVP builds, and document the SSH image build flow in the
user guides.
SSH support is too large for the flash OS image, so provide a dedicated
`core-image-minimal` kas configuration for SSH-enabled mass storage
images instead.
Signed-off-by: Alex Chapman <alex.chapman@arm.com>
Signed-off-by: Hugues KAMBA MPIANA <hugues.kambampiana@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Fix the Corstone-1000 with Cortex-A320 override for the
Trusted Firmware-A errata list.
The override was misspelled as
`ENABLE_CORTEX_A35_ERRATA:cortexta320` instead of
`ENABLE_CORTEX_A35_ERRATA:cortexa320`.
Rename the list to `ENABLE_CORTEX_A_ERRATA`, since it is shared by
the Cortex-A35 and Cortex-A320 variants.
Signed-off-by: Alex Chapman <alex.chapman@arm.com>
Signed-off-by: Hugues KAMBA MPIANA <hugues.kambampiana@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
This series wires up Arm FF-A support for EFI runtime services by
factoring runtime-safe helpers into the FF-A bus, layer the EFI
variable TEE transport on top, and then rehome the helper exports
so there’s a single implementation shared between boot and
runtime paths. Corstone1000 enables the self-test command and
expands the runtime variable selftest so it exercises non-volatile
storage across reboots.
Key Changes
===========
- Add the FF-A runtime transport patch stack to the corstone1000
U-Boot recipe.
- Enable EFI runtime variable handling over FF-A and include the
bootefi selftests and sandbox FF-A runtime transport test.
- Increase the FIP partition sizes from 2MiB to 2.5MiB
and update TFA_FIP_RE_SIGN_BIN_SIZE from 0x00200000 to 0x00280000
to reflect the new allocation. The size of u-boot-EFI-2025.10-r0.bin
has increased from ~707KB to ~944KB following the FF-A/EFI runtime
related changes. As this binary is packaged within the FIP, the
overall signed FIP size has grown accordingly.
- Add a Yocto patch to increase the FIP partition size from
2MB to 2.5MB in the TF-M flash layout for Corstone-1000.
Signed-off-by: Harsimran Singh Tungal <harsimransingh.tungal@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
TF-M build system has introduced a ground-breaking change since v2.0.0.
Enable TF-M regression test build, following build instructions in TF-M
document [1].
Add the BUILD_REGRESSION_TESTS variable to enable regression test
builds. Individual regression test suites can be selected by
passing the appropriate TF-M CMake options through EXTRA_OECMAKE.
If regression test is enabled, build TF-M and tests from tf-m-tests
directory.
The build files for Normal World build will be installed.
[1]: https://trustedfirmware-m.readthedocs.io/en/latest/building/tests_build_instruction.html
Signed-off-by: David Hu <david.hu2@arm.com>
Signed-off-by: Gergely Kovacs <Gergely.Kovacs2@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
With the latest version of acpica (20260408), the following error is
being encountered in edk2 platforms for Arm SGI
| "iasl" -p/builder/meta-arm/build/tmp/work/rdn2-poky-linux/edk2-firmware/202602/build/Build/RdN2/DEBUG_GCC5/AARCH64/Platform/ARM/SgiPkg/AcpiTables/RdN2AcpiTables/OUTPUT/./SsdtEvents.aml /builder/meta-arm/build/tmp/work/rdn2-poky-linux/edk2-firmware/202602/build/Build/RdN2/DEBUG_GCC5/AARCH64/Platform/ARM/SgiPkg/AcpiTables/RdN2AcpiTables/OUTPUT/./SsdtEvents.iiii
| /builder/meta-arm/build/tmp/work/rdn2-poky-linux/edk2-firmware/202602/build/Build/RdN2/DEBUG_GCC5/AARCH64/Platform/ARM/SgiPkg/AcpiTables/RdN2AcpiTables/OUTPUT/./SsdtEvents.iiii 61: Printf ("GPIO0 Pin0 Toggled")
| Error 6010 - Internal compiler error ^ (Invalid parse opcode in OpcGenerateAmlOpcode)
Since this appears to be a debug message, and the relevant platforms are
a work in progress. Work around this issue by removing the printf.
Signed-off-by: Jon Mason <jon.mason@arm.com>
- Add `wic`` image manipulation requirement, `mtools`, to prerequisites
- switch the `kas` install step to a user-local virtual environment
removing `sudo` requirement
- Add `wic` install step
- replaced the mount/unmount acs_results and capsule staging steps
with non-`sudo` wic-based image manipulation.
- Adds guidance for using serial-console without `sudo`
- Standardise capsule transfer to the root of the BOOT partition
- Update docs to align with new non-`sudo` requirement for
`create_keys_and_sign.sh` interactive script.
These updates remove several unnecessary `sudo`` dependencies when
running OOB CS1K testing.
Signed-off-by: Jon Mason <jon.mason@arm.com>
- Use the correct `${WORKSPACE}` script path without the stray `./` prefix.
This avoids an invalid command path.
Signed-off-by: Jon Mason <jon.mason@arm.com>
Add a U-Boot patch to disable CONFIG_EFI_DEBUG_SUPPORT in the
Corstone1000 defconfigs.
EFI debug support is now enabled by default and changes the EFI memory
layout. On Corstone1000 this can cause a boot failure after
ExitBootServices(), reproduced on the Cortex-A320 FVP path with MTE
enabled.
Signed-off-by: Michael Safwat <michael.safwat@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Update the Corstone1000 U-Boot patches to detect FVP platforms
by matching "fvp" in the device tree name instead of relying on
the exact arm/corstone1000-fvp string.
This fixes FVP-specific handling for Corstone1000 variants,
including capsule image selection and virtio setup.
Also restore CONFIG_BOARD_LATE_INIT in the Corstone1000
defconfigs, since the virtio probing runs from
board_late_init() and would otherwise never execute.
Signed-off-by: Michael Safwat <michael.safwat@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Uses the new GPT duplicate operation during a firmware update. This also
adds flash erase protections so that the operation is not too slow and
erasing flash multiple times redundantly.
Signed-off-by: Frazer Carsley <frazer.carsley@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
These patches add functionality to duplicate GPT partition entries. This
combines a "create-write" into a single step, letting the GPT library
handle it, useful for the Corstone1000 firmware update process.
Signed-off-by: Frazer Carsley <frazer.carsley@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
These patches backport bug fixes for the GPT library in TF-M.
Signed-off-by: Frazer Carsley <frazer.carsley@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Returning from the finally block at the end of the start_fvp() function
is discarding exceptions. Since start_fvp() is near to the top off the
call tree, this hides uncaught exceptions thrown by most of the code,
which makes detecting and debugging issues hard.
This is resolved by removing the return statement from the finally
block, allowing exceptions to propagate normally.
Signed-off-by: Gyorgy Szing <gyorgy.szing@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Add support for Screen the GNU terminal multiplexer. The -t/--terminal
option now accepts "screen" as a terminal type. When selected, the tool
must be run from within an existing Screen session, and each FVP
terminal is opened in a new Screen window.
Signed-off-by: Gyorgy Szing <gyorgy.szing@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Improve usability by detecting which terminal types are available on the
system.
Extend the terminal abstraction to support checking whether a terminal
can be executed, and add basic validation for all terminal types. Update
the documentation to reflect the new behavior.
Signed-off-by: Gyorgy Szing <gyorgy.szing@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
The initramfs for Corstone1000 is based on core-image-minimal, which has
GRUB included as a package. Corstone1000 uses U-Boot's efiloader to load
the initramfs and kernel and therefore does not require GRUB for boot.
Signed-off-by: Frazer Carsley <frazer.carsley@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Print an error message if the FVP binary cannot be found, instead of
failing silently.
Signed-off-by: Roger Knecht <roger.knecht@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
When --selected_components is not specified, the script should include
all components as documented in the help text. However, the current
implementation skips all components when the parameter is empty,
resulting in an error.
Fix the filtering logic to only apply when --selected_components is
explicitly provided with values.
Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Now that Xen has been removed, clean up the remaining references to
the meta-virtualization layer.
This was done as a separate commit to make reverting easier in the
future in case we need to add back meta-virtualization for some other
builds.
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
We originally added Xen builds to our CI to exercise Xen on Arm. Now
that the Yocto autobuilder has jobs that test Xen on qemuarm/qemuarm64
we no longer need the builds in meta-arm as they don't provide any more
coverage.
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Remove the user-guide warning and rebuild steps for the
disable_module_autoloading workaround on Corstone-1000 with Cortex-A320.
With the NPU reset issue fixed, this workaround is no longer
needed.
Signed-off-by: Michael Safwat <michael.safwat@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
- Derive host base addresses from offsets and add ext sys reset bitfields
- Deassert CPUWAIT with a bitmask
- Enable ext sys boot handling for Corstone1000 with Cortex-A320
- Add the new downstream TF‑M patches to the recipe
Signed-off-by: Michael Safwat <michael.safwat@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
- Replace `systemready-patch` with `iot-platform-assets` in the guide.
- Update the Corstone-1000 asset paths and U85 kas command examples.
Align the user guide with the renamed asset repository, avoiding
stale commands and broken paths.
Signed-off-by: Alex Chapman <alex.chapman@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>