]> git.proxmox.com Git - mirror_edk2.git/commit - ArmVirtPkg/PrePi/PrePi.c
ArmVirtualizationPkg: Xen: shuffle init order to deal with incoherency
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Tue, 14 Apr 2015 11:56:56 +0000 (11:56 +0000)
committeroliviermartin <oliviermartin@Edk2>
Tue, 14 Apr 2015 11:56:56 +0000 (11:56 +0000)
commitc9e5618f84b0cb54a9ac2d7604f7b7e7859b45a7
tree80d0bbbe7ec148fdadbb79dcd6a8a9ae305f30c6
parente1d529909966027d2d6a2b0095dcb7a8b0886fa5
ArmVirtualizationPkg: Xen: shuffle init order to deal with incoherency

In order to prevent memory corruption issues caused by the fact that,
under virtualization, the guest is incoherent with the hypervisor's view
of memory until it enables its caches and MMU, this patch reshuffles the
init sequence so that the Xen shared memory regions are not touched
before the caches and MMU are enabled.

In addition, the loaded image itself is invalidated by virtual address,
to ensure that any runtime changes (such as the applied relocations) will
not suddenly become invisible once we turn the caches on.

Contributed-under: TianoCore Contribution Agreement 1.0
Reviewed-by: Olivier Martin <Olivier.Martin@arm.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17178 6f19259b-4bc3-4df7-8a09-765794883524
ArmPlatformPkg/ArmVirtualizationPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf
ArmPlatformPkg/ArmVirtualizationPkg/PrePi/PrePi.c