arm64: Add workaround for Cortex-A76 erratum 1286807
authorCatalin Marinas <catalin.marinas@arm.com>
Mon, 19 Nov 2018 11:27:28 +0000 (11:27 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Thu, 29 Nov 2018 16:45:45 +0000 (16:45 +0000)
commitce8c80c536dac9f325a051b30bf7730ee505eddc
treeb08f46fdd50ec86694cbd8fbe78c4b84daced233
parent2e6e902d185027f8e3cb8b7305238f7e35d6a436
arm64: Add workaround for Cortex-A76 erratum 1286807

On the affected Cortex-A76 cores (r0p0 to r3p0), if a virtual address
for a cacheable mapping of a location is being accessed by a core while
another core is remapping the virtual address to a new physical page
using the recommended break-before-make sequence, then under very rare
circumstances TLBI+DSB completes before a read using the translation
being invalidated has been observed by other observers. The workaround
repeats the TLBI+DSB operation and is shared with the Qualcomm Falkor
erratum 1009

Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Documentation/arm64/silicon-errata.txt
arch/arm64/Kconfig
arch/arm64/include/asm/tlbflush.h
arch/arm64/kernel/cpu_errata.c