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]]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to