From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) by mx.groups.io with SMTP id smtpd.web11.175.1622048911529220638 for ; Wed, 26 May 2021 10:08:32 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@newmexicoconsortium-org.20150623.gappssmtp.com header.s=20150623 header.b=cibQhjVc; spf=none, err=SPF record not found (domain: newmexicoconsortium.org, ip: 209.85.214.178, mailfrom: dbautista@newmexicoconsortium.org) Received: by mail-pl1-f178.google.com with SMTP id z4so934567plg.8 for ; Wed, 26 May 2021 10:08:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=newmexicoconsortium-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=6WmOXCaT0OZYTjfGkrxGm/wd3qkROkwTogE2nJf6N3A=; b=cibQhjVcFJrXyMHxYVkBMH0sM6Gq+zbYyDsH9aW6V0QyXyzpPpXTN7wjJNA2OgrJ2r VraRpimDDzMHryPmM4lZi9DyRqEvqTiz6GhsQSaQ7cpx3//nEiysEhN/kz+g1BKEWP9v wQbXzXaoygQe/haWg1vKy1/w6EB8E+0JEPb8gh9uDDQR1iEStng7DaZf6K7tAByZxBqV O3PIGXhrSGRd8A/RNZhFeSXYhPnLYJvO0HIxm6V6J/tRuqcLuNnnvdc3Zg/MBqBtIzTv pnHxKaYwOVO/IKjM1QPg6atq+dwfagBt9iRDEjcqN28t3KNXdEnVGGpM/Y3kEMX3bo51 4E1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=6WmOXCaT0OZYTjfGkrxGm/wd3qkROkwTogE2nJf6N3A=; b=FNUiKb8rVPkd9Hzz03acTlesP7KQaPZY0xFd33exgjH9ZMZbz+dmm8AX1wbDmPNYTf kdcGzGfRg6VwgbNCvOmDhkdXOIqE5jaKZjCR4yEKmYso74VBthc/xe1hTNF7cb6UD1v9 mLRA/Eza57zBvhBh0Rk9Nz5bOqhjMwbpMM4uWuaxKhxf5DeWOlgQPerShLexh/AirvjC +jn71Ch03KBRBuEnGdbZtQtxHA52H6J0lOmU5gfwKeoD1hGsTT+VIomMNvfuy+XzSesZ FQXGV472x3Zwr13hDofALhw/Y4TN37ldq5Y6ohkIcnhvnOckJtT1MrW8vd0PGt4G9aI9 Oz6w== X-Gm-Message-State: AOAM531VZ5Xm7M9/HzV+KnPpzzUWUOx3Rk5bGJHRWEAqQBnnSTcAhbUz +pmkpByrtmZjk72LDuC3d1bnod8HKnw3gdFU+mU= X-Google-Smtp-Source: ABdhPJx6wC62qrWwRVXfSXAgjGF5bXBaHS8bn5JTL/u3rpuQ2fHEnvAu4rTCM4hMmvjc5M3wNr5swA== X-Received: by 2002:a17:902:d2ce:b029:f4:4a5:9a8b with SMTP id n14-20020a170902d2ceb02900f404a59a8bmr36521446plc.70.1622048910602; Wed, 26 May 2021 10:08:30 -0700 (PDT) Return-Path: Received: from localhost.localdomain (c-73-48-255-158.hsd1.ca.comcast.net. [73.48.255.158]) by smtp.googlemail.com with ESMTPSA id z9sm13517110pji.47.2021.05.26.10.08.29 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 26 May 2021 10:08:30 -0700 (PDT) From: "Devon Bautista" To: devel@edk2.groups.io Cc: Devon Bautista Subject: [PATCH v1] OvmfPkg: Add build options for 8MB and 16MB X64 OVMF images Date: Wed, 26 May 2021 10:08:12 -0700 Message-Id: <7bfd4b82fc725302beb37e13c4a89d389c34ec34.1622048433.git.dbautista@newmexicoconsortium.org> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Currently, the largest volume size for building OVMF images is 4MB. With the growth of the Linuxboot project, maintainers have had to maintain a fork containing this patch which allows larger image sizes in order for Linuxboot developers/users to have enough space to experiment with and test including their own Linux kernel in the DXE section of OVMF firmware. Testing using OVMF is valuable since it allows testing in QEMU and thus does not require any hardware to do so. This patch allows specifying '-D FD_SIZE_8MB' or '-D FD_SIZE_16MB' to the OVMF build script in order to add the ability to build 8MB or 16MB x86_64 (X64) OVMF images, respectively. Signed-off-by: Devon Bautista --- OvmfPkg/OvmfPkgDefines.fdf.inc | 34 ++++++++++++++++++++++++++++++++++ OvmfPkg/OvmfPkgX64.dsc | 10 +++++++++- OvmfPkg/VarStore.fdf.inc | 16 ++++++++-------- 3 files changed, 51 insertions(+), 9 deletions(-) diff --git a/OvmfPkg/OvmfPkgDefines.fdf.inc b/OvmfPkg/OvmfPkgDefines.fdf.inc index 35fd454b97..da37758934 100644 --- a/OvmfPkg/OvmfPkgDefines.fdf.inc +++ b/OvmfPkg/OvmfPkgDefines.fdf.inc @@ -66,6 +66,40 @@ DEFINE SECFV_OFFSET = 0x003CC000 DEFINE SECFV_SIZE = 0x34000 !endif +!if $(FD_SIZE_IN_KB) == 8192 +DEFINE VARS_SIZE = 0x84000 +DEFINE VARS_BLOCKS = 0x84 +DEFINE VARS_LIVE_SIZE = 0x40000 +DEFINE VARS_SPARE_SIZE = 0x42000 + +DEFINE FW_BASE_ADDRESS = 0xFF800000 +DEFINE FW_SIZE = 0x00800000 +DEFINE FW_BLOCKS = 0x800 +DEFINE CODE_BASE_ADDRESS = 0xFF884000 +DEFINE CODE_SIZE = 0x0077C000 +DEFINE CODE_BLOCKS = 0x77C +DEFINE FVMAIN_SIZE = 0x00748000 +DEFINE SECFV_OFFSET = 0x007CC000 +DEFINE SECFV_SIZE = 0x34000 +!endif + +!if $(FD_SIZE_IN_KB) == 16384 +DEFINE VARS_SIZE = 0x84000 +DEFINE VARS_BLOCKS = 0x84 +DEFINE VARS_LIVE_SIZE = 0x40000 +DEFINE VARS_SPARE_SIZE = 0x42000 + +DEFINE FW_BASE_ADDRESS = 0xFF000000 +DEFINE FW_SIZE = 0x01000000 +DEFINE FW_BLOCKS = 0x1000 +DEFINE CODE_BASE_ADDRESS = 0xFF084000 +DEFINE CODE_SIZE = 0x00F7C000 +DEFINE CODE_BLOCKS = 0xF7C +DEFINE FVMAIN_SIZE = 0x00F48000 +DEFINE SECFV_OFFSET = 0x00FCC000 +DEFINE SECFV_SIZE = 0x34000 +!endif + SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFdBaseAddress = $(FW_BASE_ADDRESS) SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareFdSize = $(FW_SIZE) SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareBlockSize = $(BLOCK_SIZE) diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc index 999738dc39..28351e2f56 100644 --- a/OvmfPkg/OvmfPkgX64.dsc +++ b/OvmfPkg/OvmfPkgX64.dsc @@ -66,11 +66,19 @@ !else !ifdef $(FD_SIZE_4MB) DEFINE FD_SIZE_IN_KB = 4096 +!else +!ifdef $(FD_SIZE_8MB) + DEFINE FD_SIZE_IN_KB = 8192 +!else +!ifdef $(FD_SIZE_16MB) + DEFINE FD_SIZE_IN_KB = 16384 !else DEFINE FD_SIZE_IN_KB = 4096 !endif !endif !endif +!endif +!endif [BuildOptions] GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG @@ -501,7 +509,7 @@ gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0xe000 !endif !endif -!if $(FD_SIZE_IN_KB) == 4096 +!if $(FD_SIZE_IN_KB) == 4096 || $(FD_SIZE_IN_KB) == 8196 || $(FD_SIZE_IN_KB) == 16384 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x8400 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x8400 !if $(NETWORK_TLS_ENABLE) == FALSE diff --git a/OvmfPkg/VarStore.fdf.inc b/OvmfPkg/VarStore.fdf.inc index a1e524e393..70db929478 100644 --- a/OvmfPkg/VarStore.fdf.inc +++ b/OvmfPkg/VarStore.fdf.inc @@ -11,7 +11,7 @@ !if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) 0x00000000|0x0000e000 !endif -!if $(FD_SIZE_IN_KB) == 4096 +!if ($(FD_SIZE_IN_KB) == 4096) || ($(FD_SIZE_IN_KB) == 8192) || ($(FD_SIZE_IN_KB) == 16384) 0x00000000|0x00040000 !endif #NV_VARIABLE_STORE @@ -29,7 +29,7 @@ DATA = { # FvLength: 0x20000 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, !endif -!if $(FD_SIZE_IN_KB) == 4096 +!if ($(FD_SIZE_IN_KB) == 4096) || ($(FD_SIZE_IN_KB) == 8192) || ($(FD_SIZE_IN_KB) == 16384) # FvLength: 0x84000 0x00, 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, !endif @@ -41,7 +41,7 @@ DATA = { # CheckSum 0x19, 0xF9, !endif -!if $(FD_SIZE_IN_KB) == 4096 +!if ($(FD_SIZE_IN_KB) == 4096) || ($(FD_SIZE_IN_KB) == 8192) || ($(FD_SIZE_IN_KB) == 16384) # CheckSum 0xAF, 0xB8, !endif @@ -51,7 +51,7 @@ DATA = { # Blockmap[0]: 0x20 Blocks * 0x1000 Bytes / Block 0x20, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, !endif -!if $(FD_SIZE_IN_KB) == 4096 +!if ($(FD_SIZE_IN_KB) == 4096) || ($(FD_SIZE_IN_KB) == 8192) || ($(FD_SIZE_IN_KB) == 16384) # Blockmap[0]: 0x84 Blocks * 0x1000 Bytes / Block 0x84, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, !endif @@ -70,7 +70,7 @@ DATA = { # This can speed up the Variable Dispatch a bit. 0xB8, 0xDF, 0x00, 0x00, !endif -!if $(FD_SIZE_IN_KB) == 4096 +!if ($(FD_SIZE_IN_KB) == 4096) || ($(FD_SIZE_IN_KB) == 8192) || ($(FD_SIZE_IN_KB) == 16384) # Size: 0x40000 (gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize) - # 0x48 (size of EFI_FIRMWARE_VOLUME_HEADER) = 0x3ffb8 # This can speed up the Variable Dispatch a bit. @@ -83,7 +83,7 @@ DATA = { !if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) 0x0000e000|0x00001000 !endif -!if $(FD_SIZE_IN_KB) == 4096 +!if ($(FD_SIZE_IN_KB) == 4096) || ($(FD_SIZE_IN_KB) == 8192) || ($(FD_SIZE_IN_KB) == 16384) 0x00040000|0x00001000 !endif #NV_EVENT_LOG @@ -91,7 +91,7 @@ DATA = { !if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) 0x0000f000|0x00001000 !endif -!if $(FD_SIZE_IN_KB) == 4096 +!if ($(FD_SIZE_IN_KB) == 4096) || ($(FD_SIZE_IN_KB) == 8192) || ($(FD_SIZE_IN_KB) == 16384) 0x00041000|0x00001000 !endif #NV_FTW_WORKING @@ -109,7 +109,7 @@ DATA = { !if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) 0x00010000|0x00010000 !endif -!if $(FD_SIZE_IN_KB) == 4096 +!if ($(FD_SIZE_IN_KB) == 4096) || ($(FD_SIZE_IN_KB) == 8192) || ($(FD_SIZE_IN_KB) == 16384) 0x00042000|0x00042000 !endif #NV_FTW_SPARE -- 2.21.0