Please submit pull request for this change in github edk2 project. > -----邮件原件----- > 发件人: [email protected] <[email protected]> 代表 fanhuang via > groups.io > 发送时间: 2026年1月5日 15:25 > 收件人: [email protected] > 抄送: [email protected]; [email protected]; > [email protected]; [email protected]; fanhuang > <[email protected]> > 主题: [edk2-devel] [PATCH] OvmfPkg/PlatformInitLib: Add SoftReserved > memory type support > > 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 (#121741): https://edk2.groups.io/g/devel/message/121741 Mute This Topic: https://groups.io/mt/117102324/21656 Group Owner: [email protected] Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
