| 3ed88f1d | 17-Dec-2025 |
Govindraj Raja <govindraj.raja@arm.com> |
Merge changes from topic "xl/c1ultra-errata" into integration
* changes: fix(cpus): workaround for C1-Ultra erratum 3324333 fix(cpus): workaround for C1-Ultra erratum 3658374 fix(cpus): workar
Merge changes from topic "xl/c1ultra-errata" into integration
* changes: fix(cpus): workaround for C1-Ultra erratum 3324333 fix(cpus): workaround for C1-Ultra erratum 3658374 fix(cpus): workaround for C1-Ultra erratum 3926381 fix(cpus): workaround for C1-Ultra erratum 4102704 fix(cpus): workaround for C1-Ultra erratum 3865171 fix(cpus): workaround for C1-Ultra erratum 3815514 fix(cpus): workaround for C1-Ultra erratum 3705939 fix(cpus): workaround for C1-Ultra erratum 3684152 fix(cpus): workaround for C1-Ultra erratum 3651221 fix(cpus): workaround for C1-Ultra erratum 3502731
show more ...
|
| 1e967fb6 | 17-Dec-2025 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "feat(corstone-1000): add Cortex-A320 support" into integration |
| b5f6d092 | 17-Dec-2025 |
Harrison Mutai <harrison.mutai@arm.com> |
fix(juno): restrict measured boot to a single algo
Juno is already quite space constrained. This makes enabling all algorithms provided by Mbed-TLS by default a no-go. Similar to TC, constrain the b
fix(juno): restrict measured boot to a single algo
Juno is already quite space constrained. This makes enabling all algorithms provided by Mbed-TLS by default a no-go. Similar to TC, constrain the board to a single algorithm when measured boot is enabled.
Change-Id: I848241b75a6c791c2bdfa42434de446c9e8c75de Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
show more ...
|
| f3d5b707 | 09-Dec-2025 |
Xialin Liu <xialin.liu@arm.com> |
fix(cpus): workaround for C1-Ultra erratum 3324333
C1-Ultra erratum 3324333 is a Cat B erratum that applies to revision r0p0, and is fixed in r1p0.
This errata can be avoid by having a speculation
fix(cpus): workaround for C1-Ultra erratum 3324333
C1-Ultra erratum 3324333 is a Cat B erratum that applies to revision r0p0, and is fixed in r1p0.
This errata can be avoid by having a speculation barrier instruction following writes to the SSBS register to ensure the new value of PSTATE.SSBS affects the subsequent instructions in the execution stream under speculation.
SDEN documentation: https://developer.arm.com/documentation/111077/8-0
Change-Id: I203238cbb8561cee683c22a6dbe4742702f82763 Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|
| 35271947 | 09-Dec-2025 |
Xialin Liu <xialin.liu@arm.com> |
fix(cpus): workaround for C1-Ultra erratum 3658374
C1-Ultra erratum 3658374 is a Cat B erratum that applies to revisions r0p0, r1p0 and is still open.
This is workaround for accessing ICH_VMCR_EL2.
fix(cpus): workaround for C1-Ultra erratum 3658374
C1-Ultra erratum 3658374 is a Cat B erratum that applies to revisions r0p0, r1p0 and is still open.
This is workaround for accessing ICH_VMCR_EL2. When ICH_VMCR_EL2.VBPR1 is written in Secure state (SCR_EL3.NS==0) and then subsequently read in Non-secure state (SCR_EL3.NS==1), a wrong value might be returned. The same issue exists in the opposite way.
Adding workaround in EL3 software that performs context save/restore on a change of Security state to use a value of SCR_EL3.NS when accessing ICH_VMCR_EL2 that reflects the Security state that owns the data being saved or restored. For example, EL3 software should set SCR_EL3.NS to 1 when saving or restoring the value ICH_VMCR_EL2 for Non-secure(or Realm) state. EL3 software should clear SCR_EL3.NS to 0 when saving or restoring the value ICH_VMCR_EL2 for Secure state.
SDEN documentation: https://developer.arm.com/documentation/111077/8-0
Change-Id: I945477b2432fefc04049e8576b66cea0cbffb03a Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|
| 09d541ba | 09-Dec-2025 |
Xialin Liu <xialin.liu@arm.com> |
fix(cpus): workaround for C1-Ultra erratum 3926381
C1-Ultra erratum 3926381 is a Cat B erratum that applies to revision r1p0 and is open.
This errata can be avoided by executing an implementation s
fix(cpus): workaround for C1-Ultra erratum 3926381
C1-Ultra erratum 3926381 is a Cat B erratum that applies to revision r1p0 and is open.
This errata can be avoided by executing an implementation specific instruction patching sequence as soon as possible after boot. After it is applied, the code only converts WFx and WFxT instructions to NOP when PSTATE.SM=1 or when PSTATE.ZA=1.
SDEN documentation: https://developer.arm.com/documentation/111077/8-0
Change-Id: I2e0f3a715670aaac116c7d3c5f5992ff7ab05ba3 Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|
| f8f6f39d | 08-Dec-2025 |
Xialin Liu <xialin.liu@arm.com> |
fix(cpus): workaround for C1-Ultra erratum 4102704
C1-Ultra erratum 4102704 is a Cat B erratum that applies to revisions r0p0, r1p0 and is still open.
The erratum can be avoided by setting CPUACTLR
fix(cpus): workaround for C1-Ultra erratum 4102704
C1-Ultra erratum 4102704 is a Cat B erratum that applies to revisions r0p0, r1p0 and is still open.
The erratum can be avoided by setting CPUACTLR4_EL1[23] to 1. Overall expected performance degradation is ~1.36%, but isolated benchmark components might see higher or lower impact.
SDEN documentation: https://developer.arm.com/documentation/111077/8-0
Change-Id: I414df1af006484dd120f928bd8fdf9e6f4a513fd Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|
| e63111fe | 08-Dec-2025 |
Xialin Liu <xialin.liu@arm.com> |
fix(cpus): workaround for C1-Ultra erratum 3865171
C1-Ultra erratum 3865171 is a Cat B erratum that applies to revisions r0p0, r1p0 and is still open.
The erratum can be avoided by setting CPUACTLR
fix(cpus): workaround for C1-Ultra erratum 3865171
C1-Ultra erratum 3865171 is a Cat B erratum that applies to revisions r0p0, r1p0 and is still open.
The erratum can be avoided by setting CPUACTLR2_EL1[22] to 1, which will disable linking multiple Non-Cacheable or Device GRE loads to the same read request for the cache-line. This might have a significant performance impact to Non-cacheable and Device GRE read bandwidth for streaming scenarios.
SDEN documentation: https://developer.arm.com/documentation/111077/8-0
Change-Id: I8bfe15fdd1d028d43d8730e7d43f72c9f15810d7 Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|
| 8f8ee1e0 | 08-Dec-2025 |
Xialin Liu <xialin.liu@arm.com> |
fix(cpus): workaround for C1-Ultra erratum 3815514
C1-Ultra erratum 3815514 is a Cat B erratum that applies to revisions r0p0, r1p0 and is still open.
The erratum can be avoided by setting CPUACTLR
fix(cpus): workaround for C1-Ultra erratum 3815514
C1-Ultra erratum 3815514 is a Cat B erratum that applies to revisions r0p0, r1p0 and is still open.
The erratum can be avoided by setting CPUACTLR5_EL1[13] to 1. Setting CPUACTLR5_EL1[13] to 1 is expected to result in a small performance degradation for workloads that use MTE. The degradation might be approximately 1.6% when using MTE imprecise mode or 0.9% for MTE precise mode.
SDEN documentation: https://developer.arm.com/documentation/111077/8-0
Change-Id: I2d6b0ee282010139d8dc406800f2738b39113957 Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|
| eacb0470 | 08-Dec-2025 |
Xialin Liu <xialin.liu@arm.com> |
fix(cpus): workaround for C1-Ultra erratum 3705939
C1-Ultra erratum 3705939 is a Cat B erratum that applies to revisions r0p0, r1p0 and is still open.
The erratum can be avoided by setting CPUACTLR
fix(cpus): workaround for C1-Ultra erratum 3705939
C1-Ultra erratum 3705939 is a Cat B erratum that applies to revisions r0p0, r1p0 and is still open.
The erratum can be avoided by setting CPUACTLR_EL1[48] to 1, which disables a RDFFR optimization. Setting this bit has negligible impact on GB6/SPECint performance, but will have an impact on SVE RDFFR performance.
SDEN documentation: https://developer.arm.com/documentation/111077/8-0
Change-Id: I88343236af86a9bb0b0ce644296d5929d7b956d1 Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|
| 9c723540 | 08-Dec-2025 |
Xialin Liu <xialin.liu@arm.com> |
fix(cpus): workaround for C1-Ultra erratum 3684152
C1-Ultra erratum 3684152 is a Cat B erratum that applies to revision r0p0, and is fixed in r1p0.
The erratum can be avoided by setting CPUACTLR_EL
fix(cpus): workaround for C1-Ultra erratum 3684152
C1-Ultra erratum 3684152 is a Cat B erratum that applies to revision r0p0, and is fixed in r1p0.
The erratum can be avoided by setting CPUACTLR_EL1[60:58] to 3'b001, which has a small perf impact.
SDEN documentation: https://developer.arm.com/documentation/111077/8-0
Change-Id: I3747b2a99785602bd2a3bddac3a69a934e7f4b37 Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|
| 43f722d2 | 08-Dec-2025 |
Xialin Liu <xialin.liu@arm.com> |
fix(cpus): workaround for C1-Ultra erratum 3651221
C1-Ultra erratum 3651221 is a Cat B erratum that applies to revision r0p0, and is fixed in r1p0.
The erratum can be avoided by disabling the affec
fix(cpus): workaround for C1-Ultra erratum 3651221
C1-Ultra erratum 3651221 is a Cat B erratum that applies to revision r0p0, and is fixed in r1p0.
The erratum can be avoided by disabling the affected prefetcher by setting CPUACTLR6_EL1[41] to 1.
SDEN documentation: https://developer.arm.com/documentation/111077/8-0
Change-Id: I0498a81a62bbea666b503cdd5a6dbcae7eab0dce Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|
| 81e845d6 | 08-Dec-2025 |
Xialin Liu <xialin.liu@arm.com> |
fix(cpus): workaround for C1-Ultra erratum 3502731
C1-Ultra erratum 3502731 is a Cat B erratum that applies to revision r0p0, and it is fixed in r1p0.
The erratum can be avoided by setting CPUACTLR
fix(cpus): workaround for C1-Ultra erratum 3502731
C1-Ultra erratum 3502731 is a Cat B erratum that applies to revision r0p0, and it is fixed in r1p0.
The erratum can be avoided by setting CPUACTLR4[23] to 1, which will disable Memory Renaming optimization. The performance impact of setting this chicken bit is about 0.82% in GB6.
SDEN documentation: https://developer.arm.com/documentation/111077/8-0
Change-Id: Iaf832b66aeed937edbb1e9be29de41b0f2b5d70c Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|
| 272dec40 | 16-Dec-2025 |
Govindraj Raja <govindraj.raja@arm.com> |
Merge "fix(cpus): register ARCH_WORKAROUND_3 for Neoverse V2" into integration |
| ecb7a361 | 03-Dec-2025 |
Manish Pandey <manish.pandey2@arm.com> |
fix(cpus): register ARCH_WORKAROUND_3 for Neoverse V2
Neoverse V2 never registered ARCH_WORKAROUND_3 in the errata framework, causing SMCCC_ARCH_WORKAROUND_3 discovery to always return 1.
The SMCCC
fix(cpus): register ARCH_WORKAROUND_3 for Neoverse V2
Neoverse V2 never registered ARCH_WORKAROUND_3 in the errata framework, causing SMCCC_ARCH_WORKAROUND_3 discovery to always return 1.
The SMCCC specification language prior to 1.6 G EAC1 was ambiguous regarding the meaning of return value 1, leading to inconsistent interpretations by callers. This ambiguity has since been resolved in 1.6 G EAC1 release, which clarifies that a return value of 1 does *not* mean the core is unaffected and that callers must independently determine the erratum status.
While TF-A has always followed this interpretation, some consumers may still treat a return value of 1 as “not affected”, potentially leading to security issues if the OS does not apply its own workaround.
Firmware originally returned 1 on V2 to avoid unnecessary WA3 SMC calls on every syscall return, since this would negatively impact performance. For Cortex-A57/72/73/75, SMCCC_ARCH_WORKAROUND_3 returns 0, while for many newer cores (A76, A78, X2, A715, Neoverse V1/V2) the return value is 1 because a local OS mitigation is available and calling into firmware is not required.
Because this interface was expected to age out, we do not want to change the status quo for other CPUs. This patch confines the fix to Neoverse V2 only by adding the missing ARCH_WORKAROUND_3 registration, allowing affected V2 revisions to return 0 as intended.
Signed-off-by: Manish Pandey <manish.pandey2@arm.com> Change-Id: I8c08c26e0b7c268772d75d36d759564a7d67cd76
show more ...
|
| 25148ce3 | 27-Nov-2025 |
Harsimran Singh Tungal <harsimransingh.tungal@arm.com> |
feat(corstone-1000): add Cortex-A320 support
Introduce `CORSTONE1000_CORTEX_A320` to enable Cortex-A320 on Corstone-1000 while keeping Cortex-A35 as the default. When the define is enabled, the buil
feat(corstone-1000): add Cortex-A320 support
Introduce `CORSTONE1000_CORTEX_A320` to enable Cortex-A320 on Corstone-1000 while keeping Cortex-A35 as the default. When the define is enabled, the build switches from `cortex_a35.S` to `cortex_a320.S`, maintaining compatibility with existing A35-based designs.
Also add Normal-World mappings for the Ethos-U85 NPU and its SRAM on Cortex-A320 platforms so U-Boot and other non-secure software can safely access these regions:
* **Ethos-U85 registers**: base `0x1A050000`, size `0x00004000` (16 KB), attrs `MT_DEVICE | MT_RW | MT_NS` * **Non-secure SRAM**: base `0x02400000`, size `0x00400000` (4 MB), attrs `MT_MEMORY | MT_RW | MT_NS`
Enable GICv3 with GIC-600 when building for Cortex-A320 (retain GICv2/GIC-400 for Cortex-A35):
* Update `plat_my_core_pos()` and `plat_arm_calc_core_pos()` to use the Cortex-A320 MPIDR_EL1 affinity layout. * Add an A320-specific core-position routine in assembly guarded by `CORSTONE1000_CORTEX_A320`. * Switch to the GICv3 driver with GIC-600 extensions: update GIC base addresses, use GICv3 APIs, and set `USE_GIC_DRIVER=3`, `GICV3_SUPPORT_GIC600=1`, `GIC_ENABLE_V4_EXTN=1`.
These changes prepare the platform for Cortex-A320 integration and ensure correct GIC configuration and secondary-core bring-up, while preserving A35 behavior.
Change-Id: Ief03dd528e67918e160d5b42ad1344b0ba3440f8 Signed-off-by: Harsimran Singh Tungal <harsimransingh.tungal@arm.com> Signed-off-by: Frazer Carsley <frazer.carsley@arm.com> Signed-off-by: Michael Safwat <michael.safwat@arm.com>
show more ...
|
| 5d9c7e8a | 14-Oct-2025 |
Yann Gautier <yann.gautier@st.com> |
docs: update Ignored Checkpatch Warnings chapter
The warning about lines over 80 characters has been deprecated in kernel since 2020 [1]. And the checkpatch script used in TF-A-ci-scripts was then u
docs: update Ignored Checkpatch Warnings chapter
The warning about lines over 80 characters has been deprecated in kernel since 2020 [1]. And the checkpatch script used in TF-A-ci-scripts was then updated in 2021 [2]. Several parts of TF-A still use the 80 character limit, so the Line Length chapter in the file docs/process/coding-style.rst is kept as-is.
The warning about volatile should not appear if the .checkpatch.conf is used. Add a sentence about .checkpatch.conf to clarify that.
[1]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bdc48fa11e46f867ea4d75fa59ee87a7f48be144 [2]: https://review.trustedfirmware.org/c/ci/tf-a-ci-scripts/+/11115
Change-Id: Ice83660f90969ef9b9e5f1d5afa2e15c032bfdf1 Signed-off-by: Yann Gautier <yann.gautier@st.com>
show more ...
|
| 9616a509 | 16-Dec-2025 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "fix(psci): gate suspend end_pwrlvl override in OS_INIT mode at runtime" into integration |
| a1f10d80 | 16-Dec-2025 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge "fix(rse): remove host ROTPK support and test" into integration |
| bd141810 | 15-Dec-2025 |
Jackson Cooper-Driver <jackson.cooper-driver@arm.com> |
fix(rse): remove host ROTPK support and test
Remove support for the retrieving a host ROTPK from the RSE, as the RSE no longer has host ROTPKs provisioned by default. Also remove the TC test which v
fix(rse): remove host ROTPK support and test
Remove support for the retrieving a host ROTPK from the RSE, as the RSE no longer has host ROTPKs provisioned by default. Also remove the TC test which verified this feature.
BREAKING CHANGE: platforms can no longer retrieve the host ROTPK from the RSE as these are no longer provisioned.
Change-Id: I2c852855e53c36e77f639f17f4c181290d95ccff Signed-off-by: Jackson Cooper-Driver <jackson.cooper-driver@arm.com>
show more ...
|
| 90cdb049 | 27-Oct-2025 |
Maheedhar Bollapalli <maheedharsai.bollapalli@amd.com> |
feat(versal2): support alternate core as primary (non-cpu0)
Primary core was hardcoded to CPU0, causing a panic when another core booted first. Update logic to allow any booting core to become the p
feat(versal2): support alternate core as primary (non-cpu0)
Primary core was hardcoded to CPU0, causing a panic when another core booted first. Update logic to allow any booting core to become the primary and gate secondary core startup inline to existing implementation for secondary cores.
Change-Id: I6a5d76f23d4d4c4139d95bbaf55edf1244f2dbfe Signed-off-by: Maheedhar Bollapalli <maheedharsai.bollapalli@amd.com>
show more ...
|
| a1e422f5 | 15-Dec-2025 |
Sammit Joshi <sammit.joshi@arm.com> |
docs(per-cpu): update diagram for NUMA enabled per-cpu layout
Update the per-cpu-numa-enabled diagram to match the current implementation after recent merges.
Signed-off-by: Sammit Joshi <sammit.jo
docs(per-cpu): update diagram for NUMA enabled per-cpu layout
Update the per-cpu-numa-enabled diagram to match the current implementation after recent merges.
Signed-off-by: Sammit Joshi <sammit.joshi@arm.com> Change-Id: I1a3ac0c4823c5d6b0b451884801ff9d66fa9a476
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 ...
|