diff options
author | Will Deacon <will.deacon@arm.com> | 2010-09-14 04:51:43 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-09-17 05:16:51 -0400 |
commit | 9f05027c7cb3cfe56a31892bd83391138d41a667 (patch) | |
tree | efe9361be8e1b8d78ff44ef13a1e46e1a4b9b23a /arch/arm/Kconfig | |
parent | 6491848d1ab246f6d243ddef25085fc1d836ff2c (diff) |
ARM: 6388/1: errata: DMB operation may be faulty
On versions of the Cortex-A9 up to and including r2p2, under rare
circumstances, a DMB instruction between 2 write operations may not
ensure the correct visibility ordering of the 2 writes.
This workaround sets a bit in the diagnostic register of the Cortex-A9,
causing the DMB instruction to behave like a DSB, which functions
correctly on the affected cores.
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/Kconfig')
-rw-r--r-- | arch/arm/Kconfig | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 553b7cf17bfb..ab14c0a5d21e 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -1051,6 +1051,18 @@ config ARM_ERRATA_460075 | |||
1051 | ACTLR register. Note that setting specific bits in the ACTLR register | 1051 | ACTLR register. Note that setting specific bits in the ACTLR register |
1052 | may not be available in non-secure mode. | 1052 | may not be available in non-secure mode. |
1053 | 1053 | ||
1054 | config ARM_ERRATA_742230 | ||
1055 | bool "ARM errata: DMB operation may be faulty" | ||
1056 | depends on CPU_V7 && SMP | ||
1057 | help | ||
1058 | This option enables the workaround for the 742230 Cortex-A9 | ||
1059 | (r1p0..r2p2) erratum. Under rare circumstances, a DMB instruction | ||
1060 | between two write operations may not ensure the correct visibility | ||
1061 | ordering of the two writes. This workaround sets a specific bit in | ||
1062 | the diagnostic register of the Cortex-A9 which causes the DMB | ||
1063 | instruction to behave as a DSB, ensuring the correct behaviour of | ||
1064 | the two writes. | ||
1065 | |||
1054 | config PL310_ERRATA_588369 | 1066 | config PL310_ERRATA_588369 |
1055 | bool "Clean & Invalidate maintenance operations do not invalidate clean lines" | 1067 | bool "Clean & Invalidate maintenance operations do not invalidate clean lines" |
1056 | depends on CACHE_L2X0 && ARCH_OMAP4 | 1068 | depends on CACHE_L2X0 && ARCH_OMAP4 |