Skip to content
Commit 683efc5f authored by Robin Murphy's avatar Robin Murphy
Browse files

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.

Signed-off-by: Robin Murphy's avatarRobin Murphy <robin.murphy@arm.com>
Co-developed-by: Beata Michalska's avatarBeata Michalska <beata.michalska@arm.com>
Signed-off-by: Beata Michalska's avatarBeata Michalska <beata.michalska@arm.com>
parent 2a34c150
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment