[edk2] [PATCH] OvmfPkg: raise DXEFV size to 11 MB

Laszlo Ersek posted 1 patch 5 years, 10 months ago
Failed in applying to current master (apply log)
OvmfPkg/OvmfPkgIa32.fdf    | 6 +++---
OvmfPkg/OvmfPkgIa32X64.fdf | 6 +++---
OvmfPkg/OvmfPkgX64.fdf     | 6 +++---
3 files changed, 9 insertions(+), 9 deletions(-)
[edk2] [PATCH] OvmfPkg: raise DXEFV size to 11 MB
Posted by Laszlo Ersek 5 years, 10 months ago
Almost exactly two years after commit 2f7b34b20842f, we've grown out the
10MB DXEFV:

> build -a IA32 -a X64 -p OvmfPkg/OvmfPkgIa32X64.dsc -b NOOPT -t GCC48 \
>   -D SMM_REQUIRE -D SECURE_BOOT_ENABLE -D TLS_ENABLE -D E1000_ENABLE \
>   -D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE
>
> [...]
>
> GenFv: ERROR 3000: Invalid
>   the required fv image size 0xa28d48 exceeds the set fv image size
>   0xa00000

Raise the DXEFV size to 11MB.

(For builds that don't need this DXEFV bump, I've checked the
FVMAIN_COMPACT increase stemming from the additional 1MB padding, using
NOOPT + GCC48 + FD_SIZE_2MB, and no other "-D" flags. In the IA32 build,
FVMAIN_COMPACT grows by 232 bytes. In the IA32X64 build, FVMAIN_COMPACT
shrinks by 64 bytes. In the X64 build, FVMAIN_COMPACT shrinks by 376
bytes.)

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Gary Lin <glin@suse.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---

Notes:
    - repo & branch: https://github.com/lersek/edk2.git ; dxefv_11mb
    
    - regression-tested with the "crash" tool for vmcore analysis
    
    - regression-tested using S3 suspend/resume with my usual guests,
      including Linux, Windows, i440fx, q35, SMM etc

 OvmfPkg/OvmfPkgIa32.fdf    | 6 +++---
 OvmfPkg/OvmfPkgIa32X64.fdf | 6 +++---
 OvmfPkg/OvmfPkgX64.fdf     | 6 +++---
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf
index 0427ded49239..b199713925fe 100644
--- a/OvmfPkg/OvmfPkgIa32.fdf
+++ b/OvmfPkg/OvmfPkgIa32.fdf
@@ -68,10 +68,10 @@ [FD.OVMF_CODE]
 
 [FD.MEMFD]
 BaseAddress   = $(MEMFD_BASE_ADDRESS)
-Size          = 0xB00000
+Size          = 0xC00000
 ErasePolarity = 1
 BlockSize     = 0x10000
-NumBlocks     = 0xB0
+NumBlocks     = 0xC0
 
 0x000000|0x006000
 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesSize
@@ -89,7 +89,7 @@ [FD.MEMFD]
 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize
 FV = PEIFV
 
-0x100000|0xA00000
+0x100000|0xB00000
 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize
 FV = DXEFV
 
diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf
index 6df47f48cd2c..4ebf64b2b9dc 100644
--- a/OvmfPkg/OvmfPkgIa32X64.fdf
+++ b/OvmfPkg/OvmfPkgIa32X64.fdf
@@ -68,10 +68,10 @@ [FD.OVMF_CODE]
 
 [FD.MEMFD]
 BaseAddress   = $(MEMFD_BASE_ADDRESS)
-Size          = 0xB00000
+Size          = 0xC00000
 ErasePolarity = 1
 BlockSize     = 0x10000
-NumBlocks     = 0xB0
+NumBlocks     = 0xC0
 
 0x000000|0x006000
 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesSize
@@ -89,7 +89,7 @@ [FD.MEMFD]
 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize
 FV = PEIFV
 
-0x100000|0xA00000
+0x100000|0xB00000
 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize
 FV = DXEFV
 
diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf
index 2e2a1749b5d2..9ca96f928287 100644
--- a/OvmfPkg/OvmfPkgX64.fdf
+++ b/OvmfPkg/OvmfPkgX64.fdf
@@ -68,10 +68,10 @@ [FD.OVMF_CODE]
 
 [FD.MEMFD]
 BaseAddress   = $(MEMFD_BASE_ADDRESS)
-Size          = 0xB00000
+Size          = 0xC00000
 ErasePolarity = 1
 BlockSize     = 0x10000
-NumBlocks     = 0xB0
+NumBlocks     = 0xC0
 
 0x000000|0x006000
 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesSize
@@ -89,7 +89,7 @@ [FD.MEMFD]
 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize
 FV = PEIFV
 
-0x100000|0xA00000
+0x100000|0xB00000
 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize
 FV = DXEFV
 
