public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH] MdeModulePkg/DxeCore: Allow relocation of images with large address
@ 2023-05-15 23:48 Jeff Brasen
  2023-09-11 20:14 ` [edk2-devel] " Jeff Brasen via groups.io
  0 siblings, 1 reply; 7+ messages in thread
From: Jeff Brasen @ 2023-05-15 23:48 UTC (permalink / raw)
  To: devel; +Cc: jian.j.wang, gaoliming, dandan.bi, Jeff Brasen, Ashish Singhal

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 <jbrasen@nvidia.com>
Reviewed-by: Ashish Singhal <ashishsingha@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|UINT64|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|BOOLEAN|0x30001059
+
 [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


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [edk2-devel] [PATCH] MdeModulePkg/DxeCore: Allow relocation of images with large address
  2023-05-15 23:48 [PATCH] MdeModulePkg/DxeCore: Allow relocation of images with large address Jeff Brasen
@ 2023-09-11 20:14 ` Jeff Brasen via groups.io
  2023-10-04 14:38   ` Jeff Brasen via groups.io
  2023-10-07  5:23   ` [edk2-devel] 回复: " gaoliming via groups.io
  0 siblings, 2 replies; 7+ messages in thread
From: Jeff Brasen via groups.io @ 2023-09-11 20:14 UTC (permalink / raw)
  To: devel@edk2.groups.io
  Cc: jian.j.wang@intel.com, gaoliming@byosoft.com.cn,
	dandan.bi@intel.com, Ashish Singhal

Any  thoughts/feedback on this patch?

Thanks,
Jeff


