EFI_PHYSICAL_ADDRESS StartAddress;\r
EFI_MEMORY_TYPE MemoryType;\r
\r
- if (ConfidentialComputingGuestHas (CCAttrAmdSevEs)) {\r
+ if (ConfidentialComputingGuestHas (CCAttrAmdSevEs) &&\r
+ !ConfidentialComputingGuestHas (CCAttrAmdSevSnp))\r
+ {\r
+ //\r
+ // An SEV-ES-only guest requires the memory to be reserved. SEV-SNP, which\r
+ // is also considered SEV-ES, uses a different AP startup method, though,\r
+ // which does not have the same requirement.\r
+ //\r
MemoryType = EfiReservedMemoryType;\r
} else {\r
MemoryType = EfiBootServicesData;\r
MpInitLibWhoAmI (&ProcessorNumber);\r
CpuMpData = GetCpuMpData ();\r
MwaitSupport = IsMwaitSupport ();\r
- if (CpuMpData->SevEsIsEnabled) {\r
+ if (CpuMpData->UseSevEsAPMethod) {\r
StackStart = CpuMpData->SevEsAPResetStackStart;\r
} else {\r
StackStart = mReservedTopOfApStack;\r
CpuPause ();\r
}\r
\r
- if (CpuMpData->SevEsIsEnabled && (CpuMpData->WakeupBuffer != (UINTN)-1)) {\r
+ if (CpuMpData->UseSevEsAPMethod && (CpuMpData->WakeupBuffer != (UINTN)-1)) {\r
//\r
// There are APs present. Re-use reserved memory area below 1MB from\r
// WakeupBuffer as the area to be used for transitioning to 16-bit mode\r