-- 
2.14.1.3.gb7cf6e02401b

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH] OvmfPkg: raise DXEFV size to 11 MB
Posted by Ard Biesheuvel 5 years, 10 months ago
On 28 May 2018 at 20:49, Laszlo Ersek <lersek@redhat.com> wrote:
> Almost exactly two years after commit 2f7b34b20842f, we've grown out the
> 10MB DXEFV:
>
>> build -a IA32 -a X64 -p OvmfPkg/OvmfPkgIa32X64.dsc -b NOOPT -t GCC48 \
>>   -D SMM_REQUIRE -D SECURE_BOOT_ENABLE -D TLS_ENABLE -D E1000_ENABLE \
>>   -D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE
>>
>> [...]
>>
>> GenFv: ERROR 3000: Invalid
>>   the required fv image size 0xa28d48 exceeds the set fv image size
>>   0xa00000
>
> Raise the DXEFV size to 11MB.
>
> (For builds that don't need this DXEFV bump, I've checked the
> FVMAIN_COMPACT increase stemming from the additional 1MB padding, using
> NOOPT + GCC48 + FD_SIZE_2MB, and no other "-D" flags. In the IA32 build,
> FVMAIN_COMPACT grows by 232 bytes. In the IA32X64 build, FVMAIN_COMPACT
> shrinks by 64 bytes. In the X64 build, FVMAIN_COMPACT shrinks by 376
> bytes.)
>
> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> Cc: Gary Lin <glin@suse.com>
> Cc: Jordan Justen <jordan.l.justen@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Laszlo Ersek <lersek@redhat.com>

Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> ---
>
> Notes:
>     - repo & branch: https://github.com/lersek/edk2.git ; dxefv_11mb
>
>     - regression-tested with the "crash" tool for vmcore analysis
>
>     - regression-tested using S3 suspend/resume with my usual guests,
>       including Linux, Windows, i440fx, q35, SMM etc
>
>  OvmfPkg/OvmfPkgIa32.fdf    | 6 +++---
>  OvmfPkg/OvmfPkgIa32X64.fdf | 6 +++---
>  OvmfPkg/OvmfPkgX64.fdf     | 6 +++---
>  3 files changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf
> index 0427ded49239..b199713925fe 100644
> --- a/OvmfPkg/OvmfPkgIa32.fdf
> +++ b/OvmfPkg/OvmfPkgIa32.fdf
> @@ -68,10 +68,10 @@ [FD.OVMF_CODE]
>
>  [FD.MEMFD]
>  BaseAddress   = $(MEMFD_BASE_ADDRESS)
> -Size          = 0xB00000
> +Size          = 0xC00000
>  ErasePolarity = 1
>  BlockSize     = 0x10000
> -NumBlocks     = 0xB0
> +NumBlocks     = 0xC0
>
>  0x000000|0x006000
>  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesSize
> @@ -89,7 +89,7 @@ [FD.MEMFD]
>  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize
>  FV = PEIFV
>
> -0x100000|0xA00000
> +0x100000|0xB00000
>  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize
>  FV = DXEFV
>
> diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf
> index 6df47f48cd2c..4ebf64b2b9dc 100644
> --- a/OvmfPkg/OvmfPkgIa32X64.fdf
> +++ b/OvmfPkg/OvmfPkgIa32X64.fdf
> @@ -68,10 +68,10 @@ [FD.OVMF_CODE]
>
>  [FD.MEMFD]
>  BaseAddress   = $(MEMFD_BASE_ADDRESS)
> -Size          = 0xB00000
> +Size          = 0xC00000
>  ErasePolarity = 1
>  BlockSize     = 0x10000
> -NumBlocks     = 0xB0
> +NumBlocks     = 0xC0
>
>  0x000000|0x006000
>  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesSize
> @@ -89,7 +89,7 @@ [FD.MEMFD]
>  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize
>  FV = PEIFV
>
> -0x100000|0xA00000
> +0x100000|0xB00000
>  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize
>  FV = DXEFV
>
> diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf
> index 2e2a1749b5d2..9ca96f928287 100644
> --- a/OvmfPkg/OvmfPkgX64.fdf
> +++ b/OvmfPkg/OvmfPkgX64.fdf
> @@ -68,10 +68,10 @@ [FD.OVMF_CODE]
>
>  [FD.MEMFD]
>  BaseAddress   = $(MEMFD_BASE_ADDRESS)
> -Size          = 0xB00000
> +Size          = 0xC00000
>  ErasePolarity = 1
>  BlockSize     = 0x10000
> -NumBlocks     = 0xB0
> +NumBlocks     = 0xC0
>
>  0x000000|0x006000
>  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesSize
> @@ -89,7 +89,7 @@ [FD.MEMFD]
>  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize
>  FV = PEIFV
>
> -0x100000|0xA00000
> +0x100000|0xB00000
>  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize
>  FV = DXEFV
>
> --
> 2.14.1.3.gb7cf6e02401b
>
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH] OvmfPkg: raise DXEFV size to 11 MB
Posted by Gary Lin 5 years, 10 months ago
On Mon, May 28, 2018 at 08:49:56PM +0200, Laszlo Ersek wrote:
> Almost exactly two years after commit 2f7b34b20842f, we've grown out the
> 10MB DXEFV:
> 
> > build -a IA32 -a X64 -p OvmfPkg/OvmfPkgIa32X64.dsc -b NOOPT -t GCC48 \
> >   -D SMM_REQUIRE -D SECURE_BOOT_ENABLE -D TLS_ENABLE -D E1000_ENABLE \
> >   -D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE
> >
> > [...]
> >
> > GenFv: ERROR 3000: Invalid
> >   the required fv image size 0xa28d48 exceeds the set fv image size
> >   0xa00000
> 
> Raise the DXEFV size to 11MB.
> 
> (For builds that don't need this DXEFV bump, I've checked the
> FVMAIN_COMPACT increase stemming from the additional 1MB padding, using
> NOOPT + GCC48 + FD_SIZE_2MB, and no other "-D" flags. In the IA32 build,
> FVMAIN_COMPACT grows by 232 bytes. In the IA32X64 build, FVMAIN_COMPACT
> shrinks by 64 bytes. In the X64 build, FVMAIN_COMPACT shrinks by 376
> bytes.)
> 
> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> Cc: Gary Lin <glin@suse.com>
> Cc: Jordan Justen <jordan.l.justen@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
> ---
> 
Reviewed-by: Gary Lin <glin@suse.com>

