FROMLIST: 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.

Cc: stable@vger.kernel.org
Signed-off-by: James Morse <james.morse@arm.com>

Bug: 208481398
Link: https://lore.kernel.org/all/20220125154040.549272-3-james.morse@arm.com/
Change-Id: I6ad53c88c034f49f43e61aa2ff3547990583c654
Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
This commit is contained in:
James Morse
2022-01-25 15:40:40 +00:00
committed by Todd Kjos
parent 2861bbc5b5
commit 2aba795b31
3 changed files with 15 additions and 0 deletions

View File

@@ -92,6 +92,8 @@ stable kernels.
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A77 | #1508412 | ARM64_ERRATUM_1508412 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A510 | #2051678 | ARM64_ERRATUM_2051678 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A710 | #2054223 | ARM64_ERRATUM_2054223 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Neoverse-N1 | #1188873,1418040| ARM64_ERRATUM_1418040 |

View File

@@ -669,6 +669,16 @@ config ARM64_ERRATUM_1508412
If unsure, say Y.
config ARM64_ERRATUM_2051678
bool "Cortex-A510: 2051678: disable Hardware Update of the page table's dirty bit"
help
This options adds the workaround for ARM Cortex-A510 erratum ARM64_ERRATUM_2051678.
Affected Coretex-A510 might not respect the ordering rules for
hardware update of the page table's dirty bit. The workaround
is to not enable the feature on affected CPUs.
If unsure, say Y.
config ARM64_WORKAROUND_TSB_FLUSH_FAILURE
bool

View File

@@ -1599,6 +1599,9 @@ static bool cpu_has_broken_dbm(void)
MIDR_ALL_VERSIONS(MIDR_CORTEX_A55),
/* Kryo4xx Silver (rdpe => r1p0) */
MIDR_REV(MIDR_QCOM_KRYO_4XX_SILVER, 0xd, 0xe),
#endif
#ifdef CONFIG_ARM64_ERRATUM_2051678
MIDR_REV_RANGE(MIDR_CORTEX_A510, 0, 0, 2),
#endif
{},
};