Add support for E820 Soft Reserved Memory regions in OVMF firmware. This memory type is used by QEMU to expose Specific Purpose Memory (SPM).
Changes: - Add EfiAcpiAddressRangeSoftReserved to EFI_ACPI_MEMORY_TYPE enum - Handle SoftReserved in PlatformAddHobCB() by creating Resource HOBs with standard memory attributes plus EFI_RESOURCE_ATTRIBUTE_SPECIAL_PURPOSE Signed-off-by: FangSheng Huang <[email protected]> --- OvmfPkg/Include/IndustryStandard/E820.h | 3 ++- OvmfPkg/Library/PlatformInitLib/MemDetect.c | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/OvmfPkg/Include/IndustryStandard/E820.h b/OvmfPkg/Include/IndustryStandard/E820.h index e41be5af3c..34baf5c35f 100644 --- a/OvmfPkg/Include/IndustryStandard/E820.h +++ b/OvmfPkg/Include/IndustryStandard/E820.h @@ -16,7 +16,8 @@ typedef enum { EfiAcpiAddressRangeMemory = 1, EfiAcpiAddressRangeReserved = 2, EfiAcpiAddressRangeACPI = 3, - EfiAcpiAddressRangeNVS = 4 + EfiAcpiAddressRangeNVS = 4, + EfiAcpiAddressRangeSoftReserved = 0xEFFFFFFF } EFI_ACPI_MEMORY_TYPE; typedef struct { diff --git a/OvmfPkg/Library/PlatformInitLib/MemDetect.c b/OvmfPkg/Library/PlatformInitLib/MemDetect.c index 937e2b77a5..a3753dda58 100644 --- a/OvmfPkg/Library/PlatformInitLib/MemDetect.c +++ b/OvmfPkg/Library/PlatformInitLib/MemDetect.c @@ -218,6 +218,22 @@ PlatformAddHobCB ( BuildResourceDescriptorHob (EFI_RESOURCE_MEMORY_RESERVED, 0, Base, End - Base); DEBUG ((DEBUG_INFO, "%a: Reserved [0x%Lx, 0x%Lx)\n", __func__, Base, End)); break; + case EfiAcpiAddressRangeSoftReserved: + BuildResourceDescriptorHob ( + EFI_RESOURCE_SYSTEM_MEMORY, + EFI_RESOURCE_ATTRIBUTE_PRESENT | + EFI_RESOURCE_ATTRIBUTE_INITIALIZED | + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE | + EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE | + EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE | + EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE | + EFI_RESOURCE_ATTRIBUTE_TESTED | + EFI_RESOURCE_ATTRIBUTE_SPECIAL_PURPOSE, + Base, + End - Base + ); + DEBUG ((DEBUG_INFO, "%a: SoftReserved [0x%Lx, 0x%Lx)\n", __func__, Base, End)); + break; default: DEBUG (( DEBUG_WARN, -- 2.34.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#121739): https://edk2.groups.io/g/devel/message/121739 Mute This Topic: https://groups.io/mt/117084418/21656 Group Owner: [email protected] Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