> Notes:
>     - repo & branch: https://github.com/lersek/edk2.git ; dxefv_11mb
>     
>     - regression-tested with the "crash" tool for vmcore analysis
>     
>     - regression-tested using S3 suspend/resume with my usual guests,
>       including Linux, Windows, i440fx, q35, SMM etc
> 
>  OvmfPkg/OvmfPkgIa32.fdf    | 6 +++---
>  OvmfPkg/OvmfPkgIa32X64.fdf | 6 +++---
>  OvmfPkg/OvmfPkgX64.fdf     | 6 +++---
>  3 files changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf
> index 0427ded49239..b199713925fe 100644
> --- a/OvmfPkg/OvmfPkgIa32.fdf
> +++ b/OvmfPkg/OvmfPkgIa32.fdf
> @@ -68,10 +68,10 @@ [FD.OVMF_CODE]
>  
>  [FD.MEMFD]
>  BaseAddress   = $(MEMFD_BASE_ADDRESS)
> -Size          = 0xB00000
> +Size          = 0xC00000
>  ErasePolarity = 1
>  BlockSize     = 0x10000
> -NumBlocks     = 0xB0
> +NumBlocks     = 0xC0
>  
>  0x000000|0x006000
>  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesSize
> @@ -89,7 +89,7 @@ [FD.MEMFD]
>  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize
>  FV = PEIFV
>  
> -0x100000|0xA00000
> +0x100000|0xB00000
>  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize
>  FV = DXEFV
>  
> diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf
> index 6df47f48cd2c..4ebf64b2b9dc 100644
> --- a/OvmfPkg/OvmfPkgIa32X64.fdf
> +++ b/OvmfPkg/OvmfPkgIa32X64.fdf
> @@ -68,10 +68,10 @@ [FD.OVMF_CODE]
>  
>  [FD.MEMFD]
>  BaseAddress   = $(MEMFD_BASE_ADDRESS)
> -Size          = 0xB00000
> +Size          = 0xC00000
>  ErasePolarity = 1
>  BlockSize     = 0x10000
> -NumBlocks     = 0xB0
> +NumBlocks     = 0xC0
>  
>  0x000000|0x006000
>  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesSize
> @@ -89,7 +89,7 @@ [FD.MEMFD]
>  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize
>  FV = PEIFV
>  
> -0x100000|0xA00000
> +0x100000|0xB00000
>  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize
>  FV = DXEFV
>  
> diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf
> index 2e2a1749b5d2..9ca96f928287 100644
> --- a/OvmfPkg/OvmfPkgX64.fdf
> +++ b/OvmfPkg/OvmfPkgX64.fdf
> @@ -68,10 +68,10 @@ [FD.OVMF_CODE]
>  
>  [FD.MEMFD]
>  BaseAddress   = $(MEMFD_BASE_ADDRESS)
> -Size          = 0xB00000
> +Size          = 0xC00000
>  ErasePolarity = 1
>  BlockSize     = 0x10000
> -NumBlocks     = 0xB0
> +NumBlocks     = 0xC0
>  
>  0x000000|0x006000
>  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesSize
> @@ -89,7 +89,7 @@ [FD.MEMFD]
>  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize
>  FV = PEIFV
>  
> -0x100000|0xA00000
> +0x100000|0xB00000
>  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize
>  FV = DXEFV
>  
> -- 
> 2.14.1.3.gb7cf6e02401b
> 
> 
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH] OvmfPkg: raise DXEFV size to 11 MB
Posted by Gao, Liming 5 years, 10 months ago
Laszlo:
  OvmfPkgIa32.fdf, OvmfPkgX64.fdf and OvmfPkgIa32X64.fdf are almost same. I suggest to use the single FDF for them. If so, this change is only made once. 

  For X64 only module in FDF, we can use below style to include it. 

