| #
74d75753 |
| 10-Nov-2025 |
Xialin Liu <xialin.liu@arm.com> |
fix(cpus): workaround for Cortex-A725 erratum 2874943
Cortex-A725 erratum 2874943 is a Cat B erratum that applies to revision r0p0 when FEAT_SPE is enabled, it is fixed in r0p1.
This erratum can be
fix(cpus): workaround for Cortex-A725 erratum 2874943
Cortex-A725 erratum 2874943 is a Cat B erratum that applies to revision r0p0 when FEAT_SPE is enabled, it is fixed in r0p1.
This erratum can be avoided by setting bits[58:57] to 0b11 in CPUACTLR_EL1.
SDEN documentation: https://developer.arm.com/documentation/SDEN-2832921/latest/
Change-Id: I686bbde8756d52afee92097ec05b97138b550025 Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|
| #
ede3a236 |
| 16-Oct-2025 |
Xialin Liu <xialin.liu@arm.com> |
fix(cpus): workaround for Cortex-A65 erratum 1227419
Cortex-A65 erratum 1227419 is a Cat B erratum that applies to r0p0, r1p0, it is fixed in r1p1.
This erratum can be avoided by setting CPUACTLR_E
fix(cpus): workaround for Cortex-A65 erratum 1227419
Cortex-A65 erratum 1227419 is a Cat B erratum that applies to r0p0, r1p0, it is fixed in r1p1.
This erratum can be avoided by setting CPUACTLR_EL1[51] to 1. This bit disables the cross-thread sharing in instruction uTLB.
SDEN documentation: https://developer.arm.com/documentation/SDEN1065159/latest/
Change-Id: I42371e7d53fce3a7e085bf0b348f080fa323fb51 Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|
| #
015e1cd5 |
| 16-Oct-2025 |
Xialin Liu <xialin.liu@arm.com> |
fix(cpus): workaround for Cortex-A65 erratum 1179935
Cortex-A65 erratum 1179935 is a Cat B erratum that applies to r0p0, it is fixed in r1p0.
This erratum can be avoided by setting CPUACTLR_EL1[49]
fix(cpus): workaround for Cortex-A65 erratum 1179935
Cortex-A65 erratum 1179935 is a Cat B erratum that applies to r0p0, it is fixed in r1p0.
This erratum can be avoided by setting CPUACTLR_EL1[49] to 1. The bit prevents translation table walks from allocating lines into the L1 cache. This has a negligible impact on performance when an L2 cache is present.
SDEN documentation: https://developer.arm.com/documentation/SDEN1065159/latest/
Change-Id: Ie59a4897f849269a590d8fa2d25cceab5f2cba3c Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|
| #
f27e7f8e |
| 05-Nov-2025 |
Xialin Liu <xialin.liu@arm.com> |
fix(cpus): workaround for Cortex-A76AE erratum 2371140
Cortex-A76AE erratum 2371140 is a Cat B erratum that applies to all revisions <= r1p1, and is still open.
This erratum can be avoided by setti
fix(cpus): workaround for Cortex-A76AE erratum 2371140
Cortex-A76AE erratum 2371140 is a Cat B erratum that applies to all revisions <= r1p1, and is still open.
This erratum can be avoided by setting CPUACTLR2_EL1[0] to 1. The bit force PLDW/PFRM ST to behave like PLD/PRFM LD and not cause invalidations to other PE caches. There might be a small performance degradation to this workaround for certain workloads that share data.
SDEN documentation: https://developer.arm.com/documentation/SDEN-1277541/1700/?lang=en
Change-Id: Id65846bebde1a0911ba11956202d0d255d3c8c82 Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|
| #
d428b422 |
| 05-Nov-2025 |
Xialin Liu <xialin.liu@arm.com> |
fix(cpus): workaround for Cortex-A76AE erratum 1969401
Cortex-A76AE erratum 1969401 is a Cat B erratum that applies to r0p0 and r1p0, it is fixed in r1p1.
This erratum can be avoided by inserting a
fix(cpus): workaround for Cortex-A76AE erratum 1969401
Cortex-A76AE erratum 1969401 is a Cat B erratum that applies to r0p0 and r1p0, it is fixed in r1p1.
This erratum can be avoided by inserting a DMB ST before acquire atomic instructions without release semantics.
SDEN documentation: https://developer.arm.com/documentation/SDEN-1277541/1700/?lang=en
Change-Id: I893452450d430833e6c5a8e33a1e37b708218576 Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|
| #
16de9fae |
| 05-Nov-2025 |
Xialin Liu <xialin.liu@arm.com> |
fix(cpus): workaround for Cortex-A76AE erratum 1931435
Cortex-A76AE erratum 1931435 is a Cat B erratum that applies to r0p0 and r1p0, it is fixed in r1p1.
This erratum can be avoided by setting CPU
fix(cpus): workaround for Cortex-A76AE erratum 1931435
Cortex-A76AE erratum 1931435 is a Cat B erratum that applies to r0p0 and r1p0, it is fixed in r1p1.
This erratum can be avoided by setting CPUACTLR_EL1[13] to 1. This bit delays instruction fetch after branch misprediction. This workaround will have a small impact on performance.
SDEN documentation: https://developer.arm.com/documentation/SDEN-1277541/1700/?lang=en
Change-Id: I1baba8752f5f2e2ab5c873030e1f00cbb8cf1e60 Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|
| #
46f364fa |
| 05-Nov-2025 |
Xialin Liu <xialin.liu@arm.com> |
fix(cpus): workaround for Cortex-A76AE erratum 1931427
Cortex-A76AE erratum 1931427 is a Cat B erratum that applies to r0p0 and r1p0, it is fixed in r1p1.
This erratum can be avoided by setting CPU
fix(cpus): workaround for Cortex-A76AE erratum 1931427
Cortex-A76AE erratum 1931427 is a Cat B erratum that applies to r0p0 and r1p0, it is fixed in r1p1.
This erratum can be avoided by setting CPUACTLR2_EL1[2] to 1. The bit to force Atomic Store operations to write-back memory to be performed in the L1 data cache.
SDEN documentation: https://developer.arm.com/documentation/SDEN-1277541/1700/?lang=en
Change-Id: I31566838f894372e5627abda8b0bea1505f11f5d Signed-off-by: Xialin Liu <xialin.liu@arm.com>
show more ...
|
| #
4384b5b9 |
| 05-Nov-2025 |
Bipin Ravi <bipin.ravi@arm.com> |
Merge changes Iad149a2c,Idcd2a07d,Id9429831 into integration
* changes: fix(cpus): workaround for Cortex-A715 erratum 3711916 fix(cpus): workaround for Cortex-A715 erratum 2376701 fix(cpus): w
Merge changes Iad149a2c,Idcd2a07d,Id9429831 into integration
* changes: fix(cpus): workaround for Cortex-A715 erratum 3711916 fix(cpus): workaround for Cortex-A715 erratum 2376701 fix(cpus): workaround for Cortex-A715 erratum 2409570
show more ...
|
| #
5c5b9e3e |
| 06-Oct-2025 |
John Powell <john.powell@arm.com> |
fix(cpus): workaround for Cortex-A715 erratum 3711916
Cortex-A715 erratum 3711916 is a Cat B erratum that applies to revisions r0p0, r1p0, r1p1, r1p2 and r1p3, and is still open.
SDEN documentation
fix(cpus): workaround for Cortex-A715 erratum 3711916
Cortex-A715 erratum 3711916 is a Cat B erratum that applies to revisions r0p0, r1p0, r1p1, r1p2 and r1p3, and is still open.
SDEN documentation: https://developer.arm.com/documentation/SDEN-2148827
Change-Id: Iad149a2c02a804b3f4f0f2f5b89e866675cb4093 Signed-off-by: John Powell <john.powell@arm.com>
show more ...
|
| #
4fca3ee4 |
| 06-Oct-2025 |
John Powell <john.powell@arm.com> |
fix(cpus): workaround for Cortex-A715 erratum 2376701
Cortex-A715 erratum 2376701 is a Cat B erratum that applies to revisions r0p0 and r1p0, and is fixed in r1p1.
This workaround is not expected t
fix(cpus): workaround for Cortex-A715 erratum 2376701
Cortex-A715 erratum 2376701 is a Cat B erratum that applies to revisions r0p0 and r1p0, and is fixed in r1p1.
This workaround is not expected to have a significant performance impact.
SDEN documentation: https://developer.arm.com/documentation/SDEN-2148827
Change-Id: Idcd2a07d269d55534dc5faa59c454d37426f2cfa Signed-off-by: John Powell <john.powell@arm.com>
show more ...
|
| #
d6e941e2 |
| 06-Oct-2025 |
John Powell <john.powell@arm.com> |
fix(cpus): workaround for Cortex-A715 erratum 2409570
Cortex-A715 erratum 2409570 is a Cat B erratum that applies to revisions r0p0 and r1p0, and is fixed in r1p1.
This workaround could have a sign
fix(cpus): workaround for Cortex-A715 erratum 2409570
Cortex-A715 erratum 2409570 is a Cat B erratum that applies to revisions r0p0 and r1p0, and is fixed in r1p1.
This workaround could have a significant performance impact for software that relies heavily on using store-release instructions.
This workaround only applies to r1p0, r0p0 has a different workaround but is not used in production hardware so has not been implemented.
SDEN documentation: https://developer.arm.com/documentation/SDEN-2148827
Change-Id: Id9429831525b842779d7b7e60f103c93be4acd67 Signed-off-by: John Powell <john.powell@arm.com>
show more ...
|
| #
cc152a38 |
| 31-Oct-2025 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "feat(cpus): add support for Neoverse-N2 prefetcher" into integration
|
| #
75384389 |
| 06-Oct-2025 |
Rohit Ner <rohitner@google.com> |
feat(cpus): add support for Neoverse-N2 prefetcher
To get accurate and repeatable L2 cache performance metrics, the L2 region prefetcher must be disabled. This prevents speculative fetches from inte
feat(cpus): add support for Neoverse-N2 prefetcher
To get accurate and repeatable L2 cache performance metrics, the L2 region prefetcher must be disabled. This prevents speculative fetches from interfering with the measurements.
This patch adds a build-time option, NEOVERSE_N2_PREFETCHER_DISABLE, to set the PF_DIS bit (bit 15) in the CPUECTLR_EL1 register for this purpose.
Change-Id: Ie7ab9e84bb29d042d0bb2ec697e0c1e39ad5032e Signed-off-by: Rohit Ner <rohitner@google.com>
show more ...
|
| #
388e822e |
| 24-Oct-2025 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge "fix(build): set ERRATA_SPECULATIVE_AT after platform.mk" into integration
|
| #
c2dc5129 |
| 23-Oct-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
fix(build): set ERRATA_SPECULATIVE_AT after platform.mk
This was introduced in 289737419: fix(build): align the cpu-ops flags with all others
That patch reduced cpu-ops.mk to an elaborate defaults.
fix(build): set ERRATA_SPECULATIVE_AT after platform.mk
This was introduced in 289737419: fix(build): align the cpu-ops flags with all others
That patch reduced cpu-ops.mk to an elaborate defaults.mk and moved it before platform.mk was evaluated. However, that patch missed the ERRATA_SPECULATIVE_AT setting which must happen after platform.mk, otherwise its value will not reflect errata state. So put it in the main Makefile with other similar flag settings after platform.mk.
Change-Id: I221dab39c417531c5a148886d3e29709ba8b51a8 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| #
15379935 |
| 20-Oct-2025 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge changes Ia8b52237,Id4b7714e into integration
* changes: fix(build): put the -target definitions in toolchain.mk fix(build): align the cpu-ops flags with all others
|
| #
28973741 |
| 10-Sep-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
fix(build): align the cpu-ops flags with all others
Since the cpu-ops file was created we've obtained the constraints.mk and cflags.mk files and we also have the defaults.mk. The cpu-ops file is not
fix(build): align the cpu-ops flags with all others
Since the cpu-ops file was created we've obtained the constraints.mk and cflags.mk files and we also have the defaults.mk. The cpu-ops file is not much different to these three, just much more complex. This patch keeps the complicated bit in cpu-ops.mk but it makes it behave like defaults.mk. The non-complicated bits (like cross referencing and compiler flags) go to their corresponding files. This centralises responsibilities and makes it nicer to keep track of.
The reason for doing this untangling is that the order of defaulting, cross referencing, and compiler flag selection is significant and we can run into problems where seemingly identical lines of code produce different outcomes.
Change-Id: Id4b7714e432a0d628d33412836fd5c93f0488970 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| #
7e8b7096 |
| 14-Oct-2025 |
Govindraj Raja <govindraj.raja@arm.com> |
Merge changes Id711e387,I531a2ee1,Ic5b48514,I81f5f663,I6c529c13, ... into integration
* changes: refactor(romlib): absorb WRAPPER_FLAGS into LDFLAGS fix(build): simplify the -target options fe
Merge changes Id711e387,I531a2ee1,Ic5b48514,I81f5f663,I6c529c13, ... into integration
* changes: refactor(romlib): absorb WRAPPER_FLAGS into LDFLAGS fix(build): simplify the -target options feat(build): allow full LTO builds with clang refactor(build): make sorting of sections generic feat(build): use clang as a linker fix(build): correctly detect that an option is missing with ld_option feat(build): pass cflags to the linker when LTO is enabled
show more ...
|
| #
6c2e5bf6 |
| 11-Apr-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
feat(build): use clang as a linker
To support LTO, the gcc binary is used as a compiler, assembler, and linker. Do the same for clang and enable LTO builds with it as a side effect.
This simplifies
feat(build): use clang as a linker
To support LTO, the gcc binary is used as a compiler, assembler, and linker. Do the same for clang and enable LTO builds with it as a side effect.
This simplifies code quite a bit as the gcc/clang different is much smaller. Support for ld/lld (if overriden with LD) is maintained.
This is a good time to convert tabs to spaces to conform to make's expectations on syntax.
Change-Id: I6c529c1393f7e9e8046ed537f871fc3ad91d599a Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| #
885ed9e0 |
| 14-Apr-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
feat(build): pass cflags to the linker when LTO is enabled
Usually, both compiling and linking happen by calling the top level gcc/clang binary. Also, both compilers quite specifically tell us to pa
feat(build): pass cflags to the linker when LTO is enabled
Usually, both compiling and linking happen by calling the top level gcc/clang binary. Also, both compilers quite specifically tell us to pass the same flags to the compilation and linking stages when we enable LTO. This is crucial for things like the undefined behaviour sanitiser. Anecdotally, in working on this, there have been a fair few errors that the compiler has only been able to catch due to warning flags being passed to the linker and building with LTO.
This patch puts the contents of TF_CFLAGS into TF_LDFLAGS when LTO is enabled. This is easier said than done, however, as we support building with clang and linking with gcc (or vice versa), so CFLAGS that are discovered for one will not work for the other. This patch works around this by splitting all flags into a per-compiler variable. Then CFLAGS and LDFLAGS get the contents of the correct one.
Some notable side effects: CPPFLAGS and TF_CFLAGS_$(ARCH) become empty and are removed, although expanding them is kept as platforms set them. Some flags become duplicate and are removed form TF_LDFLAGS (eg -O1).
The errata (--fix) flags are kept as-is but moved to cpu-ops.mk for consistency. This is because they currently don't work with LTO and will be addressed in a later patch.
Finally, ERROR_DEPRECATED's flags are also identical on all compilers so don't maintain a difference.
Change-Id: I3630729ee5f474c09d4722cd0ede6845e1725d95 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| #
46d535ef |
| 06-Oct-2025 |
Bipin Ravi <bipin.ravi@arm.com> |
Merge changes I6770567a,I4567d75b,Id65d5ba4 into integration
* changes: refactor: fix workaround order for Cortex-A720 fix(cpus): workaround for Cortex-A720 erratum 2729604 fix(cpus): workarou
Merge changes I6770567a,I4567d75b,Id65d5ba4 into integration
* changes: refactor: fix workaround order for Cortex-A720 fix(cpus): workaround for Cortex-A720 erratum 2729604 fix(cpus): workaround for Cortex-A720 erratum 3711910
show more ...
|
| #
217a79c4 |
| 30-Sep-2025 |
John Powell <john.powell@arm.com> |
fix(cpus): workaround for Cortex-A720 erratum 2729604
Cortex-A720 erratum 2729604 is a Cat B erratum that applies to revisions r0p0 and r0p1, and is fixed in r0p2.
This workaround might impact perf
fix(cpus): workaround for Cortex-A720 erratum 2729604
Cortex-A720 erratum 2729604 is a Cat B erratum that applies to revisions r0p0 and r0p1, and is fixed in r0p2.
This workaround might impact performance of workloads heavily relying on floating point division or square root operations.
SDEN documentation: https://developer.arm.com/documentation/SDEN-2439421
Change-Id: I4567d75ba9f17146d0d7bc5cdb622bb63efadc3c Signed-off-by: John Powell <john.powell@arm.com>
show more ...
|
| #
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 ...
|
| #
eb7b3484 |
| 02-Oct-2025 |
Bipin Ravi <bipin.ravi@arm.com> |
Merge changes from topic "ar/v2_errata" into integration
* changes: fix(cpus): workaround for Neoverse-V2 erratum 3701771 fix(cpus): workaround for Neoverse-V2 erratum 3841324
|
| #
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 ...
|