Jeff: I have no better solution than your proposal for this problem. So, this patch is good to me. Reviewed-by: Liming Gao <gaolim...@byosoft.com.cn>
Thanks Liming > -----邮件原件----- > 发件人: Jeff Brasen <jbra...@nvidia.com> > 发送时间: 2023年9月12日 4:14 > 收件人: devel@edk2.groups.io > 抄送: jian.j.w...@intel.com; gaolim...@byosoft.com.cn; > dandan...@intel.com; Ashish Singhal <ashishsin...@nvidia.com> > 主题: RE: [PATCH] MdeModulePkg/DxeCore: Allow relocation of images with > large address > > Any thoughts/feedback on this patch? > > Thanks, > Jeff > > > > -----Original Message----- > > From: Jeff Brasen <jbra...@nvidia.com> > > Sent: Monday, May 15, 2023 5:49 PM > > To: devel@edk2.groups.io > > Cc: jian.j.w...@intel.com; gaolim...@byosoft.com.cn; > dandan...@intel.com; > > Jeff Brasen <jbra...@nvidia.com>; Ashish Singhal > > <ashishsin...@nvidia.com> > > Subject: [PATCH] MdeModulePkg/DxeCore: Allow relocation of images with > > large address > > > > Add PCD to control if modules with start addresses in PE/COFF > 0x100000 > > attempt to load at specified address. > > If a module has an address in this range and there is untested memory > > DxeCore will attempt to promote all memory to tested which bypasses any > > memory testing that would occur later in boot. > > > > There are several existing AARCH64 option roms that have base addresses > of > > 0x180000000. > > > > Signed-off-by: Jeff Brasen <jbra...@nvidia.com> > > Reviewed-by: Ashish Singhal <ashishsin...@nvidia.com> > > --- > > MdeModulePkg/Core/Dxe/DxeMain.inf | 1 + > > MdeModulePkg/Core/Dxe/Image/Image.c | 4 +++- > > MdeModulePkg/MdeModulePkg.dec | 7 +++++++ > > 3 files changed, 11 insertions(+), 1 deletion(-) > > > > diff --git a/MdeModulePkg/Core/Dxe/DxeMain.inf > > b/MdeModulePkg/Core/Dxe/DxeMain.inf > > index 35d5bf0dee..16871f2021 100644 > > --- a/MdeModulePkg/Core/Dxe/DxeMain.inf > > +++ b/MdeModulePkg/Core/Dxe/DxeMain.inf > > @@ -187,6 +187,7 @@ > > gEfiMdeModulePkgTokenSpaceGuid.PcdHeapGuardPropertyMask > > ## CONSUMES > > gEfiMdeModulePkgTokenSpaceGuid.PcdCpuStackGuard > ## > > CONSUMES > > > gEfiMdeModulePkgTokenSpaceGuid.PcdFwVolDxeMaxEncapsulationDepth > > ## CONSUMES > > + gEfiMdeModulePkgTokenSpaceGuid.PcdImageLargeAddressLoad > > ## CONSUMES > > > > # [Hob] > > # RESOURCE_DESCRIPTOR ## CONSUMES > > diff --git a/MdeModulePkg/Core/Dxe/Image/Image.c > > b/MdeModulePkg/Core/Dxe/Image/Image.c > > index 9dbfb2a1fa..6bc3a549ae 100644 > > --- a/MdeModulePkg/Core/Dxe/Image/Image.c > > +++ b/MdeModulePkg/Core/Dxe/Image/Image.c > > @@ -680,7 +680,9 @@ CoreLoadPeImage ( > > ); > > } > > } else { > > - if ((Image->ImageContext.ImageAddress >= 0x100000) || Image- > > >ImageContext.RelocationsStripped) { > > + if ((PcdGetBool (PcdImageLargeAddressLoad) && ((Image- > > >ImageContext.ImageAddress) >= 0x100000)) || > > + Image->ImageContext.RelocationsStripped) > > + { > > Status = CoreAllocatePages ( > > AllocateAddress, > > (EFI_MEMORY_TYPE)(Image- > > >ImageContext.ImageCodeMemoryType), > > diff --git a/MdeModulePkg/MdeModulePkg.dec > > b/MdeModulePkg/MdeModulePkg.dec index 95dd077e19..6fd1bd7b8f > > 100644 > > --- a/MdeModulePkg/MdeModulePkg.dec > > +++ b/MdeModulePkg/MdeModulePkg.dec > > @@ -1116,6 +1116,13 @@ > > # @Prompt Output MMIO address of Trace Hub message. > > > > > gEfiMdeModulePkgTokenSpaceGuid.PcdTraceHubDebugMmioAddress|0|UIN > > T64|0x30001058 > > > > + ## Indicates if images with large load address (>0x100000) should > > attempted to load at specified location. > > + # If enabled, attempt to allocate at specfied location will be attempted > with > > a fall back to any address. > > + # TRUE - UEFI will attempt to load at specified location.<BR> > > + # FALSE - UEFI will load at any address<BR> > > + # @Prompt Enable large address image loading. > > + > > + > > > gEfiMdeModulePkgTokenSpaceGuid.PcdImageLargeAddressLoad|TRUE|BOO > L > > EAN|0 > > + x30001059 > > + > > [PcdsFixedAtBuild, PcdsPatchableInModule] > > ## Dynamic type PCD can be registered callback function for Pcd setting > > action. > > # PcdMaxPeiPcdCallBackNumberPerPcdEntry indicates the maximum > > number of callback function > > -- > > 2.25.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#109380): https://edk2.groups.io/g/devel/message/109380 Mute This Topic: https://groups.io/mt/101812485/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-