[edk2-devel] [PATCH] UefiPayloadPkg: Update EFI Memory Service conditions

Park, Aiden posted 1 patch 3 years, 2 months ago
Failed in applying to current master (apply log)
.../UefiPayloadEntry/UefiPayloadEntry.c       | 20 +++++++++++++++++++
.../UefiPayloadEntry/UefiPayloadEntry.inf     |  5 +++++
2 files changed, 25 insertions(+)
[edk2-devel] [PATCH] UefiPayloadPkg: Update EFI Memory Service conditions
Posted by Park, Aiden 3 years, 2 months ago
From: Aiden Park <aiden.park@intel.com>

The CoreInitializeMemoryServices() looks for a suitable memory region
for EFI Memory Service from the ResourceDescriptor Hob.
This patch does not allow legacy memory region for the Memory Service
and provides default memory type information to calculate minimal
required memory size properly for the Memory Service.

Signed-off-by: Aiden Park <aiden.park@intel.com>
---
 .../UefiPayloadEntry/UefiPayloadEntry.c       | 20 +++++++++++++++++++
 .../UefiPayloadEntry/UefiPayloadEntry.inf     |  5 +++++
 2 files changed, 25 insertions(+)

diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
index 805f5448d9..d2e6f962cd 100644
--- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
+++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
@@ -6,6 +6,16 @@
 **/
 
 #include "UefiPayloadEntry.h"
