On Fri, 13 Sep 2019 at 13:44, Laszlo Ersek <ler...@redhat.com> wrote: > > On 09/12/19 18:58, Ard Biesheuvel wrote: > > After upgrading the CI system we use for building the ArmVirtPkg > > targets, we started seeing failures due to the NOOPT build running > > out of space when using the CLANG38 toolchain definition combined > > with clang 7. > > > > We really don't want to increase the FD/FV sizes in general to > > accommodate this, so parameterize the relevant quantities and > > increase them by 50% for NOOPT builds. > > > > Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org> > > --- > > v3: - don't rely on fragile ordering of DEFINEs for the target dependent > > default value, but instead, use a single FD_SIZE_IN_MB macro whose > > default is DEFINEd either to 2 or 3 depend on the build target. That > > permits switching back to 2 MB for NOOPT builds if desired while > > changing the default to 3 MB > > - fix a few image header definitions that I missed for ARM32 + Xen > > > > v2: implement suggestions by Laszlo on 1) how to parameterize this further, > > and b) to avoid adding another .inc file > > update kernel header field, as pointed out by Philippe > > > > > > ArmVirtPkg/ArmVirt.dsc.inc | 15 ++++++++++++ > > ArmVirtPkg/ArmVirtQemu.fdf | 14 +++++++++--- > > ArmVirtPkg/ArmVirtQemuKernel.fdf | 24 +++++++++++++++++--- > > ArmVirtPkg/ArmVirtXen.fdf | 24 +++++++++++++++++--- > > 4 files changed, 68 insertions(+), 9 deletions(-) > > > > diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc > > index a4ae25d982a2..10037c938eb8 100644 > > --- a/ArmVirtPkg/ArmVirt.dsc.inc > > +++ b/ArmVirtPkg/ArmVirt.dsc.inc > > @@ -10,6 +10,21 @@ > > [Defines] > > DEFINE DEBUG_PRINT_ERROR_LEVEL = 0x8000004F > > > > +!if $(TARGET) != NOOPT > > + DEFINE FD_SIZE_IN_MB = 2 > > +!else > > + DEFINE FD_SIZE_IN_MB = 3 > > +!endif > > + > > +!if $(FD_SIZE_IN_MB) == 2 > > + DEFINE FD_SIZE = 0x200000 > > + DEFINE FD_NUM_BLOCKS = 0x200 > > +!endif > > +!if $(FD_SIZE_IN_MB) == 3 > > + DEFINE FD_SIZE = 0x300000 > > + DEFINE FD_NUM_BLOCKS = 0x300 > > +!endif > > + > > > > [BuildOptions.common.EDKII.DXE_CORE,BuildOptions.common.EDKII.DXE_DRIVER,BuildOptions.common.EDKII.UEFI_DRIVER,BuildOptions.common.EDKII.UEFI_APPLICATION] > > GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 > > > > diff --git a/ArmVirtPkg/ArmVirtQemu.fdf b/ArmVirtPkg/ArmVirtQemu.fdf > > index c2169cb7964b..2c8936a1ae15 100644 > > --- a/ArmVirtPkg/ArmVirtQemu.fdf > > +++ b/ArmVirtPkg/ArmVirtQemu.fdf > > @@ -20,14 +20,22 @@ > > # > > > > ################################################################################ > > > > +[Defines] > > +!if $(FD_SIZE_IN_MB) == 2 > > + DEFINE FVMAIN_COMPACT_SIZE = 0x1ff000 > > +!endif > > +!if $(FD_SIZE_IN_MB) == 3 > > + DEFINE FVMAIN_COMPACT_SIZE = 0x2ff000 > > +!endif > > + > > [FD.QEMU_EFI] > > BaseAddress = 0x00000000|gArmTokenSpaceGuid.PcdFdBaseAddress # QEMU > > assigns 0 - 0x8000000 for a BootROM > > -Size = 0x00200000|gArmTokenSpaceGuid.PcdFdSize # The size > > in bytes of the FLASH Device > > +Size = $(FD_SIZE)|gArmTokenSpaceGuid.PcdFdSize # The size > > in bytes of the FLASH Device > > ErasePolarity = 1 > > > > # This one is tricky, it must be: BlockSize * NumBlocks = Size > > BlockSize = 0x00001000 > > -NumBlocks = 0x200 > > +NumBlocks = $(FD_NUM_BLOCKS) > > > > > > ################################################################################ > > # > > @@ -59,7 +67,7 @@ DATA = { > > !endif > > } > > > > -0x00001000|0x001ff000 > > +0x00001000|$(FVMAIN_COMPACT_SIZE) > > gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize > > FV = FVMAIN_COMPACT > > > > diff --git a/ArmVirtPkg/ArmVirtQemuKernel.fdf > > b/ArmVirtPkg/ArmVirtQemuKernel.fdf > > index f675b6d65ee1..72fc8dd698f8 100644 > > --- a/ArmVirtPkg/ArmVirtQemuKernel.fdf > > +++ b/ArmVirtPkg/ArmVirtQemuKernel.fdf > > @@ -20,14 +20,22 @@ > > # > > > > ################################################################################ > > > > +[Defines] > > +!if $(FD_SIZE_IN_MB) == 2 > > + DEFINE FVMAIN_COMPACT_SIZE = 0x1f8000 > > +!endif > > +!if $(FD_SIZE_IN_MB) == 3 > > + DEFINE FVMAIN_COMPACT_SIZE = 0x2f8000 > > +!endif > > + > > [FD.QEMU_EFI] > > BaseAddress = 0x00000000|gArmTokenSpaceGuid.PcdFdBaseAddress # QEMU > > assigns 0 - 0x8000000 for a BootROM > > -Size = 0x00200000|gArmTokenSpaceGuid.PcdFdSize # The size > > in bytes of the FLASH Device > > +Size = $(FD_SIZE)|gArmTokenSpaceGuid.PcdFdSize # The size > > in bytes of the FLASH Device > > ErasePolarity = 1 > > > > # This one is tricky, it must be: BlockSize * NumBlocks = Size > > BlockSize = 0x00001000 > > -NumBlocks = 0x200 > > +NumBlocks = $(FD_NUM_BLOCKS) > > > > > > ################################################################################ > > # > > @@ -56,7 +64,12 @@ DATA = { > > 0x01, 0x00, 0x00, 0x10, # code0: adr x1, . > > 0xff, 0x1f, 0x00, 0x14, # code1: b 0x8000 > > 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, # text_offset: 512 KB > > +!if $(FD_SIZE_IN_MB) == 2 > > 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, # image_size: 2 MB > > +!endif > > +!if $(FD_SIZE_IN_MB) == 3 > > + 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, # image_size: 3 MB > > +!endif > > 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # flags > > 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # res2 > > 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # res3 > > @@ -76,12 +89,17 @@ DATA = { > > 0xf6, 0x1f, 0x00, 0xea, # b 0x8000 > > 0x18, 0x28, 0x6f, 0x01, # magic > > 0x00, 0x00, 0x00, 0x00, # start > > +!if $(FD_SIZE_IN_MB) == 2 > > 0x00, 0x00, 0x20, 0x00, # image size: 2 MB > > +!endif > > +!if $(FD_SIZE_IN_MB) == 3 > > + 0x00, 0x00, 0x30, 0x00, # image size: 3 MB > > +!endif > > 0x01, 0x02, 0x03, 0x04 # endiannness flag > > !endif > > } > > > > -0x00008000|0x001f8000 > > +0x00008000|$(FVMAIN_COMPACT_SIZE) > > gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize > > FV = FVMAIN_COMPACT > > > > diff --git a/ArmVirtPkg/ArmVirtXen.fdf b/ArmVirtPkg/ArmVirtXen.fdf > > index 79f681cde028..38d4cc163524 100644 > > --- a/ArmVirtPkg/ArmVirtXen.fdf > > +++ b/ArmVirtPkg/ArmVirtXen.fdf > > @@ -20,14 +20,22 @@ > > # > > > > ################################################################################ > > > > +[Defines] > > +!if $(FD_SIZE_IN_MB) == 2 > > + DEFINE FVMAIN_COMPACT_SIZE = 0x1fe000 > > +!endif > > +!if $(FD_SIZE_IN_MB) == 3 > > + DEFINE FVMAIN_COMPACT_SIZE = 0x2fe000 > > +!endif > > + > > [FD.XEN_EFI] > > BaseAddress = 0x00000000|gArmTokenSpaceGuid.PcdFdBaseAddress > > -Size = 0x00200000|gArmTokenSpaceGuid.PcdFdSize > > +Size = $(FD_SIZE)|gArmTokenSpaceGuid.PcdFdSize > > ErasePolarity = 1 > > > > # This one is tricky, it must be: BlockSize * NumBlocks = Size > > BlockSize = 0x00001000 > > -NumBlocks = 0x200 > > +NumBlocks = $(FD_NUM_BLOCKS) > > > > > > ################################################################################ > > # > > @@ -56,7 +64,12 @@ DATA = { > > 0x01, 0x00, 0x00, 0x10, # code0: adr x1, . > > 0xff, 0x07, 0x00, 0x14, # code1: b 0x2000 > > 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, # text_offset: 512 KB > > +!if $(FD_SIZE_IN_MB) == 2 > > 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, # image_size: 2 MB > > +!endif > > +!if $(FD_SIZE_IN_MB) == 3 > > + 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, # image_size: 3 MB > > +!endif > > 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # flags > > 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # res2 > > 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # res3 > > @@ -76,12 +89,17 @@ DATA = { > > 0xf6, 0x07, 0x00, 0xea, # b 0x2000 > > 0x18, 0x28, 0x6f, 0x01, # magic > > 0x00, 0x00, 0x00, 0x00, # start > > +!if $(FD_SIZE_IN_MB) == 2 > > 0x00, 0x00, 0x20, 0x00, # image size: 2 MB > > +!endif > > +!if $(FD_SIZE_IN_MB) == 3 > > + 0x00, 0x00, 0x30, 0x00, # image size: 3 MB > > +!endif > > 0x01, 0x02, 0x03, 0x04 # endiannness flag > > !endif > > } > > > > -0x00002000|0x001fe000 > > +0x00002000|$(FVMAIN_COMPACT_SIZE) > > gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize > > FV = FVMAIN_COMPACT > > > > > > Reviewed-by: Laszlo Ersek <ler...@redhat.com>
Thanks all Pushed as 86ad762fa7a5..7551529ce104 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#47207): https://edk2.groups.io/g/devel/message/47207 Mute This Topic: https://groups.io/mt/34117235/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-