Skip to content

Commit 297ae1e

Browse files
James Morsectmarinas
authored andcommitted
arm64: cpufeature: List early Cortex-A510 parts as having broken dbm
Versions of Cortex-A510 before r0p3 are affected by a hardware erratum where the hardware update of the dirty bit is not correctly ordered. Add these cpus to the cpu_has_broken_dbm list. Signed-off-by: James Morse <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Catalin Marinas <[email protected]>
1 parent df20597 commit 297ae1e

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

Documentation/arm64/silicon-errata.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@ stable kernels.
9898
+----------------+-----------------+-----------------+-----------------------------+
9999
| ARM | Cortex-A77 | #1508412 | ARM64_ERRATUM_1508412 |
100100
+----------------+-----------------+-----------------+-----------------------------+
101+
| ARM | Cortex-A510 | #2051678 | ARM64_ERRATUM_2051678 |
102+
+----------------+-----------------+-----------------+-----------------------------+
101103
| ARM | Cortex-A710 | #2119858 | ARM64_ERRATUM_2119858 |
102104
+----------------+-----------------+-----------------+-----------------------------+
103105
| ARM | Cortex-A710 | #2054223 | ARM64_ERRATUM_2054223 |

arch/arm64/Kconfig

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -670,6 +670,16 @@ config ARM64_ERRATUM_1508412
670670
config ARM64_WORKAROUND_TRBE_OVERWRITE_FILL_MODE
671671
bool
672672

673+
config ARM64_ERRATUM_2051678
674+
bool "Cortex-A510: 2051678: disable Hardware Update of the page table dirty bit"
675+
help
676+
This options adds the workaround for ARM Cortex-A510 erratum ARM64_ERRATUM_2051678.
677+
Affected Coretex-A510 might not respect the ordering rules for
678+
hardware update of the page table's dirty bit. The workaround
679+
is to not enable the feature on affected CPUs.
680+
681+
If unsure, say Y.
682+
673683
config ARM64_ERRATUM_2119858
674684
bool "Cortex-A710/X2: 2119858: workaround TRBE overwriting trace data in FILL mode"
675685
default y

arch/arm64/kernel/cpufeature.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1645,6 +1645,9 @@ static bool cpu_has_broken_dbm(void)
16451645
MIDR_ALL_VERSIONS(MIDR_CORTEX_A55),
16461646
/* Kryo4xx Silver (rdpe => r1p0) */
16471647
MIDR_REV(MIDR_QCOM_KRYO_4XX_SILVER, 0xd, 0xe),
1648+
#endif
1649+
#ifdef CONFIG_ARM64_ERRATUM_2051678
1650+
MIDR_REV_RANGE(MIDR_CORTEX_A510, 0, 0, 2),
16481651
#endif
16491652
{},
16501653
};

0 commit comments

Comments
 (0)