summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLauren Wehrmeister <lauren.wehrmeister@arm.com>2026-01-06 18:59:37 +0000
committerTrustedFirmware Code Review <review@review.trustedfirmware.org>2026-01-06 18:59:37 +0000
commitea5a7ab16ccdceac1229b1d61d44b8d79bf7a2c7 (patch)
treee162559480880898722e9bed948c0e7c253e3142
parenta4defaefe65379554f464e9cf2b4f4d9818740aa (diff)
parent1c0c1b5467a8eca071962a532b6c69b30aa0482b (diff)
downloadarm-trusted-firmware-ea5a7ab16ccdceac1229b1d61d44b8d79bf7a2c7.tar.gz
arm-trusted-firmware-ea5a7ab16ccdceac1229b1d61d44b8d79bf7a2c7.zip
Merge changes from topic "xl/cortex-x3-errata" into integration
* changes: fix(cpus): workaround for Cortex-X3 erratum 4302966 fix(cpus): workaround for Cortex-X3 erratum 3888125
-rw-r--r--docs/design/cpu-specific-build-macros.rst10
-rw-r--r--lib/cpus/aarch64/cortex_x3.S14
-rw-r--r--lib/cpus/cpu-ops.mk10
3 files changed, 31 insertions, 3 deletions
diff --git a/docs/design/cpu-specific-build-macros.rst b/docs/design/cpu-specific-build-macros.rst
index fbd1a4366..8c65b171c 100644
--- a/docs/design/cpu-specific-build-macros.rst
+++ b/docs/design/cpu-specific-build-macros.rst
@@ -986,6 +986,14 @@ For Cortex-X3, the following errata build flags are defined :
CPU. This needs to be enabled only for revisions r0p0, r1p0 and r1p1 of
the CPU. It is fixed in r1p2.
+- ``ERRATA_X3_3888125``: This applies errata 3888125 workaround to Cortex-X3
+ CPU. This needs to be enabled for revisions r0p0, r1p0, r1p1 and r1p2
+ of the CPU. It is still open.
+
+- ``ERRATA_X3_4302966``: This applies errata 4302966 workaround to Cortex-X3
+ CPU. This needs to be enabled for revisions r0p0, r1p0, r1p1 and r1p2
+ of the CPU. It is still open.
+
For Cortex-X4, the following errata build flags are defined :
- ``ERRATA_X4_2701112``: This applies erratum 2701112 workaround to Cortex-X4
@@ -1514,7 +1522,7 @@ GIC Errata Workarounds
--------------
-*Copyright (c) 2014-2025, Arm Limited and Contributors. All rights reserved.*
+*Copyright (c) 2014-2026, Arm Limited and Contributors. All rights reserved.*
.. _CVE-2017-5715: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5715
.. _CVE-2018-3639: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-3639
diff --git a/lib/cpus/aarch64/cortex_x3.S b/lib/cpus/aarch64/cortex_x3.S
index 015715b53..b89eb982b 100644
--- a/lib/cpus/aarch64/cortex_x3.S
+++ b/lib/cpus/aarch64/cortex_x3.S
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021-2025, Arm Limited. All rights reserved.
+ * Copyright (c) 2021-2026, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
@@ -118,6 +118,18 @@ workaround_reset_end cortex_x3, ERRATUM(3827463)
check_erratum_ls cortex_x3, ERRATUM(3827463), CPU_REV(1, 1)
+workaround_reset_start cortex_x3, ERRATUM(3888125), ERRATA_X3_3888125
+ sysreg_bit_set CORTEX_X3_CPUACTLR2_EL1, BIT(22)
+workaround_reset_end cortex_x3, ERRATUM(3888125)
+
+check_erratum_ls cortex_x3, ERRATUM(3888125), CPU_REV(1, 2)
+
+workaround_reset_start cortex_x3, ERRATUM(4302966), ERRATA_X3_4302966
+ sysreg_bit_set CORTEX_X3_CPUACTLR5_EL1, BIT(50)
+workaround_reset_end cortex_x3, ERRATUM(4302966)
+
+check_erratum_ls cortex_x3, ERRATUM(4302966), CPU_REV(1, 2)
+
workaround_reset_start cortex_x3, CVE(2022, 23960), WORKAROUND_CVE_2022_23960
#if IMAGE_BL31
override_vector_table wa_cve_vbar_cortex_x3
diff --git a/lib/cpus/cpu-ops.mk b/lib/cpus/cpu-ops.mk
index 4cb318a68..b5ed8f6cc 100644
--- a/lib/cpus/cpu-ops.mk
+++ b/lib/cpus/cpu-ops.mk
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2014-2025, Arm Limited and Contributors. All rights reserved.
+# Copyright (c) 2014-2026, Arm Limited and Contributors. All rights reserved.
# Copyright (c) 2020-2022, NVIDIA Corporation. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
@@ -987,6 +987,14 @@ CPU_FLAG_LIST += ERRATA_X3_3692984
# to revisions r0p0, r1p0 and r1p1 of the Cortex-X3 cpu. It is fixed in r1p2.
CPU_FLAG_LIST += ERRATA_X3_3827463
+# Flag to apply erratum 3888125 workaround on reset. This erratum applies
+# to revisions r0p0, r1p0, r1p1, r1p2 of the Cortex-X3 cpu and is still open.
+CPU_FLAG_LIST += ERRATA_X3_3888125
+
+# Flag to apply erratum 4302966 workaround on reset. This erratum applies
+# to revisions r0p0, r1p0, r1p1, r1p2 of the Cortex-X3 cpu and is still open.
+CPU_FLAG_LIST += ERRATA_X3_4302966
+
# Flag to apply erratum 2701112 workaround for platforms that do not use an
# Arm interconnect IP. This erratum applies to revisions r0p0 of the Cortex-X4
# cpu and is fixed in r0p1.