mirror of https://github.com/acidanthera/audk.git
EmbeddedPkg/PrePiHobLib: Remove Non-RT Types from Mem Type Info HOB
Removes the following types from the memory type information HOB produced: - `EfiBootServicesCode` - `EfiBootServicesData` - `EfiLoaderCode` - `EfiLoaderData` This follows the guidance in the whitepaper "A Tour Beyond BIOS Memory Map and Practices in UEFI BIOS". https://github.com/tianocore-docs/Docs/raw/master/White_Papers/A_Tour_Beyond_BIOS_Memory_Map_And_Practices_in_UEFI_BIOS_V2.pdf "NOTE: We recommend a platform only define the ReservedMemory, ACPINvs, ACPIReclaim, RuntimeCode, RuntimeData in Memory Type Information table, because OSes only request these regions to be consistent. There is no need to add BootServicesCode, BootServicesData, LoaderCode, LoaderData in memory type information table, because these regions will not be reserved during S4 resume." Since these memory types are not tracked in memory type information any longer it also reduces the number of resets that may need to occur to update memory type buckets that are not needed. Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
This commit is contained in:
parent
d1372720a8
commit
b904377d0d
|
@ -845,7 +845,7 @@ BuildMemoryTypeInformationHob (
|
|||
VOID
|
||||
)
|
||||
{
|
||||
EFI_MEMORY_TYPE_INFORMATION Info[10];
|
||||
EFI_MEMORY_TYPE_INFORMATION Info[6];
|
||||
|
||||
Info[0].Type = EfiACPIReclaimMemory;
|
||||
Info[0].NumberOfPages = PcdGet32 (PcdMemoryTypeEfiACPIReclaimMemory);
|
||||
|
@ -857,18 +857,9 @@ BuildMemoryTypeInformationHob (
|
|||
Info[3].NumberOfPages = PcdGet32 (PcdMemoryTypeEfiRuntimeServicesData);
|
||||
Info[4].Type = EfiRuntimeServicesCode;
|
||||
Info[4].NumberOfPages = PcdGet32 (PcdMemoryTypeEfiRuntimeServicesCode);
|
||||
Info[5].Type = EfiBootServicesCode;
|
||||
Info[5].NumberOfPages = PcdGet32 (PcdMemoryTypeEfiBootServicesCode);
|
||||
Info[6].Type = EfiBootServicesData;
|
||||
Info[6].NumberOfPages = PcdGet32 (PcdMemoryTypeEfiBootServicesData);
|
||||
Info[7].Type = EfiLoaderCode;
|
||||
Info[7].NumberOfPages = PcdGet32 (PcdMemoryTypeEfiLoaderCode);
|
||||
Info[8].Type = EfiLoaderData;
|
||||
Info[8].NumberOfPages = PcdGet32 (PcdMemoryTypeEfiLoaderData);
|
||||
|
||||
// Terminator for the list
|
||||
Info[9].Type = EfiMaxMemoryType;
|
||||
Info[9].NumberOfPages = 0;
|
||||
Info[5].Type = EfiMaxMemoryType;
|
||||
Info[5].NumberOfPages = 0;
|
||||
|
||||
BuildGuidDataHob (&gEfiMemoryTypeInformationGuid, &Info, sizeof (Info));
|
||||
}
|
||||
|
|
|
@ -47,10 +47,6 @@
|
|||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType
|
||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData
|
||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode
|
||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode
|
||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData
|
||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode
|
||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData
|
||||
|
||||
[FeaturePcd]
|
||||
gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob
|
||||
|
|
Loading…
Reference in New Issue