On 09/20/19 15:16, Lendacky, Thomas wrote: > From: Tom Lendacky <thomas.lenda...@amd.com> > > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2198 > > After having transitioned from UEFI to the OS, the OS will need to boot > the APs. For an SEV-ES guest, the APs will have been parked by UEFI using > GHCB pages allocated by UEFI. The hypervisor will write to the GHCB > SW_EXITINFO2 field of the GHCB when the AP is booted. As a result, the > GHCB pages must be marked reserved so that the OS does not attempt to use > them and experience memory corruption because of the hypervisor write. > > Change the GHCB allocation from the default boot services memory to > reserved memory. > > Cc: Jordan Justen <jordan.l.jus...@intel.com> > Cc: Laszlo Ersek <ler...@redhat.com> > Cc: Ard Biesheuvel <ard.biesheu...@linaro.org> > Signed-off-by: Tom Lendacky <thomas.lenda...@amd.com> > --- > OvmfPkg/PlatformPei/AmdSev.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/OvmfPkg/PlatformPei/AmdSev.c b/OvmfPkg/PlatformPei/AmdSev.c > index d6733447bdf2..53eeb59702ae 100644 > --- a/OvmfPkg/PlatformPei/AmdSev.c > +++ b/OvmfPkg/PlatformPei/AmdSev.c > @@ -49,9 +49,11 @@ AmdSevEsInitialize ( > > // > // Allocate GHCB pages. > + // Since the pages must survive across the UEFI to OS transition > + // make them reserved. > // > GhcbPageCount = mMaxCpuCount * 2; > - GhcbBase = AllocatePages (GhcbPageCount); > + GhcbBase = AllocateReservedPages (GhcbPageCount); > ASSERT (GhcbBase); > > GhcbBasePa = (PHYSICAL_ADDRESS)(UINTN) GhcbBase; >
Reviewed-by: Laszlo Ersek <ler...@redhat.com> -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#48372): https://edk2.groups.io/g/devel/message/48372 Mute This Topic: https://groups.io/mt/34230273/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-