| 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 ...
|
| 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 ...
|
| 88a92dd8 | 10-Dec-2025 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge "fix(cpus): fix C1 Pro powerdown abandon behavior" into integration |
| 7783823c | 09-Dec-2025 |
Jim Ray <jimray@google.com> |
fix(cpus): fix C1 Pro powerdown abandon behavior
This change restores a toggle to IMP_CPUPWRCTLR_EL1.CORE_PWRDN_EN that was accidentally changed to a bitset in [1]. Without this change, a powerdown
fix(cpus): fix C1 Pro powerdown abandon behavior
This change restores a toggle to IMP_CPUPWRCTLR_EL1.CORE_PWRDN_EN that was accidentally changed to a bitset in [1]. Without this change, a powerdown abandon followed by a non-powerdown CPU_SUSPEND will incorrectly trigger a power down.
This change is similar to [2].
[1] https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/42920/ [2] https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/43236/
Change-Id: Ife86bd2b5bac4829e695a1aa180926dfad19a470 Signed-off-by: Jim Ray <jimray@google.com>
show more ...
|
| ef221814 | 05-Dec-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(security): update Neoverse-V2 fix version for CVE-2024-7881
This patch updates the Neoverse-V2 revisions for which the CVE-2024-7881 [1] / Cat B erratum 3696445 [2] applies. The erratum applies
fix(security): update Neoverse-V2 fix version for CVE-2024-7881
This patch updates the Neoverse-V2 revisions for which the CVE-2024-7881 [1] / Cat B erratum 3696445 [2] applies. The erratum applies to r0p0, r0p1, r0p2 and is still open.
[1] https://developer.arm.com/documentation/110326/latest/ [2] https://developer.arm.com/documentation/SDEN-2332927/latest Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: I1ae196fa8ce4579524faba4916f631e7c4db358b
show more ...
|
| 38db5f48 | 05-Dec-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(security): update Cortex-X3 fix version for CVE-2024-7881
This patch updates the Cortex-X3 revisions for which the CVE-2024-7881 [1] / Cat B erratum 3692984 [2] applies. The erratum applies to r
fix(security): update Cortex-X3 fix version for CVE-2024-7881
This patch updates the Cortex-X3 revisions for which the CVE-2024-7881 [1] / Cat B erratum 3692984 [2] applies. The erratum applies to r0p0, r1p0, r1p1, r1p2 and is still open.
[1] https://developer.arm.com/documentation/110326/latest/ [2] https://developer.arm.com/documentation/SDEN-2055130/latest/
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: Ia1ff75602a0dfa758a223549d92ea87543fa44b6
show more ...
|
| a7f6d2cd | 05-Dec-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(security): update Neoverse-V3/V3AE fix version for CVE-2024-7881
This patch updates the Neoverse-V3 / Neoverse-V3AE revisions for which the CVE-2024-7881 [1] / Cat B erratum 3696307 [2][3] appli
fix(security): update Neoverse-V3/V3AE fix version for CVE-2024-7881
This patch updates the Neoverse-V3 / Neoverse-V3AE revisions for which the CVE-2024-7881 [1] / Cat B erratum 3696307 [2][3] applies. The erratum applies to r0p0, r0p1 and is fixed in r0p2.
[1] https://developer.arm.com/documentation/110326/latest/ [2] https://developer.arm.com/documentation/SDEN-2891958/latest/ [3] https://developer.arm.com/documentation/SDEN-2615521/latest/
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: If3e2989a4b5a5c68dc12e23978b226c73f21ba14
show more ...
|
| 80e56adb | 05-Dec-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(security): update Cortex-X925 fix version for CVE-2024-7881
This patch updates the Cortex-X925 revisions for which the CVE-2024-7881 [1] / Cat B erratum 3692980 [2] applies. The erratum applies
fix(security): update Cortex-X925 fix version for CVE-2024-7881
This patch updates the Cortex-X925 revisions for which the CVE-2024-7881 [1] / Cat B erratum 3692980 [2] applies. The erratum applies to r0p0, r0p1 and is fixed in r0p2.
[1] https://developer.arm.com/documentation/110326/latest/ [2] https://developer.arm.com/documentation/109180/latest/
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: Ice7a939bed60d44cff5706a08b2b59d6777760b0
show more ...
|
| 13cd56dd | 05-Dec-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(security): update Cortex-X4 fix version for CVE-2024-7881
This patch updates the Cortex-X4 revisions for which the CVE-2024-7881 [1] / Cat B erratum 3692983 [2] applies. The erratum applies to r
fix(security): update Cortex-X4 fix version for CVE-2024-7881
This patch updates the Cortex-X4 revisions for which the CVE-2024-7881 [1] / Cat B erratum 3692983 [2] applies. The erratum applies to r0p0, r0p1, r0p2 and is fixed in r0p3.
[1] https://developer.arm.com/documentation/110326/latest/ [2] https://developer.arm.com/documentation/SDEN-2432808/latest
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: Iae84f26fdce96a61fdc942b7595ccf8b9c7783f9
show more ...
|
| c130f923 | 14-Nov-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(security): add CVE-2024-7881 mitigation to C1-Ultra CPU
This patch mitigates Cat B erratum 3651221 [2] / CVE-2024-7881 [1] for C1-Ultra CPU. This CVE applies to r0p0 and is fixed in r1p0 [2].
T
fix(security): add CVE-2024-7881 mitigation to C1-Ultra CPU
This patch mitigates Cat B erratum 3651221 [2] / CVE-2024-7881 [1] for C1-Ultra CPU. This CVE applies to r0p0 and is fixed in r1p0 [2].
This CVE can be mitigated by disabling the affected prefetcher setting CPUACTLR6_EL1[41].
[1] https://developer.arm.com/documentation/110326/latest/ [2] https://developer.arm.com/documentation/111077/latest/
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: I7815d6fc9af812c38b1c05881c850b8209d6ad7c
show more ...
|
| c09454d0 | 14-Nov-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(security): add CVE-2024-7881 mitigation to C1-Pro CPU
This patch mitigates Cat B erratum 3684268 [2] / CVE-2024-7881 [1] for C1-Pro CPU. This CVE applies to r0p0, r1p0 and is fixed in r1p1 [2].
fix(security): add CVE-2024-7881 mitigation to C1-Pro CPU
This patch mitigates Cat B erratum 3684268 [2] / CVE-2024-7881 [1] for C1-Pro CPU. This CVE applies to r0p0, r1p0 and is fixed in r1p1 [2].
This CVE can be mitigated by disabling the affected prefetcher by setting IMP_CPUECTLR_EL1[49].
Note: C1-Pro has a different workaround for CVE-2024-7881 which is not reflected in Security Bulletin yet. Refer SDEN for correct workaround description.
[1] https://developer.arm.com/documentation/110326/latest/ [2] https://developer.arm.com/documentation/SDEN-3273080/latest/
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: I6b0eca1fc340f18dcbede920a0dd1c882bfe12c1
show more ...
|
| 83ad6bae | 14-Nov-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(security): add CVE-2024-7881 mitigation to C1-Premium CPU
This patch mitigates Cat B erratum 3651221 [2] / CVE-2024-7881 [1] for C1-Premium CPU. This CVE applies to r0p0 and is fixed in r1p0 [2]
fix(security): add CVE-2024-7881 mitigation to C1-Premium CPU
This patch mitigates Cat B erratum 3651221 [2] / CVE-2024-7881 [1] for C1-Premium CPU. This CVE applies to r0p0 and is fixed in r1p0 [2].
This CVE can be mitigated by disabling the affected prefetcher setting CPUACTLR6_EL1[41].
[1] https://developer.arm.com/documentation/110326/latest/ [2] https://developer.arm.com/documentation/111078/latest/
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: I70b50700bc1618e0f8f4121efc9fe89e2742ed74
show more ...
|
| 2bd15121 | 04-Dec-2025 |
Bipin Ravi <bipin.ravi@arm.com> |
Merge changes from topic "xl/a725-errata" into integration
* changes: fix(cpus): workaround for Cortex-A725 erratum 3456106 fix(cpus): workaround for Cortex-A725 erratum 3711914 fix(cpus): wor
Merge changes from topic "xl/a725-errata" into integration
* changes: fix(cpus): workaround for Cortex-A725 erratum 3456106 fix(cpus): workaround for Cortex-A725 erratum 3711914 fix(cpus): workaround for Cortex-A725 erratum 2936490 fix(cpus): workaround for Cortex-A725 erratum 2874943
show more ...
|
| 2ba920f4 | 04-Dec-2025 |
Govindraj Raja <govindraj.raja@arm.com> |
Merge changes from topic "xl/a65-errata" into integration
* changes: fix(cpus): workaround for Cortex-A65 erratum 1541130 fix(cpus): workaround for Cortex-A65 erratum 1227419 fix(cpus): workar
Merge changes from topic "xl/a65-errata" into integration
* changes: fix(cpus): workaround for Cortex-A65 erratum 1541130 fix(cpus): workaround for Cortex-A65 erratum 1227419 fix(cpus): workaround for Cortex-A65 erratum 1179935
show more ...
|
| 403ca6da | 02-Dec-2025 |
Xialin Liu <xialin.liu@arm.com> |
fix(cpus): workaround for Cortex-A725 erratum 3456106
Cortex-A725 erratum 3456106 is a Cat B erratum that applies to revisions r0p0, r0p1 and r0p2, it is still open.
This erratum can be avoided by
fix(cpus): workaround for Cortex-A725 erratum 3456106
Cortex-A725 erratum 3456106 is a Cat B erratum that applies to revisions r0p0, r0p1 and r0p2, it is still open.
This erratum can be avoided by having Speculation Barrier (SB) instruction after the writes to the PSTATE.SSBS.
SDEN documentation: https://developer.arm.com/documentation/SDEN-2832921/latest/
Change-Id: I10d1e8cb4da19ba4101a5617245ff75866707d25 Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|
| 8177e1ef | 05-Nov-2025 |
Xialin Liu <xialin.liu@arm.com> |
fix(cpus): workaround for Cortex-A65 erratum 1541130
Cortex-A65 erratum 1541130 is a Cat B erratum that applies to r0p0, r1p0, r1p1, r1p2 revisions of the CPU and is still open.
This erratum can be
fix(cpus): workaround for Cortex-A65 erratum 1541130
Cortex-A65 erratum 1541130 is a Cat B erratum that applies to r0p0, r1p0, r1p1, r1p2 revisions of the CPU and is still open.
This erratum can be avoided by disable stage1 page table walk for lower Els (EL1 and EL0) in EL3, so 'AT' speculative fetch at any point produces either the correct result or failure without TLB allocation.
SDEN documentation: https://developer.arm.com/documentation/SDEN1065159/latest/
Change-Id: I72498f60f8449193ed4b5b2a9e7a08530e786ec3 Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|
| ba7716bb | 10-Nov-2025 |
Xialin Liu <xialin.liu@arm.com> |
fix(cpus): workaround for Cortex-A725 erratum 3711914
Cortex-A725 erratum 3711914 is a Cat B erratum that applies to revisions r0p0 and r0p1 and it is fixed in r0p2.
This erratum can be avoided by
fix(cpus): workaround for Cortex-A725 erratum 3711914
Cortex-A725 erratum 3711914 is a Cat B erratum that applies to revisions r0p0 and r0p1 and it is fixed in r0p2.
This erratum can be avoided by inserting a DMB LD after each DSB ST instruction.
SDEN documentation: https://developer.arm.com/documentation/SDEN-2832921/latest/
Change-Id: If3b9d3a0f495b3a172d3e6e5ca7afa8c30aeb4ea Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|
| d9a21d3c | 10-Nov-2025 |
Xialin Liu <xialin.liu@arm.com> |
fix(cpus): workaround for Cortex-A725 erratum 2936490
Cortex-A725 erratum 2936490 is a Cat B erratum that applies to revisions in r0p0, and is fixed in r0p1.
This erratum can be avoided by setting
fix(cpus): workaround for Cortex-A725 erratum 2936490
Cortex-A725 erratum 2936490 is a Cat B erratum that applies to revisions in r0p0, and is fixed in r0p1.
This erratum can be avoided by setting CPUACTLR2_EL1[37] to 1. Setting this bit is expected to have a negligible performance impact.
SDEN documentation: https://developer.arm.com/documentation/SDEN-2832921/latest/
Change-Id: I9833f8831ba3735a94763791a65be11b95c00bdb Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|