!if $(E1000_ENABLE) && "X64" in $(ARCH)
  FILE DRIVER = 5D695E11-9B3F-4b83-B25F-4A8D5D69BE07 {
    SECTION PE32 = Intel3.5/EFIX64/E3522X2.EFI
  }
!endif

Thanks
Liming
>-----Original Message-----
>From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
>Laszlo Ersek
>Sent: Tuesday, May 29, 2018 2:50 AM
>To: edk2-devel-01 <edk2-devel@lists.01.org>
>Cc: Justen, Jordan L <jordan.l.justen@intel.com>; Gary Lin <glin@suse.com>;
>Ard Biesheuvel <ard.biesheuvel@linaro.org>
>Subject: [edk2] [PATCH] OvmfPkg: raise DXEFV size to 11 MB
>
>Almost exactly two years after commit 2f7b34b20842f, we've grown out the
>10MB DXEFV:
>
>> build -a IA32 -a X64 -p OvmfPkg/OvmfPkgIa32X64.dsc -b NOOPT -t GCC48 \
>>   -D SMM_REQUIRE -D SECURE_BOOT_ENABLE -D TLS_ENABLE -D
>E1000_ENABLE \
>>   -D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE
>>
>> [...]
>>
>> GenFv: ERROR 3000: Invalid
>>   the required fv image size 0xa28d48 exceeds the set fv image size
>>   0xa00000
>
>Raise the DXEFV size to 11MB.
>
>(For builds that don't need this DXEFV bump, I've checked the
>FVMAIN_COMPACT increase stemming from the additional 1MB padding,
>using
>NOOPT + GCC48 + FD_SIZE_2MB, and no other "-D" flags. In the IA32 build,
>FVMAIN_COMPACT grows by 232 bytes. In the IA32X64 build,
>FVMAIN_COMPACT
>shrinks by 64 bytes. In the X64 build, FVMAIN_COMPACT shrinks by 376
>bytes.)
>
>Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>Cc: Gary Lin <glin@suse.com>
>Cc: Jordan Justen <jordan.l.justen@intel.com>
>Contributed-under: TianoCore Contribution Agreement 1.1
>Signed-off-by: Laszlo Ersek <lersek@redhat.com>
>---
>
>Notes:
>    - repo & branch: https://github.com/lersek/edk2.git ; dxefv_11mb
>
>    - regression-tested with the "crash" tool for vmcore analysis
>
>    - regression-tested using S3 suspend/resume with my usual guests,
>      including Linux, Windows, i440fx, q35, SMM etc
>
> OvmfPkg/OvmfPkgIa32.fdf    | 6 +++---
> OvmfPkg/OvmfPkgIa32X64.fdf | 6 +++---
> OvmfPkg/OvmfPkgX64.fdf     | 6 +++---
> 3 files changed, 9 insertions(+), 9 deletions(-)
>
>diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf
>index 0427ded49239..b199713925fe 100644
>--- a/OvmfPkg/OvmfPkgIa32.fdf
>+++ b/OvmfPkg/OvmfPkgIa32.fdf
>@@ -68,10 +68,10 @@ [FD.OVMF_CODE]
>
> [FD.MEMFD]
> BaseAddress   = $(MEMFD_BASE_ADDRESS)
>-Size          = 0xB00000
>+Size          = 0xC00000
> ErasePolarity = 1
> BlockSize     = 0x10000
>-NumBlocks     = 0xB0
>+NumBlocks     = 0xC0
>
> 0x000000|0x006000
>
>gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgT
>okenSpaceGuid.PcdOvmfSecPageTablesSize
>@@ -89,7 +89,7 @@ [FD.MEMFD]
>
>gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgToke
>nSpaceGuid.PcdOvmfPeiMemFvSize
> FV = PEIFV
>
>-0x100000|0xA00000
>+0x100000|0xB00000
>
>gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTok
>enSpaceGuid.PcdOvmfDxeMemFvSize
> FV = DXEFV
>
>diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf
>index 6df47f48cd2c..4ebf64b2b9dc 100644
>--- a/OvmfPkg/OvmfPkgIa32X64.fdf
>+++ b/OvmfPkg/OvmfPkgIa32X64.fdf
>@@ -68,10 +68,10 @@ [FD.OVMF_CODE]
>
> [FD.MEMFD]
> BaseAddress   = $(MEMFD_BASE_ADDRESS)
>-Size          = 0xB00000
>+Size          = 0xC00000
> ErasePolarity = 1
> BlockSize     = 0x10000
>-NumBlocks     = 0xB0
>+NumBlocks     = 0xC0
>
> 0x000000|0x006000
>
>gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgT
>okenSpaceGuid.PcdOvmfSecPageTablesSize
>@@ -89,7 +89,7 @@ [FD.MEMFD]
>
>gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgToke
>nSpaceGuid.PcdOvmfPeiMemFvSize
> FV = PEIFV
>
>-0x100000|0xA00000
>+0x100000|0xB00000
>
>gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTok
>enSpaceGuid.PcdOvmfDxeMemFvSize
> FV = DXEFV
>
>diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf
>index 2e2a1749b5d2..9ca96f928287 100644
>--- a/OvmfPkg/OvmfPkgX64.fdf
>+++ b/OvmfPkg/OvmfPkgX64.fdf
>@@ -68,10 +68,10 @@ [FD.OVMF_CODE]
>
> [FD.MEMFD]
> BaseAddress   = $(MEMFD_BASE_ADDRESS)
>-Size          = 0xB00000
>+Size          = 0xC00000
> ErasePolarity = 1
> BlockSize     = 0x10000
>-NumBlocks     = 0xB0
>+NumBlocks     = 0xC0
>
> 0x000000|0x006000
>
>gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgT
>okenSpaceGuid.PcdOvmfSecPageTablesSize
>@@ -89,7 +89,7 @@ [FD.MEMFD]
>
>gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgToke
>nSpaceGuid.PcdOvmfPeiMemFvSize
> FV = PEIFV
>
>-0x100000|0xA00000
>+0x100000|0xB00000
>
>gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTok
>enSpaceGuid.PcdOvmfDxeMemFvSize
> FV = DXEFV
>
>--
>2.14.1.3.gb7cf6e02401b
>
>_______________________________________________
>edk2-devel mailing list
>edk2-devel@lists.01.org
>https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH] OvmfPkg: raise DXEFV size to 11 MB
Posted by Laszlo Ersek 5 years, 10 months ago
Hi Liming,