+#include <Guid/MemoryTypeInformation.h>
+
+EFI_MEMORY_TYPE_INFORMATION mDefaultMemoryTypeInformation[] = {
+  { EfiACPIReclaimMemory,   FixedPcdGet32 (PcdMemoryTypeEfiACPIReclaimMemory) },
+  { EfiACPIMemoryNVS,       FixedPcdGet32 (PcdMemoryTypeEfiACPIMemoryNVS) },
+  { EfiReservedMemoryType,  FixedPcdGet32 (PcdMemoryTypeEfiReservedMemoryType) },
+  { EfiRuntimeServicesData, FixedPcdGet32 (PcdMemoryTypeEfiRuntimeServicesData) },
+  { EfiRuntimeServicesCode, FixedPcdGet32 (PcdMemoryTypeEfiRuntimeServicesCode) },
+  { EfiMaxMemoryType,       0     }
+};
 
 /**
    Callback function to build resource descriptor HOB
@@ -44,6 +54,9 @@ MemInfoCallback (
     // Remove tested attribute to avoid DXE core to dispatch driver to memory above 4GB
     Attribue &= ~EFI_RESOURCE_ATTRIBUTE_TESTED;
   }
+  if (Base == 0x00) {
+    Attribue &= ~EFI_RESOURCE_ATTRIBUTE_TESTED;
+  }
 
   BuildResourceDescriptorHob (Type, Attribue, (EFI_PHYSICAL_ADDRESS)Base, Size);
   DEBUG ((DEBUG_INFO , "buildhob: base = 0x%lx, size = 0x%lx, type = 0x%x\n", Base, Size, Type));
@@ -315,6 +328,13 @@ BuildGenericHob (
   UINT8                            PhysicalAddressBits;
   EFI_RESOURCE_ATTRIBUTE_TYPE      ResourceAttribute;
 
+  //
+  // Create Memory Type Information HOB
+  //
+  BuildGuidDataHob (&gEfiMemoryTypeInformationGuid,
+                    mDefaultMemoryTypeInformation,
+                    sizeof (mDefaultMemoryTypeInformation));
+
   // The UEFI payload FV
   BuildMemoryAllocationHob (PcdGet32 (PcdPayloadFdMemBase), PcdGet32 (PcdPayloadFdMemSize), EfiBootServicesData);
 
diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
index cc59f1903b..5cb084ca51 100644
--- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
+++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
@@ -86,6 +86,11 @@
   gUefiPayloadPkgTokenSpaceGuid.PcdPayloadFdMemSize
   gUefiPayloadPkgTokenSpaceGuid.PcdPayloadStackTop
   gUefiPayloadPkgTokenSpaceGuid.PcdSystemMemoryUefiRegionSize
+  gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory
+  gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS
+  gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType
+  gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData
+  gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode
 
   gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack               ## SOMETIMES_CONSUMES
   gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy ## SOMETIMES_CONSUMES
-- 
2.20.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#70881): https://edk2.groups.io/g/devel/message/70881
Mute This Topic: https://groups.io/mt/80200968/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [PATCH] UefiPayloadPkg: Update EFI Memory Service conditions
Posted by Ni, Ray 3 years, 2 months ago
The EDKII UEFI bios flow is:
1. platform PEI creates a default memory type information HOB
2. DXE CORE reserves the memory according to the HOB for allocation
3. BDS checks whether the pre-reserved memory meets the needs and saves the real needs to a NV variable if the pre-reserved is not enough
4. Next time boot, platform PEI loads the NV variable to create the memory type information HOB

But this patch only creates a default HOB and don't provides a mechanism to consume the NV and create the HOB.

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Park, Aiden
> Sent: Friday, January 29, 2021 10:00 AM
> To: Dong, Guo <guo.dong@intel.com>; Ma, Maurice <maurice.ma@intel.com>; devel@edk2.groups.io
> Cc: Park, Aiden <aiden.park@intel.com>
> Subject: [edk2-devel] [PATCH] UefiPayloadPkg: Update EFI Memory Service conditions
> 
> From: Aiden Park <aiden.park@intel.com>
> 
> The CoreInitializeMemoryServices() looks for a suitable memory region
> for EFI Memory Service from the ResourceDescriptor Hob.
> This patch does not allow legacy memory region for the Memory Service
> and provides default memory type information to calculate minimal
> required memory size properly for the Memory Service.
> 
> Signed-off-by: Aiden Park <aiden.park@intel.com>
> ---
>  .../UefiPayloadEntry/UefiPayloadEntry.c       | 20 +++++++++++++++++++
>  .../UefiPayloadEntry/UefiPayloadEntry.inf     |  5 +++++
>  2 files changed, 25 insertions(+)
> 
> diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
> index 805f5448d9..d2e6f962cd 100644
> --- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
> +++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
> @@ -6,6 +6,16 @@
>  **/
> 
>  #include "UefiPayloadEntry.h"
> +#include <Guid/MemoryTypeInformation.h>
> +
> +EFI_MEMORY_TYPE_INFORMATION mDefaultMemoryTypeInformation[] = {
> +  { EfiACPIReclaimMemory,   FixedPcdGet32 (PcdMemoryTypeEfiACPIReclaimMemory) },
> +  { EfiACPIMemoryNVS,       FixedPcdGet32 (PcdMemoryTypeEfiACPIMemoryNVS) },
> +  { EfiReservedMemoryType,  FixedPcdGet32 (PcdMemoryTypeEfiReservedMemoryType) },
> +  { EfiRuntimeServicesData, FixedPcdGet32 (PcdMemoryTypeEfiRuntimeServicesData) },
> +  { EfiRuntimeServicesCode, FixedPcdGet32 (PcdMemoryTypeEfiRuntimeServicesCode) },
> +  { EfiMaxMemoryType,       0     }
> +};
> 
>  /**
>     Callback function to build resource descriptor HOB
> @@ -44,6 +54,9 @@ MemInfoCallback (
>      // Remove tested attribute to avoid DXE core to dispatch driver to memory above 4GB
>      Attribue &= ~EFI_RESOURCE_ATTRIBUTE_TESTED;
>    }
> +  if (Base == 0x00) {
> +    Attribue &= ~EFI_RESOURCE_ATTRIBUTE_TESTED;
> +  }
> 
>    BuildResourceDescriptorHob (Type, Attribue, (EFI_PHYSICAL_ADDRESS)Base, Size);
>    DEBUG ((DEBUG_INFO , "buildhob: base = 0x%lx, size = 0x%lx, type = 0x%x\n", Base, Size, Type));
> @@ -315,6 +328,13 @@ BuildGenericHob (
>    UINT8                            PhysicalAddressBits;
>    EFI_RESOURCE_ATTRIBUTE_TYPE      ResourceAttribute;
> 
> +  //
> +  // Create Memory Type Information HOB
> +  //
> +  BuildGuidDataHob (&gEfiMemoryTypeInformationGuid,
> +                    mDefaultMemoryTypeInformation,
> +                    sizeof (mDefaultMemoryTypeInformation));
> +
>    // The UEFI payload FV
>    BuildMemoryAllocationHob (PcdGet32 (PcdPayloadFdMemBase), PcdGet32 (PcdPayloadFdMemSize), EfiBootServicesData);
> 
> diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
> index cc59f1903b..5cb084ca51 100644
> --- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
> +++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
> @@ -86,6 +86,11 @@
>    gUefiPayloadPkgTokenSpaceGuid.PcdPayloadFdMemSize
>    gUefiPayloadPkgTokenSpaceGuid.PcdPayloadStackTop
>    gUefiPayloadPkgTokenSpaceGuid.PcdSystemMemoryUefiRegionSize
> +  gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory
> +  gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS
> +  gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType
> +  gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData
> +  gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode
> 
>    gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack               ## SOMETIMES_CONSUMES
>    gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy ## SOMETIMES_CONSUMES
> --
> 2.20.1
> 
> 
> 
> 
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#70883): https://edk2.groups.io/g/devel/message/70883
Mute This Topic: https://groups.io/mt/80200968/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [PATCH] UefiPayloadPkg: Update EFI Memory Service conditions
Posted by Park, Aiden 3 years, 2 months ago
Hi Ray,

You are absolutely right. This patch does not have the adjust/recovery path.
The reasons we have the initial values here are
1. Without default memory type, the EFI memory service look for an usable conventional memory region calculated with the minimal memory size 64KB. This patch will increase the minimal memory size condition to 1.3MB.
2. The default memory type PCD values are enough for UefiPayload memory service since most of necessary memory are already covered in pre-stage boot firmware.
3. The default memory type PCDs can be updated or overridden by a platform DSC if necessary
4. UefiPayload is using EmuVariableNvMode by default

The main goal of this patch is
-  To avoid legacy memory region to be selected for EFI memory service
-  To select Fair enough conventional memory region by increasing the minimal memory size

> -----Original Message-----
> From: Ni, Ray <ray.ni@intel.com>
> Sent: Thursday, January 28, 2021 7:45 PM
> To: devel@edk2.groups.io; Park, Aiden <aiden.park@intel.com>; Dong, Guo
> <guo.dong@intel.com>; Ma, Maurice <maurice.ma@intel.com>
> Subject: RE: [edk2-devel] [PATCH] UefiPayloadPkg: Update EFI Memory Service
> conditions
> 
> The EDKII UEFI bios flow is:
> 1. platform PEI creates a default memory type information HOB 2. DXE CORE
> reserves the memory according to the HOB for allocation 3. BDS checks whether
> the pre-reserved memory meets the needs and saves the real needs to a NV
> variable if the pre-reserved is not enough 4. Next time boot, platform PEI loads
> the NV variable to create the memory type information HOB
> 
> But this patch only creates a default HOB and don't provides a mechanism to
> consume the NV and create the HOB.
> 
> > -----Original Message-----
> > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Park,
> > Aiden
> > Sent: Friday, January 29, 2021 10:00 AM
> > To: Dong, Guo <guo.dong@intel.com>; Ma, Maurice
> > <maurice.ma@intel.com>; devel@edk2.groups.io
> > Cc: Park, Aiden <aiden.park@intel.com>
> > Subject: [edk2-devel] [PATCH] UefiPayloadPkg: Update EFI Memory
> > Service conditions
> >
> > From: Aiden Park <aiden.park@intel.com>
> >
> > The CoreInitializeMemoryServices() looks for a suitable memory region
> > for EFI Memory Service from the ResourceDescriptor Hob.
> > This patch does not allow legacy memory region for the Memory Service
> > and provides default memory type information to calculate minimal
> > required memory size properly for the Memory Service.
> >
> > Signed-off-by: Aiden Park <aiden.park@intel.com>
> > ---
> >  .../UefiPayloadEntry/UefiPayloadEntry.c       | 20 +++++++++++++++++++
> >  .../UefiPayloadEntry/UefiPayloadEntry.inf     |  5 +++++
> >  2 files changed, 25 insertions(+)
> >
> > diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
> > b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
> > index 805f5448d9..d2e6f962cd 100644
> > --- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
> > +++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
> > @@ -6,6 +6,16 @@
> >  **/
> >
> >  #include "UefiPayloadEntry.h"
> > +#include <Guid/MemoryTypeInformation.h>
> > +
> > +EFI_MEMORY_TYPE_INFORMATION mDefaultMemoryTypeInformation[] = {
> > +  { EfiACPIReclaimMemory,   FixedPcdGet32
> (PcdMemoryTypeEfiACPIReclaimMemory) },
> > +  { EfiACPIMemoryNVS,       FixedPcdGet32
> (PcdMemoryTypeEfiACPIMemoryNVS) },
> > +  { EfiReservedMemoryType,  FixedPcdGet32
> > +(PcdMemoryTypeEfiReservedMemoryType) },
> > +  { EfiRuntimeServicesData, FixedPcdGet32
> > +(PcdMemoryTypeEfiRuntimeServicesData) },
> > +  { EfiRuntimeServicesCode, FixedPcdGet32
> (PcdMemoryTypeEfiRuntimeServicesCode) },
> > +  { EfiMaxMemoryType,       0     }
> > +};
> >
> >  /**
> >     Callback function to build resource descriptor HOB @@ -44,6 +54,9
> > @@ MemInfoCallback (
> >      // Remove tested attribute to avoid DXE core to dispatch driver to memory
> above 4GB
> >      Attribue &= ~EFI_RESOURCE_ATTRIBUTE_TESTED;
> >    }
> > +  if (Base == 0x00) {
> > +    Attribue &= ~EFI_RESOURCE_ATTRIBUTE_TESTED;  }
> >
> >    BuildResourceDescriptorHob (Type, Attribue, (EFI_PHYSICAL_ADDRESS)Base,
> Size);
> >    DEBUG ((DEBUG_INFO , "buildhob: base = 0x%lx, size = 0x%lx, type =
> > 0x%x\n", Base, Size, Type)); @@ -315,6 +328,13 @@ BuildGenericHob (
> >    UINT8                            PhysicalAddressBits;
> >    EFI_RESOURCE_ATTRIBUTE_TYPE      ResourceAttribute;
> >
> > +  //
> > +  // Create Memory Type Information HOB  //  BuildGuidDataHob
> > + (&gEfiMemoryTypeInformationGuid,
> > +                    mDefaultMemoryTypeInformation,
> > +                    sizeof (mDefaultMemoryTypeInformation));
> > +
> >    // The UEFI payload FV
> >    BuildMemoryAllocationHob (PcdGet32 (PcdPayloadFdMemBase), PcdGet32
> > (PcdPayloadFdMemSize), EfiBootServicesData);
> >
> > diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
> > b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
> > index cc59f1903b..5cb084ca51 100644
> > --- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
> > +++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
> > @@ -86,6 +86,11 @@
> >    gUefiPayloadPkgTokenSpaceGuid.PcdPayloadFdMemSize
> >    gUefiPayloadPkgTokenSpaceGuid.PcdPayloadStackTop
> >    gUefiPayloadPkgTokenSpaceGuid.PcdSystemMemoryUefiRegionSize
> > +  gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory
> > +  gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS
> > +  gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType
> > +  gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData
> > +  gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode
> >
> >    gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack               ##
> SOMETIMES_CONSUMES
> >    gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy ##
> > SOMETIMES_CONSUMES
> > --
> > 2.20.1
> >
> >
> >
> > 
> >

Best Regards,
Aiden


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#70914): https://edk2.groups.io/g/devel/message/70914
Mute This Topic: https://groups.io/mt/80200968/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [PATCH] UefiPayloadPkg: Update EFI Memory Service conditions
Posted by Benjamin You 3 years, 2 months ago
Hi Aiden,

Could you please insert some comments for below codes?

+  if (Base == 0x00) {
+    Attribue &= ~EFI_RESOURCE_ATTRIBUTE_TESTED;  }

Also, is this removal of legacy region to protect coreboot data structures in
the region?

Thanks,

- ben

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Park, Aiden
> Sent: Saturday, January 30, 2021 5:08 AM
> To: Ni, Ray <ray.ni@intel.com>; devel@edk2.groups.io; Dong, Guo
> <guo.dong@intel.com>; Ma, Maurice <maurice.ma@intel.com>
> Subject: Re: [edk2-devel] [PATCH] UefiPayloadPkg: Update EFI Memory Service
> conditions
> 
> Hi Ray,
> 
> You are absolutely right. This patch does not have the adjust/recovery path.
> The reasons we have the initial values here are
> 1. Without default memory type, the EFI memory service look for an usable
> conventional memory region calculated with the minimal memory size 64KB.
> This patch will increase the minimal memory size condition to 1.3MB.
> 2. The default memory type PCD values are enough for UefiPayload memory
> service since most of necessary memory are already covered in pre-stage boot
> firmware.
> 3. The default memory type PCDs can be updated or overridden by a platform
> DSC if necessary
> 4. UefiPayload is using EmuVariableNvMode by default
> 
> The main goal of this patch is
> -  To avoid legacy memory region to be selected for EFI memory service
> -  To select Fair enough conventional memory region by increasing the minimal
> memory size
> 
> > -----Original Message-----
> > From: Ni, Ray <ray.ni@intel.com>
> > Sent: Thursday, January 28, 2021 7:45 PM
> > To: devel@edk2.groups.io; Park, Aiden <aiden.park@intel.com>; Dong, Guo
> > <guo.dong@intel.com>; Ma, Maurice <maurice.ma@intel.com>
> > Subject: RE: [edk2-devel] [PATCH] UefiPayloadPkg: Update EFI Memory
> Service
> > conditions
> >
> > The EDKII UEFI bios flow is:
> > 1. platform PEI creates a default memory type information HOB 2. DXE CORE
> > reserves the memory according to the HOB for allocation 3. BDS checks
> whether
> > the pre-reserved memory meets the needs and saves the real needs to a NV
> > variable if the pre-reserved is not enough 4. Next time boot, platform PEI
> loads
> > the NV variable to create the memory type information HOB
> >
> > But this patch only creates a default HOB and don't provides a mechanism to
> > consume the NV and create the HOB.
> >
> > > -----Original Message-----
> > > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Park,
> > > Aiden
> > > Sent: Friday, January 29, 2021 10:00 AM
> > > To: Dong, Guo <guo.dong@intel.com>; Ma, Maurice
> > > <maurice.ma@intel.com>; devel@edk2.groups.io
> > > Cc: Park, Aiden <aiden.park@intel.com>
> > > Subject: [edk2-devel] [PATCH] UefiPayloadPkg: Update EFI Memory
> > > Service conditions
> > >
> > > From: Aiden Park <aiden.park@intel.com>
> > >
> > > The CoreInitializeMemoryServices() looks for a suitable memory region
> > > for EFI Memory Service from the ResourceDescriptor Hob.
> > > This patch does not allow legacy memory region for the Memory Service
> > > and provides default memory type information to calculate minimal
> > > required memory size properly for the Memory Service.
> > >
> > > Signed-off-by: Aiden Park <aiden.park@intel.com>
> > > ---
> > >  .../UefiPayloadEntry/UefiPayloadEntry.c       | 20 +++++++++++++++++++
> > >  .../UefiPayloadEntry/UefiPayloadEntry.inf     |  5 +++++
> > >  2 files changed, 25 insertions(+)
> > >
> > > diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
> > > b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
> > > index 805f5448d9..d2e6f962cd 100644
> > > --- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
> > > +++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
> > > @@ -6,6 +6,16 @@
> > >  **/
> > >
> > >  #include "UefiPayloadEntry.h"
> > > +#include <Guid/MemoryTypeInformation.h>
> > > +
> > > +EFI_MEMORY_TYPE_INFORMATION mDefaultMemoryTypeInformation[] =
> {
> > > +  { EfiACPIReclaimMemory,   FixedPcdGet32
> > (PcdMemoryTypeEfiACPIReclaimMemory) },
> > > +  { EfiACPIMemoryNVS,       FixedPcdGet32
> > (PcdMemoryTypeEfiACPIMemoryNVS) },
> > > +  { EfiReservedMemoryType,  FixedPcdGet32
> > > +(PcdMemoryTypeEfiReservedMemoryType) },
> > > +  { EfiRuntimeServicesData, FixedPcdGet32
> > > +(PcdMemoryTypeEfiRuntimeServicesData) },
> > > +  { EfiRuntimeServicesCode, FixedPcdGet32
> > (PcdMemoryTypeEfiRuntimeServicesCode) },
> > > +  { EfiMaxMemoryType,       0     }
> > > +};
> > >
> > >  /**
> > >     Callback function to build resource descriptor HOB @@ -44,6 +54,9
> > > @@ MemInfoCallback (
> > >      // Remove tested attribute to avoid DXE core to dispatch driver to
> memory
> > above 4GB
> > >      Attribue &= ~EFI_RESOURCE_ATTRIBUTE_TESTED;
> > >    }
> > > +  if (Base == 0x00) {
> > > +    Attribue &= ~EFI_RESOURCE_ATTRIBUTE_TESTED;  }
> > >
> > >    BuildResourceDescriptorHob (Type, Attribue,
> (EFI_PHYSICAL_ADDRESS)Base,
> > Size);
> > >    DEBUG ((DEBUG_INFO , "buildhob: base = 0x%lx, size = 0x%lx, type =
> > > 0x%x\n", Base, Size, Type)); @@ -315,6 +328,13 @@ BuildGenericHob (
> > >    UINT8                            PhysicalAddressBits;
> > >    EFI_RESOURCE_ATTRIBUTE_TYPE      ResourceAttribute;
> > >
> > > +  //
> > > +  // Create Memory Type Information HOB  //  BuildGuidDataHob
> > > + (&gEfiMemoryTypeInformationGuid,
> > > +                    mDefaultMemoryTypeInformation,
> > > +                    sizeof (mDefaultMemoryTypeInformation));
> > > +
> > >    // The UEFI payload FV
> > >    BuildMemoryAllocationHob (PcdGet32 (PcdPayloadFdMemBase), PcdGet32
> > > (PcdPayloadFdMemSize), EfiBootServicesData);
> > >
> > > diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
> > > b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
> > > index cc59f1903b..5cb084ca51 100644
> > > --- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
> > > +++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
> > > @@ -86,6 +86,11 @@
> > >    gUefiPayloadPkgTokenSpaceGuid.PcdPayloadFdMemSize
> > >    gUefiPayloadPkgTokenSpaceGuid.PcdPayloadStackTop
> > >    gUefiPayloadPkgTokenSpaceGuid.PcdSystemMemoryUefiRegionSize
> > > +
> gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory
> > > +  gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS
> > > +
> gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType
> > > +
> gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData
> > > +
> gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode
> > >
> > >    gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack               ##
> > SOMETIMES_CONSUMES
> > >    gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy ##
> > > SOMETIMES_CONSUMES
> > > --
> > > 2.20.1
> > >
> > >
> > >
> > >
> > >
> 
> Best Regards,
> Aiden
> 
> 
> 
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#70925): https://edk2.groups.io/g/devel/message/70925
Mute This Topic: https://groups.io/mt/80200968/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-