Neoverse N1 Errata Workaround 1542419
authorlaurenw-arm <lauren.wehrmeister@arm.com>
Tue, 20 Aug 2019 20:51:24 +0000 (15:51 -0500)
committerDeepika Bhavnani <deepika.bhavnani@arm.com>
Fri, 4 Oct 2019 16:31:24 +0000 (19:31 +0300)
commit80942622fe760c23f0a677eac48aff37e90f4251
tree7950a0f8c0d417e2f3519ccfb136ec48ca9b9717
parent5f38b5362cff958225c6ad9b3d45a56b3d613fbf
Neoverse N1 Errata Workaround 1542419

Coherent I-cache is causing a prefetch violation where when the core
executes an instruction that has recently been modified, the core might
fetch a stale instruction which violates the ordering of instruction
fetches.

The workaround includes an instruction sequence to implementation
defined registers to trap all EL0 IC IVAU instructions to EL3 and a trap
handler to execute a TLB inner-shareable invalidation to an arbitrary
address followed by a DSB.

Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com>
Change-Id: Ic3b7cbb11cf2eaf9005523ef5578a372593ae4d6
bl31/aarch64/ea_delegate.S
docs/design/cpu-specific-build-macros.rst
include/lib/cpus/aarch64/cpu_macros.S
include/lib/cpus/aarch64/neoverse_n1.h
lib/cpus/aarch64/cpu_helpers.S
lib/cpus/aarch64/neoverse_n1.S
lib/cpus/cpu-ops.mk