From nobody Sat May 4 03:22:21 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+47190+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+47190+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1568307545; cv=none; d=zoho.com; s=zohoarc; b=TxfgvukP6hya48u03JIy+BBTMJwYHpsFHwZcajkWXa5LeaENHCiL/5mtD70gAoiDzFb+R67sOMipGUMONtwk3zhFCv8mDPfGqk9f+/Ff3HqjpF/W60fUIEpagiN3BevPWBMyqWS9EGKvmelLHaO4X2sDP4YXqeENlhdlAqavj9U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1568307545; h=Cc:Date:From:List-Id:List-Unsubscribe:Message-ID:Reply-To:Sender:Subject:To:ARC-Authentication-Results; bh=Hw/ll0SDIkGdPrKYcNsuVqB3R6/d4D9oZBXXfaKCorc=; b=Ic8u0tiec+JKssg7x0pKuqLa+cV1YsaeokN4csnx1WRxyrPeny+q1aI0Qbw2dMwWmYJmhgIro9j0ddwsH3jrxrnihN41SunII5I34HmP7nnpqUywcJN8oMe5j4L/fRYyyfWR1mj1TQCsoEnYOX7eRp8SDtsnsdkwi0H/h7Mo9nc= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+47190+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1568307545536818.0503188820437; Thu, 12 Sep 2019 09:59:05 -0700 (PDT) Return-Path: X-Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by groups.io with SMTP; Thu, 12 Sep 2019 09:59:04 -0700 X-Received: by mail-wr1-f68.google.com with SMTP id u16so29276356wrr.0 for ; Thu, 12 Sep 2019 09:59:04 -0700 (PDT) X-Gm-Message-State: APjAAAU884v9o12WDfYHK2Li3gkle82OVGeCmoBehiC4a/dZoLtUFrBB 3DgenUyxINdNgg2rZ4cEYoXG3p8hrGKlw2qs X-Google-Smtp-Source: APXvYqw7m8sK5XGcV0mP8c5GoPmbhj6HRRdCCoWsouvHDprd2dcEYthptGpw8cEN8yEDwqIsGRnQqg== X-Received: by 2002:a5d:54cd:: with SMTP id x13mr12306035wrv.12.1568307542652; Thu, 12 Sep 2019 09:59:02 -0700 (PDT) X-Received: from e111045-lin.c.hoisthospitality.com ([135.196.99.211]) by smtp.gmail.com with ESMTPSA id e3sm32372918wrh.12.2019.09.12.09.59.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Sep 2019 09:59:01 -0700 (PDT) From: "Ard Biesheuvel" To: devel@edk2.groups.io Cc: leif.lindholm@linaro.org, lersek@redhat.com, philmd@redhat.com, Ard Biesheuvel Subject: [edk2-devel] [PATCH v3] ArmVirtPkg: increase FD/FV size for NOOPT builds Date: Thu, 12 Sep 2019 17:58:49 +0100 Message-Id: <20190912165849.20868-1-ard.biesheuvel@linaro.org> Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,ard.biesheuvel@linaro.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1568307545; bh=pqX8yuOPKgST7WsHQLZFxLzgIitlbVMlupNIxksjvd4=; h=Cc:Date:From:Reply-To:Subject:To; b=lbS9IQdVSESqEQZzWvBIjOPNeAnM1uD1Bg/zRZUFWRee8q+SSfBsD5itYlGRuWXn4Y2 Gh3B8oPWBQs+r2pyZPyVlPbG3WqQ7d68Xtlilo9IXBGv3SUp0zFSoLyONzrvflm+TQ8eh +s1tjcMPjhrCQrM5oxkLhOU++d4YrxqubPc= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 Reviewed-by: Laszlo Ersek Reviewed-by: Philippe Mathieu-Daude --- 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 =3D 0x8000004F =20 +!if $(TARGET) !=3D NOOPT + DEFINE FD_SIZE_IN_MB =3D 2 +!else + DEFINE FD_SIZE_IN_MB =3D 3 +!endif + +!if $(FD_SIZE_IN_MB) =3D=3D 2 + DEFINE FD_SIZE =3D 0x200000 + DEFINE FD_NUM_BLOCKS =3D 0x200 +!endif +!if $(FD_SIZE_IN_MB) =3D=3D 3 + DEFINE FD_SIZE =3D 0x300000 + DEFINE FD_NUM_BLOCKS =3D 0x300 +!endif + [BuildOptions.common.EDKII.DXE_CORE,BuildOptions.common.EDKII.DXE_DRIVER,B= uildOptions.common.EDKII.UEFI_DRIVER,BuildOptions.common.EDKII.UEFI_APPLICA= TION] GCC:*_*_*_DLINK_FLAGS =3D -z common-page-size=3D0x1000 =20 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 @@ # ##########################################################################= ###### =20 +[Defines] +!if $(FD_SIZE_IN_MB) =3D=3D 2 + DEFINE FVMAIN_COMPACT_SIZE =3D 0x1ff000 +!endif +!if $(FD_SIZE_IN_MB) =3D=3D 3 + DEFINE FVMAIN_COMPACT_SIZE =3D 0x2ff000 +!endif + [FD.QEMU_EFI] BaseAddress =3D 0x00000000|gArmTokenSpaceGuid.PcdFdBaseAddress # QEMU a= ssigns 0 - 0x8000000 for a BootROM -Size =3D 0x00200000|gArmTokenSpaceGuid.PcdFdSize # The si= ze in bytes of the FLASH Device +Size =3D $(FD_SIZE)|gArmTokenSpaceGuid.PcdFdSize # The si= ze in bytes of the FLASH Device ErasePolarity =3D 1 =20 # This one is tricky, it must be: BlockSize * NumBlocks =3D Size BlockSize =3D 0x00001000 -NumBlocks =3D 0x200 +NumBlocks =3D $(FD_NUM_BLOCKS) =20 ##########################################################################= ###### # @@ -59,7 +67,7 @@ DATA =3D { !endif } =20 -0x00001000|0x001ff000 +0x00001000|$(FVMAIN_COMPACT_SIZE) gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize FV =3D FVMAIN_COMPACT =20 diff --git a/ArmVirtPkg/ArmVirtQemuKernel.fdf b/ArmVirtPkg/ArmVirtQemuKerne= l.fdf index f675b6d65ee1..72fc8dd698f8 100644 --- a/ArmVirtPkg/ArmVirtQemuKernel.fdf +++ b/ArmVirtPkg/ArmVirtQemuKernel.fdf @@ -20,14 +20,22 @@ # ##########################################################################= ###### =20 +[Defines] +!if $(FD_SIZE_IN_MB) =3D=3D 2 + DEFINE FVMAIN_COMPACT_SIZE =3D 0x1f8000 +!endif +!if $(FD_SIZE_IN_MB) =3D=3D 3 + DEFINE FVMAIN_COMPACT_SIZE =3D 0x2f8000 +!endif + [FD.QEMU_EFI] BaseAddress =3D 0x00000000|gArmTokenSpaceGuid.PcdFdBaseAddress # QEMU a= ssigns 0 - 0x8000000 for a BootROM -Size =3D 0x00200000|gArmTokenSpaceGuid.PcdFdSize # The si= ze in bytes of the FLASH Device +Size =3D $(FD_SIZE)|gArmTokenSpaceGuid.PcdFdSize # The si= ze in bytes of the FLASH Device ErasePolarity =3D 1 =20 # This one is tricky, it must be: BlockSize * NumBlocks =3D Size BlockSize =3D 0x00001000 -NumBlocks =3D 0x200 +NumBlocks =3D $(FD_NUM_BLOCKS) =20 ##########################################################################= ###### # @@ -56,7 +64,12 @@ DATA =3D { 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) =3D=3D 2 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, # image_size: 2 MB +!endif +!if $(FD_SIZE_IN_MB) =3D=3D 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 =3D { 0xf6, 0x1f, 0x00, 0xea, # b 0x8000 0x18, 0x28, 0x6f, 0x01, # magic 0x00, 0x00, 0x00, 0x00, # start +!if $(FD_SIZE_IN_MB) =3D=3D 2 0x00, 0x00, 0x20, 0x00, # image size: 2 MB +!endif +!if $(FD_SIZE_IN_MB) =3D=3D 3 + 0x00, 0x00, 0x30, 0x00, # image size: 3 MB +!endif 0x01, 0x02, 0x03, 0x04 # endiannness flag !endif } =20 -0x00008000|0x001f8000 +0x00008000|$(FVMAIN_COMPACT_SIZE) gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize FV =3D FVMAIN_COMPACT =20 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 @@ # ##########################################################################= ###### =20 +[Defines] +!if $(FD_SIZE_IN_MB) =3D=3D 2 + DEFINE FVMAIN_COMPACT_SIZE =3D 0x1fe000 +!endif +!if $(FD_SIZE_IN_MB) =3D=3D 3 + DEFINE FVMAIN_COMPACT_SIZE =3D 0x2fe000 +!endif + [FD.XEN_EFI] BaseAddress =3D 0x00000000|gArmTokenSpaceGuid.PcdFdBaseAddress -Size =3D 0x00200000|gArmTokenSpaceGuid.PcdFdSize +Size =3D $(FD_SIZE)|gArmTokenSpaceGuid.PcdFdSize ErasePolarity =3D 1 =20 # This one is tricky, it must be: BlockSize * NumBlocks =3D Size BlockSize =3D 0x00001000 -NumBlocks =3D 0x200 +NumBlocks =3D $(FD_NUM_BLOCKS) =20 ##########################################################################= ###### # @@ -56,7 +64,12 @@ DATA =3D { 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) =3D=3D 2 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, # image_size: 2 MB +!endif +!if $(FD_SIZE_IN_MB) =3D=3D 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 =3D { 0xf6, 0x07, 0x00, 0xea, # b 0x2000 0x18, 0x28, 0x6f, 0x01, # magic 0x00, 0x00, 0x00, 0x00, # start +!if $(FD_SIZE_IN_MB) =3D=3D 2 0x00, 0x00, 0x20, 0x00, # image size: 2 MB +!endif +!if $(FD_SIZE_IN_MB) =3D=3D 3 + 0x00, 0x00, 0x30, 0x00, # image size: 3 MB +!endif 0x01, 0x02, 0x03, 0x04 # endiannness flag !endif } =20 -0x00002000|0x001fe000 +0x00002000|$(FVMAIN_COMPACT_SIZE) gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize FV =3D FVMAIN_COMPACT =20 --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#47190): https://edk2.groups.io/g/devel/message/47190 Mute This Topic: https://groups.io/mt/34117235/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-