> -----Original Message-----
> From: Jeff Brasen <jbrasen@nvidia.com>
> Sent: Monday, May 15, 2023 5:49 PM
> To: devel@edk2.groups.io
> Cc: jian.j.wang@intel.com; gaoliming@byosoft.com.cn; dandan.bi@intel.com;
> Jeff Brasen <jbrasen@nvidia.com>; Ashish Singhal
> <ashishsingha@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 <jbrasen@nvidia.com>
> Reviewed-by: Ashish Singhal <ashishsingha@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|BOOL
> 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 (#108497): https://edk2.groups.io/g/devel/message/108497
Mute This Topic: https://groups.io/mt/98916659/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [edk2-devel] [PATCH] MdeModulePkg/DxeCore: Allow relocation of images with large address
  2023-09-11 20:14 ` [edk2-devel] " Jeff Brasen via groups.io
@ 2023-10-04 14:38   ` Jeff Brasen via groups.io
  2023-10-07  5:23   ` [edk2-devel] 回复: " gaoliming via groups.io
  1 sibling, 0 replies; 7+ messages in thread
From: Jeff Brasen via groups.io @ 2023-10-04 14:38 UTC (permalink / raw)
  To: devel@edk2.groups.io
  Cc: jian.j.wang@intel.com, gaoliming@byosoft.com.cn,
	dandan.bi@intel.com, Ashish Singhal

Anyone have any thoughts on this patch?

Thanks,
Jeff


> -----Original Message-----
> From: Jeff Brasen <jbrasen@nvidia.com>
> Sent: Monday, September 11, 2023 2:14 PM
> To: devel@edk2.groups.io
> Cc: jian.j.wang@intel.com; gaoliming@byosoft.com.cn;
> dandan.bi@intel.com; Ashish Singhal <ashishsingha@nvidia.com>
> Subject: RE: [PATCH] MdeModulePkg/DxeCore: Allow relocation of images
> with large address
> 
> Any  thoughts/feedback on this patch?
> 
> Thanks,
> Jeff
> 
> 
> > -----Original Message-----
> > From: Jeff Brasen <jbrasen@nvidia.com>
> > Sent: Monday, May 15, 2023 5:49 PM
> > To: devel@edk2.groups.io
> > Cc: jian.j.wang@intel.com; gaoliming@byosoft.com.cn;
> > dandan.bi@intel.com; Jeff Brasen <jbrasen@nvidia.com>; Ashish Singhal
> > <ashishsingha@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 <jbrasen@nvidia.com>
> > Reviewed-by: Ashish Singhal <ashishsingha@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|UI
> N
> > 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|BO
> OL
> > 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 (#109320): https://edk2.groups.io/g/devel/message/109320
Mute This Topic: https://groups.io/mt/98916659/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [edk2-devel] 回复: [PATCH] MdeModulePkg/DxeCore: Allow relocation of images with large address
  2023-09-11 20:14 ` [edk2-devel] " Jeff Brasen via groups.io
  2023-10-04 14:38   ` Jeff Brasen via groups.io
@ 2023-10-07  5:23   ` gaoliming via groups.io
  2023-10-30 17:27     ` [edk2-devel] " Jeff Brasen via groups.io
  1 sibling, 1 reply; 7+ messages in thread
From: gaoliming via groups.io @ 2023-10-07  5:23 UTC (permalink / raw)
  To: 'Jeff Brasen', devel
  Cc: jian.j.wang, dandan.bi, 'Ashish Singhal',
	michael.d.kinney

Jeff:
  I have no better solution than your proposal for this problem. So, this
patch is good to me. Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>

Thanks
Liming
> -----邮件原件-----
> 发件人: Jeff Brasen <jbrasen@nvidia.com>
> 发送时间: 2023年9月12日 4:14
> 收件人: devel@edk2.groups.io
> 抄送: jian.j.wang@intel.com; gaoliming@byosoft.com.cn;
> dandan.bi@intel.com; Ashish Singhal <ashishsingha@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 <jbrasen@nvidia.com>
> > Sent: Monday, May 15, 2023 5:49 PM
> > To: devel@edk2.groups.io
> > Cc: jian.j.wang@intel.com; gaoliming@byosoft.com.cn;
> dandan.bi@intel.com;
> > Jeff Brasen <jbrasen@nvidia.com>; Ashish Singhal
> > <ashishsingha@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 <jbrasen@nvidia.com>
> > Reviewed-by: Ashish Singhal <ashishsingha@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/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [edk2-devel] [PATCH] MdeModulePkg/DxeCore: Allow relocation of images with large address
  2023-10-07  5:23   ` [edk2-devel] 回复: " gaoliming via groups.io
@ 2023-10-30 17:27     ` Jeff Brasen via groups.io
  2023-10-31 13:42       ` Laszlo Ersek
  0 siblings, 1 reply; 7+ messages in thread
From: Jeff Brasen via groups.io @ 2023-10-30 17:27 UTC (permalink / raw)
  To: gaoliming, devel@edk2.groups.io
  Cc: jian.j.wang@intel.com, dandan.bi@intel.com, Ashish Singhal,
	michael.d.kinney@intel.com

Anything else needed to get this merged would as the November stable release is coming up.

Thanks,
Jeff

> -----Original Message-----
> From: gaoliming <gaoliming@byosoft.com.cn>
> Sent: Friday, October 6, 2023 11:23 PM
> To: Jeff Brasen <jbrasen@nvidia.com>; devel@edk2.groups.io
> Cc: jian.j.wang@intel.com; dandan.bi@intel.com; Ashish Singhal
> <ashishsingha@nvidia.com>; michael.d.kinney@intel.com
> Subject: 回复: [PATCH] MdeModulePkg/DxeCore: Allow relocation of
> images with large address
> 
> External email: Use caution opening links or attachments
> 
> 
> Jeff:
>   I have no better solution than your proposal for this problem. So, this patch
> is good to me. Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
> 
> Thanks
> Liming
> > -----邮件原件-----
> > 发件人: Jeff Brasen <jbrasen@nvidia.com>
> > 发送时间: 2023年9月12日 4:14
> > 收件人: devel@edk2.groups.io
> > 抄送: jian.j.wang@intel.com; gaoliming@byosoft.com.cn;
> > dandan.bi@intel.com; Ashish Singhal <ashishsingha@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 <jbrasen@nvidia.com>
> > > Sent: Monday, May 15, 2023 5:49 PM
> > > To: devel@edk2.groups.io
> > > Cc: jian.j.wang@intel.com; gaoliming@byosoft.com.cn;
> > dandan.bi@intel.com;
> > > Jeff Brasen <jbrasen@nvidia.com>; Ashish Singhal
> > > <ashishsingha@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 <jbrasen@nvidia.com>
> > > Reviewed-by: Ashish Singhal <ashishsingha@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|UI
> N
> > > 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|BO
> O
> > 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 (#110333): https://edk2.groups.io/g/devel/message/110333
Mute This Topic: https://groups.io/mt/102280269/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [edk2-devel] [PATCH] MdeModulePkg/DxeCore: Allow relocation of images with large address
  2023-10-30 17:27     ` [edk2-devel] " Jeff Brasen via groups.io
@ 2023-10-31 13:42       ` Laszlo Ersek
  2023-10-31 15:27         ` Laszlo Ersek
  0 siblings, 1 reply; 7+ messages in thread
From: Laszlo Ersek @ 2023-10-31 13:42 UTC (permalink / raw)
  To: devel, jbrasen, gaoliming
  Cc: jian.j.wang@intel.com, dandan.bi@intel.com, Ashish Singhal,
	michael.d.kinney@intel.com

On 10/30/23 18:27, Jeff Brasen via groups.io wrote:
> Anything else needed to get this merged would as the November stable release is coming up.

Queued via <https://github.com/tianocore/edk2/pull/4984>.



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#110412): https://edk2.groups.io/g/devel/message/110412
Mute This Topic: https://groups.io/mt/102280269/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/12367111/7686176/1913456212/xyzzy [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [edk2-devel] [PATCH] MdeModulePkg/DxeCore: Allow relocation of images with large address
  2023-10-31 13:42       ` Laszlo Ersek
@ 2023-10-31 15:27         ` Laszlo Ersek
  0 siblings, 0 replies; 7+ messages in thread
From: Laszlo Ersek @ 2023-10-31 15:27 UTC (permalink / raw)
  To: devel, jbrasen, gaoliming
  Cc: jian.j.wang@intel.com, dandan.bi@intel.com, Ashish Singhal,
	michael.d.kinney@intel.com

On 10/31/23 14:42, Laszlo Ersek wrote:
> On 10/30/23 18:27, Jeff Brasen via groups.io wrote:
>> Anything else needed to get this merged would as the November stable release is coming up.
> 
> Queued via <https://github.com/tianocore/edk2/pull/4984>.

Commit aa8431822b7631659586247b1e50d21126f3cfcc.




-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#110426): https://edk2.groups.io/g/devel/message/110426
Mute This Topic: https://groups.io/mt/102280269/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/12367111/7686176/1913456212/xyzzy [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-10-31 15:27 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-15 23:48 [PATCH] MdeModulePkg/DxeCore: Allow relocation of images with large address Jeff Brasen
2023-09-11 20:14 ` [edk2-devel] " Jeff Brasen via groups.io
2023-10-04 14:38   ` Jeff Brasen via groups.io
2023-10-07  5:23   ` [edk2-devel] 回复: " gaoliming via groups.io
2023-10-30 17:27     ` [edk2-devel] " Jeff Brasen via groups.io
2023-10-31 13:42       ` Laszlo Ersek
2023-10-31 15:27         ` Laszlo Ersek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox