]> xenbits.xensource.com Git - people/iwj/xen.git/commit
xen/arm: Implement workaround for Cortex-A76 erratum 1165522
authorJulien Grall <julien.grall@arm.com>
Mon, 28 Jan 2019 11:50:25 +0000 (11:50 +0000)
committerStefano Stabellini <sstabellini@kernel.org>
Tue, 29 Jan 2019 00:54:03 +0000 (16:54 -0800)
commita18be06acab6ce7d5f035d4df538397a548d46ea
tree04747a57a0731d8bfa9ac334f798a9fdfca3cdca
parent60bb42bb7569596a7141e73eff8029a401e591cb
xen/arm: Implement workaround for Cortex-A76 erratum 1165522

Early version of Cortex-A76 can end-up with corrupt TLBs if they
speculate an AT instruction while the S1/S2 system registers are in an
inconsistent state.

This can happen during guest context switch and when invalidating the
TLBs for other than the current VMID.

The workaround implemented in Xen will:
    - Use an empty stage-2 with a reserved VMID while context switching
    between 2 guests
    - Use an empty stage-2 with the VMID where TLBs need to be flushed

Signed-off-by: Julien Grall <julien.grall@arm.com>
Reviewed-by: Andrii Anisov <andrii_anisov@epam.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
docs/misc/arm/silicon-errata.txt
xen/arch/arm/cpuerrata.c
xen/arch/arm/domain.c
xen/arch/arm/p2m.c
xen/include/asm-arm/cpufeature.h
xen/include/asm-arm/processor.h