| 87e69a8f | 30-Sep-2025 |
John Powell <john.powell@arm.com> |
fix(cpus): workaround for Cortex-A720 erratum 3711910
Cortex-A720 erratum 3711910 is a Cat B erratum that applies to revisions r0p0, r0p1 and r0p2, and is still open.
SDEN documentation: https://de
fix(cpus): workaround for Cortex-A720 erratum 3711910
Cortex-A720 erratum 3711910 is a Cat B erratum that applies to revisions r0p0, r0p1 and r0p2, and is still open.
SDEN documentation: https://developer.arm.com/documentation/SDEN-2439421
Change-Id: Id65d5ba41b96648b07c09df77fb25cc4bdb50800 Signed-off-by: John Powell <john.powell@arm.com>
show more ...
|
| 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 ...
|
| 3084363c | 16-Sep-2025 |
Govindraj Raja <govindraj.raja@arm.com> |
fix(security): fix Neoverse V2 CVE-2022-23960
Apply CVE-2022-23960 mitigation to Neoverse V2, revision r0p0 only. Ref - https://developer.arm.com/documentation/110280/latest/
Change-Id: I859012281f
fix(security): fix Neoverse V2 CVE-2022-23960
Apply CVE-2022-23960 mitigation to Neoverse V2, revision r0p0 only. Ref - https://developer.arm.com/documentation/110280/latest/
Change-Id: I859012281fc67243f050d27e364f27434389c0cf Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| 07df6c1c | 16-Sep-2025 |
Govindraj Raja <govindraj.raja@arm.com> |
fix(security): fix Cortex-X3 CVE-2022-23960
Apply CVE-2022-23960 mitigation to Cortex-X3, revision r1p0 and earlier only. Ref - https://developer.arm.com/documentation/110280/latest/
Change-Id: I3d
fix(security): fix Cortex-X3 CVE-2022-23960
Apply CVE-2022-23960 mitigation to Cortex-X3, revision r1p0 and earlier only. Ref - https://developer.arm.com/documentation/110280/latest/
Change-Id: I3d46fa70c80129ca0085d8245ee013f11a8842e3 Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| ad0e8487 | 16-Sep-2025 |
Govindraj Raja <govindraj.raja@arm.com> |
fix(security): fix Cortex-A715 CVE-2022-23960
Apply CVE-2022-23960 mitigation to Cortex-A715, revision r1p0 and earlier only. Ref - https://developer.arm.com/documentation/110280/latest/
Change-Id:
fix(security): fix Cortex-A715 CVE-2022-23960
Apply CVE-2022-23960 mitigation to Cortex-A715, revision r1p0 and earlier only. Ref - https://developer.arm.com/documentation/110280/latest/
Change-Id: Ib6b704733e474824772cb27bd048b1e179d90da9 Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
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 ...
|
| 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 ...
|
| 2e1dff2d | 19-Sep-2025 |
Olivier Deprez <olivier.deprez@arm.com> |
fix(tc): fix c1_pro power down abandon
Following merge of [1] and [2] the fix to power down abandon for Arm C1-Pro core got lost. Restore it.
[1] https://review.trustedfirmware.org/c/TF-A/trusted-f
fix(tc): fix c1_pro power down abandon
Following merge of [1] and [2] the fix to power down abandon for Arm C1-Pro core got lost. Restore it.
[1] https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/43191 [2] https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/42920
Signed-off-by: Olivier Deprez <olivier.deprez@arm.com> Change-Id: I7da12e5ffc61248922adaf629eb52a5283993188
show more ...
|
| 7dae0451 | 04-Sep-2025 |
Min Yao Ng <minyao.ng@arm.com> |
chore(tc): align core names to Arm Lumex
Adopt core names aligned to Arm Lumex [1]
Nevis => C1-Nano Gelas => C1-Pro Travis => C1-Ultra Alto => C1-Premium
C1-Pro TRM: https://developer.arm.com/docu
chore(tc): align core names to Arm Lumex
Adopt core names aligned to Arm Lumex [1]
Nevis => C1-Nano Gelas => C1-Pro Travis => C1-Ultra Alto => C1-Premium
C1-Pro TRM: https://developer.arm.com/documentation/107771/0102/ C1-Ultra TRM: https://developer.arm.com/documentation/108014/0100/ C1-Premium TRM: https://developer.arm.com/documentation/109416/0100/ C1-Nano TRM: https://developer.arm.com/documentation/107753/0001/
[1]: https://www.arm.com/product-filter?families=c1%20cpus https://www.arm.com/products/mobile/compute-subsystems/lumex
Signed-off-by: Min Yao Ng <minyao.ng@arm.com> Signed-off-by: Olivier Deprez <olivier.deprez@arm.com> Change-Id: Id4b487ef6a6fd1b00b75b09c5d06d81bce50a15d Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| 661e8b9d | 18-Sep-2025 |
Govindraj Raja <govindraj.raja@arm.com> |
Merge "feat(cpus): add pabandon support to Nevis" into integration |
| 6588ce0a | 18-Sep-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
feat(cpus): add pabandon support to Nevis
Nevis' TRM says that a powerdown attempt may be abandoned for a handful of reasons. Add support for handling this.
It also says that if the SME2 engine is
feat(cpus): add pabandon support to Nevis
Nevis' TRM says that a powerdown attempt may be abandoned for a handful of reasons. Add support for handling this.
It also says that if the SME2 engine is not properly disconnected, then a powerdown request will be rejected. Require ERRATA_SME_POWER_DOWN be set to avoid this.
Just like Gelas/Travis, the 11.28 model doesn't reset the bit, so a workaround is necessary.
Change-Id: I0d5de1b0e772f6b4d656e841fb4bcf8fd859f293 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| 6dacf15c | 18-Sep-2025 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "feat(cpus): fix external LLC presence bit in Neoverse N3" into integration |
| ff90ce41 | 26-Aug-2025 |
Younghyun Park <younghyunpark@google.com> |
feat(cpus): fix external LLC presence bit in Neoverse N3
Unlike Neoverse N2, Neoverse N3 incorporates the External LLC presence bit in CPUECTLR2_EL1.SW_EXT_LLC. In addition, the default value is ext
feat(cpus): fix external LLC presence bit in Neoverse N3
Unlike Neoverse N2, Neoverse N3 incorporates the External LLC presence bit in CPUECTLR2_EL1.SW_EXT_LLC. In addition, the default value is external LLC in Neoverse N3, so the bit will be cleared when NEOVERSE_Nx_EXTERNAL_LLC is not enabled.
Change-Id: I1182aba5423e74748efd2571cc3817634ada748d Signed-off-by: Younghyun Park <younghyunpark@google.com>
show more ...
|
| 360460a1 | 01-Sep-2025 |
Andre Przywara <andre.przywara@arm.com> |
fix(cpus): use correct Makefile indentation for CVE-2018-3639 check
Makefiles need to use spaces for indentation when using make syntax, tabs are reserved for (shell) recipes.
Replace tabs with spa
fix(cpus): use correct Makefile indentation for CVE-2018-3639 check
Makefiles need to use spaces for indentation when using make syntax, tabs are reserved for (shell) recipes.
Replace tabs with spaces on the WORKAROUND_CVE_2018_3639 check, to fix the error report when WORKAROUND_CVE_2018_3639 is disabled: lib/cpus/cpu-ops.mk:1147: *** recipe commences before first target. Stop.
Also this revealed that DYNAMIC_WORKAROUND_CVE_2018_3639 was not initialised, so it always triggered that condition. Set it to 0, to allow disabling WORKAROUND_CVE_2018_3639 on the command line.
Use the opportunity to also convert some unrelated tab to spaces, in a line continuation.
Change-Id: Ieb56af33a11c40b6753738669eee929c264261cf Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| aabab09e | 01-Sep-2025 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes Id38d6f1b,I5fcfe8dd,I7f3b50e5 into integration
* changes: fix(cpus): inform the compiler that struct cpu_ops is aligned refactor(el3-runtime): move the initialisation of the cpu_op
Merge changes Id38d6f1b,I5fcfe8dd,I7f3b50e5 into integration
* changes: fix(cpus): inform the compiler that struct cpu_ops is aligned refactor(el3-runtime): move the initialisation of the cpu_ops_ptr to C fix(aarch32): make get_cpu_ops_ptr() PCS compliant
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 ...
|
| 5fc2895c | 11-Oct-2024 |
Icen Zeyada <icen.zeyada2@arm.com> |
feat(cpus): add support for Canyon CPU
Add basic CPU library code to support the Canyon CPU.
Change-Id: I82edc4384c4fe35ec2cf6b4bfd877a24ad8725dc Signed-off-by: Icen Zeyada <Icen.Zeyada2@arm.com> S
feat(cpus): add support for Canyon CPU
Add basic CPU library code to support the Canyon CPU.
Change-Id: I82edc4384c4fe35ec2cf6b4bfd877a24ad8725dc Signed-off-by: Icen Zeyada <Icen.Zeyada2@arm.com> Signed-off-by: Ryan Everett <ryan.everett@arm.com> Signed-off-by: Min Yao Ng <minyao.ng@arm.com> Signed-off-by: Aditya Deshpande <aditya.deshpande@arm.com>
show more ...
|
| 71f7a363 | 18-Aug-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
fix(aarch32): make get_cpu_ops_ptr() PCS compliant
The get_cpu_ops_ptr() function gets called from C (mainly in errata reporting) but it is not PCS compliant - it clobbers r4 and r5. This doesn't us
fix(aarch32): make get_cpu_ops_ptr() PCS compliant
The get_cpu_ops_ptr() function gets called from C (mainly in errata reporting) but it is not PCS compliant - it clobbers r4 and r5. This doesn't usually cause any problems, but if the stars align it blows up.
Convert the heart of the function to a non-PCS compliant macro that can be invoked in the early entrypoint code and change the get_cpu_ops_ptr() to a PCS compliant wrapper for calling into C. Additionally, the resultant inlining in the entrypoint will lead to a tiny performance bump due to the one fewer jump to an uncached memory location.
Change-Id: I7f3b50e56a1288d2a8136a7b8c01544bab19c57b Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| 43483932 | 19-Aug-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(cpus): correct alto library
Powerdown handling is updated to reflect powerdown abandon changes and incorrect error message has been fixed.
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@a
fix(cpus): correct alto library
Powerdown handling is updated to reflect powerdown abandon changes and incorrect error message has been fixed.
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: I7d33542c13c52e74261937f96327951c0116fbd1
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 ...
|