Skip to content

Commit 171df58

Browse files
James Morsectmarinas
authored andcommitted
arm64: errata: Add Cortex-A55 to the repeat tlbi list
Cortex-A55 is affected by an erratum where in rare circumstances the CPUs may not handle a race between a break-before-make sequence on one CPU, and another CPU accessing the same page. This could allow a store to a page that has been unmapped. Work around this by adding the affected CPUs to the list that needs TLB sequences to be done twice. Signed-off-by: James Morse <[email protected]> Cc: <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Catalin Marinas <[email protected]>
1 parent e1567b4 commit 171df58

File tree

3 files changed

+24
-0
lines changed

3 files changed

+24
-0
lines changed

Documentation/arm64/silicon-errata.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ stable kernels.
7676
+----------------+-----------------+-----------------+-----------------------------+
7777
| ARM | Cortex-A55 | #1530923 | ARM64_ERRATUM_1530923 |
7878
+----------------+-----------------+-----------------+-----------------------------+
79+
| ARM | Cortex-A55 | #2441007 | ARM64_ERRATUM_2441007 |
80+
+----------------+-----------------+-----------------+-----------------------------+
7981
| ARM | Cortex-A57 | #832075 | ARM64_ERRATUM_832075 |
8082
+----------------+-----------------+-----------------+-----------------------------+
8183
| ARM | Cortex-A57 | #852523 | N/A |

arch/arm64/Kconfig

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,23 @@ config ARM64_ERRATUM_1530923
634634
config ARM64_WORKAROUND_REPEAT_TLBI
635635
bool
636636

637+
config ARM64_ERRATUM_2441007
638+
bool "Cortex-A55: Completion of affected memory accesses might not be guaranteed by completion of a TLBI"
639+
default y
640+
select ARM64_WORKAROUND_REPEAT_TLBI
641+
help
642+
This option adds a workaround for ARM Cortex-A55 erratum #2441007.
643+
644+
Under very rare circumstances, affected Cortex-A55 CPUs
645+
may not handle a race between a break-before-make sequence on one
646+
CPU, and another CPU accessing the same page. This could allow a
647+
store to a page that has been unmapped.
648+
649+
Work around this by adding the affected CPUs to the list that needs
650+
TLB sequences to be done twice.
651+
652+
If unsure, say Y.
653+
637654
config ARM64_ERRATUM_1286807
638655
bool "Cortex-A76: Modification of the translation table for a virtual address might lead to read-after-read ordering violation"
639656
default y

arch/arm64/kernel/cpu_errata.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,11 @@ static const struct arm64_cpu_capabilities arm64_repeat_tlbi_list[] = {
230230
ERRATA_MIDR_RANGE(MIDR_QCOM_KRYO_4XX_GOLD, 0xc, 0xe, 0xf, 0xe),
231231
},
232232
#endif
233+
#ifdef CONFIG_ARM64_ERRATUM_2441007
234+
{
235+
ERRATA_MIDR_ALL_VERSIONS(MIDR_CORTEX_A55),
236+
},
237+
#endif
233238
#ifdef CONFIG_ARM64_ERRATUM_2441009
234239
{
235240
/* Cortex-A510 r0p0 -> r1p1. Fixed in r1p2 */

0 commit comments

Comments
 (0)