On 05/29/18 07:25, Gao, Liming wrote:
> Laszlo:
>   OvmfPkgIa32.fdf, OvmfPkgX64.fdf and OvmfPkgIa32X64.fdf are almost same. I suggest to use the single FDF for them. If so, this change is only made once. 
> 
>   For X64 only module in FDF, we can use below style to include it. 
> 
> !if $(E1000_ENABLE) && "X64" in $(ARCH)
>   FILE DRIVER = 5D695E11-9B3F-4b83-B25F-4A8D5D69BE07 {
>     SECTION PE32 = Intel3.5/EFIX64/E3522X2.EFI
>   }
> !endif

right, at some point in time -- "later" :) -- we should extract most
common parts into shared include files. We already do that for a few
things (see "DecomprScratchEnd.fdf.inc", "OvmfPkg.fdf.inc",
"VarStore.fdf.inc"), but more would be possible to extract, indeed.

For now, I prefer to push this patch, because I don't really have time
to embark on the refactoring, and the patch fixes a build issue.

Thanks!
Laszlo


>> -----Original Message-----
>> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
>> Laszlo Ersek
>> Sent: Tuesday, May 29, 2018 2:50 AM
>> To: edk2-devel-01 <edk2-devel@lists.01.org>
>> Cc: Justen, Jordan L <jordan.l.justen@intel.com>; Gary Lin <glin@suse.com>;
>> Ard Biesheuvel <ard.biesheuvel@linaro.org>
>> Subject: [edk2] [PATCH] OvmfPkg: raise DXEFV size to 11 MB
>>
>> Almost exactly two years after commit 2f7b34b20842f, we've grown out the
>> 10MB DXEFV:
>>
>>> build -a IA32 -a X64 -p OvmfPkg/OvmfPkgIa32X64.dsc -b NOOPT -t GCC48 \
>>>   -D SMM_REQUIRE -D SECURE_BOOT_ENABLE -D TLS_ENABLE -D
>> E1000_ENABLE \
>>>   -D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE
>>>
>>> [...]
>>>
>>> GenFv: ERROR 3000: Invalid
>>>   the required fv image size 0xa28d48 exceeds the set fv image size
>>>   0xa00000
>>
>> Raise the DXEFV size to 11MB.
>>
>> (For builds that don't need this DXEFV bump, I've checked the
>> FVMAIN_COMPACT increase stemming from the additional 1MB padding,
>> using
>> NOOPT + GCC48 + FD_SIZE_2MB, and no other "-D" flags. In the IA32 build,
>> FVMAIN_COMPACT grows by 232 bytes. In the IA32X64 build,
>> FVMAIN_COMPACT
>> shrinks by 64 bytes. In the X64 build, FVMAIN_COMPACT shrinks by 376
>> bytes.)
>>
>> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>> Cc: Gary Lin <glin@suse.com>
>> Cc: Jordan Justen <jordan.l.justen@intel.com>
>> Contributed-under: TianoCore Contribution Agreement 1.1
>> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
>> ---
>>
>> Notes:
>>    - repo & branch: https://github.com/lersek/edk2.git ; dxefv_11mb
>>
>>    - regression-tested with the "crash" tool for vmcore analysis
>>
>>    - regression-tested using S3 suspend/resume with my usual guests,
>>      including Linux, Windows, i440fx, q35, SMM etc
>>
>> OvmfPkg/OvmfPkgIa32.fdf    | 6 +++---
>> OvmfPkg/OvmfPkgIa32X64.fdf | 6 +++---
>> OvmfPkg/OvmfPkgX64.fdf     | 6 +++---
>> 3 files changed, 9 insertions(+), 9 deletions(-)
>>
>> diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf
>> index 0427ded49239..b199713925fe 100644
>> --- a/OvmfPkg/OvmfPkgIa32.fdf
>> +++ b/OvmfPkg/OvmfPkgIa32.fdf
>> @@ -68,10 +68,10 @@ [FD.OVMF_CODE]
>>
>> [FD.MEMFD]
>> BaseAddress   = $(MEMFD_BASE_ADDRESS)
>> -Size          = 0xB00000
>> +Size          = 0xC00000
>> ErasePolarity = 1
>> BlockSize     = 0x10000
>> -NumBlocks     = 0xB0
>> +NumBlocks     = 0xC0
>>
>> 0x000000|0x006000
>>
>> gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgT
>> okenSpaceGuid.PcdOvmfSecPageTablesSize
>> @@ -89,7 +89,7 @@ [FD.MEMFD]
>>
>> gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgToke
>> nSpaceGuid.PcdOvmfPeiMemFvSize
>> FV = PEIFV
>>
>> -0x100000|0xA00000
>> +0x100000|0xB00000
>>
>> gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTok
>> enSpaceGuid.PcdOvmfDxeMemFvSize
>> FV = DXEFV
>>
>> diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf
>> index 6df47f48cd2c..4ebf64b2b9dc 100644
>> --- a/OvmfPkg/OvmfPkgIa32X64.fdf
>> +++ b/OvmfPkg/OvmfPkgIa32X64.fdf
>> @@ -68,10 +68,10 @@ [FD.OVMF_CODE]
>>
>> [FD.MEMFD]
>> BaseAddress   = $(MEMFD_BASE_ADDRESS)
>> -Size          = 0xB00000
>> +Size          = 0xC00000
>> ErasePolarity = 1
>> BlockSize     = 0x10000
>> -NumBlocks     = 0xB0
>> +NumBlocks     = 0xC0
>>
>> 0x000000|0x006000
>>
>> gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgT
>> okenSpaceGuid.PcdOvmfSecPageTablesSize
>> @@ -89,7 +89,7 @@ [FD.MEMFD]
>>
>> gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgToke
>> nSpaceGuid.PcdOvmfPeiMemFvSize
>> FV = PEIFV
>>
>> -0x100000|0xA00000
>> +0x100000|0xB00000
>>
>> gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTok
>> enSpaceGuid.PcdOvmfDxeMemFvSize
>> FV = DXEFV
>>
>> diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf
>> index 2e2a1749b5d2..9ca96f928287 100644
>> --- a/OvmfPkg/OvmfPkgX64.fdf
>> +++ b/OvmfPkg/OvmfPkgX64.fdf
>> @@ -68,10 +68,10 @@ [FD.OVMF_CODE]
>>
>> [FD.MEMFD]
>> BaseAddress   = $(MEMFD_BASE_ADDRESS)
>> -Size          = 0xB00000
>> +Size          = 0xC00000
>> ErasePolarity = 1
>> BlockSize     = 0x10000
>> -NumBlocks     = 0xB0
>> +NumBlocks     = 0xC0
>>
>> 0x000000|0x006000
>>
>> gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgT
>> okenSpaceGuid.PcdOvmfSecPageTablesSize
>> @@ -89,7 +89,7 @@ [FD.MEMFD]
>>
>> gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgToke
>> nSpaceGuid.PcdOvmfPeiMemFvSize
>> FV = PEIFV
>>
>> -0x100000|0xA00000
>> +0x100000|0xB00000
>>
>> gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTok
>> enSpaceGuid.PcdOvmfDxeMemFvSize
>> FV = DXEFV
>>
>> --
>> 2.14.1.3.gb7cf6e02401b
>>
>> _______________________________________________
>> edk2-devel mailing list
>> edk2-devel@lists.01.org
>> https://lists.01.org/mailman/listinfo/edk2-devel

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH] OvmfPkg: raise DXEFV size to 11 MB
Posted by Gao, Liming 5 years, 10 months ago
Laszlo:
  Yes. Combine FDF into single one can be done later. 

