| 8c824273 | 20-Oct-2025 |
Arunachalam Ganapathy <arunachalam.ganapathy@arm.com> |
feat(bl2): support RESET_TO_BL2 and ENABLE_RME
When RSE is used as the root of trust along with CPU that supports RME there is a need to enable both RESET_TO_BL2 and ENABLE_RME.
In current bl2_main
feat(bl2): support RESET_TO_BL2 and ENABLE_RME
When RSE is used as the root of trust along with CPU that supports RME there is a need to enable both RESET_TO_BL2 and ENABLE_RME.
In current bl2_main there are two different code paths for RESET_BL2, one handles BL2 running in EL1 and other for BL2 running in EL3.
When RME is enabled, BL2 always runs at EL3 but the current flow calls bl2_early_platform_setup2, bl2_plat_arch_setup instead of bl2_el3_early_platform_setup, bl2_el3_plat_arch_setup. Adding RME, TRANSFER_LIST, ROMLIB support in bl2_el3_* helpers makes arm_bl2_el3_setup.c almost identical to arm_bl2_setup.c.
This patch removes bl2_el3_plat helpers and related files. Now different combinations of RESET_TO_BL2, ENABLE_RME are handled in common bl2_setup routines in arm_bl2_setup.c. This helps to have common place to support new features and build flags for BL2 irrespective of which EL the BL2 runs.
BREAKING-CHANGE: This patch also changes all existing platform files and functions that use format bl2_el3_* to bl2_plat helpers. If any platform or out-of-tree platforms that need to support running BL2 in EL1 or EL3 must now handle it in bl2_early_platform_setup2 and bl2_plat_arch_setup.
Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com> Change-Id: I8d332dbe2de1db3b69319496c8d04626cdcf4140
show more ...
|
| ef860154 | 05-Nov-2025 |
Arunachalam Ganapathy <arunachalam.ganapathy@arm.com> |
fix(fvp): increase resident text size of BL2
Enabling new CPU library code like Venom requires to set build flags HW_ASSISTED_COHERENCY=1 USE_COHERENT_MEM=0. When build along with RESET_TO_BL=1 (BL2
fix(fvp): increase resident text size of BL2
Enabling new CPU library code like Venom requires to set build flags HW_ASSISTED_COHERENCY=1 USE_COHERENT_MEM=0. When build along with RESET_TO_BL=1 (BL2 in EL3 case) causes increase in resident text size of BL2.
This is applicable in case of PLAT=fvp as it includes a lot of CPU_LIBS and might not be the case of other platforms as it includes only specific CPU libs.
Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com> Change-Id: I2fd7eecebd9a2bdcbdc9fbbf4cecc2d659740931
show more ...
|
| a36ee52e | 20-Oct-2025 |
Arunachalam Ganapathy <arunachalam.ganapathy@arm.com> |
fix(arm): support FCONF when TRANSFER_LIST and RESET_BL2 is set
Enable reading HW_CONFIG device tree from transfer list entry when RESET_BL2 is enabled.
Signed-off-by: Arunachalam Ganapathy <arunac
fix(arm): support FCONF when TRANSFER_LIST and RESET_BL2 is set
Enable reading HW_CONFIG device tree from transfer list entry when RESET_BL2 is enabled.
Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com> Change-Id: Ibcd65f3946924670ede3ba354db5bc574c70b4be
show more ...
|
| 010f458e | 16-Oct-2025 |
Arunachalam Ganapathy <arunachalam.ganapathy@arm.com> |
fix(arm): update next image's ep info with the FW config address
When RESET_TO_BL2=1 and ARM_FW_CONFIG_LOAD_ENABLE=1, BL2 loads FW_CONFIG but it fails to update the next image entry point with FW co
fix(arm): update next image's ep info with the FW config address
When RESET_TO_BL2=1 and ARM_FW_CONFIG_LOAD_ENABLE=1, BL2 loads FW_CONFIG but it fails to update the next image entry point with FW config address.
This fix also enables populating HW_CONFIG from platform setup routines in BL31.
Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com> Change-Id: I86cc5e97cfdb0f18be647b867b1e1d82d53cdafd
show more ...
|
| a806cc5a | 22-Jan-2026 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes I2485d583,I1374c482,I07e29dbb,I949e6486 into integration
* changes: feat(qemu): enable ENABLE_FEAT_RAS and ENABLE_FEAT_SB feat(cpufeat): update FEAT_SB's FEAT_STATE_CHECKED status
Merge changes I2485d583,I1374c482,I07e29dbb,I949e6486 into integration
* changes: feat(qemu): enable ENABLE_FEAT_RAS and ENABLE_FEAT_SB feat(cpufeat): update FEAT_SB's FEAT_STATE_CHECKED status feat(cpufeat): advertise support for FEAT_RASv2 feat(cpufeat): enable FEAT_RAS for FEAT_STATE_CHECKED again
show more ...
|
| 9dda4082 | 13-Jan-2026 |
Boyan Karatotev <boyan.karatotev@arm.com> |
feat(cpufeat): update FEAT_SB's FEAT_STATE_CHECKED status
FEAT_SB is mostly FEAT_STATE_CHECKED enabled but that is not apparent from docs and code's check is sub-optimal. Update docs to make this ap
feat(cpufeat): update FEAT_SB's FEAT_STATE_CHECKED status
FEAT_SB is mostly FEAT_STATE_CHECKED enabled but that is not apparent from docs and code's check is sub-optimal. Update docs to make this apparent and update code to have a proper FEAT_STATE_CHECKED fallback.
Also enable it for FVP so it's tested a bit more.
Change-Id: I1374c4828b235ad16904f6c4ac9e39b9c2596a37 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| 553c24c3 | 07-Jul-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
feat(cpufeat): enable FEAT_RAS for FEAT_STATE_CHECKED again
FEAT_RAS was originally converted to FEAT_STATE_CHECKED in 6503ff291. However, the ability to use it was removed with 970a4a8d8 by simply
feat(cpufeat): enable FEAT_RAS for FEAT_STATE_CHECKED again
FEAT_RAS was originally converted to FEAT_STATE_CHECKED in 6503ff291. However, the ability to use it was removed with 970a4a8d8 by simply saying it impacts execution at EL3. That's true, but FEAT_STATE_CHECKED can still be allowed by being a bit clever about it.
First, the remainder of common code can be converted to use the is_feat_ras_supported() helper instead of the `#if FEATURE` pattern. There are no corner cases to consider there. The feature is either present (and appropriate action must be taken) or the feature is not (so we can skip RAS code).
A conscious choice is taken to check the RAS code in synchronize_errors despite it being in a hot path. Any fixed platform that seeks to be performant should be setting features to 0 or 1. Then, the SCTLR_EL3.IESB bit is always set if ENABLE_FEAT_RAS != 0 since we expect FEAT_IESB to be present if FEAT_RAS is (despite the architecture not guaranteeing it). If FEAT_RAS isn't present then we don't particularly care about the status of FEAT_IESB.
Second, platforms that don't set ENABLE_FEAT_RAS must continue to work. This is true out of the box with the is_feat_xyz_supported() helpers, as they make sure to fully disable code within them.
Third, platforms that do set ENABLE_FEAT_RAS=1 must continue to work. This is also true out of the box and no logical change is undertaken in common code.
Finally, ENABLE_FEAT_RAS is set to 2 on FVP. Having RAS implies that the whole handling machinery will be built-in and registered as appropriate. However, when RAS is built-in but not present in hardware, these registrations can still happen, they will only never be invoked at runtime.
Change-Id: I949e648601dc0951ef9c2b217f34136b6ea4b3dc Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| c9017cbc | 05-Jan-2026 |
Govindraj Raja <govindraj.raja@arm.com> |
feat(cpus): add support for Rosillo cpu
Add basic CPU library code to support Rosillo CPU
Change-Id: I0e11e511511562297e4dccd2745842ebcfa2bff4 Signed-off-by: Govindraj Raja <govindraj.raja@arm.com> |
| fb0c4098 | 05-Nov-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
fix(build): use ARM_ARCH_FEATURE instead of -march directly
The -march compiler flag is owned by make_helpers/march.mk and its output is controlled by ARM_ARCH_MAJOR, ARM_ARCH_MINOR, and ARM_ARCH_FE
fix(build): use ARM_ARCH_FEATURE instead of -march directly
The -march compiler flag is owned by make_helpers/march.mk and its output is controlled by ARM_ARCH_MAJOR, ARM_ARCH_MINOR, and ARM_ARCH_FEATURE. Setting -march directly can lead to unexpected results when using the above flags and is generally not recommended within tfa.
This patch migrates all instances of -march=armv8-a+crc to ARM_ARCH_FEATURE=crc. Arm platforms (via arm_common.mk) are checked and those that support cores greater than arm8.1 do not get the flag as it is automatically pulled in.
Change-Id: I846f97367eab9529524a2805d5b87d34cce2360f Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| 959d9d1c | 15-Dec-2025 |
Lauren Wehrmeister <lauren.wehrmeister@arm.com> |
Merge changes I9375fad3,Ie072f9fe into integration
* changes: refactor(fvp): use SZ_* defs fr event log fix(rme): increase worst-case event size |
| 2cd86f2c | 15-Dec-2025 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge "fix(fvp): fully remove FVP_Foundation" into integration |
| dabe88c5 | 10-Dec-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
fix(fvp): fully remove FVP_Foundation
It was removed with patch 4f6c9397b61824b320f7b16b6267d9928dc88998 but some bits remain. Remove them.
Change-Id: Ia40d97ca81983006e470b061d913d238cf73b6f9 Sign
fix(fvp): fully remove FVP_Foundation
It was removed with patch 4f6c9397b61824b320f7b16b6267d9928dc88998 but some bits remain. Remove them.
Change-Id: Ia40d97ca81983006e470b061d913d238cf73b6f9 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| 4678cb58 | 12-Dec-2025 |
Harrison Mutai <harrison.mutai@arm.com> |
refactor(fvp): use SZ_* defs fr event log
Switch `PLAT_ARM_EVENT_LOG_MAX_SIZE` to SZ_* helpers for readability.
Change-Id: I9375fad3232afb9c3dc58204cc915d9c7fb2957f Signed-off-by: Harrison Mutai <h
refactor(fvp): use SZ_* defs fr event log
Switch `PLAT_ARM_EVENT_LOG_MAX_SIZE` to SZ_* helpers for readability.
Change-Id: I9375fad3232afb9c3dc58204cc915d9c7fb2957f Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
show more ...
|
| a1439c94 | 12-Dec-2025 |
Harrison Mutai <harrison.mutai@arm.com> |
fix(rme): increase worst-case event size
Increase the worst-case event log size for RME. It's now possible for each event to hold up to `LIBEVLOG_MAX_HASH_COUNT` digests. Increase the worst-case siz
fix(rme): increase worst-case event size
Increase the worst-case event log size for RME. It's now possible for each event to hold up to `LIBEVLOG_MAX_HASH_COUNT` digests. Increase the worst-case size to account for this.
Change-Id: Ie072f9fe1ea5617c030556fae4c8c893cfefc4e0 Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
show more ...
|
| 8a583b97 | 07-Oct-2025 |
Harrison Mutai <harrison.mutai@arm.com> |
refactor(fvp): use crypto-agile measured boot
Update the FVP measured boot flow to use the crypto-agile API. Replace the previous single-algorithm hash configuration with dynamic algorithm selection
refactor(fvp): use crypto-agile measured boot
Update the FVP measured boot flow to use the crypto-agile API. Replace the previous single-algorithm hash configuration with dynamic algorithm selection. Align image measurement and event log header generation with the new hashing model and update platform glue code accordingly.
Change-Id: I4128a0c66a56df6c473c47a577d86cd38bf057f6 Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
show more ...
|
| 0390a0b2 | 08-Dec-2025 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge "feat(fvp): load SP_PKGs with TRANSFER_LIST" into integration |
| fd2fb5b7 | 04-Dec-2025 |
Govindraj Raja <govindraj.raja@arm.com> |
Merge changes from topic "ar/feat_uinj" into integration
* changes: feat(cpufeat): add support for FEAT_UINJ feat(cpufeat): enable mandatory Armv9.4–Armv9.6 features by default fix(cpufeat): u
Merge changes from topic "ar/feat_uinj" into integration
* changes: feat(cpufeat): add support for FEAT_UINJ feat(cpufeat): enable mandatory Armv9.4–Armv9.6 features by default fix(cpufeat): update feature names and comments fix(cpufeat): simplify AArch32 feature disablement
show more ...
|
| e612e725 | 03-Dec-2025 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes from topic "image_decryption" into integration
* changes: feat(fvp): extend image decryption support for FVP fix(io): add NULL check for spec io_open FIP |
| 4286d16f | 26-Nov-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
feat(cpufeat): add support for FEAT_UINJ
FEAT_UINJ allows higher ELs to inject Undefined Instruction exceptions into lower ELs by setting SPSR_ELx.UINJ, which updates PSTATE.UINJ on exception return
feat(cpufeat): add support for FEAT_UINJ
FEAT_UINJ allows higher ELs to inject Undefined Instruction exceptions into lower ELs by setting SPSR_ELx.UINJ, which updates PSTATE.UINJ on exception return. When PSTATE.UINJ is set, instruction execution at the lower EL raises an Undefined Instruction exception (EC=0b000000).
This patch introduces support for FEAT_UINJ by updating the inject_undef64() to use hardware undef injection if supported.
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: I48ad56a58eaab7859d508cfa8dfe81130b873b6b
show more ...
|
| d81b3bc1 | 17-Nov-2025 |
Lauren Wehrmeister <lauren.wehrmeister@arm.com> |
feat(fvp): extend image decryption support for FVP
Add encryption IO layer to be stacked above FIP IO layer for optional encryption of the BL31 and BL32 images in case the ENCRYPT_BL31 or ENCRYPT_BL
feat(fvp): extend image decryption support for FVP
Add encryption IO layer to be stacked above FIP IO layer for optional encryption of the BL31 and BL32 images in case the ENCRYPT_BL31 or ENCRYPT_BL32 build flag is set.
Enable decryption support for FVP through setting the DECRYPTION_SUPPORT build flag. "DECRYPTION_SUPPORT = aes_gcm" is set to perform authenticated decryption using AES-GCM algorithm.
Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com> Change-Id: Iebc3b360b4a0dc0d933b816d28015ac551b79405
show more ...
|
| bff6e602 | 04-Mar-2025 |
Ryan Everett <ryan.everett@arm.com> |
feat(cpus): add support for LSC25 E-core CPU
Add basic CPU library code to support the Large Screen Compute 2025 E-core CPU.
Change-Id: Ibda2e8441d3a3e35941448b483d07e17db2ef234 Signed-off-by: Ryan
feat(cpus): add support for LSC25 E-core CPU
Add basic CPU library code to support the Large Screen Compute 2025 E-core CPU.
Change-Id: Ibda2e8441d3a3e35941448b483d07e17db2ef234 Signed-off-by: Ryan Everett <ryan.everett@arm.com> Signed-off-by: Aditya Deshpande <aditya.deshpande@arm.com>
show more ...
|
| e1fbad0b | 04-Mar-2025 |
Ryan Everett <ryan.everett@arm.com> |
feat(cpus): add support for LSC25 P-core CPU
Add basic CPU library code to support the Large Screen Compute 2025 P-core CPU.
Change-Id: Icfd2fdbaed577e64cb2db028416a6eca5ba2cfcf Signed-off-by: Ryan
feat(cpus): add support for LSC25 P-core CPU
Add basic CPU library code to support the Large Screen Compute 2025 P-core CPU.
Change-Id: Icfd2fdbaed577e64cb2db028416a6eca5ba2cfcf Signed-off-by: Ryan Everett <ryan.everett@arm.com> Signed-off-by: Aditya Deshpande <aditya.deshpande@arm.com>
show more ...
|
| 6ae88e28 | 05-Sep-2025 |
Yeoreum Yun <yeoreum.yun@arm.com> |
feat(fvp): load SP_PKGs with TRANSFER_LIST
To enable loading of SP_PKGs when using the TRANSFER_LIST build option, this patch loads TB_FW_CONFIG in BL1 and populates sp_mem_params_descs in arm_trans
feat(fvp): load SP_PKGs with TRANSFER_LIST
To enable loading of SP_PKGs when using the TRANSFER_LIST build option, this patch loads TB_FW_CONFIG in BL1 and populates sp_mem_params_descs in arm_transfer_list_dyn_cfg_init().
Since there is no standard tag_id defined for TB_FW_CONFIG in the transfer list, define PLAT_ARM_TB_FW_CONFIG_TL_TAG as a platform-specific identifier to load TB_FW_CONFIG.
With this change, BL2 can load the SP_PKGs specified in TB_FW_CONFIG.
Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com> Change-Id: I2470c1ef3bf2bf921d0de1fff541565df13eaee4
show more ...
|
| 27bff0b9 | 10-Nov-2025 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
fix(fvp): use global option for setting PLAT_ARM_MAX_BL2_SIZE
Use global option TRUSTED_BOARD_BOOT for setting PLAT_ARM_MAX_BL2_SIZE.
Change-Id: Ia360b36535d2039de8e41da90dd4c8478adb6d54 Signed-off
fix(fvp): use global option for setting PLAT_ARM_MAX_BL2_SIZE
Use global option TRUSTED_BOARD_BOOT for setting PLAT_ARM_MAX_BL2_SIZE.
Change-Id: Ia360b36535d2039de8e41da90dd4c8478adb6d54 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| cfe7ff31 | 10-Nov-2025 |
Chris Kay <chris.kay@arm.com> |
chore(fvp): bump maximum permitted Trusted SRAM size
Bump the size of the Trusted SRAM in FVP builds, as we are now exceeding the 256KB limit in a meaningful number of builds.
Change-Id: Iefd584172
chore(fvp): bump maximum permitted Trusted SRAM size
Bump the size of the Trusted SRAM in FVP builds, as we are now exceeding the 256KB limit in a meaningful number of builds.
Change-Id: Iefd58417297507eaa9b24e55fc36de67bd16b716 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|