| 98ea7329 | 08-Sep-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(cpus): workaround for Neoverse-V2 erratum 3701771
Neoverse-V2 erratum 3701771 that applies to r0p0, r0p1, r0p2 is still Open.
The workaround is for EL3 software that performs context save/resto
fix(cpus): workaround for Neoverse-V2 erratum 3701771
Neoverse-V2 erratum 3701771 that applies to r0p0, r0p1, r0p2 is still Open.
The workaround is for 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.
The mitigation is implemented in commit 7455cd172 and this patch should be applied on top of it.
SDEN documentation: https://developer.arm.com/documentation/SDEN-2332927/latest
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: Ic0ad68f7bd393bdc03343d5ba815adb23bf6a24d
show more ...
|
| 7d947650 | 28-Aug-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(cpus): workaround for Neoverse-V2 erratum 3841324
Neoverse-V2 erratum 3841324 is a Cat B erratum that applies to r0p0 and r0p1. It is fixed in r0p2.
This erratum can be avoided by setting CPUAC
fix(cpus): workaround for Neoverse-V2 erratum 3841324
Neoverse-V2 erratum 3841324 is a Cat B erratum that applies to r0p0 and r0p1. It is fixed in r0p2.
This erratum can be avoided by setting CPUACTLR_EL1[1] prior to enabling MMU. This bit will disable a branch predictor power savings feature. Disabling this power feature results in negligible power movement and no performance impact.
SDEN Documentation: https://developer.arm.com/documentation/SDEN-2332927/latest
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: I9b3a5266103e5000d207c7a270c65455d0646102
show more ...
|
| 1f866fc9 | 18-Sep-2025 |
Amr Mohamed <amr.mohamed@arm.com> |
feat(dsu): enable PMU registers access at EL1
- Disable trapping of write accesses to DSU cluster PMU registers at EL3 and EL2. - Clear the SPME bit in CLUSTERPMMDCR_EL3 to prohibit PMU event co
feat(dsu): enable PMU registers access at EL1
- Disable trapping of write accesses to DSU cluster PMU registers at EL3 and EL2. - Clear the SPME bit in CLUSTERPMMDCR_EL3 to prohibit PMU event counting in the secure state.
Change-Id: If3eb6e997330ae86f45760e0e862c003861f3d66 Signed-off-by: Amr Mohamed <amr.mohamed@arm.com>
show more ...
|
| ea884936 | 29-Aug-2025 |
John Powell <john.powell@arm.com> |
fix(cpus): workaround for Cortex-A510 erratum 3704847
Cortex-A510 erratum 3704847 is a Cat B erratum that applies to revisions r0p0, r0p1, r0p2, r0p3, r1p0, r1p1, r1p2 and r1p3, and is still open.
fix(cpus): workaround for Cortex-A510 erratum 3704847
Cortex-A510 erratum 3704847 is a Cat B erratum that applies to revisions r0p0, r0p1, r0p2, r0p3, r1p0, r1p1, r1p2 and r1p3, and is still open.
The workaround is to set bit 9 in CPUACTLR_EL1.
SDEN documentation: https://developer.arm.com/documentation/SDEN-1873361/latest/
Change-Id: I2c7c8da9c66471115b5bf8fb5c87d4de46ca265c Signed-off-by: John Powell <john.powell@arm.com>
show more ...
|
| af1fa796 | 29-Aug-2025 |
John Powell <john.powell@arm.com> |
fix(cpus): workaround for Cortex-A510 erratum 3672349
Cortex-A510 erratum 3672349 is a Cat B erratum that applies to revisions r0p0, r0p1, r0p2, r0p3, r1p0, r1p1, r1p2 and r1p3, and is still open.
fix(cpus): workaround for Cortex-A510 erratum 3672349
Cortex-A510 erratum 3672349 is a Cat B erratum that applies to revisions r0p0, r0p1, r0p2, r0p3, r1p0, r1p1, r1p2 and r1p3, and is still open.
The workaround is to clear the WFE_RET_CTRL and WFI_RET_CTRL fields in CPUPWRCTLR_EL1 to disable full retention.
SDEN documentation: https://developer.arm.com/documentation/SDEN-1873361/latest/
Change-Id: I9786ab8843a2eab45e650c6af50b6933481527ec Signed-off-by: John Powell <john.powell@arm.com>
show more ...
|
| 4fb7090e | 29-Aug-2025 |
John Powell <john.powell@arm.com> |
fix(cpus): workaround for Cortex-A510 erratum 2420992
Cortex-A510 erratum 2420992 is a Cat B erratum that applies only to revisions r1p0 and r1p1, and is fixed in r1p1.
The workaround is to set bit
fix(cpus): workaround for Cortex-A510 erratum 2420992
Cortex-A510 erratum 2420992 is a Cat B erratum that applies only to revisions r1p0 and r1p1, and is fixed in r1p1.
The workaround is to set bit 3 in CPUACTLR3_EL1 which will have no performance impact, but will increase power consumption by 0.3-0.5%.
SDEN documentation: https://developer.arm.com/documentation/SDEN-1873361/latest/
Change-Id: Ia76ba2431d76f14c08b95a998806986190d682c3 Signed-off-by: John Powell <john.powell@arm.com>
show more ...
|
| 4592f4ea | 29-Aug-2025 |
John Powell <john.powell@arm.com> |
fix(cpus): workaround for Cortex-A510 erratum 2218134
Cortex-A510 erratum 2218134 is a Cat B erratum that applies only to revision r1p0 and is fixed in r1p1.
The workaround is to set bit 43 in CPUA
fix(cpus): workaround for Cortex-A510 erratum 2218134
Cortex-A510 erratum 2218134 is a Cat B erratum that applies only to revision r1p0 and is fixed in r1p1.
The workaround is to set bit 43 in CPUACTLR2_EL1 which will correct the instruction fetch stream with no performance impact.
SDEN documentation: https://developer.arm.com/documentation/SDEN-1873361/latest/
Change-Id: Ifec40dee2f7e42c56c9ed447b6b1997b170f9453 Signed-off-by: John Powell <john.powell@arm.com>
show more ...
|
| 124ff99f | 29-Aug-2025 |
John Powell <john.powell@arm.com> |
fix(cpus): workaround for Cortex-A510 erratum 2169012
Cortex-A510 erratum 2169012 is a Cat B erratum that applies to revisions r0p0, r0p1, r0p2, r0p3 and r1p0, and is fixed in r1p1.
This erratum ha
fix(cpus): workaround for Cortex-A510 erratum 2169012
Cortex-A510 erratum 2169012 is a Cat B erratum that applies to revisions r0p0, r0p1, r0p2, r0p3 and r1p0, and is fixed in r1p1.
This erratum has an identical workaround to 1922240 and resolves a similar issue, but that erratum only applies to r0p0 which is not used in any production hardware, so it has been removed.
This workaround has a negligible performance impact.
SDEN documentation: https://developer.arm.com/documentation/SDEN-1873361/latest/
Change-Id: Ifdd59c09e84252dc292600630d81d32986fd6c0c Signed-off-by: John Powell <john.powell@arm.com>
show more ...
|
| d64d4215 | 29-Aug-2025 |
John Powell <john.powell@arm.com> |
fix(cpus): workaround for Cortex-A510 erratum 2008766
Cortex-A510 erratum 2008766 is a Cat B erratum that applies to revisions r0p0, r0p1, r0p2, r0p3, r1p0, r1p1, r1p2 and r1p3, and is still open.
fix(cpus): workaround for Cortex-A510 erratum 2008766
Cortex-A510 erratum 2008766 is a Cat B erratum that applies to revisions r0p0, r0p1, r0p2, r0p3, r1p0, r1p1, r1p2 and r1p3, and is still open.
The workaround is to clear the ERXCTLR_EL1.ED bit before power down, which will cause any detected errors during power down to be ignored.
SDEN documentation: https://developer.arm.com/documentation/SDEN-1873361/latest/
Change-Id: Id1aa0f2c518a055363c962f9abdb27e1ee8bff18 Signed-off-by: John Powell <john.powell@arm.com>
show more ...
|
| 022fcb48 | 14-Aug-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
refactor(el3-runtime): move the initialisation of the cpu_ops_ptr to C
The difference between AArch32 and AArch64 is insignificant and the usage is identical. The only thing that required the use of
refactor(el3-runtime): move the initialisation of the cpu_ops_ptr to C
The difference between AArch32 and AArch64 is insignificant and the usage is identical. The only thing that required the use of assembly was that the get_cpu_ops_ptr() function was not PCS compliant and needed a wrapper to do that instead. That has now been fixed so move this to C so it's more readable and more optimise-able by the compiler.
Change-Id: I5fcfe8ddb122dd35d58adc6d44a7484c5c595815 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| 5a45f0fc | 29-Jul-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(cpus): workaround for Cortex-X4 erratum 3887999
Cortex-X4 erratum 3887999 is a Cat B erratum that applies to all revisions <= r0p3 and is still open.
The erratum can be avoided by setting CPUAC
fix(cpus): workaround for Cortex-X4 erratum 3887999
Cortex-X4 erratum 3887999 is a Cat B erratum that applies to all revisions <= r0p3 and is still open.
The erratum can be avoided by setting CPUACTLR2[22] to 1'b1 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/SDEN-2432808/latest
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: I851746b7b430eac85184c8d402d1aa5bb3c94a8e
show more ...
|
| 58148b92 | 29-Jul-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(cpus): workaround for Cortex-X4 erratum 3133195
Cortex-X4 erratum 3133195 is a Cat B erratum that applies to all revisions = r0p2 and is fixed in r0p3.
This erratum can be avoided by writing to
fix(cpus): workaround for Cortex-X4 erratum 3133195
Cortex-X4 erratum 3133195 is a Cat B erratum that applies to all revisions = r0p2 and is fixed in r0p3.
This erratum can be avoided by writing to a set of implementation defined registers which will execute a PSB instruction following the TSB CSYNC instruction.
SDEN documentation: https://developer.arm.com/documentation/SDEN-2432808/latest
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: Id44daf950124e7c2d46cb5d6d6a1083d06fad12d
show more ...
|
| f753b4a9 | 14-Jul-2025 |
John Powell <john.powell@arm.com> |
fix(cpus): organize Cortex-X2 errata entries
The entries in cpu-ops.mk and cpu-specific-build-macros.rst are out of order and the formatting is not consistent. This patch corrects these minor format
fix(cpus): organize Cortex-X2 errata entries
The entries in cpu-ops.mk and cpu-specific-build-macros.rst are out of order and the formatting is not consistent. This patch corrects these minor formatting issues.
Change-Id: Ic01517d58d3ca1b2d39be5282b0058c94fa5d0e7 Signed-off-by: John Powell <john.powell@arm.com>
show more ...
|
| 989c798d | 12-Jul-2025 |
John Powell <john.powell@arm.com> |
fix(cpus): workaround for Cortex-X2 erratum 2291219
Cortex-X2 erratum 2291219 is a Cat B erratum that applies to revisions r0p0, r1p0 and r2p0 and is fixed in r2p1.
The workaround is to set CPUACTL
fix(cpus): workaround for Cortex-X2 erratum 2291219
Cortex-X2 erratum 2291219 is a Cat B erratum that applies to revisions r0p0, r1p0 and r2p0 and is fixed in r2p1.
The workaround is to set CPUACTLR2_EL1[36] before the power down sequence that sets PWRDN_EN and executes WFI. This bit should be be cleared after exiting WFI.
SDEN documentation: https://developer.arm.com/documentation/SDEN-1775100/latest
Change-Id: I43af57961feba3a1c001d09ad804740b996f1db7 Signed-off-by: John Powell <john.powell@arm.com>
show more ...
|
| 41b96976 | 12-Jul-2025 |
John Powell <john.powell@arm.com> |
fix(cpus): workaround for Cortex-X2 erratum 2267065
Cortex-X2 erratum 2267065 is a Cat B erratum that applies to revisions r0p0, r1p0 and r2p0 and is fixed in r2p1.
The workaround is to set CPUACTL
fix(cpus): workaround for Cortex-X2 erratum 2267065
Cortex-X2 erratum 2267065 is a Cat B erratum that applies to revisions r0p0, r1p0 and r2p0 and is fixed in r2p1.
The workaround is to set CPUACTLR_EL1[22].
SDEN documentation: https://developer.arm.com/documentation/SDEN-1775100/latest
Change-Id: I540e113f209ef11ec7103d4ef4e48ffb52416b4e Signed-off-by: John Powell <john.powell@arm.com>
show more ...
|
| a8e4d5a5 | 12-Jul-2025 |
John Powell <john.powell@arm.com> |
fix(cpus): workaround for Cortex-X2 erratum 2136059
Cortex-X2 erratum 2136059 is a Cat B erratum that applies to revisions r0p0, r1p0 and r2p0 and is fixed in r2p1.
The workaround is to set CPUACTL
fix(cpus): workaround for Cortex-X2 erratum 2136059
Cortex-X2 erratum 2136059 is a Cat B erratum that applies to revisions r0p0, r1p0 and r2p0 and is fixed in r2p1.
The workaround is to set CPUACTLR5_EL1[44].
SDEN documentation: https://developer.arm.com/documentation/SDEN-1775100/latest
Change-Id: I156467537c3f235b50fc8aa19a969f2798bd891b Signed-off-by: John Powell <john.powell@arm.com>
show more ...
|
| 2c0467af | 12-Jul-2025 |
John Powell <john.powell@arm.com> |
fix(cpus): workaround for Cortex-X2 erratum 1934260
Cortex-X2 erratum 1934260 is a Cat B erratum that applies only to revision r1p0 and is fixed in r2p0.
The workaround is to set CPUECTLR_EL1[25:18
fix(cpus): workaround for Cortex-X2 erratum 1934260
Cortex-X2 erratum 1934260 is a Cat B erratum that applies only to revision r1p0 and is fixed in r2p0.
The workaround is to set CPUECTLR_EL1[25:18] to 0xFF. This workaround will result in reduced performance for workloads that benefit from write streaming.
SDEN documentation: https://developer.arm.com/documentation/SDEN-1775100/latest
Change-Id: I180d38fee27175dc8ac5fa6726e5b71c3340285f Signed-off-by: John Powell <john.powell@arm.com>
show more ...
|
| e2365484 | 12-Jul-2025 |
John Powell <john.powell@arm.com> |
fix(cpus): workaround for Cortex-X2 erratum 1927200
Cortex-X2 erratum 1927200 is a Cat B erratum that applies to revisions r0p0 and r1p0 and is fixed in r2p0.
The workaround is to use instruction p
fix(cpus): workaround for Cortex-X2 erratum 1927200
Cortex-X2 erratum 1927200 is a Cat B erratum that applies to revisions r0p0 and r1p0 and is fixed in r2p0.
The workaround is to use instruction patching to insert a DMB ST before acquire atomic instructions without release semantics.
SDEN documentation: https://developer.arm.com/documentation/SDEN-1775100/latest
Change-Id: I8d9038df1907888b3c5b2520d06bc150665e74a1 Signed-off-by: John Powell <john.powell@arm.com>
show more ...
|
| ccee7fa8 | 12-Jul-2025 |
John Powell <john.powell@arm.com> |
fix(cpus): workaround for Cortex-X2 erratum 1917258
Cortex-X2 erratum 1917258 is a Cat B erratum that applies to revisions r0p0 and r1p0 and is fixed in r2p0.
The workaround is to set CPUACTLR4_EL1
fix(cpus): workaround for Cortex-X2 erratum 1917258
Cortex-X2 erratum 1917258 is a Cat B erratum that applies to revisions r0p0 and r1p0 and is fixed in r2p0.
The workaround is to set CPUACTLR4_EL1[43]. This has no performance impact.
SDEN documentation: https://developer.arm.com/documentation/SDEN-1775100/latest
Change-Id: Ic18a5179856f861701f09b2556906a6722db8150 Signed-off-by: John Powell <john.powell@arm.com>
show more ...
|
| ff879c52 | 12-Jul-2025 |
John Powell <john.powell@arm.com> |
fix(cpus): workaround for Cortex-X2 erratum 1916945
Cortex-X2 erratum 1916945 is a Cat B erratum that applies to revisions r0p0 and r1p0 and is fixed in r2p0.
The workaround is to set CPUECTLR_EL1[
fix(cpus): workaround for Cortex-X2 erratum 1916945
Cortex-X2 erratum 1916945 is a Cat B erratum that applies to revisions r0p0 and r1p0 and is fixed in r2p0.
The workaround is to set CPUECTLR_EL1[8]. This has a small performance impact (<0.5%).
SDEN documentation: https://developer.arm.com/documentation/SDEN-1775100/latest
Change-Id: If810b1d0a07c43b3e1aa70d2ec88c1dcfa6f735f Signed-off-by: John Powell <john.powell@arm.com>
show more ...
|
| ce64ea6e | 12-Jul-2025 |
John Powell <john.powell@arm.com> |
fix(cpus): workaround for Cortex-X2 erratum 1901946
Cortex-X2 erratum 1901946 is a Cat B erratum that applies to revision r1p0 and is fixed in r2p0.
The workaround is to set CPUACTLR4_EL1[15]. This
fix(cpus): workaround for Cortex-X2 erratum 1901946
Cortex-X2 erratum 1901946 is a Cat B erratum that applies to revision r1p0 and is fixed in r2p0.
The workaround is to set CPUACTLR4_EL1[15]. This has a small performance impact.
SDEN documentation: https://developer.arm.com/documentation/SDEN-1775100/latest
Change-Id: I5a65db60f06982191994db49815419c4d72506cf Signed-off-by: John Powell <john.powell@arm.com>
show more ...
|
| 42920aa7 | 10-Jul-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(cpus): workaround for Cortex-X3 erratum 3213672
Cortex-X3 erratum 3213672 is a Cat B erratum that applies to r0p0, r1p0, r1p1 and r1p2. It is still open.
This erratum can be worked around by se
fix(cpus): workaround for Cortex-X3 erratum 3213672
Cortex-X3 erratum 3213672 is a Cat B erratum that applies to r0p0, r1p0, r1p1 and r1p2. It is still open.
This erratum can be worked around by setting CPUACTLR_EL1[36] before enabling icache.
SDEN Documentation: https://developer.arm.com/documentation/SDEN-2055130/latest/
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: Ia1c03217f4e1816b4e8754a090cf5bc17546be40
show more ...
|
| 6a464ee7 | 03-Jul-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(cpus): workaround for Cortex-X3 erratum 3827463
Cortex-X3 erratum 3827463 is a Cat B erratum that applies to r0p0, r1p0 and r1p1. It is fixed in r1p2.
This erratum can be avoided by setting CPU
fix(cpus): workaround for Cortex-X3 erratum 3827463
Cortex-X3 erratum 3827463 is a Cat B erratum that applies to r0p0, r1p0 and r1p1. It is fixed in r1p2.
This erratum can be avoided by setting CPUACTLR_EL1[1] prior to enabling MMU. This bit will disable a branch predictor power savings feature. Disabling this power feature results in negligible power movement and no performance impact.
SDEN Documentation: https://developer.arm.com/documentation/SDEN-2055130/latest/
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: I1d4a2b9641400d8b9061f7cb32a8312c3995613e
show more ...
|
| f828efe2 | 30-Jun-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(cpus): workaround for Cortex-X3 erratum 3692984
Cortex-X3 erratum 3692984 is a Cat B erratum that applies to r0p0, r1p0, r1p1 and r1p2 and is still open.
The erratum can be avoided by disabling
fix(cpus): workaround for Cortex-X3 erratum 3692984
Cortex-X3 erratum 3692984 is a Cat B erratum that applies to r0p0, r1p0, r1p1 and r1p2 and is still open.
The erratum can be avoided by disabling the affected prefetcher setting CPUACTLR6_EL1[41].
SDEN Documentation: https://developer.arm.com/documentation/SDEN-2055130/latest/
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: I054b47d33fd1ff7bde3ae12e8ee3d99e9203965f
show more ...
|
| f9274127 | 26-Jun-2025 |
Bipin Ravi <bipin.ravi@arm.com> |
Merge "fix(cpus): workaround for Cortex-A710 erratum 1927200" into integration |