Thanks
Liming
>-----Original Message-----
>From: Laszlo Ersek [mailto:lersek@redhat.com]
>Sent: Tuesday, May 29, 2018 3:26 PM
>To: Gao, Liming <liming.gao@intel.com>; edk2-devel-01 <edk2-
>devel@lists.01.org>
>Cc: Justen, Jordan L <jordan.l.justen@intel.com>; Gary Lin <glin@suse.com>;
>Ard Biesheuvel <ard.biesheuvel@linaro.org>
>Subject: Re: [edk2] [PATCH] OvmfPkg: raise DXEFV size to 11 MB
>
>Hi Liming,
>
>On 05/29/18 07:25, Gao, Liming wrote:
>> Laszlo:
>>   OvmfPkgIa32.fdf, OvmfPkgX64.fdf and OvmfPkgIa32X64.fdf are almost
>same. I suggest to use the single FDF for them. If so, this change is only made
>once.
>>
>>   For X64 only module in FDF, we can use below style to include it.
>>
>> !if $(E1000_ENABLE) && "X64" in $(ARCH)
>>   FILE DRIVER = 5D695E11-9B3F-4b83-B25F-4A8D5D69BE07 {
>>     SECTION PE32 = Intel3.5/EFIX64/E3522X2.EFI
>>   }
>> !endif
>
>right, at some point in time -- "later" :) -- we should extract most
>common parts into shared include files. We already do that for a few
>things (see "DecomprScratchEnd.fdf.inc", "OvmfPkg.fdf.inc",
>"VarStore.fdf.inc"), but more would be possible to extract, indeed.
>
>For now, I prefer to push this patch, because I don't really have time
>to embark on the refactoring, and the patch fixes a build issue.
>
>Thanks!
>Laszlo
>
>
>>> -----Original Message-----
>>> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
>>> Laszlo Ersek
>>> Sent: Tuesday, May 29, 2018 2:50 AM
>>> To: edk2-devel-01 <edk2-devel@lists.01.org>
>>> Cc: Justen, Jordan L <jordan.l.justen@intel.com>; Gary Lin
><glin@suse.com>;
>>> Ard Biesheuvel <ard.biesheuvel@linaro.org>
>>> Subject: [edk2] [PATCH] OvmfPkg: raise DXEFV size to 11 MB
>>>
>>> Almost exactly two years after commit 2f7b34b20842f, we've grown out
>the
>>> 10MB DXEFV:
>>>
>>>> build -a IA32 -a X64 -p OvmfPkg/OvmfPkgIa32X64.dsc -b NOOPT -t GCC48
>\
>>>>   -D SMM_REQUIRE -D SECURE_BOOT_ENABLE -D TLS_ENABLE -D
>>> E1000_ENABLE \
>>>>   -D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE
>>>>
>>>> [...]
>>>>
>>>> GenFv: ERROR 3000: Invalid
>>>>   the required fv image size 0xa28d48 exceeds the set fv image size
>>>>   0xa00000
>>>
>>> Raise the DXEFV size to 11MB.
>>>
>>> (For builds that don't need this DXEFV bump, I've checked the
>>> FVMAIN_COMPACT increase stemming from the additional 1MB padding,
>>> using
>>> NOOPT + GCC48 + FD_SIZE_2MB, and no other "-D" flags. In the IA32 build,
>>> FVMAIN_COMPACT grows by 232 bytes. In the IA32X64 build,
>>> FVMAIN_COMPACT
>>> shrinks by 64 bytes. In the X64 build, FVMAIN_COMPACT shrinks by 376
>>> bytes.)
>>>
>>> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>>> Cc: Gary Lin <glin@suse.com>
>>> Cc: Jordan Justen <jordan.l.justen@intel.com>
>>> Contributed-under: TianoCore Contribution Agreement 1.1
>>> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
>>> ---
>>>
>>> Notes:
>>>    - repo & branch: https://github.com/lersek/edk2.git ; dxefv_11mb
>>>
>>>    - regression-tested with the "crash" tool for vmcore analysis
>>>
>>>    - regression-tested using S3 suspend/resume with my usual guests,
>>>      including Linux, Windows, i440fx, q35, SMM etc
>>>
>>> OvmfPkg/OvmfPkgIa32.fdf    | 6 +++---
>>> OvmfPkg/OvmfPkgIa32X64.fdf | 6 +++---
>>> OvmfPkg/OvmfPkgX64.fdf     | 6 +++---
>>> 3 files changed, 9 insertions(+), 9 deletions(-)
>>>
>>> diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf
>>> index 0427ded49239..b199713925fe 100644
>>> --- a/OvmfPkg/OvmfPkgIa32.fdf
>>> +++ b/OvmfPkg/OvmfPkgIa32.fdf
>>> @@ -68,10 +68,10 @@ [FD.OVMF_CODE]
>>>
>>> [FD.MEMFD]
>>> BaseAddress   = $(MEMFD_BASE_ADDRESS)
>>> -Size          = 0xB00000
>>> +Size          = 0xC00000
>>> ErasePolarity = 1
>>> BlockSize     = 0x10000
>>> -NumBlocks     = 0xB0
>>> +NumBlocks     = 0xC0
>>>
>>> 0x000000|0x006000
>>>
>>>
>gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgT
>>> okenSpaceGuid.PcdOvmfSecPageTablesSize
>>> @@ -89,7 +89,7 @@ [FD.MEMFD]
>>>
>>>
>gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgToke
>>> nSpaceGuid.PcdOvmfPeiMemFvSize
>>> FV = PEIFV
>>>
>>> -0x100000|0xA00000
>>> +0x100000|0xB00000
>>>
>>>
>gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTok
>>> enSpaceGuid.PcdOvmfDxeMemFvSize
>>> FV = DXEFV
>>>
>>> diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf
>>> index 6df47f48cd2c..4ebf64b2b9dc 100644
>>> --- a/OvmfPkg/OvmfPkgIa32X64.fdf
>>> +++ b/OvmfPkg/OvmfPkgIa32X64.fdf
>>> @@ -68,10 +68,10 @@ [FD.OVMF_CODE]
>>>
>>> [FD.MEMFD]
>>> BaseAddress   = $(MEMFD_BASE_ADDRESS)
>>> -Size          = 0xB00000
>>> +Size          = 0xC00000
>>> ErasePolarity = 1
>>> BlockSize     = 0x10000
>>> -NumBlocks     = 0xB0
>>> +NumBlocks     = 0xC0
>>>
>>> 0x000000|0x006000
>>>
>>>
>gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgT
>>> okenSpaceGuid.PcdOvmfSecPageTablesSize
>>> @@ -89,7 +89,7 @@ [FD.MEMFD]
>>>
>>>
>gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgToke
>>> nSpaceGuid.PcdOvmfPeiMemFvSize
>>> FV = PEIFV
>>>
>>> -0x100000|0xA00000
>>> +0x100000|0xB00000
>>>
>>>
>gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTok
>>> enSpaceGuid.PcdOvmfDxeMemFvSize
>>> FV = DXEFV
>>>
>>> diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf
>>> index 2e2a1749b5d2..9ca96f928287 100644
>>> --- a/OvmfPkg/OvmfPkgX64.fdf
>>> +++ b/OvmfPkg/OvmfPkgX64.fdf
>>> @@ -68,10 +68,10 @@ [FD.OVMF_CODE]
>>>
>>> [FD.MEMFD]
>>> BaseAddress   = $(MEMFD_BASE_ADDRESS)
>>> -Size          = 0xB00000
>>> +Size          = 0xC00000
>>> ErasePolarity = 1
>>> BlockSize     = 0x10000
>>> -NumBlocks     = 0xB0
>>> +NumBlocks     = 0xC0
>>>
>>> 0x000000|0x006000
>>>
>>>
>gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgT
>>> okenSpaceGuid.PcdOvmfSecPageTablesSize
>>> @@ -89,7 +89,7 @@ [FD.MEMFD]
>>>
>>>
>gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgToke
>>> nSpaceGuid.PcdOvmfPeiMemFvSize
>>> FV = PEIFV
>>>
>>> -0x100000|0xA00000
>>> +0x100000|0xB00000
>>>
>>>
>gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTok
>>> enSpaceGuid.PcdOvmfDxeMemFvSize
>>> FV = DXEFV
>>>
>>> --
>>> 2.14.1.3.gb7cf6e02401b
>>>
>>> _______________________________________________
>>> edk2-devel mailing list
>>> edk2-devel@lists.01.org
>>> https://lists.01.org/mailman/listinfo/edk2-devel

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH] OvmfPkg: raise DXEFV size to 11 MB
Posted by Laszlo Ersek 5 years, 10 months ago
On 05/28/18 20:49, Laszlo Ersek wrote:
> Almost exactly two years after commit 2f7b34b20842f, we've grown out the
> 10MB DXEFV:
> 
>> build -a IA32 -a X64 -p OvmfPkg/OvmfPkgIa32X64.dsc -b NOOPT -t GCC48 \
>>   -D SMM_REQUIRE -D SECURE_BOOT_ENABLE -D TLS_ENABLE -D E1000_ENABLE \
>>   -D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE
>>
>> [...]
>>
>> GenFv: ERROR 3000: Invalid
>>   the required fv image size 0xa28d48 exceeds the set fv image size
>>   0xa00000
> 
> Raise the DXEFV size to 11MB.
> 
> (For builds that don't need this DXEFV bump, I've checked the
> FVMAIN_COMPACT increase stemming from the additional 1MB padding, using
> NOOPT + GCC48 + FD_SIZE_2MB, and no other "-D" flags. In the IA32 build,
> FVMAIN_COMPACT grows by 232 bytes. In the IA32X64 build, FVMAIN_COMPACT
> shrinks by 64 bytes. In the X64 build, FVMAIN_COMPACT shrinks by 376
> bytes.)
> 
> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> Cc: Gary Lin <glin@suse.com>
> Cc: Jordan Justen <jordan.l.justen@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
> ---
> 
> Notes:
>     - repo & branch: https://github.com/lersek/edk2.git ; dxefv_11mb
>     
>     - regression-tested with the "crash" tool for vmcore analysis
>     
>     - regression-tested using S3 suspend/resume with my usual guests,
>       including Linux, Windows, i440fx, q35, SMM etc
> 
>  OvmfPkg/OvmfPkgIa32.fdf    | 6 +++---
>  OvmfPkg/OvmfPkgIa32X64.fdf | 6 +++---
>  OvmfPkg/OvmfPkgX64.fdf     | 6 +++---
>  3 files changed, 9 insertions(+), 9 deletions(-)

Commit d272449d9e1e.

Thanks!
Laszlo
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel