FROMGIT: arm64: Work around Cortex-A510 erratum 2454944
Cortex-A510 erratum 2454944 may cause clean cache lines to be erroneously written back to memory, breaking the assumptions we rely on for non-coherent DMA. Try to mitigate this by implementing special DMA ops that do their best to avoid cacheable aliases via a combination of bounce-buffering and manipulating the linear map directly, to minimise the chance of DMA-mapped pages being speculated back into caches. The other main concern is initial entry, where cache lines covering the kernel image might potentially become affected between being cleaned by the bootloader and the kernel being called, so perform some additional maintenance to be safe in that regard too. Cortex-A510 supports S2FWB, so KVM should be unaffected. Bug: 223346425 (cherry picked from commit 5bb88dd8ed70973eeb15722710a46d60951c8255 https://git.gitlab.arm.com/linux-arm/linux-rm.git arm64/2454944) Change-Id: Iffd38bf97114f7151f01c70750b465fc991c89c8 Signed-off-by:Robin Murphy <robin.murphy@arm.com> Signed-off-by:
Beata Michalska <beata.michalska@arm.com>
Loading
Please sign in to comment