Will do, thanks! SeanRhodes
Technical Project Lead On Tue, 1 Feb 2022 at 22:53, Dong, Guo <guo.d...@intel.com> wrote: > > > Yes, please re-send the patch once there is any update. > > And please CC the package maintainers when you send patches to edk2 devel > list follow EDK2 process. > > > > Thanks, > > Guo > > > > *From:* Sean Rhodes <sean@starlabs.systems> > *Sent:* Saturday, January 29, 2022 1:47 AM > *To:* Dong, Guo <guo.d...@intel.com>; devel@edk2.groups.io > *Subject:* Re: [edk2-devel] [PATCH 32/32] UefiPayloadPkg: Add build > option for Above 4G Memory > > > > Thanks :) > > I've updated the PR. Do I need to resend the new patch again? > > [PATCH 33/33] UefiPayloadPkg: Add build option for Above 4G Memory > > > > When build option ABOVE_4G_MEMORY is set to true, nothing will change > > and EDKII will use all available memory. > > > > Setting it to false will create memory type information HOB in > > payload entry, so that EDKII will reserve enough memory below 4G > > for EDKII modules. This option is useful for bootloaders that are not > > fully 64-bit aware such as Qubes R4.0.4 bootloader, Zorin and Proxmox. > > > > Signed-off-by: Sean Rhodes <sean@starlabs.systems> > > --- > > .../UefiPayloadEntry/UefiPayloadEntry.c | 41 +++++++++++++++++++ > > .../UefiPayloadEntry/UefiPayloadEntry.inf | 7 ++++ > > UefiPayloadPkg/UefiPayloadPkg.dec | 3 ++ > > UefiPayloadPkg/UefiPayloadPkg.dsc | 3 ++ > > 4 files changed, 54 insertions(+) > > > > diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c > b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c > > index 0fed1e3691..d5c18dc343 100644 > > --- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c > > +++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c > > @@ -5,10 +5,46 @@ > > > > **/ > > > > +#include <Guid/MemoryTypeInformation.h> > > #include "UefiPayloadEntry.h" > > > > STATIC UINT32 mTopOfLowerUsableDram = 0; > > > > +/** > > + Function to reserve memory below 4GB for EDKII Modules. > > + > > + This causes the DXE to dispatch everything under 4GB and allows > Operating > > + System's that require EFI_LOADED_IMAGE to be under 4GB to start. > > + e.g. Xen hypervisor used in Qubes > > + > > + @param None > > + > > + @retval None > > +**/ > > +VOID > > +ForceModulesBelow4G ( > > + VOID > > + ) > > +{ > > + DEBUG ((DEBUG_INFO, "Building hob to restrict memory resorces to below > 4G.\n")); > > + EFI_MEMORY_TYPE_INFORMATION mDefaultMemoryTypeInformation[] = { > > + { EfiACPIReclaimMemory, FixedPcdGet32 > (PcdMemoryTypeEfiACPIReclaimMemory) }, > > + { EfiACPIMemoryNVS, FixedPcdGet32 > (PcdMemoryTypeEfiACPIMemoryNVS) }, > > + { EfiReservedMemoryType, FixedPcdGet32 > (PcdMemoryTypeEfiReservedMemoryType) }, > > + { EfiRuntimeServicesData, FixedPcdGet32 > (PcdMemoryTypeEfiRuntimeServicesData) }, > > + { EfiRuntimeServicesCode, FixedPcdGet32 > (PcdMemoryTypeEfiRuntimeServicesCode) }, > > + { EfiMaxMemoryType, 0 } > > + }; > > + // > > + // Create Memory Type Information HOB > > + // > > + BuildGuidDataHob ( > > + &gEfiMemoryTypeInformationGuid, > > + mDefaultMemoryTypeInformation, > > + sizeof(mDefaultMemoryTypeInformation) > > + ); > > +} > > + > > /** > > Callback function to build resource descriptor HOB > > > > @@ -438,6 +474,11 @@ _ModuleEntryPoint ( > > // Build other HOBs required by DXE > > BuildGenericHob (); > > > > + // Create a HOB to make resources for EDKII modules below 4G > > + if (!FixedPcdGetBool (PcdAbove4GMemory) ) { > > + ForceModulesBelow4G (); > > + } > > + > > // Load the DXE Core > > Status = LoadDxeCore (&DxeCoreEntryPoint); > > ASSERT_EFI_ERROR (Status); > > diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf > b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf > > index 1847d6481a..2ca47e3bb5 100644 > > --- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf > > +++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf > > @@ -86,8 +86,15 @@ > > gUefiPayloadPkgTokenSpaceGuid.PcdPayloadFdMemSize > > gUefiPayloadPkgTokenSpaceGuid.PcdBootloaderParameter > > gUefiPayloadPkgTokenSpaceGuid.PcdSystemMemoryUefiRegionSize > > + gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS > > + gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory > > + gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType > > + gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData > > + gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode > > > > gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack ## > SOMETIMES_CONSUMES > > gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy ## > SOMETIMES_CONSUMES > > gEfiMdeModulePkgTokenSpaceGuid.PcdImageProtectionPolicy ## > SOMETIMES_CONSUMES > > > > + gUefiPayloadPkgTokenSpaceGuid.PcdAbove4GMemory > > + > > diff --git a/UefiPayloadPkg/UefiPayloadPkg.dec > b/UefiPayloadPkg/UefiPayloadPkg.dec > > index 551f0a4915..653a52b5a7 100644 > > --- a/UefiPayloadPkg/UefiPayloadPkg.dec > > +++ b/UefiPayloadPkg/UefiPayloadPkg.dec > > @@ -83,6 +83,9 @@ > gUefiPayloadPkgTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000|UINT32|0x > > > > gUefiPayloadPkgTokenSpaceGuid.PcdPcdDriverFile|{ 0x57, 0x72, 0xcf, 0x80, > 0xab, 0x87, 0xf9, 0x47, 0xa3, 0xfe, 0xD5, 0x0B, 0x76, 0xd8, 0x95, 0x41 > }|VOID*|0x00000018 > > > > +# Above 4G Memory > > +gUefiPayloadPkgTokenSpaceGuid.PcdAbove4GMemory|TRUE|BOOLEAN|0x00000019 > > + > > ## FFS filename to find the default variable initial data file. > > # @Prompt FFS Name of variable initial data file > > gUefiPayloadPkgTokenSpaceGuid.PcdNvsDataFile |{ 0x1a, 0xf1, 0xb1, 0xae, > 0x42, 0xcc, 0xcf, 0x4e, 0xac, 0x60, 0xdb, 0xab, 0xf6, 0xca, 0x69, 0xe6 > }|VOID*|0x00000025 > > diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc > b/UefiPayloadPkg/UefiPayloadPkg.dsc > > index 1ce96a51c1..dad14be343 100644 > > --- a/UefiPayloadPkg/UefiPayloadPkg.dsc > > +++ b/UefiPayloadPkg/UefiPayloadPkg.dsc > > @@ -33,6 +33,7 @@ > > DEFINE UNIVERSAL_PAYLOAD = FALSE > > DEFINE SECURITY_STUB_ENABLE = TRUE > > DEFINE SMM_SUPPORT = FALSE > > + DEFINE ABOVE_4G_MEMORY = TRUE > > # > > # SBL: UEFI payload for Slim Bootloader > > # COREBOOT: UEFI payload for coreboot > > @@ -399,6 +400,8 @@ > > gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask | 0x1 > > !endif > > > > + gUefiPayloadPkgTokenSpaceGuid.PcdAbove4GMemory|$(ABOVE_4G_MEMORY) > > + > > [PcdsPatchableInModule.X64] > > gPcAtChipsetPkgTokenSpaceGuid.PcdRtcIndexRegister|$(RTC_INDEX_REGISTER) > > > gPcAtChipsetPkgTokenSpaceGuid.PcdRtcTargetRegister|$(RTC_TARGET_REGISTER) > > -- > > 2.32.0 > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#86324): https://edk2.groups.io/g/devel/message/86324 Mute This Topic: https://groups.io/mt/88757870/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-