EfiACPIMemoryNVS\r
);\r
#endif\r
+ }\r
\r
+ if (mBootMode != BOOT_ON_S3_RESUME) {\r
//\r
// Reserve the lock box storage area\r
//\r
// Since this memory range will be used on S3 resume, it must be\r
// reserved as ACPI NVS.\r
//\r
+ // If S3 is unsupported, then various drivers might still write to the\r
+ // LockBox area. We ought to prevent DXE from serving allocation requests\r
+ // such that they would overlap the LockBox storage.\r
+ //\r
ZeroMem (\r
(VOID*)(UINTN) PcdGet32 (PcdOvmfLockBoxStorageBase),\r
(UINTN) PcdGet32 (PcdOvmfLockBoxStorageSize)\r
BuildMemoryAllocationHob (\r
(EFI_PHYSICAL_ADDRESS)(UINTN) PcdGet32 (PcdOvmfLockBoxStorageBase),\r
(UINT64)(UINTN) PcdGet32 (PcdOvmfLockBoxStorageSize),\r
- EfiACPIMemoryNVS\r
+ mS3Supported ? EfiACPIMemoryNVS : EfiBootServicesData\r
);\r
}\r
}\r