diff --git a/0001-BaseTools-do-not-build-BrotliCompress-RH-only.patch b/0001-BaseTools-do-not-build-BrotliCompress-RH-only.patch index f1a84c6..2d76fab 100644 --- a/0001-BaseTools-do-not-build-BrotliCompress-RH-only.patch +++ b/0001-BaseTools-do-not-build-BrotliCompress-RH-only.patch @@ -1,7 +1,7 @@ -From 7dcb09329342195068afc51f590793903af6ac0f Mon Sep 17 00:00:00 2001 +From e1e3402a5bf94f2e4a5b67f9587b20ceb4a109ac Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Thu, 4 Jun 2020 13:34:12 +0200 -Subject: [PATCH 01/17] BaseTools: do not build BrotliCompress (RH only) +Subject: [PATCH 01/14] BaseTools: do not build BrotliCompress (RH only) Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: @@ -39,5 +39,5 @@ index 5275f657efe8..39d719975309 100644 EfiRom \ GenFfs \ -- -2.38.1 +2.39.2 diff --git a/0002-MdeModulePkg-remove-package-private-Brotli-include-p.patch b/0002-MdeModulePkg-remove-package-private-Brotli-include-p.patch index b209e4b..a6f8f6b 100644 --- a/0002-MdeModulePkg-remove-package-private-Brotli-include-p.patch +++ b/0002-MdeModulePkg-remove-package-private-Brotli-include-p.patch @@ -1,7 +1,7 @@ -From c107b4e09579df67285ee9ef4d904fada23d7c94 Mon Sep 17 00:00:00 2001 +From 7115ded03e80aa8f359a9e45979715a8dc47257c Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Thu, 4 Jun 2020 13:39:08 +0200 -Subject: [PATCH 02/17] MdeModulePkg: remove package-private Brotli include +Subject: [PATCH 02/14] MdeModulePkg: remove package-private Brotli include path (RH only) Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> @@ -32,10 +32,10 @@ Signed-off-by: Laszlo Ersek 1 file changed, 3 deletions(-) diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec -index 58e6ab004882..775f1b27af08 100644 +index e8058c8bfaec..f33312fb3510 100644 --- a/MdeModulePkg/MdeModulePkg.dec +++ b/MdeModulePkg/MdeModulePkg.dec -@@ -24,9 +24,6 @@ [Defines] +@@ -25,9 +25,6 @@ [Defines] [Includes] Include @@ -46,5 +46,5 @@ index 58e6ab004882..775f1b27af08 100644 ## @libraryclass Defines a set of methods to reset whole system. ResetSystemLib|Include/Library/ResetSystemLib.h -- -2.38.1 +2.39.2 diff --git a/0003-MdeModulePkg-TerminalDxe-add-other-text-resolutions-.patch b/0003-MdeModulePkg-TerminalDxe-add-other-text-resolutions-.patch deleted file mode 100644 index 1f887c1..0000000 --- a/0003-MdeModulePkg-TerminalDxe-add-other-text-resolutions-.patch +++ /dev/null @@ -1,169 +0,0 @@ -From 4f27957c6abb99d8fa59e6d1f6cc58e0769e9588 Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Tue, 25 Feb 2014 18:40:35 +0100 -Subject: [PATCH 03/17] MdeModulePkg: TerminalDxe: add other text resolutions - (RHEL only) - -Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> -RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: - -- no change - -Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> -RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: - -- no changes - -Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] -> -RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase: - -- no changes - -Notes about the RHEL-8.0/20180508-ee3198e672e2 -> -RHEL-8.1/20190308-89910a39dcfd rebase: - -- no change - -Notes about the RHEL-7.6/ovmf-20180508-2.gitee3198e672e2.el7 -> -RHEL-8.0/20180508-ee3198e672e2 rebase: - -- reorder the rebase changelog in the commit message so that it reads like - a blog: place more recent entries near the top -- no changes to the patch body - -Notes about the 20171011-92d07e48907f -> 20180508-ee3198e672e2 rebase: - -- update commit message as requested in - - -Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: - -- no changes - -Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: - -- adapt commit 0bc77c63de03 (code and commit message) to upstream commit - 390b95a49c14 ("MdeModulePkg/TerminalDxe: Refine - InitializeTerminalConsoleTextMode", 2017-01-10). - -When the console output is multiplexed to several devices by -ConSplitterDxe, then ConSplitterDxe builds an intersection of text modes -supported by all console output devices. - -Two notable output devices are provided by: -(1) MdeModulePkg/Universal/Console/GraphicsConsoleDxe, -(2) MdeModulePkg/Universal/Console/TerminalDxe. - -GraphicsConsoleDxe supports four modes at most -- see -InitializeGraphicsConsoleTextMode() and "mGraphicsConsoleModeData": - -(1a) 80x25 (required by the UEFI spec as mode 0), -(1b) 80x50 (not necessarily supported, but if it is, then the UEFI spec - requires the driver to provide it as mode 1), -(1c) 100x31 (corresponding to graphics resolution 800x600, which the UEFI - spec requires from all plug-in graphics devices), -(1d) "full screen" resolution, derived form the underlying GOP's - horizontal and vertical resolutions with division by EFI_GLYPH_WIDTH - (8) and EFI_GLYPH_HEIGHT (19), respectively. - -The automatic "full screen resolution" makes GraphicsConsoleDxe's -character console very flexible. However, TerminalDxe (which runs on -serial ports) only provides the following fixed resolutions -- see -InitializeTerminalConsoleTextMode() and "mTerminalConsoleModeData": - -(2a) 80x25 (required by the UEFI spec as mode 0), -(2b) 80x50 (since the character resolution of a serial device cannot be - interrogated easily, this is added unconditionally as mode 1), -(2c) 100x31 (since the character resolution of a serial device cannot be - interrogated easily, this is added unconditionally as mode 2). - -When ConSplitterDxe combines (1) and (2), multiplexing console output to -both video output and serial terminal, the list of commonly supported text -modes (ie. the "intersection") comprises: - -(3a) 80x25, unconditionally, from (1a) and (2a), -(3b) 80x50, if the graphics console provides at least 640x950 pixel - resolution, from (1b) and (2b) -(3c) 100x31, if the graphics device is a plug-in one (because in that case - 800x600 is a mandated pixel resolution), from (1c) and (2c). - -Unfortunately, the "full screen resolution" (1d) of the GOP-based text -console is not available in general. - -Mitigate this problem by extending "mTerminalConsoleModeData" with a -handful of text resolutions that are derived from widespread maximal pixel -resolutions. This way TerminalDxe won't cause ConSplitterDxe to filter out -the most frequent (1d) values from the intersection, and eg. the MODE -command in the UEFI shell will offer the "best" (ie. full screen) -resolution too. - -Upstreaming efforts for this patch have been discontinued; it was clear -from the off-list thread that consensus was impossible to reach. - -Signed-off-by: Laszlo Ersek -(cherry picked from commit 99dc3720ac86059f60156197328cc433603c536e) -(cherry picked from commit d2066c1748f885043026c51dec1bc8d6d406ae8f) -(cherry picked from commit 1facdd58e946c584a3dc1e5be8f2f837b5a7c621) -(cherry picked from commit 28faeb5f94b4866b9da16cf2a1e4e0fc09a26e37) -(cherry picked from commit 4e4e15b80a5b2103eadd495ef4a830d46dd4ed51) -(cherry picked from commit 12cb13a1da913912bd9148ce8f2353a75be77f18) -(cherry picked from commit 82b9edc5fef3a07227a45059bbe821af7b9abd69) ---- - .../Universal/Console/TerminalDxe/Terminal.c | 41 +++++++++++++++++-- - 1 file changed, 38 insertions(+), 3 deletions(-) - -diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c -index e2d779c78378..f238c4103b3d 100644 ---- a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c -+++ b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c -@@ -112,9 +112,44 @@ TERMINAL_DEV mTerminalDevTemplate = { - }; - - TERMINAL_CONSOLE_MODE_DATA mTerminalConsoleModeData[] = { -- { 80, 25 }, -- { 80, 50 }, -- { 100, 31 }, -+ { 80, 25 }, // from graphics resolution 640 x 480 -+ { 80, 50 }, // from graphics resolution 640 x 960 -+ { 100, 25 }, // from graphics resolution 800 x 480 -+ { 100, 31 }, // from graphics resolution 800 x 600 -+ { 104, 32 }, // from graphics resolution 832 x 624 -+ { 120, 33 }, // from graphics resolution 960 x 640 -+ { 128, 31 }, // from graphics resolution 1024 x 600 -+ { 128, 40 }, // from graphics resolution 1024 x 768 -+ { 144, 45 }, // from graphics resolution 1152 x 864 -+ { 144, 45 }, // from graphics resolution 1152 x 870 -+ { 160, 37 }, // from graphics resolution 1280 x 720 -+ { 160, 40 }, // from graphics resolution 1280 x 760 -+ { 160, 40 }, // from graphics resolution 1280 x 768 -+ { 160, 42 }, // from graphics resolution 1280 x 800 -+ { 160, 50 }, // from graphics resolution 1280 x 960 -+ { 160, 53 }, // from graphics resolution 1280 x 1024 -+ { 170, 40 }, // from graphics resolution 1360 x 768 -+ { 170, 40 }, // from graphics resolution 1366 x 768 -+ { 175, 55 }, // from graphics resolution 1400 x 1050 -+ { 180, 47 }, // from graphics resolution 1440 x 900 -+ { 200, 47 }, // from graphics resolution 1600 x 900 -+ { 200, 63 }, // from graphics resolution 1600 x 1200 -+ { 210, 55 }, // from graphics resolution 1680 x 1050 -+ { 240, 56 }, // from graphics resolution 1920 x 1080 -+ { 240, 63 }, // from graphics resolution 1920 x 1200 -+ { 240, 75 }, // from graphics resolution 1920 x 1440 -+ { 250, 105 }, // from graphics resolution 2000 x 2000 -+ { 256, 80 }, // from graphics resolution 2048 x 1536 -+ { 256, 107 }, // from graphics resolution 2048 x 2048 -+ { 320, 75 }, // from graphics resolution 2560 x 1440 -+ { 320, 84 }, // from graphics resolution 2560 x 1600 -+ { 320, 107 }, // from graphics resolution 2560 x 2048 -+ { 350, 110 }, // from graphics resolution 2800 x 2100 -+ { 400, 126 }, // from graphics resolution 3200 x 2400 -+ { 480, 113 }, // from graphics resolution 3840 x 2160 -+ { 512, 113 }, // from graphics resolution 4096 x 2160 -+ { 960, 227 }, // from graphics resolution 7680 x 4320 -+ { 1024, 227 }, // from graphics resolution 8192 x 4320 - // - // New modes can be added here. - // --- -2.38.1 - diff --git a/0003-MdeModulePkg-TerminalDxe-set-xterm-resolution-on-mod.patch b/0003-MdeModulePkg-TerminalDxe-set-xterm-resolution-on-mod.patch new file mode 100644 index 0000000..9e92fd6 --- /dev/null +++ b/0003-MdeModulePkg-TerminalDxe-set-xterm-resolution-on-mod.patch @@ -0,0 +1,180 @@ +From 84149154c873d3521bf0848d8473f2c09f3ccca0 Mon Sep 17 00:00:00 2001 +From: Laszlo Ersek +Date: Tue, 25 Feb 2014 22:40:01 +0100 +Subject: [PATCH 03/14] MdeModulePkg: TerminalDxe: set xterm resolution on mode + change (RH only) + +Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> +RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: + +- Resolve harmless conflict in "MdeModulePkg/MdeModulePkg.dec", + originating from new upstream commits + - 45bc28172fbf ("MdeModulePkg.dec: Change PCDs for status code.", + 2020-06-18), + - 0785c619a58a ("MdeModulePkg/Bus/Pci/PciBusDxe: Support PCIe Resizable + BAR Capability", 2021-01-04), + - ef23012e5439 ("MdeModulePkg: Change default value of + PcdPcieResizableBarSupport to FALSE", 2021-01-14). + +Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> +RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: + +- Resolve trivial conflict in "MdeModulePkg/MdeModulePkg.dec", arising + from upstream commit 166830d8f7ca ("MdeModulePkg/dec: add + PcdTcgPfpMeasurementRevision PCD", 2020-01-06). + +Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] -> +RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase: + +- Conflict in "MdeModulePkg/MdeModulePkg.dec" due to upstream commits + - 1103ba946aee ("MdeModulePkg: Add Capsule On Disk related definition.", + 2019-06-26), + - 1c7b3eb84631 ("MdeModulePkg/DxeIpl: Introduce PCD + PcdUse5LevelPageTable", 2019-08-09), + with easy manual resolution. + +Notes about the RHEL-8.0/20180508-ee3198e672e2 -> +RHEL-8.1/20190308-89910a39dcfd rebase: + +- no change + +Notes about the RHEL-7.6/ovmf-20180508-2.gitee3198e672e2.el7 -> +RHEL-8.0/20180508-ee3198e672e2 rebase: + +- reorder the rebase changelog in the commit message so that it reads like + a blog: place more recent entries near the top +- no changes to the patch body + +Notes about the 20171011-92d07e48907f -> 20180508-ee3198e672e2 rebase: + +- no change + +Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: + +- Refresh downstream-only commit 2909e025db68 against "MdeModulePkg.dec" + context change from upstream commits e043f7895b83 ("MdeModulePkg: Add + PCD PcdPteMemoryEncryptionAddressOrMask", 2017-02-27) and 76081dfcc5b2 + ("MdeModulePkg: Add PROMPT&HELP string of pcd to UNI file", 2017-03-03). + +Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: + +- refresh commit 519b9751573e against various context changes + +The + + CSI Ps ; Ps ; Ps t + +escape sequence serves for window manipulation. We can use the + + CSI 8 ; ; t + +sequence to adapt eg. the xterm window size to the selected console mode. + +Reference: +Contributed-under: TianoCore Contribution Agreement 1.0 +Signed-off-by: Laszlo Ersek +(cherry picked from commit 2909e025db6878723b49644a8a0cf160d07e6444) +(cherry picked from commit b9c5c901f25e48d68eef6e78a4abca00e153f574) +(cherry picked from commit b7f6115b745de8cbc5214b6ede33c9a8558beb90) +(cherry picked from commit 67415982afdc77922aa37496c981adeb4351acdb) +(cherry picked from commit cfccb98d13e955beb0b93b4a75a973f30c273ffc) +(cherry picked from commit a11602f5e2ef930be5b693ddfd0c789a1bd4c60c) +(cherry picked from commit bc2266f20de5db1636e09a07e4a72c8dbf505f5a) +--- + MdeModulePkg/MdeModulePkg.dec | 4 +++ + .../Console/TerminalDxe/TerminalDxe.inf | 2 ++ + .../Console/TerminalDxe/TerminalConOut.c | 29 +++++++++++++++++++ + 3 files changed, 35 insertions(+) + +diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec +index f33312fb3510..020f62fcc668 100644 +--- a/MdeModulePkg/MdeModulePkg.dec ++++ b/MdeModulePkg/MdeModulePkg.dec +@@ -2102,6 +2102,10 @@ [PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx] + # @Prompt The shared bit mask when Intel Tdx is enabled. + gEfiMdeModulePkgTokenSpaceGuid.PcdTdxSharedBitMask|0x0|UINT64|0x10000025 + ++ ## Controls whether TerminalDxe outputs an XTerm resize sequence on terminal ++ # mode change. ++ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE|BOOLEAN|0x00010080 ++ + [PcdsPatchableInModule] + ## Specify memory size with page number for PEI code when + # Loading Module at Fixed Address feature is enabled. +diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf +index b2a8aeba8510..eff625346539 100644 +--- a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf ++++ b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf +@@ -55,6 +55,7 @@ [LibraryClasses] + DebugLib + PcdLib + BaseLib ++ PrintLib + + [Guids] + ## SOMETIMES_PRODUCES ## Variable:L"ConInDev" +@@ -87,6 +88,7 @@ [Protocols] + [Pcd] + gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType ## SOMETIMES_CONSUMES + gEfiMdeModulePkgTokenSpaceGuid.PcdErrorCodeSetVariable ## CONSUMES ++ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm ## CONSUMES + + # [Event] + # # Relative timer event set by UnicodeToEfiKey(), used to be one 2 seconds input timeout. +diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c +index 7809869e7d49..496849458db4 100644 +--- a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c ++++ b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c +@@ -7,6 +7,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ + ++#include ++ + #include "Terminal.h" + + // +@@ -80,6 +82,15 @@ CHAR16 mSetCursorPositionString[] = { ESC, '[', '0', '0', ';', '0', '0', 'H', 0 + CHAR16 mCursorForwardString[] = { ESC, '[', '0', '0', 'C', 0 }; + CHAR16 mCursorBackwardString[] = { ESC, '[', '0', '0', 'D', 0 }; + ++// ++// Note that this is an ASCII format string, taking two INT32 arguments: ++// rows, columns. ++// ++// A %d (INT32) format specification can expand to at most 11 characters. ++// ++CHAR8 mResizeTextAreaFormatString[] = "\x1B[8;%d;%dt"; ++#define RESIZE_SEQ_SIZE (sizeof mResizeTextAreaFormatString + 2 * (11 - 2)) ++ + // + // Body of the ConOut functions + // +@@ -498,6 +509,24 @@ TerminalConOutSetMode ( + return EFI_DEVICE_ERROR; + } + ++ if (PcdGetBool (PcdResizeXterm)) { ++ CHAR16 ResizeSequence[RESIZE_SEQ_SIZE]; ++ ++ UnicodeSPrintAsciiFormat ( ++ ResizeSequence, ++ sizeof ResizeSequence, ++ mResizeTextAreaFormatString, ++ (INT32)TerminalDevice->TerminalConsoleModeData[ModeNumber].Rows, ++ (INT32)TerminalDevice->TerminalConsoleModeData[ModeNumber].Columns ++ ); ++ TerminalDevice->OutputEscChar = TRUE; ++ Status = This->OutputString (This, ResizeSequence); ++ TerminalDevice->OutputEscChar = FALSE; ++ if (EFI_ERROR (Status)) { ++ return EFI_DEVICE_ERROR; ++ } ++ } ++ + This->Mode->Mode = (INT32)ModeNumber; + + Status = This->ClearScreen (This); +-- +2.39.2 + diff --git a/0004-MdeModulePkg-TerminalDxe-set-xterm-resolution-on-mod.patch b/0004-MdeModulePkg-TerminalDxe-set-xterm-resolution-on-mod.patch deleted file mode 100644 index 2f705ce..0000000 --- a/0004-MdeModulePkg-TerminalDxe-set-xterm-resolution-on-mod.patch +++ /dev/null @@ -1,180 +0,0 @@ -From 06b69358fb26eed68b2b9b99735d17ddf1013257 Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Tue, 25 Feb 2014 22:40:01 +0100 -Subject: [PATCH 04/17] MdeModulePkg: TerminalDxe: set xterm resolution on mode - change (RH only) - -Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> -RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: - -- Resolve harmless conflict in "MdeModulePkg/MdeModulePkg.dec", - originating from new upstream commits - - 45bc28172fbf ("MdeModulePkg.dec: Change PCDs for status code.", - 2020-06-18), - - 0785c619a58a ("MdeModulePkg/Bus/Pci/PciBusDxe: Support PCIe Resizable - BAR Capability", 2021-01-04), - - ef23012e5439 ("MdeModulePkg: Change default value of - PcdPcieResizableBarSupport to FALSE", 2021-01-14). - -Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> -RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: - -- Resolve trivial conflict in "MdeModulePkg/MdeModulePkg.dec", arising - from upstream commit 166830d8f7ca ("MdeModulePkg/dec: add - PcdTcgPfpMeasurementRevision PCD", 2020-01-06). - -Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] -> -RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase: - -- Conflict in "MdeModulePkg/MdeModulePkg.dec" due to upstream commits - - 1103ba946aee ("MdeModulePkg: Add Capsule On Disk related definition.", - 2019-06-26), - - 1c7b3eb84631 ("MdeModulePkg/DxeIpl: Introduce PCD - PcdUse5LevelPageTable", 2019-08-09), - with easy manual resolution. - -Notes about the RHEL-8.0/20180508-ee3198e672e2 -> -RHEL-8.1/20190308-89910a39dcfd rebase: - -- no change - -Notes about the RHEL-7.6/ovmf-20180508-2.gitee3198e672e2.el7 -> -RHEL-8.0/20180508-ee3198e672e2 rebase: - -- reorder the rebase changelog in the commit message so that it reads like - a blog: place more recent entries near the top -- no changes to the patch body - -Notes about the 20171011-92d07e48907f -> 20180508-ee3198e672e2 rebase: - -- no change - -Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: - -- Refresh downstream-only commit 2909e025db68 against "MdeModulePkg.dec" - context change from upstream commits e043f7895b83 ("MdeModulePkg: Add - PCD PcdPteMemoryEncryptionAddressOrMask", 2017-02-27) and 76081dfcc5b2 - ("MdeModulePkg: Add PROMPT&HELP string of pcd to UNI file", 2017-03-03). - -Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: - -- refresh commit 519b9751573e against various context changes - -The - - CSI Ps ; Ps ; Ps t - -escape sequence serves for window manipulation. We can use the - - CSI 8 ; ; t - -sequence to adapt eg. the xterm window size to the selected console mode. - -Reference: -Contributed-under: TianoCore Contribution Agreement 1.0 -Signed-off-by: Laszlo Ersek -(cherry picked from commit 2909e025db6878723b49644a8a0cf160d07e6444) -(cherry picked from commit b9c5c901f25e48d68eef6e78a4abca00e153f574) -(cherry picked from commit b7f6115b745de8cbc5214b6ede33c9a8558beb90) -(cherry picked from commit 67415982afdc77922aa37496c981adeb4351acdb) -(cherry picked from commit cfccb98d13e955beb0b93b4a75a973f30c273ffc) -(cherry picked from commit a11602f5e2ef930be5b693ddfd0c789a1bd4c60c) -(cherry picked from commit bc2266f20de5db1636e09a07e4a72c8dbf505f5a) ---- - MdeModulePkg/MdeModulePkg.dec | 4 +++ - .../Console/TerminalDxe/TerminalDxe.inf | 2 ++ - .../Console/TerminalDxe/TerminalConOut.c | 29 +++++++++++++++++++ - 3 files changed, 35 insertions(+) - -diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec -index 775f1b27af08..94f3394cef16 100644 ---- a/MdeModulePkg/MdeModulePkg.dec -+++ b/MdeModulePkg/MdeModulePkg.dec -@@ -2099,6 +2099,10 @@ [PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx] - # @Prompt The shared bit mask when Intel Tdx is enabled. - gEfiMdeModulePkgTokenSpaceGuid.PcdTdxSharedBitMask|0x0|UINT64|0x10000025 - -+ ## Controls whether TerminalDxe outputs an XTerm resize sequence on terminal -+ # mode change. -+ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE|BOOLEAN|0x00010080 -+ - [PcdsPatchableInModule] - ## Specify memory size with page number for PEI code when - # Loading Module at Fixed Address feature is enabled. -diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf -index b2a8aeba8510..eff625346539 100644 ---- a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf -+++ b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf -@@ -55,6 +55,7 @@ [LibraryClasses] - DebugLib - PcdLib - BaseLib -+ PrintLib - - [Guids] - ## SOMETIMES_PRODUCES ## Variable:L"ConInDev" -@@ -87,6 +88,7 @@ [Protocols] - [Pcd] - gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType ## SOMETIMES_CONSUMES - gEfiMdeModulePkgTokenSpaceGuid.PcdErrorCodeSetVariable ## CONSUMES -+ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm ## CONSUMES - - # [Event] - # # Relative timer event set by UnicodeToEfiKey(), used to be one 2 seconds input timeout. -diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c -index 7809869e7d49..496849458db4 100644 ---- a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c -+++ b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c -@@ -7,6 +7,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent - - **/ - -+#include -+ - #include "Terminal.h" - - // -@@ -80,6 +82,15 @@ CHAR16 mSetCursorPositionString[] = { ESC, '[', '0', '0', ';', '0', '0', 'H', 0 - CHAR16 mCursorForwardString[] = { ESC, '[', '0', '0', 'C', 0 }; - CHAR16 mCursorBackwardString[] = { ESC, '[', '0', '0', 'D', 0 }; - -+// -+// Note that this is an ASCII format string, taking two INT32 arguments: -+// rows, columns. -+// -+// A %d (INT32) format specification can expand to at most 11 characters. -+// -+CHAR8 mResizeTextAreaFormatString[] = "\x1B[8;%d;%dt"; -+#define RESIZE_SEQ_SIZE (sizeof mResizeTextAreaFormatString + 2 * (11 - 2)) -+ - // - // Body of the ConOut functions - // -@@ -498,6 +509,24 @@ TerminalConOutSetMode ( - return EFI_DEVICE_ERROR; - } - -+ if (PcdGetBool (PcdResizeXterm)) { -+ CHAR16 ResizeSequence[RESIZE_SEQ_SIZE]; -+ -+ UnicodeSPrintAsciiFormat ( -+ ResizeSequence, -+ sizeof ResizeSequence, -+ mResizeTextAreaFormatString, -+ (INT32)TerminalDevice->TerminalConsoleModeData[ModeNumber].Rows, -+ (INT32)TerminalDevice->TerminalConsoleModeData[ModeNumber].Columns -+ ); -+ TerminalDevice->OutputEscChar = TRUE; -+ Status = This->OutputString (This, ResizeSequence); -+ TerminalDevice->OutputEscChar = FALSE; -+ if (EFI_ERROR (Status)) { -+ return EFI_DEVICE_ERROR; -+ } -+ } -+ - This->Mode->Mode = (INT32)ModeNumber; - - Status = This->ClearScreen (This); --- -2.38.1 - diff --git a/0004-OvmfPkg-take-PcdResizeXterm-from-the-QEMU-command-li.patch b/0004-OvmfPkg-take-PcdResizeXterm-from-the-QEMU-command-li.patch new file mode 100644 index 0000000..5262382 --- /dev/null +++ b/0004-OvmfPkg-take-PcdResizeXterm-from-the-QEMU-command-li.patch @@ -0,0 +1,219 @@ +From defcdb8fe170e58cb0b0de8ddd2784bcc2dd67d7 Mon Sep 17 00:00:00 2001 +From: Laszlo Ersek +Date: Wed, 14 Oct 2015 15:59:06 +0200 +Subject: [PATCH 04/14] OvmfPkg: take PcdResizeXterm from the QEMU command line + (RH only) + +edk2-stable202205 rebase + +- re-add UPDATE_BOOLEAN_PCD_FROM_FW_CFG +- add microvm, cloudhw and inteltdx + +edk2-stable202108 rebase + +- resolve conflict in OvmfPkg/PlatformPei/PlatformPei.inf + +Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> +RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: + +- Extend the DSC change to the new OvmfPkg/AmdSev platform, which has been + introduced upstream in commit 30d277ed7a82 ("OvmfPkg/Amdsev: Base commit + to build encrypted boot specific OVMF", 2020-12-14), for TianoCore#3077. + + We've always patched all those DSC/FDF files in OvmfPkg down-stream that + made sense at least in theory on QEMU. (For example, we've always + patched "OvmfPkgIa32.dsc" and "OvmfPkgIa32.fdf", even though we never + build or ship the pure IA32 firmware platform.) Follow suit with + "AmdSevX64.dsc". + +Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> +RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: + +- Resolve contextual conflict in the DSC files, from upstream commit + b0ed7ebdebd1 ("OvmfPkg: set fixed FlashNvStorage base addresses with -D + SMM_REQUIRE", 2020-03-12). + +Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] -> +RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase: + +- no change + +Notes about the RHEL-8.0/20180508-ee3198e672e2 -> +RHEL-8.1/20190308-89910a39dcfd rebase: + +- no change + +Notes about the RHEL-7.6/ovmf-20180508-2.gitee3198e672e2.el7 -> +RHEL-8.0/20180508-ee3198e672e2 rebase: + +- reorder the rebase changelog in the commit message so that it reads like + a blog: place more recent entries near the top +- no changes to the patch body + +Notes about the 20171011-92d07e48907f -> 20180508-ee3198e672e2 rebase: + +- no change + +Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: + +- refresh downstream-only commit 8abc2a6ddad2 against context differences + in the DSC files from upstream commit 5e167d7e784c + ("OvmfPkg/PlatformPei: don't allocate reserved mem varstore if + SMM_REQUIRE", 2017-03-12). + +Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: + +- no changes + +Contributed-under: TianoCore Contribution Agreement 1.0 +Signed-off-by: Laszlo Ersek +(cherry picked from commit 6fa0c4d67c0bb8bde2ddd6db41c19eb0c40b2721) +(cherry picked from commit 8abc2a6ddad25af7e88dc0cf57d55dfb75fbf92d) +(cherry picked from commit b311932d3841c017a0f0fec553edcac365cc2038) +(cherry picked from commit 61914fb81cf624c9028d015533b400b2794e52d3) +(cherry picked from commit 2ebf3cc2ae99275d63bb6efd3c22dec76251a853) +(cherry picked from commit f9b73437b9b231773c1a20e0c516168817a930a2) +(cherry picked from commit 2cc462ee963d0be119bc97bfc9c70d292a40516f) +(cherry picked from commit 51e0de961029af84b5bdbfddcc9762b1819d500f) +--- + OvmfPkg/AmdSev/AmdSevX64.dsc | 1 + + OvmfPkg/CloudHv/CloudHvX64.dsc | 1 + + OvmfPkg/IntelTdx/IntelTdxX64.dsc | 1 + + OvmfPkg/Microvm/MicrovmX64.dsc | 1 + + OvmfPkg/OvmfPkgIa32.dsc | 1 + + OvmfPkg/OvmfPkgIa32X64.dsc | 1 + + OvmfPkg/OvmfPkgX64.dsc | 1 + + OvmfPkg/PlatformPei/PlatformPei.inf | 1 + + OvmfPkg/PlatformPei/Platform.c | 13 +++++++++++++ + 9 files changed, 21 insertions(+) + +diff --git a/OvmfPkg/AmdSev/AmdSevX64.dsc b/OvmfPkg/AmdSev/AmdSevX64.dsc +index 1cebd6b4bcc2..0bec51d5eeac 100644 +--- a/OvmfPkg/AmdSev/AmdSevX64.dsc ++++ b/OvmfPkg/AmdSev/AmdSevX64.dsc +@@ -477,6 +477,7 @@ [PcdsFixedAtBuild] + [PcdsDynamicDefault] + gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 + ++ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64|0 +diff --git a/OvmfPkg/CloudHv/CloudHvX64.dsc b/OvmfPkg/CloudHv/CloudHvX64.dsc +index fda7d2b9e52f..97a74cfb07e4 100644 +--- a/OvmfPkg/CloudHv/CloudHvX64.dsc ++++ b/OvmfPkg/CloudHv/CloudHvX64.dsc +@@ -587,6 +587,7 @@ [PcdsDynamicDefault] + # ($(SMM_REQUIRE) == FALSE) + gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 + ++ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE + !if $(SMM_REQUIRE) == FALSE + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0 +diff --git a/OvmfPkg/IntelTdx/IntelTdxX64.dsc b/OvmfPkg/IntelTdx/IntelTdxX64.dsc +index 95b9594ddce0..bf4bf4cb1d4c 100644 +--- a/OvmfPkg/IntelTdx/IntelTdxX64.dsc ++++ b/OvmfPkg/IntelTdx/IntelTdxX64.dsc +@@ -485,6 +485,7 @@ [PcdsDynamicDefault] + # ($(SMM_REQUIRE) == FALSE) + gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 + ++ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64|0 +diff --git a/OvmfPkg/Microvm/MicrovmX64.dsc b/OvmfPkg/Microvm/MicrovmX64.dsc +index 0d65d21e651c..f123ca853085 100644 +--- a/OvmfPkg/Microvm/MicrovmX64.dsc ++++ b/OvmfPkg/Microvm/MicrovmX64.dsc +@@ -585,6 +585,7 @@ [PcdsDynamicDefault] + # ($(SMM_REQUIRE) == FALSE) + gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 + ++ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64|0 +diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc +index 22dc29330d2d..9242e7714036 100644 +--- a/OvmfPkg/OvmfPkgIa32.dsc ++++ b/OvmfPkg/OvmfPkgIa32.dsc +@@ -606,6 +606,7 @@ [PcdsDynamicDefault] + # ($(SMM_REQUIRE) == FALSE) + gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 + ++ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE + !if $(SMM_REQUIRE) == FALSE + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0 +diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc +index 6b539814bdb0..43d40ddc9c46 100644 +--- a/OvmfPkg/OvmfPkgIa32X64.dsc ++++ b/OvmfPkg/OvmfPkgIa32X64.dsc +@@ -613,6 +613,7 @@ [PcdsDynamicDefault] + # ($(SMM_REQUIRE) == FALSE) + gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 + ++ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE + !if $(SMM_REQUIRE) == FALSE + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0 +diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc +index e3c64456dfef..231e5e7e4d1c 100644 +--- a/OvmfPkg/OvmfPkgX64.dsc ++++ b/OvmfPkg/OvmfPkgX64.dsc +@@ -636,6 +636,7 @@ [PcdsDynamicDefault] + # ($(SMM_REQUIRE) == FALSE) + gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 + ++ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE + !if $(SMM_REQUIRE) == FALSE + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0 +diff --git a/OvmfPkg/PlatformPei/PlatformPei.inf b/OvmfPkg/PlatformPei/PlatformPei.inf +index 1fadadeb5565..3e28e1596d32 100644 +--- a/OvmfPkg/PlatformPei/PlatformPei.inf ++++ b/OvmfPkg/PlatformPei/PlatformPei.inf +@@ -99,6 +99,7 @@ [Pcd] + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize + gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved ++ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm + gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode + gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable + gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack +diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c +index 148240342b4b..d324ae95f8f5 100644 +--- a/OvmfPkg/PlatformPei/Platform.c ++++ b/OvmfPkg/PlatformPei/Platform.c +@@ -41,6 +41,18 @@ + + #include "Platform.h" + ++#define UPDATE_BOOLEAN_PCD_FROM_FW_CFG(TokenName) \ ++ do { \ ++ BOOLEAN Setting; \ ++ RETURN_STATUS PcdStatus; \ ++ \ ++ if (!RETURN_ERROR (QemuFwCfgParseBool ( \ ++ "opt/ovmf/" #TokenName, &Setting))) { \ ++ PcdStatus = PcdSetBoolS (TokenName, Setting); \ ++ ASSERT_RETURN_ERROR (PcdStatus); \ ++ } \ ++ } while (0) ++ + EFI_PEI_PPI_DESCRIPTOR mPpiBootMode[] = { + { + EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST, +@@ -385,6 +397,7 @@ InitializePlatform ( + MemTypeInfoInitialization (PlatformInfoHob); + MemMapInitialization (PlatformInfoHob); + NoexecDxeInitialization (PlatformInfoHob); ++ UPDATE_BOOLEAN_PCD_FROM_FW_CFG (PcdResizeXterm); + } + + InstallClearCacheCallback (); +-- +2.39.2 + diff --git a/0005-ArmVirtPkg-take-PcdResizeXterm-from-the-QEMU-command.patch b/0005-ArmVirtPkg-take-PcdResizeXterm-from-the-QEMU-command.patch new file mode 100644 index 0000000..b553de6 --- /dev/null +++ b/0005-ArmVirtPkg-take-PcdResizeXterm-from-the-QEMU-command.patch @@ -0,0 +1,204 @@ +From 2d09cde35ac031aabf7a1dc09c8c8a5e65917ae8 Mon Sep 17 00:00:00 2001 +From: Laszlo Ersek +Date: Sun, 26 Jul 2015 08:02:50 +0000 +Subject: [PATCH 05/14] ArmVirtPkg: take PcdResizeXterm from the QEMU command + line (RH only) + +Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> +RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: + +- no change + +Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> +RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: + +- Resolve leading context divergence in "ArmVirtPkg/ArmVirtQemu.dsc", + arising from upstream commits: + + - 82662a3b5f56 ("ArmVirtPkg/PlatformPeiLib: discover the TPM base + address from the DT", 2020-03-04) + + - ddd34a818315 ("ArmVirtPkg/ArmVirtQemu: enable TPM2 support in the PEI + phase", 2020-03-04) + + - cdc3fa54184a ("ArmVirtPkg: control PXEv4 / PXEv6 boot support from the + QEMU command line", 2020-04-28) + +- Rework the downstream patch quite a bit, paralleling the upstream work + done for in commit + range 64ab457d1f21..cdc3fa54184a: + + - Refresh copyright year in TerminalPcdProducerLib.{inf,c}. Also replace + open-coded BSDL with "SPDX-License-Identifier: BSD-2-Clause-Patent". + + - Simplify LIBRARY_CLASS: this lib instance is meant to be consumed only + via NULL class resolution (basically: as a plugin), so use NULL for + LIBRARY_CLASS, not "TerminalPcdProducerLib|DXE_DRIVER". + + - Sort the [Packages] section alphabetically in the INF file. + + - Replace the open-coded GetNamedFwCfgBoolean() function with a call to + QemuFwCfgParseBool(), from QemuFwCfgSimpleParserLib. + + - Add the SOMETIMES_PRODUCES usage comment in the [Pcd] section of the + INF file. + +Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] -> +RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase: + +- no change + +Notes about the RHEL-8.0/20180508-ee3198e672e2 -> +RHEL-8.1/20190308-89910a39dcfd rebase: + +- no change + +Notes about the RHEL-7.6/ovmf-20180508-2.gitee3198e672e2.el7 -> +RHEL-8.0/20180508-ee3198e672e2 rebase: + +- reorder the rebase changelog in the commit message so that it reads like + a blog: place more recent entries near the top +- no changes to the patch body + +Notes about the 20171011-92d07e48907f -> 20180508-ee3198e672e2 rebase: + +- no change + +Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: + +- Refresh downstream-only commit d4564d39dfdb against context changes in + "ArmVirtPkg/ArmVirtQemu.dsc" from upstream commit 7e5f1b673870 + ("ArmVirtPkg/PlatformHasAcpiDtDxe: allow guest level ACPI disable + override", 2017-03-29). + +Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: + +- Adapt commit 6b97969096a3 to the fact that upstream has deprecated such + setter functions for dynamic PCDs that don't return a status code (such + as PcdSetBool()). Employ PcdSetBoolS(), and assert that it succeeds -- + there's really no circumstance in this case when it could fail. + +Contributed-under: TianoCore Contribution Agreement 1.0 +Signed-off-by: Laszlo Ersek +(cherry picked from commit d4564d39dfdbf74e762af43314005a2c026cb262) +(cherry picked from commit c9081ebe3bcd28e5cce4bf58bd8d4fca12f9af7c) +(cherry picked from commit 8e92730c8e1cdb642b3b3e680e643ff774a90c65) +(cherry picked from commit 9448b6b46267d8d807fac0c648e693171bb34806) +(cherry picked from commit 232fcf06f6b3048b7c2ebd6931f23186b3852f04) +(cherry picked from commit 8338545260fbb423f796d5196faaaf8ff6e1ed99) +(cherry picked from commit a5f7a57bf390f1f340ff1d1f1884a73716817ef1) +--- + ArmVirtPkg/ArmVirtQemu.dsc | 7 +++- + .../TerminalPcdProducerLib.inf | 33 ++++++++++++++++++ + .../TerminalPcdProducerLib.c | 34 +++++++++++++++++++ + 3 files changed, 73 insertions(+), 1 deletion(-) + create mode 100644 ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf + create mode 100644 ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c + +diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc +index 72a0cacab4a8..7a3be7e8592c 100644 +--- a/ArmVirtPkg/ArmVirtQemu.dsc ++++ b/ArmVirtPkg/ArmVirtQemu.dsc +@@ -304,6 +304,8 @@ [PcdsPatchableInModule] + gEfiSecurityPkgTokenSpaceGuid.PcdTpmBaseAddress|0x0 + !endif + ++ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE ++ + [PcdsDynamicHii] + gUefiOvmfPkgTokenSpaceGuid.PcdForceNoAcpi|L"ForceNoAcpi"|gOvmfVariableGuid|0x0|FALSE|NV,BS + +@@ -418,7 +420,10 @@ [Components.common] + MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf + MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf + MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf +- MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf ++ MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf { ++ ++ NULL|ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf ++ } + MdeModulePkg/Universal/SerialDxe/SerialDxe.inf + + MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf +diff --git a/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf +new file mode 100644 +index 000000000000..a51dbd1670a8 +--- /dev/null ++++ b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf +@@ -0,0 +1,33 @@ ++## @file ++# Plugin library for setting up dynamic PCDs for TerminalDxe, from fw_cfg ++# ++# Copyright (C) 2015-2020, Red Hat, Inc. ++# Copyright (c) 2014, Linaro Ltd. All rights reserved.
++# ++# SPDX-License-Identifier: BSD-2-Clause-Patent ++## ++ ++[Defines] ++ INF_VERSION = 0x00010005 ++ BASE_NAME = TerminalPcdProducerLib ++ FILE_GUID = 4a0c5ed7-8c42-4c01-8f4c-7bf258316a96 ++ MODULE_TYPE = BASE ++ VERSION_STRING = 1.0 ++ LIBRARY_CLASS = NULL ++ CONSTRUCTOR = TerminalPcdProducerLibConstructor ++ ++[Sources] ++ TerminalPcdProducerLib.c ++ ++[Packages] ++ MdeModulePkg/MdeModulePkg.dec ++ MdePkg/MdePkg.dec ++ OvmfPkg/OvmfPkg.dec ++ ++[LibraryClasses] ++ DebugLib ++ PcdLib ++ QemuFwCfgSimpleParserLib ++ ++[Pcd] ++ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm ## SOMETIMES_PRODUCES +diff --git a/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c +new file mode 100644 +index 000000000000..bfd3a6a535f9 +--- /dev/null ++++ b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c +@@ -0,0 +1,34 @@ ++/** @file ++* Plugin library for setting up dynamic PCDs for TerminalDxe, from fw_cfg ++* ++* Copyright (C) 2015-2020, Red Hat, Inc. ++* Copyright (c) 2014, Linaro Ltd. All rights reserved.
++* ++* SPDX-License-Identifier: BSD-2-Clause-Patent ++**/ ++ ++#include ++#include ++#include ++ ++#define UPDATE_BOOLEAN_PCD_FROM_FW_CFG(TokenName) \ ++ do { \ ++ BOOLEAN Setting; \ ++ RETURN_STATUS PcdStatus; \ ++ \ ++ if (!RETURN_ERROR (QemuFwCfgParseBool ( \ ++ "opt/org.tianocore.edk2.aavmf/" #TokenName, &Setting))) { \ ++ PcdStatus = PcdSetBoolS (TokenName, Setting); \ ++ ASSERT_RETURN_ERROR (PcdStatus); \ ++ } \ ++ } while (0) ++ ++RETURN_STATUS ++EFIAPI ++TerminalPcdProducerLibConstructor ( ++ VOID ++ ) ++{ ++ UPDATE_BOOLEAN_PCD_FROM_FW_CFG (PcdResizeXterm); ++ return RETURN_SUCCESS; ++} +-- +2.39.2 + diff --git a/0005-OvmfPkg-take-PcdResizeXterm-from-the-QEMU-command-li.patch b/0005-OvmfPkg-take-PcdResizeXterm-from-the-QEMU-command-li.patch deleted file mode 100644 index 16ab74e..0000000 --- a/0005-OvmfPkg-take-PcdResizeXterm-from-the-QEMU-command-li.patch +++ /dev/null @@ -1,219 +0,0 @@ -From 71fa9595fe0ac39bb755eba385559bf8d7f4da5a Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Wed, 14 Oct 2015 15:59:06 +0200 -Subject: [PATCH 05/17] OvmfPkg: take PcdResizeXterm from the QEMU command line - (RH only) - -edk2-stable202205 rebase - -- re-add UPDATE_BOOLEAN_PCD_FROM_FW_CFG -- add microvm, cloudhw and inteltdx - -edk2-stable202108 rebase - -- resolve conflict in OvmfPkg/PlatformPei/PlatformPei.inf - -Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> -RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: - -- Extend the DSC change to the new OvmfPkg/AmdSev platform, which has been - introduced upstream in commit 30d277ed7a82 ("OvmfPkg/Amdsev: Base commit - to build encrypted boot specific OVMF", 2020-12-14), for TianoCore#3077. - - We've always patched all those DSC/FDF files in OvmfPkg down-stream that - made sense at least in theory on QEMU. (For example, we've always - patched "OvmfPkgIa32.dsc" and "OvmfPkgIa32.fdf", even though we never - build or ship the pure IA32 firmware platform.) Follow suit with - "AmdSevX64.dsc". - -Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> -RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: - -- Resolve contextual conflict in the DSC files, from upstream commit - b0ed7ebdebd1 ("OvmfPkg: set fixed FlashNvStorage base addresses with -D - SMM_REQUIRE", 2020-03-12). - -Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] -> -RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase: - -- no change - -Notes about the RHEL-8.0/20180508-ee3198e672e2 -> -RHEL-8.1/20190308-89910a39dcfd rebase: - -- no change - -Notes about the RHEL-7.6/ovmf-20180508-2.gitee3198e672e2.el7 -> -RHEL-8.0/20180508-ee3198e672e2 rebase: - -- reorder the rebase changelog in the commit message so that it reads like - a blog: place more recent entries near the top -- no changes to the patch body - -Notes about the 20171011-92d07e48907f -> 20180508-ee3198e672e2 rebase: - -- no change - -Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: - -- refresh downstream-only commit 8abc2a6ddad2 against context differences - in the DSC files from upstream commit 5e167d7e784c - ("OvmfPkg/PlatformPei: don't allocate reserved mem varstore if - SMM_REQUIRE", 2017-03-12). - -Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: - -- no changes - -Contributed-under: TianoCore Contribution Agreement 1.0 -Signed-off-by: Laszlo Ersek -(cherry picked from commit 6fa0c4d67c0bb8bde2ddd6db41c19eb0c40b2721) -(cherry picked from commit 8abc2a6ddad25af7e88dc0cf57d55dfb75fbf92d) -(cherry picked from commit b311932d3841c017a0f0fec553edcac365cc2038) -(cherry picked from commit 61914fb81cf624c9028d015533b400b2794e52d3) -(cherry picked from commit 2ebf3cc2ae99275d63bb6efd3c22dec76251a853) -(cherry picked from commit f9b73437b9b231773c1a20e0c516168817a930a2) -(cherry picked from commit 2cc462ee963d0be119bc97bfc9c70d292a40516f) -(cherry picked from commit 51e0de961029af84b5bdbfddcc9762b1819d500f) ---- - OvmfPkg/AmdSev/AmdSevX64.dsc | 1 + - OvmfPkg/CloudHv/CloudHvX64.dsc | 1 + - OvmfPkg/IntelTdx/IntelTdxX64.dsc | 1 + - OvmfPkg/Microvm/MicrovmX64.dsc | 1 + - OvmfPkg/OvmfPkgIa32.dsc | 1 + - OvmfPkg/OvmfPkgIa32X64.dsc | 1 + - OvmfPkg/OvmfPkgX64.dsc | 1 + - OvmfPkg/PlatformPei/PlatformPei.inf | 1 + - OvmfPkg/PlatformPei/Platform.c | 13 +++++++++++++ - 9 files changed, 21 insertions(+) - -diff --git a/OvmfPkg/AmdSev/AmdSevX64.dsc b/OvmfPkg/AmdSev/AmdSevX64.dsc -index 8f7cae787e97..41ad97b47dc9 100644 ---- a/OvmfPkg/AmdSev/AmdSevX64.dsc -+++ b/OvmfPkg/AmdSev/AmdSevX64.dsc -@@ -475,6 +475,7 @@ [PcdsFixedAtBuild] - [PcdsDynamicDefault] - gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 - -+ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0 - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64|0 -diff --git a/OvmfPkg/CloudHv/CloudHvX64.dsc b/OvmfPkg/CloudHv/CloudHvX64.dsc -index ce277cb2398b..faab59ae8d74 100644 ---- a/OvmfPkg/CloudHv/CloudHvX64.dsc -+++ b/OvmfPkg/CloudHv/CloudHvX64.dsc -@@ -582,6 +582,7 @@ [PcdsDynamicDefault] - # ($(SMM_REQUIRE) == FALSE) - gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 - -+ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE - !if $(SMM_REQUIRE) == FALSE - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0 -diff --git a/OvmfPkg/IntelTdx/IntelTdxX64.dsc b/OvmfPkg/IntelTdx/IntelTdxX64.dsc -index 345892651520..4c4da09b9024 100644 ---- a/OvmfPkg/IntelTdx/IntelTdxX64.dsc -+++ b/OvmfPkg/IntelTdx/IntelTdxX64.dsc -@@ -474,6 +474,7 @@ [PcdsDynamicDefault] - # ($(SMM_REQUIRE) == FALSE) - gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 - -+ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0 - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64|0 -diff --git a/OvmfPkg/Microvm/MicrovmX64.dsc b/OvmfPkg/Microvm/MicrovmX64.dsc -index 994a02d30107..3444304d0e46 100644 ---- a/OvmfPkg/Microvm/MicrovmX64.dsc -+++ b/OvmfPkg/Microvm/MicrovmX64.dsc -@@ -580,6 +580,7 @@ [PcdsDynamicDefault] - # ($(SMM_REQUIRE) == FALSE) - gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 - -+ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0 - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64|0 -diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc -index 6f774baf90f5..e8a074153a77 100644 ---- a/OvmfPkg/OvmfPkgIa32.dsc -+++ b/OvmfPkg/OvmfPkgIa32.dsc -@@ -601,6 +601,7 @@ [PcdsDynamicDefault] - # ($(SMM_REQUIRE) == FALSE) - gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 - -+ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE - !if $(SMM_REQUIRE) == FALSE - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0 -diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc -index c851764dec05..0197997793a9 100644 ---- a/OvmfPkg/OvmfPkgIa32X64.dsc -+++ b/OvmfPkg/OvmfPkgIa32X64.dsc -@@ -609,6 +609,7 @@ [PcdsDynamicDefault] - # ($(SMM_REQUIRE) == FALSE) - gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 - -+ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE - !if $(SMM_REQUIRE) == FALSE - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0 -diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc -index 63c3a47aea30..fade13b4e80c 100644 ---- a/OvmfPkg/OvmfPkgX64.dsc -+++ b/OvmfPkg/OvmfPkgX64.dsc -@@ -631,6 +631,7 @@ [PcdsDynamicDefault] - # ($(SMM_REQUIRE) == FALSE) - gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 - -+ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE - !if $(SMM_REQUIRE) == FALSE - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0 -diff --git a/OvmfPkg/PlatformPei/PlatformPei.inf b/OvmfPkg/PlatformPei/PlatformPei.inf -index 1fadadeb5565..3e28e1596d32 100644 ---- a/OvmfPkg/PlatformPei/PlatformPei.inf -+++ b/OvmfPkg/PlatformPei/PlatformPei.inf -@@ -99,6 +99,7 @@ [Pcd] - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize - gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved -+ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm - gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode - gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable - gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack -diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c -index b1f8140d6041..e5132d95a8f8 100644 ---- a/OvmfPkg/PlatformPei/Platform.c -+++ b/OvmfPkg/PlatformPei/Platform.c -@@ -41,6 +41,18 @@ - - #include "Platform.h" - -+#define UPDATE_BOOLEAN_PCD_FROM_FW_CFG(TokenName) \ -+ do { \ -+ BOOLEAN Setting; \ -+ RETURN_STATUS PcdStatus; \ -+ \ -+ if (!RETURN_ERROR (QemuFwCfgParseBool ( \ -+ "opt/ovmf/" #TokenName, &Setting))) { \ -+ PcdStatus = PcdSetBoolS (TokenName, Setting); \ -+ ASSERT_RETURN_ERROR (PcdStatus); \ -+ } \ -+ } while (0) -+ - EFI_HOB_PLATFORM_INFO mPlatformInfoHob = { 0 }; - - EFI_PEI_PPI_DESCRIPTOR mPpiBootMode[] = { -@@ -376,6 +388,7 @@ InitializePlatform ( - MemTypeInfoInitialization (); - MemMapInitialization (&mPlatformInfoHob); - NoexecDxeInitialization (); -+ UPDATE_BOOLEAN_PCD_FROM_FW_CFG (PcdResizeXterm); - } - - InstallClearCacheCallback (); --- -2.38.1 - diff --git a/0006-ArmVirtPkg-take-PcdResizeXterm-from-the-QEMU-command.patch b/0006-ArmVirtPkg-take-PcdResizeXterm-from-the-QEMU-command.patch deleted file mode 100644 index b99bd5f..0000000 --- a/0006-ArmVirtPkg-take-PcdResizeXterm-from-the-QEMU-command.patch +++ /dev/null @@ -1,204 +0,0 @@ -From 643aed66df8d427f8912f74326140b74915e73f9 Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Sun, 26 Jul 2015 08:02:50 +0000 -Subject: [PATCH 06/17] ArmVirtPkg: take PcdResizeXterm from the QEMU command - line (RH only) - -Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> -RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: - -- no change - -Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> -RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: - -- Resolve leading context divergence in "ArmVirtPkg/ArmVirtQemu.dsc", - arising from upstream commits: - - - 82662a3b5f56 ("ArmVirtPkg/PlatformPeiLib: discover the TPM base - address from the DT", 2020-03-04) - - - ddd34a818315 ("ArmVirtPkg/ArmVirtQemu: enable TPM2 support in the PEI - phase", 2020-03-04) - - - cdc3fa54184a ("ArmVirtPkg: control PXEv4 / PXEv6 boot support from the - QEMU command line", 2020-04-28) - -- Rework the downstream patch quite a bit, paralleling the upstream work - done for in commit - range 64ab457d1f21..cdc3fa54184a: - - - Refresh copyright year in TerminalPcdProducerLib.{inf,c}. Also replace - open-coded BSDL with "SPDX-License-Identifier: BSD-2-Clause-Patent". - - - Simplify LIBRARY_CLASS: this lib instance is meant to be consumed only - via NULL class resolution (basically: as a plugin), so use NULL for - LIBRARY_CLASS, not "TerminalPcdProducerLib|DXE_DRIVER". - - - Sort the [Packages] section alphabetically in the INF file. - - - Replace the open-coded GetNamedFwCfgBoolean() function with a call to - QemuFwCfgParseBool(), from QemuFwCfgSimpleParserLib. - - - Add the SOMETIMES_PRODUCES usage comment in the [Pcd] section of the - INF file. - -Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] -> -RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase: - -- no change - -Notes about the RHEL-8.0/20180508-ee3198e672e2 -> -RHEL-8.1/20190308-89910a39dcfd rebase: - -- no change - -Notes about the RHEL-7.6/ovmf-20180508-2.gitee3198e672e2.el7 -> -RHEL-8.0/20180508-ee3198e672e2 rebase: - -- reorder the rebase changelog in the commit message so that it reads like - a blog: place more recent entries near the top -- no changes to the patch body - -Notes about the 20171011-92d07e48907f -> 20180508-ee3198e672e2 rebase: - -- no change - -Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: - -- Refresh downstream-only commit d4564d39dfdb against context changes in - "ArmVirtPkg/ArmVirtQemu.dsc" from upstream commit 7e5f1b673870 - ("ArmVirtPkg/PlatformHasAcpiDtDxe: allow guest level ACPI disable - override", 2017-03-29). - -Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: - -- Adapt commit 6b97969096a3 to the fact that upstream has deprecated such - setter functions for dynamic PCDs that don't return a status code (such - as PcdSetBool()). Employ PcdSetBoolS(), and assert that it succeeds -- - there's really no circumstance in this case when it could fail. - -Contributed-under: TianoCore Contribution Agreement 1.0 -Signed-off-by: Laszlo Ersek -(cherry picked from commit d4564d39dfdbf74e762af43314005a2c026cb262) -(cherry picked from commit c9081ebe3bcd28e5cce4bf58bd8d4fca12f9af7c) -(cherry picked from commit 8e92730c8e1cdb642b3b3e680e643ff774a90c65) -(cherry picked from commit 9448b6b46267d8d807fac0c648e693171bb34806) -(cherry picked from commit 232fcf06f6b3048b7c2ebd6931f23186b3852f04) -(cherry picked from commit 8338545260fbb423f796d5196faaaf8ff6e1ed99) -(cherry picked from commit a5f7a57bf390f1f340ff1d1f1884a73716817ef1) ---- - ArmVirtPkg/ArmVirtQemu.dsc | 7 +++- - .../TerminalPcdProducerLib.inf | 33 ++++++++++++++++++ - .../TerminalPcdProducerLib.c | 34 +++++++++++++++++++ - 3 files changed, 73 insertions(+), 1 deletion(-) - create mode 100644 ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf - create mode 100644 ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c - -diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc -index f77443229e8e..ed66f0003082 100644 ---- a/ArmVirtPkg/ArmVirtQemu.dsc -+++ b/ArmVirtPkg/ArmVirtQemu.dsc -@@ -299,6 +299,8 @@ [PcdsPatchableInModule] - gEfiSecurityPkgTokenSpaceGuid.PcdTpmBaseAddress|0x0 - !endif - -+ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE -+ - [PcdsDynamicHii] - gArmVirtTokenSpaceGuid.PcdForceNoAcpi|L"ForceNoAcpi"|gArmVirtVariableGuid|0x0|FALSE|NV,BS - -@@ -413,7 +415,10 @@ [Components.common] - MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf - MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf - MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf -- MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf -+ MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf { -+ -+ NULL|ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf -+ } - MdeModulePkg/Universal/SerialDxe/SerialDxe.inf - - MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf -diff --git a/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf -new file mode 100644 -index 000000000000..a51dbd1670a8 ---- /dev/null -+++ b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf -@@ -0,0 +1,33 @@ -+## @file -+# Plugin library for setting up dynamic PCDs for TerminalDxe, from fw_cfg -+# -+# Copyright (C) 2015-2020, Red Hat, Inc. -+# Copyright (c) 2014, Linaro Ltd. All rights reserved.
-+# -+# SPDX-License-Identifier: BSD-2-Clause-Patent -+## -+ -+[Defines] -+ INF_VERSION = 0x00010005 -+ BASE_NAME = TerminalPcdProducerLib -+ FILE_GUID = 4a0c5ed7-8c42-4c01-8f4c-7bf258316a96 -+ MODULE_TYPE = BASE -+ VERSION_STRING = 1.0 -+ LIBRARY_CLASS = NULL -+ CONSTRUCTOR = TerminalPcdProducerLibConstructor -+ -+[Sources] -+ TerminalPcdProducerLib.c -+ -+[Packages] -+ MdeModulePkg/MdeModulePkg.dec -+ MdePkg/MdePkg.dec -+ OvmfPkg/OvmfPkg.dec -+ -+[LibraryClasses] -+ DebugLib -+ PcdLib -+ QemuFwCfgSimpleParserLib -+ -+[Pcd] -+ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm ## SOMETIMES_PRODUCES -diff --git a/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c -new file mode 100644 -index 000000000000..bfd3a6a535f9 ---- /dev/null -+++ b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c -@@ -0,0 +1,34 @@ -+/** @file -+* Plugin library for setting up dynamic PCDs for TerminalDxe, from fw_cfg -+* -+* Copyright (C) 2015-2020, Red Hat, Inc. -+* Copyright (c) 2014, Linaro Ltd. All rights reserved.
-+* -+* SPDX-License-Identifier: BSD-2-Clause-Patent -+**/ -+ -+#include -+#include -+#include -+ -+#define UPDATE_BOOLEAN_PCD_FROM_FW_CFG(TokenName) \ -+ do { \ -+ BOOLEAN Setting; \ -+ RETURN_STATUS PcdStatus; \ -+ \ -+ if (!RETURN_ERROR (QemuFwCfgParseBool ( \ -+ "opt/org.tianocore.edk2.aavmf/" #TokenName, &Setting))) { \ -+ PcdStatus = PcdSetBoolS (TokenName, Setting); \ -+ ASSERT_RETURN_ERROR (PcdStatus); \ -+ } \ -+ } while (0) -+ -+RETURN_STATUS -+EFIAPI -+TerminalPcdProducerLibConstructor ( -+ VOID -+ ) -+{ -+ UPDATE_BOOLEAN_PCD_FROM_FW_CFG (PcdResizeXterm); -+ return RETURN_SUCCESS; -+} --- -2.38.1 - diff --git a/0006-OvmfPkg-enable-DEBUG_VERBOSE-RHEL-only.patch b/0006-OvmfPkg-enable-DEBUG_VERBOSE-RHEL-only.patch new file mode 100644 index 0000000..e4dfc5f --- /dev/null +++ b/0006-OvmfPkg-enable-DEBUG_VERBOSE-RHEL-only.patch @@ -0,0 +1,121 @@ +From 9070eb8deb0a973e9dd8f96b70955c7d3abca074 Mon Sep 17 00:00:00 2001 +From: Paolo Bonzini +Date: Tue, 21 Nov 2017 00:57:45 +0100 +Subject: [PATCH 06/14] OvmfPkg: enable DEBUG_VERBOSE (RHEL only) + +Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> +RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: + +- Extend the DSC change to the new OvmfPkg/AmdSev platform, which has been + introduced upstream in commit 30d277ed7a82 ("OvmfPkg/Amdsev: Base commit + to build encrypted boot specific OVMF", 2020-12-14), for TianoCore#3077. + +- Remove obsolete commit message tags related to downstream patch + management: Message-id, Patchwork-id, O-Subject, Acked-by, From + (RHBZ#1846481). + +Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> +RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: + +- context difference from upstream commit 46bb81200742 ("OvmfPkg: Make + SOURCE_DEBUG_ENABLE actually need to be set to TRUE", 2019-10-22) + resolved automatically + +Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] -> +RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase: + +- no change + +Notes about the RHEL-8.0/20180508-ee3198e672e2 -> +RHEL-8.1/20190308-89910a39dcfd rebase: + +- no change + +Notes about the RHEL-7.6/ovmf-20180508-2.gitee3198e672e2.el7 -> +RHEL-8.0/20180508-ee3198e672e2 rebase: + +- reorder the rebase changelog in the commit message so that it reads like + a blog: place more recent entries near the top +- no changes to the patch body + +Notes about the 20171011-92d07e48907f -> 20180508-ee3198e672e2 rebase: + +- no changes + +Bugzilla: 1488247 + +Set the DEBUG_VERBOSE bit (0x00400000) in the log mask. We want detailed +debug messages, and code in OvmfPkg logs many messages on the +DEBUG_VERBOSE level. + +Signed-off-by: Laszlo Ersek +Signed-off-by: Paolo Bonzini +(this patch was previously applied as commit 78d3ed73172b5738e32d2b0bc03f7984b9584117) +(cherry picked from commit 7aeeaabc9871f657e65d2b99d81011b4964a1ce9) +(cherry picked from commit a0617a6be1a80966099ddceb010f89202a79ee76) +(cherry picked from commit 759bd3f591e2db699bdef4c7ea4e97c908e7f027) +(cherry picked from commit 7e6d5dc4078c64be6d55d8fc3317c59a91507a50) +(cherry picked from commit 3cb92f9ba18ac79911bd5258ff4f949cc617ae89) +(cherry picked from commit 5ecc18badaabe774d9d0806b027ab63a30c6a2d7) +--- + OvmfPkg/AmdSev/AmdSevX64.dsc | 2 +- + OvmfPkg/OvmfPkgIa32.dsc | 2 +- + OvmfPkg/OvmfPkgIa32X64.dsc | 2 +- + OvmfPkg/OvmfPkgX64.dsc | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/OvmfPkg/AmdSev/AmdSevX64.dsc b/OvmfPkg/AmdSev/AmdSevX64.dsc +index 0bec51d5eeac..ae3f9c75c4a4 100644 +--- a/OvmfPkg/AmdSev/AmdSevX64.dsc ++++ b/OvmfPkg/AmdSev/AmdSevX64.dsc +@@ -429,7 +429,7 @@ [PcdsFixedAtBuild] + # DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may + # // significantly impact boot performance + # DEBUG_ERROR 0x80000000 // Error +- gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8040004F + + !if $(SOURCE_DEBUG_ENABLE) == TRUE + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17 +diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc +index 9242e7714036..bb3b0c1c96f3 100644 +--- a/OvmfPkg/OvmfPkgIa32.dsc ++++ b/OvmfPkg/OvmfPkgIa32.dsc +@@ -546,7 +546,7 @@ [PcdsFixedAtBuild] + # DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may + # // significantly impact boot performance + # DEBUG_ERROR 0x80000000 // Error +- gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8040004F + + !if $(SOURCE_DEBUG_ENABLE) == TRUE + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17 +diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc +index 43d40ddc9c46..19b968bd945d 100644 +--- a/OvmfPkg/OvmfPkgIa32X64.dsc ++++ b/OvmfPkg/OvmfPkgIa32X64.dsc +@@ -551,7 +551,7 @@ [PcdsFixedAtBuild] + # DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may + # // significantly impact boot performance + # DEBUG_ERROR 0x80000000 // Error +- gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8040004F + + !if $(SOURCE_DEBUG_ENABLE) == TRUE + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17 +diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc +index 231e5e7e4d1c..876f2374a2cc 100644 +--- a/OvmfPkg/OvmfPkgX64.dsc ++++ b/OvmfPkg/OvmfPkgX64.dsc +@@ -572,7 +572,7 @@ [PcdsFixedAtBuild] + # DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may + # // significantly impact boot performance + # DEBUG_ERROR 0x80000000 // Error +- gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8040004F + + !if $(SOURCE_DEBUG_ENABLE) == TRUE + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17 +-- +2.39.2 + diff --git a/0007-OvmfPkg-enable-DEBUG_VERBOSE-RHEL-only.patch b/0007-OvmfPkg-enable-DEBUG_VERBOSE-RHEL-only.patch deleted file mode 100644 index f7b3431..0000000 --- a/0007-OvmfPkg-enable-DEBUG_VERBOSE-RHEL-only.patch +++ /dev/null @@ -1,121 +0,0 @@ -From f934be726d47dea28664f46ea2e989b5a043cb5c Mon Sep 17 00:00:00 2001 -From: Paolo Bonzini -Date: Tue, 21 Nov 2017 00:57:45 +0100 -Subject: [PATCH 07/17] OvmfPkg: enable DEBUG_VERBOSE (RHEL only) - -Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> -RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: - -- Extend the DSC change to the new OvmfPkg/AmdSev platform, which has been - introduced upstream in commit 30d277ed7a82 ("OvmfPkg/Amdsev: Base commit - to build encrypted boot specific OVMF", 2020-12-14), for TianoCore#3077. - -- Remove obsolete commit message tags related to downstream patch - management: Message-id, Patchwork-id, O-Subject, Acked-by, From - (RHBZ#1846481). - -Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> -RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: - -- context difference from upstream commit 46bb81200742 ("OvmfPkg: Make - SOURCE_DEBUG_ENABLE actually need to be set to TRUE", 2019-10-22) - resolved automatically - -Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] -> -RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase: - -- no change - -Notes about the RHEL-8.0/20180508-ee3198e672e2 -> -RHEL-8.1/20190308-89910a39dcfd rebase: - -- no change - -Notes about the RHEL-7.6/ovmf-20180508-2.gitee3198e672e2.el7 -> -RHEL-8.0/20180508-ee3198e672e2 rebase: - -- reorder the rebase changelog in the commit message so that it reads like - a blog: place more recent entries near the top -- no changes to the patch body - -Notes about the 20171011-92d07e48907f -> 20180508-ee3198e672e2 rebase: - -- no changes - -Bugzilla: 1488247 - -Set the DEBUG_VERBOSE bit (0x00400000) in the log mask. We want detailed -debug messages, and code in OvmfPkg logs many messages on the -DEBUG_VERBOSE level. - -Signed-off-by: Laszlo Ersek -Signed-off-by: Paolo Bonzini -(this patch was previously applied as commit 78d3ed73172b5738e32d2b0bc03f7984b9584117) -(cherry picked from commit 7aeeaabc9871f657e65d2b99d81011b4964a1ce9) -(cherry picked from commit a0617a6be1a80966099ddceb010f89202a79ee76) -(cherry picked from commit 759bd3f591e2db699bdef4c7ea4e97c908e7f027) -(cherry picked from commit 7e6d5dc4078c64be6d55d8fc3317c59a91507a50) -(cherry picked from commit 3cb92f9ba18ac79911bd5258ff4f949cc617ae89) -(cherry picked from commit 5ecc18badaabe774d9d0806b027ab63a30c6a2d7) ---- - OvmfPkg/AmdSev/AmdSevX64.dsc | 2 +- - OvmfPkg/OvmfPkgIa32.dsc | 2 +- - OvmfPkg/OvmfPkgIa32X64.dsc | 2 +- - OvmfPkg/OvmfPkgX64.dsc | 2 +- - 4 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/OvmfPkg/AmdSev/AmdSevX64.dsc b/OvmfPkg/AmdSev/AmdSevX64.dsc -index 41ad97b47dc9..53a8938965ea 100644 ---- a/OvmfPkg/AmdSev/AmdSevX64.dsc -+++ b/OvmfPkg/AmdSev/AmdSevX64.dsc -@@ -427,7 +427,7 @@ [PcdsFixedAtBuild] - # DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may - # // significantly impact boot performance - # DEBUG_ERROR 0x80000000 // Error -- gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F -+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8040004F - - !if $(SOURCE_DEBUG_ENABLE) == TRUE - gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17 -diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc -index e8a074153a77..7bced89f2a6b 100644 ---- a/OvmfPkg/OvmfPkgIa32.dsc -+++ b/OvmfPkg/OvmfPkgIa32.dsc -@@ -541,7 +541,7 @@ [PcdsFixedAtBuild] - # DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may - # // significantly impact boot performance - # DEBUG_ERROR 0x80000000 // Error -- gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F -+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8040004F - - !if $(SOURCE_DEBUG_ENABLE) == TRUE - gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17 -diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc -index 0197997793a9..2599facbb7cd 100644 ---- a/OvmfPkg/OvmfPkgIa32X64.dsc -+++ b/OvmfPkg/OvmfPkgIa32X64.dsc -@@ -547,7 +547,7 @@ [PcdsFixedAtBuild] - # DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may - # // significantly impact boot performance - # DEBUG_ERROR 0x80000000 // Error -- gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F -+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8040004F - - !if $(SOURCE_DEBUG_ENABLE) == TRUE - gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17 -diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc -index fade13b4e80c..7bd445ca36f7 100644 ---- a/OvmfPkg/OvmfPkgX64.dsc -+++ b/OvmfPkg/OvmfPkgX64.dsc -@@ -567,7 +567,7 @@ [PcdsFixedAtBuild] - # DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may - # // significantly impact boot performance - # DEBUG_ERROR 0x80000000 // Error -- gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F -+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8040004F - - !if $(SOURCE_DEBUG_ENABLE) == TRUE - gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17 --- -2.38.1 - diff --git a/0007-OvmfPkg-silence-DEBUG_VERBOSE-0x00400000-in-QemuVide.patch b/0007-OvmfPkg-silence-DEBUG_VERBOSE-0x00400000-in-QemuVide.patch new file mode 100644 index 0000000..e2390b9 --- /dev/null +++ b/0007-OvmfPkg-silence-DEBUG_VERBOSE-0x00400000-in-QemuVide.patch @@ -0,0 +1,173 @@ +From ea0ec39c85e21daa5b4f31884ee1e4a198c78fcd Mon Sep 17 00:00:00 2001 +From: Paolo Bonzini +Date: Tue, 21 Nov 2017 00:57:46 +0100 +Subject: [PATCH 07/14] OvmfPkg: silence DEBUG_VERBOSE (0x00400000) in + QemuVideoDxe/QemuRamfbDxe (RH) + +Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> +RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: + +- Extend the DSC change to the new OvmfPkg/AmdSev platform, which has been + introduced upstream in commit 30d277ed7a82 ("OvmfPkg/Amdsev: Base commit + to build encrypted boot specific OVMF", 2020-12-14), for TianoCore#3077. + +- Remove obsolete commit message tags related to downstream patch + management: Message-id, Patchwork-id, O-Subject, Acked-by, From + (RHBZ#1846481). + +Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> +RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: + +- no change + +Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] -> +RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase: + +- Due to upstream commit 4b04d9d73604 ("OvmfPkg: Don't build in + QemuVideoDxe when we have CSM", 2019-06-26), the contexts of + "QemuVideoDxe.inf" / "QemuRamfbDxe.inf" have changed in the DSC files. + Resolve the conflict manually. + +Notes about the RHEL-8.0/20180508-ee3198e672e2 -> +RHEL-8.1/20190308-89910a39dcfd rebase: + +- Upstream commit 1d25ff51af5c ("OvmfPkg: add QemuRamfbDxe", 2018-06-14) + introduced another GOP driver that consumes FrameBufferBltLib, and + thereby produces a large number of (mostly useless) debug messages at + the DEBUG_VERBOSE level. Extend the patch to suppress those messages in + both QemuVideoDxe and QemuRamfbDxe; update the subject accordingly. + QemuRamfbDxe itself doesn't log anything at the VERBOSE level (see also + the original commit message at the bottom of this downstream patch). + +Notes about the RHEL-7.6/ovmf-20180508-2.gitee3198e672e2.el7 -> +RHEL-8.0/20180508-ee3198e672e2 rebase: + +- reorder the rebase changelog in the commit message so that it reads like + a blog: place more recent entries near the top +- no changes to the patch body + +Notes about the 20171011-92d07e48907f -> 20180508-ee3198e672e2 rebase: + +- no changes + +Bugzilla: 1488247 + +In commit 5b2291f9567a ("OvmfPkg: QemuVideoDxe uses +MdeModulePkg/FrameBufferLib"), QemuVideoDxe was rebased to +FrameBufferBltLib. + +The FrameBufferBltLib instance added in commit b1ca386074bd +("MdeModulePkg: Add FrameBufferBltLib library instance") logs many +messages on the VERBOSE level; for example, a normal boot with OVMF can +produce 500+ "VideoFill" messages, dependent on the progress bar, when the +VERBOSE bit is set in PcdDebugPrintErrorLevel. + +QemuVideoDxe itself doesn't log anything at the VERBOSE level, so we lose +none of its messages this way. + +Signed-off-by: Laszlo Ersek +Signed-off-by: Paolo Bonzini +(this patch was previously applied as commit 9b0d031dee7e823f6717bab73e422fbc6f0a6c52) +(cherry picked from commit 9122d5f2e8d8d289064d1e1700cb61964d9931f3) +(cherry picked from commit 7eb3be1d4ccafc26c11fe5afb95cc12b250ce6f0) +(cherry picked from commit bd650684712fb840dbcda5d6eaee065bd9e91fa1) +(cherry picked from commit b06b87f8ffd4fed4ef7eacb13689a9b6d111f850) +(cherry picked from commit c8c3f893e7c3710afe45c46839e97954871536e4) +(cherry picked from commit 1355849ad97c1e4a5c430597a377165a5cc118f7) +--- + OvmfPkg/AmdSev/AmdSevX64.dsc | 10 ++++++++-- + OvmfPkg/OvmfPkgIa32.dsc | 10 ++++++++-- + OvmfPkg/OvmfPkgIa32X64.dsc | 10 ++++++++-- + OvmfPkg/OvmfPkgX64.dsc | 10 ++++++++-- + 4 files changed, 32 insertions(+), 8 deletions(-) + +diff --git a/OvmfPkg/AmdSev/AmdSevX64.dsc b/OvmfPkg/AmdSev/AmdSevX64.dsc +index ae3f9c75c4a4..c7d7add60d44 100644 +--- a/OvmfPkg/AmdSev/AmdSevX64.dsc ++++ b/OvmfPkg/AmdSev/AmdSevX64.dsc +@@ -682,8 +682,14 @@ [Components] + MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf + MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf + +- OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf +- OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf ++ OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf { ++ ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F ++ } ++ OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf { ++ ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F ++ } + OvmfPkg/VirtioGpuDxe/VirtioGpu.inf + + # +diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc +index bb3b0c1c96f3..30b843d2287a 100644 +--- a/OvmfPkg/OvmfPkgIa32.dsc ++++ b/OvmfPkg/OvmfPkgIa32.dsc +@@ -851,9 +851,15 @@ [Components] + MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf + + !ifndef $(CSM_ENABLE) +- OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf ++ OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf { ++ ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F ++ } + !endif +- OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf ++ OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf { ++ ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F ++ } + OvmfPkg/VirtioGpuDxe/VirtioGpu.inf + + # +diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc +index 19b968bd945d..2327c5c29611 100644 +--- a/OvmfPkg/OvmfPkgIa32X64.dsc ++++ b/OvmfPkg/OvmfPkgIa32X64.dsc +@@ -864,9 +864,15 @@ [Components.X64] + MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf + + !ifndef $(CSM_ENABLE) +- OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf ++ OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf { ++ ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F ++ } + !endif +- OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf ++ OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf { ++ ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F ++ } + OvmfPkg/VirtioGpuDxe/VirtioGpu.inf + + # +diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc +index 876f2374a2cc..49b914c29f35 100644 +--- a/OvmfPkg/OvmfPkgX64.dsc ++++ b/OvmfPkg/OvmfPkgX64.dsc +@@ -937,9 +937,15 @@ [Components] + MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf + + !ifndef $(CSM_ENABLE) +- OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf ++ OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf { ++ ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F ++ } + !endif +- OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf ++ OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf { ++ ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F ++ } + OvmfPkg/VirtioGpuDxe/VirtioGpu.inf + + # +-- +2.39.2 + diff --git a/0008-ArmVirtPkg-silence-DEBUG_VERBOSE-0x00400000-in-QemuR.patch b/0008-ArmVirtPkg-silence-DEBUG_VERBOSE-0x00400000-in-QemuR.patch new file mode 100644 index 0000000..2c3a408 --- /dev/null +++ b/0008-ArmVirtPkg-silence-DEBUG_VERBOSE-0x00400000-in-QemuR.patch @@ -0,0 +1,97 @@ +From a7f8d385ac55fce62cc5a9a1608e4d085801e6f3 Mon Sep 17 00:00:00 2001 +From: Laszlo Ersek +Date: Wed, 27 Jan 2016 03:05:18 +0100 +Subject: [PATCH 08/14] ArmVirtPkg: silence DEBUG_VERBOSE (0x00400000) in + QemuRamfbDxe (RH only) + +Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> +RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: + +- no change + +Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> +RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: + +- no change + +Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] -> +RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase: + +- The previous version of this patch (downstream commit 76b4ac28e975) + caused a regression (RHBZ#1714446), which was fixed up in downstream + commit 5a216abaa737 ("ArmVirtPkg: silence DEBUG_VERBOSE masking + ~0x00400000 in QemuRamfbDxe (RH only)", 2019-08-05). + + Squash the fixup into the original patch. Fuse the commit messages. + (Acked-by tags are not preserved, lest we confuse ourselves while + reviewing this rebase.) + +Notes about the RHEL-8.0/20180508-ee3198e672e2 -> +RHEL-8.1/20190308-89910a39dcfd rebase: + +- new patch, due to upstream commit c64688f36a8b ("ArmVirtPkg: add + QemuRamfbDxe", 2018-06-14) + +QemuRamfbDxe uses FrameBufferLib. The FrameBufferBltLib instance added in +commit b1ca386074bd ("MdeModulePkg: Add FrameBufferBltLib library +instance") logs many messages on the VERBOSE level; for example, a normal +boot with ArmVirtQemu[Kernel] can produce 500+ "VideoFill" messages, +dependent on the progress bar, when the VERBOSE bit is set in +PcdDebugPrintErrorLevel. + +Clear the VERBOSE bit without touching other bits -- those other bits +differ between the "silent" and "verbose" builds, so we can't set them as +constants. + +QemuRamfbDxe itself doesn't log anything at the VERBOSE level, so we lose +none of its messages, with the VERBOSE bit clear. + +Signed-off-by: Laszlo Ersek +(cherry picked from commit 76b4ac28e975bd63c25db903a1d42c47b38cc756) +Reported-by: Andrew Jones +Suggested-by: Laszlo Ersek +Signed-off-by: Philippe Mathieu-Daude +(cherry picked from commit 5a216abaa737195327235e37563b18a6bf2a74dc) +Signed-off-by: Laszlo Ersek +(cherry picked from commit e5b8152bced2364a1ded0926dbba4d65e23e3f84) +(cherry picked from commit e7f57f154439c1c18ea5030b01f8d7bc492698b2) +--- + ArmVirtPkg/ArmVirtQemu.dsc | 5 ++++- + ArmVirtPkg/ArmVirtQemuKernel.dsc | 5 ++++- + 2 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc +index 7a3be7e8592c..865172c5d56b 100644 +--- a/ArmVirtPkg/ArmVirtQemu.dsc ++++ b/ArmVirtPkg/ArmVirtQemu.dsc +@@ -546,7 +546,10 @@ [Components.common] + # + # Video support + # +- OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf ++ OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf { ++ ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|($(DEBUG_PRINT_ERROR_LEVEL)) & 0xFFBFFFFF ++ } + OvmfPkg/VirtioGpuDxe/VirtioGpu.inf + OvmfPkg/PlatformDxe/Platform.inf + +diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc +index 3cb9120e4e10..02877284bfa3 100644 +--- a/ArmVirtPkg/ArmVirtQemuKernel.dsc ++++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc +@@ -444,7 +444,10 @@ [Components.common] + # + # Video support + # +- OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf ++ OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf { ++ ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|($(DEBUG_PRINT_ERROR_LEVEL)) & 0xFFBFFFFF ++ } + OvmfPkg/VirtioGpuDxe/VirtioGpu.inf + OvmfPkg/PlatformDxe/Platform.inf + +-- +2.39.2 + diff --git a/0008-OvmfPkg-silence-DEBUG_VERBOSE-0x00400000-in-QemuVide.patch b/0008-OvmfPkg-silence-DEBUG_VERBOSE-0x00400000-in-QemuVide.patch deleted file mode 100644 index b0f4cd9..0000000 --- a/0008-OvmfPkg-silence-DEBUG_VERBOSE-0x00400000-in-QemuVide.patch +++ /dev/null @@ -1,173 +0,0 @@ -From 75e3104437472cd3a83b9be7613b935daeacfd45 Mon Sep 17 00:00:00 2001 -From: Paolo Bonzini -Date: Tue, 21 Nov 2017 00:57:46 +0100 -Subject: [PATCH 08/17] OvmfPkg: silence DEBUG_VERBOSE (0x00400000) in - QemuVideoDxe/QemuRamfbDxe (RH) - -Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> -RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: - -- Extend the DSC change to the new OvmfPkg/AmdSev platform, which has been - introduced upstream in commit 30d277ed7a82 ("OvmfPkg/Amdsev: Base commit - to build encrypted boot specific OVMF", 2020-12-14), for TianoCore#3077. - -- Remove obsolete commit message tags related to downstream patch - management: Message-id, Patchwork-id, O-Subject, Acked-by, From - (RHBZ#1846481). - -Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> -RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: - -- no change - -Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] -> -RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase: - -- Due to upstream commit 4b04d9d73604 ("OvmfPkg: Don't build in - QemuVideoDxe when we have CSM", 2019-06-26), the contexts of - "QemuVideoDxe.inf" / "QemuRamfbDxe.inf" have changed in the DSC files. - Resolve the conflict manually. - -Notes about the RHEL-8.0/20180508-ee3198e672e2 -> -RHEL-8.1/20190308-89910a39dcfd rebase: - -- Upstream commit 1d25ff51af5c ("OvmfPkg: add QemuRamfbDxe", 2018-06-14) - introduced another GOP driver that consumes FrameBufferBltLib, and - thereby produces a large number of (mostly useless) debug messages at - the DEBUG_VERBOSE level. Extend the patch to suppress those messages in - both QemuVideoDxe and QemuRamfbDxe; update the subject accordingly. - QemuRamfbDxe itself doesn't log anything at the VERBOSE level (see also - the original commit message at the bottom of this downstream patch). - -Notes about the RHEL-7.6/ovmf-20180508-2.gitee3198e672e2.el7 -> -RHEL-8.0/20180508-ee3198e672e2 rebase: - -- reorder the rebase changelog in the commit message so that it reads like - a blog: place more recent entries near the top -- no changes to the patch body - -Notes about the 20171011-92d07e48907f -> 20180508-ee3198e672e2 rebase: - -- no changes - -Bugzilla: 1488247 - -In commit 5b2291f9567a ("OvmfPkg: QemuVideoDxe uses -MdeModulePkg/FrameBufferLib"), QemuVideoDxe was rebased to -FrameBufferBltLib. - -The FrameBufferBltLib instance added in commit b1ca386074bd -("MdeModulePkg: Add FrameBufferBltLib library instance") logs many -messages on the VERBOSE level; for example, a normal boot with OVMF can -produce 500+ "VideoFill" messages, dependent on the progress bar, when the -VERBOSE bit is set in PcdDebugPrintErrorLevel. - -QemuVideoDxe itself doesn't log anything at the VERBOSE level, so we lose -none of its messages this way. - -Signed-off-by: Laszlo Ersek -Signed-off-by: Paolo Bonzini -(this patch was previously applied as commit 9b0d031dee7e823f6717bab73e422fbc6f0a6c52) -(cherry picked from commit 9122d5f2e8d8d289064d1e1700cb61964d9931f3) -(cherry picked from commit 7eb3be1d4ccafc26c11fe5afb95cc12b250ce6f0) -(cherry picked from commit bd650684712fb840dbcda5d6eaee065bd9e91fa1) -(cherry picked from commit b06b87f8ffd4fed4ef7eacb13689a9b6d111f850) -(cherry picked from commit c8c3f893e7c3710afe45c46839e97954871536e4) -(cherry picked from commit 1355849ad97c1e4a5c430597a377165a5cc118f7) ---- - OvmfPkg/AmdSev/AmdSevX64.dsc | 10 ++++++++-- - OvmfPkg/OvmfPkgIa32.dsc | 10 ++++++++-- - OvmfPkg/OvmfPkgIa32X64.dsc | 10 ++++++++-- - OvmfPkg/OvmfPkgX64.dsc | 10 ++++++++-- - 4 files changed, 32 insertions(+), 8 deletions(-) - -diff --git a/OvmfPkg/AmdSev/AmdSevX64.dsc b/OvmfPkg/AmdSev/AmdSevX64.dsc -index 53a8938965ea..f5133a801f8f 100644 ---- a/OvmfPkg/AmdSev/AmdSevX64.dsc -+++ b/OvmfPkg/AmdSev/AmdSevX64.dsc -@@ -677,8 +677,14 @@ [Components] - MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf - MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf - -- OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf -- OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf -+ OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf { -+ -+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F -+ } -+ OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf { -+ -+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F -+ } - OvmfPkg/VirtioGpuDxe/VirtioGpu.inf - - # -diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc -index 7bced89f2a6b..1d271a3bdcab 100644 ---- a/OvmfPkg/OvmfPkgIa32.dsc -+++ b/OvmfPkg/OvmfPkgIa32.dsc -@@ -846,9 +846,15 @@ [Components] - MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf - - !ifndef $(CSM_ENABLE) -- OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf -+ OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf { -+ -+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F -+ } - !endif -- OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf -+ OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf { -+ -+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F -+ } - OvmfPkg/VirtioGpuDxe/VirtioGpu.inf - - # -diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc -index 2599facbb7cd..240bc43d14c6 100644 ---- a/OvmfPkg/OvmfPkgIa32X64.dsc -+++ b/OvmfPkg/OvmfPkgIa32X64.dsc -@@ -860,9 +860,15 @@ [Components.X64] - MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf - - !ifndef $(CSM_ENABLE) -- OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf -+ OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf { -+ -+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F -+ } - !endif -- OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf -+ OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf { -+ -+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F -+ } - OvmfPkg/VirtioGpuDxe/VirtioGpu.inf - - # -diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc -index 7bd445ca36f7..7c6faba9509b 100644 ---- a/OvmfPkg/OvmfPkgX64.dsc -+++ b/OvmfPkg/OvmfPkgX64.dsc -@@ -928,9 +928,15 @@ [Components] - MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf - - !ifndef $(CSM_ENABLE) -- OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf -+ OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf { -+ -+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F -+ } - !endif -- OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf -+ OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf { -+ -+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F -+ } - OvmfPkg/VirtioGpuDxe/VirtioGpu.inf - - # --- -2.38.1 - diff --git a/0009-ArmVirtPkg-silence-DEBUG_VERBOSE-0x00400000-in-QemuR.patch b/0009-ArmVirtPkg-silence-DEBUG_VERBOSE-0x00400000-in-QemuR.patch deleted file mode 100644 index e80e518..0000000 --- a/0009-ArmVirtPkg-silence-DEBUG_VERBOSE-0x00400000-in-QemuR.patch +++ /dev/null @@ -1,97 +0,0 @@ -From aede9477834cf0495425750cbf3ce2cefa208828 Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Wed, 27 Jan 2016 03:05:18 +0100 -Subject: [PATCH 09/17] ArmVirtPkg: silence DEBUG_VERBOSE (0x00400000) in - QemuRamfbDxe (RH only) - -Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> -RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: - -- no change - -Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> -RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: - -- no change - -Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] -> -RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase: - -- The previous version of this patch (downstream commit 76b4ac28e975) - caused a regression (RHBZ#1714446), which was fixed up in downstream - commit 5a216abaa737 ("ArmVirtPkg: silence DEBUG_VERBOSE masking - ~0x00400000 in QemuRamfbDxe (RH only)", 2019-08-05). - - Squash the fixup into the original patch. Fuse the commit messages. - (Acked-by tags are not preserved, lest we confuse ourselves while - reviewing this rebase.) - -Notes about the RHEL-8.0/20180508-ee3198e672e2 -> -RHEL-8.1/20190308-89910a39dcfd rebase: - -- new patch, due to upstream commit c64688f36a8b ("ArmVirtPkg: add - QemuRamfbDxe", 2018-06-14) - -QemuRamfbDxe uses FrameBufferLib. The FrameBufferBltLib instance added in -commit b1ca386074bd ("MdeModulePkg: Add FrameBufferBltLib library -instance") logs many messages on the VERBOSE level; for example, a normal -boot with ArmVirtQemu[Kernel] can produce 500+ "VideoFill" messages, -dependent on the progress bar, when the VERBOSE bit is set in -PcdDebugPrintErrorLevel. - -Clear the VERBOSE bit without touching other bits -- those other bits -differ between the "silent" and "verbose" builds, so we can't set them as -constants. - -QemuRamfbDxe itself doesn't log anything at the VERBOSE level, so we lose -none of its messages, with the VERBOSE bit clear. - -Signed-off-by: Laszlo Ersek -(cherry picked from commit 76b4ac28e975bd63c25db903a1d42c47b38cc756) -Reported-by: Andrew Jones -Suggested-by: Laszlo Ersek -Signed-off-by: Philippe Mathieu-Daude -(cherry picked from commit 5a216abaa737195327235e37563b18a6bf2a74dc) -Signed-off-by: Laszlo Ersek -(cherry picked from commit e5b8152bced2364a1ded0926dbba4d65e23e3f84) -(cherry picked from commit e7f57f154439c1c18ea5030b01f8d7bc492698b2) ---- - ArmVirtPkg/ArmVirtQemu.dsc | 5 ++++- - ArmVirtPkg/ArmVirtQemuKernel.dsc | 5 ++++- - 2 files changed, 8 insertions(+), 2 deletions(-) - -diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc -index ed66f0003082..a3d744931a15 100644 ---- a/ArmVirtPkg/ArmVirtQemu.dsc -+++ b/ArmVirtPkg/ArmVirtQemu.dsc -@@ -537,7 +537,10 @@ [Components.common] - # - # Video support - # -- OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf -+ OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf { -+ -+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|($(DEBUG_PRINT_ERROR_LEVEL)) & 0xFFBFFFFF -+ } - OvmfPkg/VirtioGpuDxe/VirtioGpu.inf - OvmfPkg/PlatformDxe/Platform.inf - -diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc -index f5db3ac432f3..ff3e6c5974b6 100644 ---- a/ArmVirtPkg/ArmVirtQemuKernel.dsc -+++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc -@@ -440,7 +440,10 @@ [Components.common] - # - # Video support - # -- OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf -+ OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf { -+ -+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|($(DEBUG_PRINT_ERROR_LEVEL)) & 0xFFBFFFFF -+ } - OvmfPkg/VirtioGpuDxe/VirtioGpu.inf - OvmfPkg/PlatformDxe/Platform.inf - --- -2.38.1 - diff --git a/0009-OvmfPkg-QemuRamfbDxe-Do-not-report-DXE-failure-on-Aa.patch b/0009-OvmfPkg-QemuRamfbDxe-Do-not-report-DXE-failure-on-Aa.patch new file mode 100644 index 0000000..f4cbed4 --- /dev/null +++ b/0009-OvmfPkg-QemuRamfbDxe-Do-not-report-DXE-failure-on-Aa.patch @@ -0,0 +1,96 @@ +From 08c466269cf4728e954d61c1801b0eb6ca4175ff Mon Sep 17 00:00:00 2001 +From: Philippe Mathieu-Daude +Date: Thu, 1 Aug 2019 20:43:48 +0200 +Subject: [PATCH 09/14] OvmfPkg: QemuRamfbDxe: Do not report DXE failure on + Aarch64 silent builds (RH only) + +Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> +RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: + +- no change + +Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> +RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: + +- no change + +Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] -> +RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase: + +- We have to carry this downstream-only patch -- committed originally as + aaaedc1e2cfd -- indefinitely. + +- To avoid confusion, remove the tags from the commit message that had + been added by the downstream maintainer scripts, such as: Message-id, + Patchwork-id, O-Subject, Acked-by. These remain available on the + original downstream commit. The Bugzilla line is preserved, as it + doesn't relate to a specific posting, but to the problem. + +Bugzilla: 1714446 + +To suppress an error message on the silent build when ramfb is +not configured, change QemuRamfbDxe to return EFI_SUCCESS even +when it fails. +Some memory is wasted (driver stays resident without +any good use), but it is mostly harmless, as the memory +is released by the OS after ExitBootServices(). + +Suggested-by: Laszlo Ersek +Signed-off-by: Philippe Mathieu-Daude +(cherry picked from commit aaaedc1e2cfd55ef003fb1b5a37c73a196b26dc7) +Signed-off-by: Laszlo Ersek +(cherry picked from commit aa2b66b18a62d652bdbefae7b5732297294306ca) +(cherry picked from commit deb3451034326b75fd760aba47a5171493ff055e) +--- + OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf | 1 + + OvmfPkg/QemuRamfbDxe/QemuRamfb.c | 15 +++++++++++++++ + 2 files changed, 16 insertions(+) + +diff --git a/OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf b/OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf +index e3890b8c202f..6ffee5acb24c 100644 +--- a/OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf ++++ b/OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf +@@ -29,6 +29,7 @@ [LibraryClasses] + BaseLib + BaseMemoryLib + DebugLib ++ DebugPrintErrorLevelLib + DevicePathLib + FrameBufferBltLib + MemoryAllocationLib +diff --git a/OvmfPkg/QemuRamfbDxe/QemuRamfb.c b/OvmfPkg/QemuRamfbDxe/QemuRamfb.c +index f5113fbc78a6..0295986fe0f1 100644 +--- a/OvmfPkg/QemuRamfbDxe/QemuRamfb.c ++++ b/OvmfPkg/QemuRamfbDxe/QemuRamfb.c +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -259,6 +260,20 @@ InitializeQemuRamfb ( + + Status = QemuFwCfgFindFile ("etc/ramfb", &mRamfbFwCfgItem, &FwCfgSize); + if (EFI_ERROR (Status)) { ++ #if defined (MDE_CPU_AARCH64) ++ // ++ // RHBZ#1714446 ++ // If no ramfb device was configured, this platform DXE driver should ++ // returns EFI_NOT_FOUND, so the DXE Core can unload it. However, even ++ // using a silent build, an error message is issued to the guest console. ++ // Since this confuse users, return success and stay resident. The wasted ++ // guest RAM still gets freed later after ExitBootServices(). ++ // ++ if (GetDebugPrintErrorLevel () == DEBUG_ERROR) { ++ return EFI_SUCCESS; ++ } ++ ++ #endif + return EFI_NOT_FOUND; + } + +-- +2.39.2 + diff --git a/0010-OvmfPkg-QemuRamfbDxe-Do-not-report-DXE-failure-on-Aa.patch b/0010-OvmfPkg-QemuRamfbDxe-Do-not-report-DXE-failure-on-Aa.patch deleted file mode 100644 index 9d567dd..0000000 --- a/0010-OvmfPkg-QemuRamfbDxe-Do-not-report-DXE-failure-on-Aa.patch +++ /dev/null @@ -1,96 +0,0 @@ -From a8048db38e11d9b4cbcde3addf907455833be332 Mon Sep 17 00:00:00 2001 -From: Philippe Mathieu-Daude -Date: Thu, 1 Aug 2019 20:43:48 +0200 -Subject: [PATCH 10/17] OvmfPkg: QemuRamfbDxe: Do not report DXE failure on - Aarch64 silent builds (RH only) - -Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> -RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: - -- no change - -Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> -RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: - -- no change - -Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] -> -RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase: - -- We have to carry this downstream-only patch -- committed originally as - aaaedc1e2cfd -- indefinitely. - -- To avoid confusion, remove the tags from the commit message that had - been added by the downstream maintainer scripts, such as: Message-id, - Patchwork-id, O-Subject, Acked-by. These remain available on the - original downstream commit. The Bugzilla line is preserved, as it - doesn't relate to a specific posting, but to the problem. - -Bugzilla: 1714446 - -To suppress an error message on the silent build when ramfb is -not configured, change QemuRamfbDxe to return EFI_SUCCESS even -when it fails. -Some memory is wasted (driver stays resident without -any good use), but it is mostly harmless, as the memory -is released by the OS after ExitBootServices(). - -Suggested-by: Laszlo Ersek -Signed-off-by: Philippe Mathieu-Daude -(cherry picked from commit aaaedc1e2cfd55ef003fb1b5a37c73a196b26dc7) -Signed-off-by: Laszlo Ersek -(cherry picked from commit aa2b66b18a62d652bdbefae7b5732297294306ca) -(cherry picked from commit deb3451034326b75fd760aba47a5171493ff055e) ---- - OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf | 1 + - OvmfPkg/QemuRamfbDxe/QemuRamfb.c | 15 +++++++++++++++ - 2 files changed, 16 insertions(+) - -diff --git a/OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf b/OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf -index e3890b8c202f..6ffee5acb24c 100644 ---- a/OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf -+++ b/OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf -@@ -29,6 +29,7 @@ [LibraryClasses] - BaseLib - BaseMemoryLib - DebugLib -+ DebugPrintErrorLevelLib - DevicePathLib - FrameBufferBltLib - MemoryAllocationLib -diff --git a/OvmfPkg/QemuRamfbDxe/QemuRamfb.c b/OvmfPkg/QemuRamfbDxe/QemuRamfb.c -index f5113fbc78a6..0295986fe0f1 100644 ---- a/OvmfPkg/QemuRamfbDxe/QemuRamfb.c -+++ b/OvmfPkg/QemuRamfbDxe/QemuRamfb.c -@@ -13,6 +13,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -259,6 +260,20 @@ InitializeQemuRamfb ( - - Status = QemuFwCfgFindFile ("etc/ramfb", &mRamfbFwCfgItem, &FwCfgSize); - if (EFI_ERROR (Status)) { -+ #if defined (MDE_CPU_AARCH64) -+ // -+ // RHBZ#1714446 -+ // If no ramfb device was configured, this platform DXE driver should -+ // returns EFI_NOT_FOUND, so the DXE Core can unload it. However, even -+ // using a silent build, an error message is issued to the guest console. -+ // Since this confuse users, return success and stay resident. The wasted -+ // guest RAM still gets freed later after ExitBootServices(). -+ // -+ if (GetDebugPrintErrorLevel () == DEBUG_ERROR) { -+ return EFI_SUCCESS; -+ } -+ -+ #endif - return EFI_NOT_FOUND; - } - --- -2.38.1 - diff --git a/0010-OvmfPkg-silence-EFI_D_VERBOSE-0x00400000-in-NvmExpre.patch b/0010-OvmfPkg-silence-EFI_D_VERBOSE-0x00400000-in-NvmExpre.patch new file mode 100644 index 0000000..5d90a04 --- /dev/null +++ b/0010-OvmfPkg-silence-EFI_D_VERBOSE-0x00400000-in-NvmExpre.patch @@ -0,0 +1,131 @@ +From ce8bf8cbb5ad81677c2b632b98f527a1d9fda3b1 Mon Sep 17 00:00:00 2001 +From: Paolo Bonzini +Date: Tue, 21 Nov 2017 00:57:47 +0100 +Subject: [PATCH 10/14] OvmfPkg: silence EFI_D_VERBOSE (0x00400000) in + NvmExpressDxe (RH only) + +Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> +RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: + +- Extend the DSC change to the new OvmfPkg/AmdSev platform, which has been + introduced upstream in commit 30d277ed7a82 ("OvmfPkg/Amdsev: Base commit + to build encrypted boot specific OVMF", 2020-12-14), for TianoCore#3077. + +- Remove obsolete commit message tags related to downstream patch + management: Message-id, Patchwork-id, O-Subject, Acked-by, From + (RHBZ#1846481). + +Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> +RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: + +- no change + +Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] -> +RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase: + +- no change + +Notes about the RHEL-8.0/20180508-ee3198e672e2 -> +RHEL-8.1/20190308-89910a39dcfd rebase: + +- no change + +Notes about the RHEL-7.6/ovmf-20180508-2.gitee3198e672e2.el7 -> +RHEL-8.0/20180508-ee3198e672e2 rebase: + +- reorder the rebase changelog in the commit message so that it reads like + a blog: place more recent entries near the top +- no changes to the patch body + +Notes about the 20171011-92d07e48907f -> 20180508-ee3198e672e2 rebase: + +- no changes + +Bugzilla: 1488247 + +NvmExpressDxe logs all BlockIo read & write calls on the EFI_D_VERBOSE +level. + +Signed-off-by: Laszlo Ersek +Signed-off-by: Paolo Bonzini +(this patch was previously applied as commit 5f432837b9c60c2929b13dda1a1b488d5c3a6d2f) +(cherry picked from commit 33e00146eb878588ad1395d7b1ae38f401729da4) +(cherry picked from commit bd10cabcfcb1bc9a32b05062f4ee3792e27bc2d8) +(cherry picked from commit 5a27af700f49e00608f232f618dedd7bf5e9b3e6) +(cherry picked from commit 58bba429b9ec7b78109940ef945d0dc93f3cd958) +(cherry picked from commit b8d0ebded8c2cf5b266c807519e2d8ccfd66fee6) +(cherry picked from commit ed89844b47f46cfe911f1bf2bda40e537a908502) +--- + OvmfPkg/AmdSev/AmdSevX64.dsc | 5 ++++- + OvmfPkg/OvmfPkgIa32.dsc | 5 ++++- + OvmfPkg/OvmfPkgIa32X64.dsc | 5 ++++- + OvmfPkg/OvmfPkgX64.dsc | 5 ++++- + 4 files changed, 16 insertions(+), 4 deletions(-) + +diff --git a/OvmfPkg/AmdSev/AmdSevX64.dsc b/OvmfPkg/AmdSev/AmdSevX64.dsc +index c7d7add60d44..2ea6fad2018a 100644 +--- a/OvmfPkg/AmdSev/AmdSevX64.dsc ++++ b/OvmfPkg/AmdSev/AmdSevX64.dsc +@@ -676,7 +676,10 @@ [Components] + OvmfPkg/SataControllerDxe/SataControllerDxe.inf + MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf + MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf +- MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf ++ MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf { ++ ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F ++ } + MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf + MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf + MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf +diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc +index 30b843d2287a..db1cde0a3b03 100644 +--- a/OvmfPkg/OvmfPkgIa32.dsc ++++ b/OvmfPkg/OvmfPkgIa32.dsc +@@ -844,7 +844,10 @@ [Components] + OvmfPkg/SataControllerDxe/SataControllerDxe.inf + MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf + MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf +- MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf ++ MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf { ++ ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F ++ } + MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf + MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf + MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf +diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc +index 2327c5c29611..938eaba74ad4 100644 +--- a/OvmfPkg/OvmfPkgIa32X64.dsc ++++ b/OvmfPkg/OvmfPkgIa32X64.dsc +@@ -857,7 +857,10 @@ [Components.X64] + OvmfPkg/SataControllerDxe/SataControllerDxe.inf + MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf + MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf +- MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf ++ MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf { ++ ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F ++ } + MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf + MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf + MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf +diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc +index 49b914c29f35..91fbe83bfac1 100644 +--- a/OvmfPkg/OvmfPkgX64.dsc ++++ b/OvmfPkg/OvmfPkgX64.dsc +@@ -930,7 +930,10 @@ [Components] + OvmfPkg/SataControllerDxe/SataControllerDxe.inf + MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf + MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf +- MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf ++ MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf { ++ ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F ++ } + MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf + MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf + MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf +-- +2.39.2 + diff --git a/0011-CryptoPkg-OpensslLib-list-RHEL8-specific-OpenSSL-fil.patch b/0011-CryptoPkg-OpensslLib-list-RHEL8-specific-OpenSSL-fil.patch new file mode 100644 index 0000000..ad2ed67 --- /dev/null +++ b/0011-CryptoPkg-OpensslLib-list-RHEL8-specific-OpenSSL-fil.patch @@ -0,0 +1,181 @@ +From 586d6536227c0fd176a1567b9a59345de348d472 Mon Sep 17 00:00:00 2001 +From: Laszlo Ersek +Date: Sat, 16 Nov 2019 17:11:27 +0100 +Subject: [PATCH 11/14] CryptoPkg/OpensslLib: list RHEL8-specific OpenSSL files + in the INFs (RH) + +Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> +RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: + +- Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1938257 + +- Recreate the patch based on downstream commits: + + - 56c4bb81b311 ("CryptoPkg/OpensslLib: list RHEL8-specific OpenSSL files + in the INFs (RH)", 2020-06-05), + - e81751a1c303 ("CryptoPkg/OpensslLib: Upgrade OpenSSL to 1.1.1g", + 2020-11-23), + - 3e3fe5e62079 ("redhat: bump OpenSSL dist-git submodule to 1.1.1g+ / + RHEL-8.4", 2020-11-23). + + (1) At e81751a1c303, downstream edk2 was in sync with upstream edk2 + consuming OpenSSL 1.1.1g (upstream edk2 commit 8c30327debb2 + ("CryptoPkg/OpensslLib: Upgrade OpenSSL to 1.1.1g", 2020-07-25)). + + Since commit 8c30327debb2, upstream edk2 modified the OpensslLib INF + files, namely + + - CryptoPkg/Library/OpensslLib/OpensslLib.inf + - CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf + + in the following commits only: + + - be01087e0780 ("CryptoPkg/Library: Remove the redundant build + option", 2020-08-12), which did not affect the source file list at + all, + + - b5701a4c7a0f ("CryptoPkg: OpensslLib: Use RngLib to generate + entropy in rand_pool", 2020-09-18), which replaced some of the + *edk2-specific* "rand_pool_noise" source files with an RngLib + dependency. + + This means that the list of required, actual OpenSSL source files + has not changed in upstream edk2 since our downstream edk2 commit + e81751a1c303. + + (2) At commit 3e3fe5e62079 (the direct child of e81751a1c303), + downstream edk2's OpenSSL dependency was satisfied with RHEL-8 + OpenSSL at dist-git commit bdd048e929dc ("Two fixes that will be + shipped in RHEL-8.3.0.z", 2020-10-23). + + Since commit bdd048e929dc, RHEL-8 OpenSSL dist-git advanced + (fast-forwarded) to commit a75722161d20 ("Update to version 1.1.1k", + 2021-05-25), which is the current head of the rhel-8.5.0 branch. + (See also .) + + At both dist-git bdd048e929dc and dist-git a75722161d20, I built the + respective RHEL-8 OpenSSL *source* RPM, and prepped the respective + source tree, with "rpmbuild -bp". Subsequently I compared the + prepped source trees recursively. + + - The following files disappeared: + + - 29 backup files created by "patch", + + - the assembly generator perl script called + "ecp_nistz256-avx2.pl", which is not used during the build. + + - The following new files appeared: + + - 18 files directly or indirectly under the "test" subdirectory, + which are not used during the build, + + - 5 backup files created by "patch", + + - 2 DCL scripts used when building OpenSSL on OpenVMS. + + This means that the total list of RHEL-8 OpenSSL source files has + not changed in RHEL-8 OpenSSL dist-git since our downstream edk2 + commit 3e3fe5e62079. + + As a result, copy the "RHEL8-specific OpenSSL file list" sections + verbatim from the INF files, at downstream commit e81751a1c303. (I used + the "git checkout -p e81751a1c303 -- Library/OpensslLib/OpensslLib.inf + CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf" command.) + +Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> +RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: + +- "OpensslLib.inf": + + - Automatic leading context refresh against upstream commit c72ca4666886 + ("CryptoPkg/OpensslLib: Add "sort" keyword to header file parsing + loop", 2020-03-10). + + - Manual trailing context refresh against upstream commit b49a6c8f80d9 + ("CryptoPkg/OpensslLib: improve INF file consistency", 2019-12-02). + +- "OpensslLibCrypto.inf": + + - Automatic leading context refresh against upstream commits + 8906f076de35 ("CryptoPkg/OpensslLib: Add missing header files in INF + file", 2019-08-16) and 9f4fbd56d430 ("CryptoPkg/OpensslLib: Update + process_files.pl to generate .h files", 2019-10-30). + +Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] -> +RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase: + +- new patch + +The downstream changes in RHEL8's OpenSSL package, for example in +"openssl-1.1.1-evp-kdf.patch", introduce new files, and even move some +preexistent code into those new files. In order to avoid undefined +references in link editing, we have to list the new files. + +Note: "process_files.pl" is not re-run at this time manually, because + +(a) "process_files.pl" would pollute the file list (and some of the + auto-generated header files) with RHEL8-specific FIPS artifacts, which + are explicitly unwanted in edk2, + +(b) The RHEL OpenSSL maintainer, Tomas Mraz, identified this specific set + of files in , + and will help with future changes too. + +Signed-off-by: Laszlo Ersek +(cherry picked from commit 57bd3f146590df8757865d8f2cdd1db3cf3f4d40) +(cherry picked from commit 56c4bb81b311dfcee6a34c81d3e4feeda7f88995) +--- + CryptoPkg/Library/OpensslLib/OpensslLib.inf | 12 ++++++++++++ + CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf | 12 ++++++++++++ + 2 files changed, 24 insertions(+) + +diff --git a/CryptoPkg/Library/OpensslLib/OpensslLib.inf b/CryptoPkg/Library/OpensslLib/OpensslLib.inf +index 60c6c24b0a67..7e78255467b1 100644 +--- a/CryptoPkg/Library/OpensslLib/OpensslLib.inf ++++ b/CryptoPkg/Library/OpensslLib/OpensslLib.inf +@@ -575,6 +575,18 @@ [Sources] + $(OPENSSL_PATH)/ssl/statem/statem.h + $(OPENSSL_PATH)/ssl/statem/statem_local.h + # Autogenerated files list ends here ++# RHEL8-specific OpenSSL file list starts here ++ $(OPENSSL_PATH)/crypto/bn/rsa_sup_mul.c ++ $(OPENSSL_PATH)/crypto/evp/kdf_lib.c ++ $(OPENSSL_PATH)/crypto/evp/pkey_kdf.c ++ $(OPENSSL_PATH)/crypto/kdf/kbkdf.c ++ $(OPENSSL_PATH)/crypto/kdf/kdf_local.h ++ $(OPENSSL_PATH)/crypto/kdf/kdf_util.c ++ $(OPENSSL_PATH)/crypto/kdf/krb5kdf.c ++ $(OPENSSL_PATH)/crypto/kdf/pbkdf2.c ++ $(OPENSSL_PATH)/crypto/kdf/sshkdf.c ++ $(OPENSSL_PATH)/crypto/kdf/sskdf.c ++# RHEL8-specific OpenSSL file list ends here + buildinf.h + ossl_store.c + rand_pool.c +diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf +index c4eaea888c1a..1c551cb0990c 100644 +--- a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf ++++ b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf +@@ -525,6 +525,18 @@ [Sources] + $(OPENSSL_PATH)/crypto/x509v3/standard_exts.h + $(OPENSSL_PATH)/crypto/x509v3/v3_admis.h + # Autogenerated files list ends here ++# RHEL8-specific OpenSSL file list starts here ++ $(OPENSSL_PATH)/crypto/bn/rsa_sup_mul.c ++ $(OPENSSL_PATH)/crypto/evp/kdf_lib.c ++ $(OPENSSL_PATH)/crypto/evp/pkey_kdf.c ++ $(OPENSSL_PATH)/crypto/kdf/kbkdf.c ++ $(OPENSSL_PATH)/crypto/kdf/kdf_local.h ++ $(OPENSSL_PATH)/crypto/kdf/kdf_util.c ++ $(OPENSSL_PATH)/crypto/kdf/krb5kdf.c ++ $(OPENSSL_PATH)/crypto/kdf/pbkdf2.c ++ $(OPENSSL_PATH)/crypto/kdf/sshkdf.c ++ $(OPENSSL_PATH)/crypto/kdf/sskdf.c ++# RHEL8-specific OpenSSL file list ends here + buildinf.h + ossl_store.c + rand_pool.c +-- +2.39.2 + diff --git a/0011-OvmfPkg-silence-EFI_D_VERBOSE-0x00400000-in-NvmExpre.patch b/0011-OvmfPkg-silence-EFI_D_VERBOSE-0x00400000-in-NvmExpre.patch deleted file mode 100644 index 696af31..0000000 --- a/0011-OvmfPkg-silence-EFI_D_VERBOSE-0x00400000-in-NvmExpre.patch +++ /dev/null @@ -1,131 +0,0 @@ -From 7a001a5ba349a3b425f6da1df561a5a1a272a0ca Mon Sep 17 00:00:00 2001 -From: Paolo Bonzini -Date: Tue, 21 Nov 2017 00:57:47 +0100 -Subject: [PATCH 11/17] OvmfPkg: silence EFI_D_VERBOSE (0x00400000) in - NvmExpressDxe (RH only) - -Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> -RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: - -- Extend the DSC change to the new OvmfPkg/AmdSev platform, which has been - introduced upstream in commit 30d277ed7a82 ("OvmfPkg/Amdsev: Base commit - to build encrypted boot specific OVMF", 2020-12-14), for TianoCore#3077. - -- Remove obsolete commit message tags related to downstream patch - management: Message-id, Patchwork-id, O-Subject, Acked-by, From - (RHBZ#1846481). - -Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> -RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: - -- no change - -Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] -> -RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase: - -- no change - -Notes about the RHEL-8.0/20180508-ee3198e672e2 -> -RHEL-8.1/20190308-89910a39dcfd rebase: - -- no change - -Notes about the RHEL-7.6/ovmf-20180508-2.gitee3198e672e2.el7 -> -RHEL-8.0/20180508-ee3198e672e2 rebase: - -- reorder the rebase changelog in the commit message so that it reads like - a blog: place more recent entries near the top -- no changes to the patch body - -Notes about the 20171011-92d07e48907f -> 20180508-ee3198e672e2 rebase: - -- no changes - -Bugzilla: 1488247 - -NvmExpressDxe logs all BlockIo read & write calls on the EFI_D_VERBOSE -level. - -Signed-off-by: Laszlo Ersek -Signed-off-by: Paolo Bonzini -(this patch was previously applied as commit 5f432837b9c60c2929b13dda1a1b488d5c3a6d2f) -(cherry picked from commit 33e00146eb878588ad1395d7b1ae38f401729da4) -(cherry picked from commit bd10cabcfcb1bc9a32b05062f4ee3792e27bc2d8) -(cherry picked from commit 5a27af700f49e00608f232f618dedd7bf5e9b3e6) -(cherry picked from commit 58bba429b9ec7b78109940ef945d0dc93f3cd958) -(cherry picked from commit b8d0ebded8c2cf5b266c807519e2d8ccfd66fee6) -(cherry picked from commit ed89844b47f46cfe911f1bf2bda40e537a908502) ---- - OvmfPkg/AmdSev/AmdSevX64.dsc | 5 ++++- - OvmfPkg/OvmfPkgIa32.dsc | 5 ++++- - OvmfPkg/OvmfPkgIa32X64.dsc | 5 ++++- - OvmfPkg/OvmfPkgX64.dsc | 5 ++++- - 4 files changed, 16 insertions(+), 4 deletions(-) - -diff --git a/OvmfPkg/AmdSev/AmdSevX64.dsc b/OvmfPkg/AmdSev/AmdSevX64.dsc -index f5133a801f8f..05908a72270f 100644 ---- a/OvmfPkg/AmdSev/AmdSevX64.dsc -+++ b/OvmfPkg/AmdSev/AmdSevX64.dsc -@@ -671,7 +671,10 @@ [Components] - OvmfPkg/SataControllerDxe/SataControllerDxe.inf - MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf - MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf -- MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf -+ MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf { -+ -+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F -+ } - MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf - MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf - MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf -diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc -index 1d271a3bdcab..9c0fb7d545b8 100644 ---- a/OvmfPkg/OvmfPkgIa32.dsc -+++ b/OvmfPkg/OvmfPkgIa32.dsc -@@ -839,7 +839,10 @@ [Components] - OvmfPkg/SataControllerDxe/SataControllerDxe.inf - MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf - MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf -- MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf -+ MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf { -+ -+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F -+ } - MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf - MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf - MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf -diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc -index 240bc43d14c6..8b93437044e7 100644 ---- a/OvmfPkg/OvmfPkgIa32X64.dsc -+++ b/OvmfPkg/OvmfPkgIa32X64.dsc -@@ -853,7 +853,10 @@ [Components.X64] - OvmfPkg/SataControllerDxe/SataControllerDxe.inf - MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf - MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf -- MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf -+ MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf { -+ -+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F -+ } - MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf - MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf - MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf -diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc -index 7c6faba9509b..8c9162db1743 100644 ---- a/OvmfPkg/OvmfPkgX64.dsc -+++ b/OvmfPkg/OvmfPkgX64.dsc -@@ -921,7 +921,10 @@ [Components] - OvmfPkg/SataControllerDxe/SataControllerDxe.inf - MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf - MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf -- MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf -+ MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf { -+ -+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F -+ } - MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf - MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf - MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf --- -2.38.1 - diff --git a/0012-CryptoPkg-OpensslLib-list-RHEL8-specific-OpenSSL-fil.patch b/0012-CryptoPkg-OpensslLib-list-RHEL8-specific-OpenSSL-fil.patch deleted file mode 100644 index 504fde6..0000000 --- a/0012-CryptoPkg-OpensslLib-list-RHEL8-specific-OpenSSL-fil.patch +++ /dev/null @@ -1,179 +0,0 @@ -From 72c050576a41a14915f02a2c243cd41b22ad2384 Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Sat, 16 Nov 2019 17:11:27 +0100 -Subject: [PATCH 12/17] CryptoPkg/OpensslLib: list RHEL8-specific OpenSSL files - in the INFs (RH) - -Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> -RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: - -- Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1938257 - -- Recreate the patch based on downstream commits: - - - 56c4bb81b311 ("CryptoPkg/OpensslLib: list RHEL8-specific OpenSSL files - in the INFs (RH)", 2020-06-05), - - e81751a1c303 ("CryptoPkg/OpensslLib: Upgrade OpenSSL to 1.1.1g", - 2020-11-23), - - 3e3fe5e62079 ("redhat: bump OpenSSL dist-git submodule to 1.1.1g+ / - RHEL-8.4", 2020-11-23). - - (1) At e81751a1c303, downstream edk2 was in sync with upstream edk2 - consuming OpenSSL 1.1.1g (upstream edk2 commit 8c30327debb2 - ("CryptoPkg/OpensslLib: Upgrade OpenSSL to 1.1.1g", 2020-07-25)). - - Since commit 8c30327debb2, upstream edk2 modified the OpensslLib INF - files, namely - - - CryptoPkg/Library/OpensslLib/OpensslLib.inf - - CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf - - in the following commits only: - - - be01087e0780 ("CryptoPkg/Library: Remove the redundant build - option", 2020-08-12), which did not affect the source file list at - all, - - - b5701a4c7a0f ("CryptoPkg: OpensslLib: Use RngLib to generate - entropy in rand_pool", 2020-09-18), which replaced some of the - *edk2-specific* "rand_pool_noise" source files with an RngLib - dependency. - - This means that the list of required, actual OpenSSL source files - has not changed in upstream edk2 since our downstream edk2 commit - e81751a1c303. - - (2) At commit 3e3fe5e62079 (the direct child of e81751a1c303), - downstream edk2's OpenSSL dependency was satisfied with RHEL-8 - OpenSSL at dist-git commit bdd048e929dc ("Two fixes that will be - shipped in RHEL-8.3.0.z", 2020-10-23). - - Since commit bdd048e929dc, RHEL-8 OpenSSL dist-git advanced - (fast-forwarded) to commit a75722161d20 ("Update to version 1.1.1k", - 2021-05-25), which is the current head of the rhel-8.5.0 branch. - (See also .) - - At both dist-git bdd048e929dc and dist-git a75722161d20, I built the - respective RHEL-8 OpenSSL *source* RPM, and prepped the respective - source tree, with "rpmbuild -bp". Subsequently I compared the - prepped source trees recursively. - - - The following files disappeared: - - - 29 backup files created by "patch", - - - the assembly generator perl script called - "ecp_nistz256-avx2.pl", which is not used during the build. - - - The following new files appeared: - - - 18 files directly or indirectly under the "test" subdirectory, - which are not used during the build, - - - 5 backup files created by "patch", - - - 2 DCL scripts used when building OpenSSL on OpenVMS. - - This means that the total list of RHEL-8 OpenSSL source files has - not changed in RHEL-8 OpenSSL dist-git since our downstream edk2 - commit 3e3fe5e62079. - - As a result, copy the "RHEL8-specific OpenSSL file list" sections - verbatim from the INF files, at downstream commit e81751a1c303. (I used - the "git checkout -p e81751a1c303 -- Library/OpensslLib/OpensslLib.inf - CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf" command.) - -Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> -RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: - -- "OpensslLib.inf": - - - Automatic leading context refresh against upstream commit c72ca4666886 - ("CryptoPkg/OpensslLib: Add "sort" keyword to header file parsing - loop", 2020-03-10). - - - Manual trailing context refresh against upstream commit b49a6c8f80d9 - ("CryptoPkg/OpensslLib: improve INF file consistency", 2019-12-02). - -- "OpensslLibCrypto.inf": - - - Automatic leading context refresh against upstream commits - 8906f076de35 ("CryptoPkg/OpensslLib: Add missing header files in INF - file", 2019-08-16) and 9f4fbd56d430 ("CryptoPkg/OpensslLib: Update - process_files.pl to generate .h files", 2019-10-30). - -Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] -> -RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase: - -- new patch - -The downstream changes in RHEL8's OpenSSL package, for example in -"openssl-1.1.1-evp-kdf.patch", introduce new files, and even move some -preexistent code into those new files. In order to avoid undefined -references in link editing, we have to list the new files. - -Note: "process_files.pl" is not re-run at this time manually, because - -(a) "process_files.pl" would pollute the file list (and some of the - auto-generated header files) with RHEL8-specific FIPS artifacts, which - are explicitly unwanted in edk2, - -(b) The RHEL OpenSSL maintainer, Tomas Mraz, identified this specific set - of files in , - and will help with future changes too. - -Signed-off-by: Laszlo Ersek -(cherry picked from commit 57bd3f146590df8757865d8f2cdd1db3cf3f4d40) -(cherry picked from commit 56c4bb81b311dfcee6a34c81d3e4feeda7f88995) ---- - CryptoPkg/Library/OpensslLib/OpensslLib.inf | 11 +++++++++++ - CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf | 11 +++++++++++ - 2 files changed, 22 insertions(+) - -diff --git a/CryptoPkg/Library/OpensslLib/OpensslLib.inf b/CryptoPkg/Library/OpensslLib/OpensslLib.inf -index 60c6c24b0a67..e446b51e66cd 100644 ---- a/CryptoPkg/Library/OpensslLib/OpensslLib.inf -+++ b/CryptoPkg/Library/OpensslLib/OpensslLib.inf -@@ -575,6 +575,17 @@ [Sources] - $(OPENSSL_PATH)/ssl/statem/statem.h - $(OPENSSL_PATH)/ssl/statem/statem_local.h - # Autogenerated files list ends here -+# RHEL8-specific OpenSSL file list starts here -+ $(OPENSSL_PATH)/crypto/evp/kdf_lib.c -+ $(OPENSSL_PATH)/crypto/evp/pkey_kdf.c -+ $(OPENSSL_PATH)/crypto/kdf/kbkdf.c -+ $(OPENSSL_PATH)/crypto/kdf/kdf_local.h -+ $(OPENSSL_PATH)/crypto/kdf/kdf_util.c -+ $(OPENSSL_PATH)/crypto/kdf/krb5kdf.c -+ $(OPENSSL_PATH)/crypto/kdf/pbkdf2.c -+ $(OPENSSL_PATH)/crypto/kdf/sshkdf.c -+ $(OPENSSL_PATH)/crypto/kdf/sskdf.c -+# RHEL8-specific OpenSSL file list ends here - buildinf.h - ossl_store.c - rand_pool.c -diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf -index c4eaea888c1a..c207dc8f4cfd 100644 ---- a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf -+++ b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf -@@ -525,6 +525,17 @@ [Sources] - $(OPENSSL_PATH)/crypto/x509v3/standard_exts.h - $(OPENSSL_PATH)/crypto/x509v3/v3_admis.h - # Autogenerated files list ends here -+# RHEL8-specific OpenSSL file list starts here -+ $(OPENSSL_PATH)/crypto/evp/kdf_lib.c -+ $(OPENSSL_PATH)/crypto/evp/pkey_kdf.c -+ $(OPENSSL_PATH)/crypto/kdf/kbkdf.c -+ $(OPENSSL_PATH)/crypto/kdf/kdf_local.h -+ $(OPENSSL_PATH)/crypto/kdf/kdf_util.c -+ $(OPENSSL_PATH)/crypto/kdf/krb5kdf.c -+ $(OPENSSL_PATH)/crypto/kdf/pbkdf2.c -+ $(OPENSSL_PATH)/crypto/kdf/sshkdf.c -+ $(OPENSSL_PATH)/crypto/kdf/sskdf.c -+# RHEL8-specific OpenSSL file list ends here - buildinf.h - ossl_store.c - rand_pool.c --- -2.38.1 - diff --git a/0012-OvmfPkg-QemuKernelLoaderFsDxe-suppress-error-on-no-k.patch b/0012-OvmfPkg-QemuKernelLoaderFsDxe-suppress-error-on-no-k.patch new file mode 100644 index 0000000..631e7a8 --- /dev/null +++ b/0012-OvmfPkg-QemuKernelLoaderFsDxe-suppress-error-on-no-k.patch @@ -0,0 +1,84 @@ +From b748f55a0018d1766e46d27eedf7806c95d90075 Mon Sep 17 00:00:00 2001 +From: Laszlo Ersek +Date: Wed, 24 Jun 2020 11:31:36 +0200 +Subject: [PATCH 12/14] OvmfPkg/QemuKernelLoaderFsDxe: suppress error on no + "-kernel" in silent aa64 build (RH) + +Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> +RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: + +- Remove obsolete commit message tags related to downstream patch + management: Message-id, Patchwork-id, O-Subject, Acked-by, From, + RH-Acked-by, RH-Author (RHBZ#1846481). + +Bugzilla: 1844682 + +If the "-kernel" QEMU option is not used, then QemuKernelLoaderFsDxe +should return EFI_NOT_FOUND, so that the DXE Core can unload it. However, +the associated error message, logged by the DXE Core to the serial +console, is not desired in the silent edk2-aarch64 build, given that the +absence of "-kernel" is nothing out of the ordinary. Therefore, return +success and stay resident. The wasted guest RAM still gets freed after +ExitBootServices(). + +(Inspired by RHEL-8.1.0 commit aaaedc1e2cfd.) + +Signed-off-by: Laszlo Ersek +Signed-off-by: Miroslav Rezanina +(cherry picked from commit 9adcdf493ebbd11efb74e2905ab5f6c8996e096d) +--- + .../QemuKernelLoaderFsDxe.inf | 1 + + .../QemuKernelLoaderFsDxe.c | 18 ++++++++++++++++++ + 2 files changed, 19 insertions(+) + +diff --git a/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf b/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf +index 7b35adb8e034..e0331c6e2cbc 100644 +--- a/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf ++++ b/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf +@@ -28,6 +28,7 @@ [LibraryClasses] + BaseLib + BaseMemoryLib + DebugLib ++ DebugPrintErrorLevelLib + DevicePathLib + MemoryAllocationLib + QemuFwCfgLib +diff --git a/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.c b/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.c +index d4f3cd92255f..f007f8a6c233 100644 +--- a/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.c ++++ b/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.c +@@ -19,6 +19,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -1081,6 +1082,23 @@ QemuKernelLoaderFsDxeEntrypoint ( + + if (KernelBlob->Data == NULL) { + Status = EFI_NOT_FOUND; ++ #if defined (MDE_CPU_AARCH64) ++ // ++ // RHBZ#1844682 ++ // ++ // If the "-kernel" QEMU option is not being used, this platform DXE driver ++ // should return EFI_NOT_FOUND, so that the DXE Core can unload it. ++ // However, the associated error message, logged by the DXE Core to the ++ // serial console, is not desired in the silent edk2-aarch64 build, given ++ // that the absence of "-kernel" is nothing out of the ordinary. Therefore, ++ // return success and stay resident. The wasted guest RAM still gets freed ++ // after ExitBootServices(). ++ // ++ if (GetDebugPrintErrorLevel () == DEBUG_ERROR) { ++ Status = EFI_SUCCESS; ++ } ++ ++ #endif + goto FreeBlobs; + } + +-- +2.39.2 + diff --git a/0013-OvmfPkg-QemuKernelLoaderFsDxe-suppress-error-on-no-k.patch b/0013-OvmfPkg-QemuKernelLoaderFsDxe-suppress-error-on-no-k.patch deleted file mode 100644 index 97919b3..0000000 --- a/0013-OvmfPkg-QemuKernelLoaderFsDxe-suppress-error-on-no-k.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 2998ee646f22dc7acddcad7725c1b8d2de5b0130 Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Wed, 24 Jun 2020 11:31:36 +0200 -Subject: [PATCH 13/17] OvmfPkg/QemuKernelLoaderFsDxe: suppress error on no - "-kernel" in silent aa64 build (RH) - -Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> -RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: - -- Remove obsolete commit message tags related to downstream patch - management: Message-id, Patchwork-id, O-Subject, Acked-by, From, - RH-Acked-by, RH-Author (RHBZ#1846481). - -Bugzilla: 1844682 - -If the "-kernel" QEMU option is not used, then QemuKernelLoaderFsDxe -should return EFI_NOT_FOUND, so that the DXE Core can unload it. However, -the associated error message, logged by the DXE Core to the serial -console, is not desired in the silent edk2-aarch64 build, given that the -absence of "-kernel" is nothing out of the ordinary. Therefore, return -success and stay resident. The wasted guest RAM still gets freed after -ExitBootServices(). - -(Inspired by RHEL-8.1.0 commit aaaedc1e2cfd.) - -Signed-off-by: Laszlo Ersek -Signed-off-by: Miroslav Rezanina -(cherry picked from commit 9adcdf493ebbd11efb74e2905ab5f6c8996e096d) ---- - .../QemuKernelLoaderFsDxe.inf | 1 + - .../QemuKernelLoaderFsDxe.c | 18 ++++++++++++++++++ - 2 files changed, 19 insertions(+) - -diff --git a/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf b/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf -index 7b35adb8e034..e0331c6e2cbc 100644 ---- a/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf -+++ b/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf -@@ -28,6 +28,7 @@ [LibraryClasses] - BaseLib - BaseMemoryLib - DebugLib -+ DebugPrintErrorLevelLib - DevicePathLib - MemoryAllocationLib - QemuFwCfgLib -diff --git a/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.c b/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.c -index d4f3cd92255f..f007f8a6c233 100644 ---- a/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.c -+++ b/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.c -@@ -19,6 +19,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -1081,6 +1082,23 @@ QemuKernelLoaderFsDxeEntrypoint ( - - if (KernelBlob->Data == NULL) { - Status = EFI_NOT_FOUND; -+ #if defined (MDE_CPU_AARCH64) -+ // -+ // RHBZ#1844682 -+ // -+ // If the "-kernel" QEMU option is not being used, this platform DXE driver -+ // should return EFI_NOT_FOUND, so that the DXE Core can unload it. -+ // However, the associated error message, logged by the DXE Core to the -+ // serial console, is not desired in the silent edk2-aarch64 build, given -+ // that the absence of "-kernel" is nothing out of the ordinary. Therefore, -+ // return success and stay resident. The wasted guest RAM still gets freed -+ // after ExitBootServices(). -+ // -+ if (GetDebugPrintErrorLevel () == DEBUG_ERROR) { -+ Status = EFI_SUCCESS; -+ } -+ -+ #endif - goto FreeBlobs; - } - --- -2.38.1 - diff --git a/0013-SecurityPkg-Tcg2Dxe-suppress-error-on-no-swtpm-in-si.patch b/0013-SecurityPkg-Tcg2Dxe-suppress-error-on-no-swtpm-in-si.patch new file mode 100644 index 0000000..7eb119b --- /dev/null +++ b/0013-SecurityPkg-Tcg2Dxe-suppress-error-on-no-swtpm-in-si.patch @@ -0,0 +1,82 @@ +From 8d5230a47e76ce2a10d722f1fb0349650c4287ed Mon Sep 17 00:00:00 2001 +From: Laszlo Ersek +Date: Wed, 24 Jun 2020 11:40:09 +0200 +Subject: [PATCH 13/14] SecurityPkg/Tcg2Dxe: suppress error on no swtpm in + silent aa64 build (RH) + +Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> +RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: + +- Remove obsolete commit message tags related to downstream patch + management: Message-id, Patchwork-id, O-Subject, Acked-by, From, + RH-Acked-by, RH-Author (RHBZ#1846481). + +Bugzilla: 1844682 + +If swtpm / vTPM2 is not being used, Tcg2Dxe should return EFI_UNSUPPORTED, +so that the DXE Core can unload it. However, the associated error message, +logged by the DXE Core to the serial console, is not desired in the silent +edk2-aarch64 build, given that the absence of swtpm / vTPM2 is nothing out +of the ordinary. Therefore, return success and stay resident. The wasted +guest RAM still gets freed after ExitBootServices(). + +(Inspired by RHEL-8.1.0 commit aaaedc1e2cfd.) + +Signed-off-by: Laszlo Ersek +Signed-off-by: Miroslav Rezanina +(cherry picked from commit cbce29f7749477e271f9764fed82de94724af5df) +--- + SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf | 1 + + SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c | 17 +++++++++++++++++ + 2 files changed, 18 insertions(+) + +diff --git a/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf b/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf +index 7dc7a2683d71..3bc88339311e 100644 +--- a/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf ++++ b/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf +@@ -55,6 +55,7 @@ [LibraryClasses] + UefiRuntimeServicesTableLib + BaseMemoryLib + DebugLib ++ DebugPrintErrorLevelLib + Tpm2CommandLib + PrintLib + UefiLib +diff --git a/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c b/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c +index f6ea8b2bbf18..681eb7e08b98 100644 +--- a/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c ++++ b/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c +@@ -28,6 +28,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent + #include + + #include ++#include + #include + #include + #include +@@ -2691,6 +2692,22 @@ DriverEntry ( + CompareGuid (PcdGetPtr (PcdTpmInstanceGuid), &gEfiTpmDeviceInstanceTpm12Guid)) + { + DEBUG ((DEBUG_INFO, "No TPM2 instance required!\n")); ++#if defined (MDE_CPU_AARCH64) ++ // ++ // RHBZ#1844682 ++ // ++ // If swtpm / vTPM2 is not being used, this driver should return ++ // EFI_UNSUPPORTED, so that the DXE Core can unload it. However, the ++ // associated error message, logged by the DXE Core to the serial console, ++ // is not desired in the silent edk2-aarch64 build, given that the absence ++ // of swtpm / vTPM2 is nothing out of the ordinary. Therefore, return ++ // success and stay resident. The wasted guest RAM still gets freed after ++ // ExitBootServices(). ++ // ++ if (GetDebugPrintErrorLevel () == DEBUG_ERROR) { ++ return EFI_SUCCESS; ++ } ++#endif + return EFI_UNSUPPORTED; + } + +-- +2.39.2 + diff --git a/0014-SecurityPkg-Tcg2Dxe-suppress-error-on-no-swtpm-in-si.patch b/0014-SecurityPkg-Tcg2Dxe-suppress-error-on-no-swtpm-in-si.patch deleted file mode 100644 index 3ba80a0..0000000 --- a/0014-SecurityPkg-Tcg2Dxe-suppress-error-on-no-swtpm-in-si.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 55492cd43586befec40b2ff13ea202db0427eb28 Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Wed, 24 Jun 2020 11:40:09 +0200 -Subject: [PATCH 14/17] SecurityPkg/Tcg2Dxe: suppress error on no swtpm in - silent aa64 build (RH) - -Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] -> -RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase: - -- Remove obsolete commit message tags related to downstream patch - management: Message-id, Patchwork-id, O-Subject, Acked-by, From, - RH-Acked-by, RH-Author (RHBZ#1846481). - -Bugzilla: 1844682 - -If swtpm / vTPM2 is not being used, Tcg2Dxe should return EFI_UNSUPPORTED, -so that the DXE Core can unload it. However, the associated error message, -logged by the DXE Core to the serial console, is not desired in the silent -edk2-aarch64 build, given that the absence of swtpm / vTPM2 is nothing out -of the ordinary. Therefore, return success and stay resident. The wasted -guest RAM still gets freed after ExitBootServices(). - -(Inspired by RHEL-8.1.0 commit aaaedc1e2cfd.) - -Signed-off-by: Laszlo Ersek -Signed-off-by: Miroslav Rezanina -(cherry picked from commit cbce29f7749477e271f9764fed82de94724af5df) ---- - SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf | 1 + - SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c | 17 +++++++++++++++++ - 2 files changed, 18 insertions(+) - -diff --git a/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf b/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf -index 7dc7a2683d71..3bc88339311e 100644 ---- a/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf -+++ b/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf -@@ -55,6 +55,7 @@ [LibraryClasses] - UefiRuntimeServicesTableLib - BaseMemoryLib - DebugLib -+ DebugPrintErrorLevelLib - Tpm2CommandLib - PrintLib - UefiLib -diff --git a/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c b/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c -index f6ea8b2bbf18..681eb7e08b98 100644 ---- a/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c -+++ b/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c -@@ -28,6 +28,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent - #include - - #include -+#include - #include - #include - #include -@@ -2691,6 +2692,22 @@ DriverEntry ( - CompareGuid (PcdGetPtr (PcdTpmInstanceGuid), &gEfiTpmDeviceInstanceTpm12Guid)) - { - DEBUG ((DEBUG_INFO, "No TPM2 instance required!\n")); -+#if defined (MDE_CPU_AARCH64) -+ // -+ // RHBZ#1844682 -+ // -+ // If swtpm / vTPM2 is not being used, this driver should return -+ // EFI_UNSUPPORTED, so that the DXE Core can unload it. However, the -+ // associated error message, logged by the DXE Core to the serial console, -+ // is not desired in the silent edk2-aarch64 build, given that the absence -+ // of swtpm / vTPM2 is nothing out of the ordinary. Therefore, return -+ // success and stay resident. The wasted guest RAM still gets freed after -+ // ExitBootServices(). -+ // -+ if (GetDebugPrintErrorLevel () == DEBUG_ERROR) { -+ return EFI_SUCCESS; -+ } -+#endif - return EFI_UNSUPPORTED; - } - --- -2.38.1 - diff --git a/0015-Tweak-the-tools_def-to-support-cross-compiling.patch b/0015-Tweak-the-tools_def-to-support-cross-compiling.patch deleted file mode 100644 index a7e7e96..0000000 --- a/0015-Tweak-the-tools_def-to-support-cross-compiling.patch +++ /dev/null @@ -1,78 +0,0 @@ -From b1019e386b52d7d221a5349ec9c26145d9a45497 Mon Sep 17 00:00:00 2001 -From: Paolo Bonzini -Date: Thu, 16 Aug 2018 15:45:47 -0400 -Subject: [PATCH 15/17] Tweak the tools_def to support cross-compiling. - -These files are meant for customization, so this is not upstream. - -Signed-off-by: Paolo Bonzini -Signed-off-by: Cole Robinson ---- - BaseTools/Conf/tools_def.template | 44 +++++++++++++++---------------- - 1 file changed, 22 insertions(+), 22 deletions(-) - -diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template -index c4e4c7ded0af..f19c59039921 100755 ---- a/BaseTools/Conf/tools_def.template -+++ b/BaseTools/Conf/tools_def.template -@@ -2294,17 +2294,17 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 - ################## - # GCC5 IA32 definitions - ################## --*_GCC5_IA32_OBJCOPY_PATH = DEF(GCC5_IA32_PREFIX)objcopy --*_GCC5_IA32_CC_PATH = DEF(GCC5_IA32_PREFIX)gcc --*_GCC5_IA32_SLINK_PATH = DEF(GCC5_IA32_PREFIX)gcc-ar --*_GCC5_IA32_DLINK_PATH = DEF(GCC5_IA32_PREFIX)gcc --*_GCC5_IA32_ASLDLINK_PATH = DEF(GCC5_IA32_PREFIX)gcc --*_GCC5_IA32_ASM_PATH = DEF(GCC5_IA32_PREFIX)gcc --*_GCC5_IA32_PP_PATH = DEF(GCC5_IA32_PREFIX)gcc --*_GCC5_IA32_VFRPP_PATH = DEF(GCC5_IA32_PREFIX)gcc --*_GCC5_IA32_ASLCC_PATH = DEF(GCC5_IA32_PREFIX)gcc --*_GCC5_IA32_ASLPP_PATH = DEF(GCC5_IA32_PREFIX)gcc --*_GCC5_IA32_RC_PATH = DEF(GCC5_IA32_PREFIX)objcopy -+*_GCC5_IA32_OBJCOPY_PATH = ENV(GCC5_IA32_PREFIX)objcopy -+*_GCC5_IA32_CC_PATH = ENV(GCC5_IA32_PREFIX)gcc -+*_GCC5_IA32_SLINK_PATH = ENV(GCC5_IA32_PREFIX)gcc-ar -+*_GCC5_IA32_DLINK_PATH = ENV(GCC5_IA32_PREFIX)gcc -+*_GCC5_IA32_ASLDLINK_PATH = ENV(GCC5_IA32_PREFIX)gcc -+*_GCC5_IA32_ASM_PATH = ENV(GCC5_IA32_PREFIX)gcc -+*_GCC5_IA32_PP_PATH = ENV(GCC5_IA32_PREFIX)gcc -+*_GCC5_IA32_VFRPP_PATH = ENV(GCC5_IA32_PREFIX)gcc -+*_GCC5_IA32_ASLCC_PATH = ENV(GCC5_IA32_PREFIX)gcc -+*_GCC5_IA32_ASLPP_PATH = ENV(GCC5_IA32_PREFIX)gcc -+*_GCC5_IA32_RC_PATH = ENV(GCC5_IA32_PREFIX)objcopy - - *_GCC5_IA32_ASLCC_FLAGS = DEF(GCC5_ASLCC_FLAGS) -m32 - *_GCC5_IA32_ASLDLINK_FLAGS = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -no-pie -@@ -2326,17 +2326,17 @@ RELEASE_GCC5_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl, - ################## - # GCC5 X64 definitions - ################## --*_GCC5_X64_OBJCOPY_PATH = DEF(GCC5_X64_PREFIX)objcopy --*_GCC5_X64_CC_PATH = DEF(GCC5_X64_PREFIX)gcc --*_GCC5_X64_SLINK_PATH = DEF(GCC5_X64_PREFIX)gcc-ar --*_GCC5_X64_DLINK_PATH = DEF(GCC5_X64_PREFIX)gcc --*_GCC5_X64_ASLDLINK_PATH = DEF(GCC5_X64_PREFIX)gcc --*_GCC5_X64_ASM_PATH = DEF(GCC5_X64_PREFIX)gcc --*_GCC5_X64_PP_PATH = DEF(GCC5_X64_PREFIX)gcc --*_GCC5_X64_VFRPP_PATH = DEF(GCC5_X64_PREFIX)gcc --*_GCC5_X64_ASLCC_PATH = DEF(GCC5_X64_PREFIX)gcc --*_GCC5_X64_ASLPP_PATH = DEF(GCC5_X64_PREFIX)gcc --*_GCC5_X64_RC_PATH = DEF(GCC5_X64_PREFIX)objcopy -+*_GCC5_X64_OBJCOPY_PATH = ENV(GCC5_X64_PREFIX)objcopy -+*_GCC5_X64_CC_PATH = ENV(GCC5_X64_PREFIX)gcc -+*_GCC5_X64_SLINK_PATH = ENV(GCC5_X64_PREFIX)gcc-ar -+*_GCC5_X64_DLINK_PATH = ENV(GCC5_X64_PREFIX)gcc -+*_GCC5_X64_ASLDLINK_PATH = ENV(GCC5_X64_PREFIX)gcc -+*_GCC5_X64_ASM_PATH = ENV(GCC5_X64_PREFIX)gcc -+*_GCC5_X64_PP_PATH = ENV(GCC5_X64_PREFIX)gcc -+*_GCC5_X64_VFRPP_PATH = ENV(GCC5_X64_PREFIX)gcc -+*_GCC5_X64_ASLCC_PATH = ENV(GCC5_X64_PREFIX)gcc -+*_GCC5_X64_ASLPP_PATH = ENV(GCC5_X64_PREFIX)gcc -+*_GCC5_X64_RC_PATH = ENV(GCC5_X64_PREFIX)objcopy - - *_GCC5_X64_ASLCC_FLAGS = DEF(GCC5_ASLCC_FLAGS) -m64 - *_GCC5_X64_ASLDLINK_FLAGS = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64 --- -2.38.1 - diff --git a/0016-tools_def-add-fno-omit-frame-pointer-to-GCC48_-IA32-.patch b/0016-tools_def-add-fno-omit-frame-pointer-to-GCC48_-IA32-.patch deleted file mode 100644 index e4b7131..0000000 --- a/0016-tools_def-add-fno-omit-frame-pointer-to-GCC48_-IA32-.patch +++ /dev/null @@ -1,32 +0,0 @@ -From a655395cd7ed48eb70f33eaeb2637d531503fc8f Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Fri, 10 Jun 2022 07:43:15 +0200 -Subject: [PATCH 16/17] tools_def: add -fno-omit-frame-pointer to - GCC48_{IA32,X64}_CC_FLAGS - -Fixes problems due to code assuming it runs with frame pointers and thus -updates rbp / ebp registers when switching stacks. - -Signed-off-by: Gerd Hoffmann ---- - BaseTools/Conf/tools_def.template | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template -index f19c59039921..2e20e9b84428 100755 ---- a/BaseTools/Conf/tools_def.template -+++ b/BaseTools/Conf/tools_def.template -@@ -1890,8 +1890,8 @@ DEFINE GCC_DEPS_FLAGS = -MMD -MF $@.deps - - DEFINE GCC48_ALL_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -ffunction-sections -fdata-sections -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings - DEFINE GCC48_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x20 --DEFINE GCC48_IA32_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -fno-stack-protector -D EFI32 -fno-asynchronous-unwind-tables -Wno-address --DEFINE GCC48_X64_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m64 -fno-stack-protector "-DEFIAPI=__attribute__((ms_abi))" -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables -Wno-address -+DEFINE GCC48_IA32_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -fno-stack-protector -D EFI32 -fno-asynchronous-unwind-tables -Wno-address -fno-omit-frame-pointer -+DEFINE GCC48_X64_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m64 -fno-stack-protector "-DEFIAPI=__attribute__((ms_abi))" -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables -Wno-address -fno-omit-frame-pointer - DEFINE GCC48_IA32_X64_ASLDLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable - DEFINE GCC48_IA32_X64_DLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive - DEFINE GCC48_IA32_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x220 DEF(GCC_DLINK2_FLAGS_COMMON) --- -2.38.1 - diff --git a/0017-Revert-ArmVirtPkg-make-EFI_LOADER_DATA-non-executabl.patch b/0017-Revert-ArmVirtPkg-make-EFI_LOADER_DATA-non-executabl.patch deleted file mode 100644 index ee1ad0d..0000000 --- a/0017-Revert-ArmVirtPkg-make-EFI_LOADER_DATA-non-executabl.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 79d7efa44192acd8b7c2a693bd8bf6e1e964f708 Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Mon, 28 Nov 2022 14:30:57 +0100 -Subject: [PATCH 17/18] Revert "ArmVirtPkg: make EFI_LOADER_DATA - non-executable" - -This reverts commit 2997ae38739756ecba9b0de19e86032ebc689ef9. - -Fedora grub is apparently still broken ... ---- - ArmVirtPkg/ArmVirt.dsc.inc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc -index 462073517a22..34575585adbb 100644 ---- a/ArmVirtPkg/ArmVirt.dsc.inc -+++ b/ArmVirtPkg/ArmVirt.dsc.inc -@@ -368,7 +368,7 @@ [PcdsFixedAtBuild.common] - # reserved ones, with the exception of LoaderData regions, of which OS loaders - # (i.e., GRUB) may assume that its contents are executable. - # -- gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy|0xC000000000007FD5 -+ gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy|0xC000000000007FD1 - - [Components.common] - # --- -2.38.1 - diff --git a/0018-Revert-OvmfPkg-PlatformDxe-Handle-all-requests-in-Ex.patch b/0018-Revert-OvmfPkg-PlatformDxe-Handle-all-requests-in-Ex.patch deleted file mode 100644 index 820f8b2..0000000 --- a/0018-Revert-OvmfPkg-PlatformDxe-Handle-all-requests-in-Ex.patch +++ /dev/null @@ -1,211 +0,0 @@ -From e151560ee60af405429ca7dd7d0a914aa20213a3 Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Mon, 12 Dec 2022 10:05:27 +0100 -Subject: [PATCH 18/20] Revert "OvmfPkg/PlatformDxe: Handle all requests in - ExtractConfig and RouteConfig" - -This reverts commit aefcc91805fd69e4aad4bc08a9f708db11cae5f0. ---- - OvmfPkg/PlatformDxe/PlatformConfig.h | 2 - - OvmfPkg/PlatformDxe/Platform.c | 115 +-------------------------- - OvmfPkg/PlatformDxe/PlatformConfig.c | 2 +- - 3 files changed, 3 insertions(+), 116 deletions(-) - -diff --git a/OvmfPkg/PlatformDxe/PlatformConfig.h b/OvmfPkg/PlatformDxe/PlatformConfig.h -index 5d9b457b1b4b..902c9b2ce043 100644 ---- a/OvmfPkg/PlatformDxe/PlatformConfig.h -+++ b/OvmfPkg/PlatformDxe/PlatformConfig.h -@@ -50,6 +50,4 @@ PlatformConfigLoad ( - #define PLATFORM_CONFIG_F_GRAPHICS_RESOLUTION BIT0 - #define PLATFORM_CONFIG_F_DOWNGRADE BIT63 - --extern CHAR16 mVariableName[]; -- - #endif // _PLATFORM_CONFIG_H_ -diff --git a/OvmfPkg/PlatformDxe/Platform.c b/OvmfPkg/PlatformDxe/Platform.c -index ac31fafbdce3..4d432f18df37 100644 ---- a/OvmfPkg/PlatformDxe/Platform.c -+++ b/OvmfPkg/PlatformDxe/Platform.c -@@ -108,11 +108,6 @@ STATIC EFI_EVENT mGopEvent; - // - STATIC VOID *mGopTracker; - --// --// The driver image handle, used to obtain the device path for . --// --STATIC EFI_HANDLE mImageHandle; -- - // - // Cache the resolutions we get from the GOP. - // -@@ -234,10 +229,6 @@ ExtractConfig ( - { - MAIN_FORM_STATE MainFormState; - EFI_STATUS Status; -- EFI_STRING ConfigRequestHdr; -- EFI_STRING ConfigRequest; -- UINTN Size; -- BOOLEAN AllocatedRequest; - - DEBUG ((DEBUG_VERBOSE, "%a: Request=\"%s\"\n", __FUNCTION__, Request)); - -@@ -245,73 +236,18 @@ ExtractConfig ( - return EFI_INVALID_PARAMETER; - } - -- ConfigRequestHdr = NULL; -- ConfigRequest = NULL; -- Size = 0; -- AllocatedRequest = FALSE; -- -- // -- // Check if matches the GUID and name -- // -- *Progress = Request; -- if ((Request != NULL) && -- !HiiIsConfigHdrMatch ( -- Request, -- &gOvmfPlatformConfigGuid, -- mVariableName -- ) -- ) -- { -- return EFI_NOT_FOUND; -- } -- - Status = PlatformConfigToFormState (&MainFormState); - if (EFI_ERROR (Status)) { -+ *Progress = Request; - return Status; - } - -- if ((Request == NULL) || (StrStr (Request, L"OFFSET") == NULL)) { -- // -- // Request has no , so construct full request string. -- // Allocate and fill a buffer large enough to hold -- // followed by "&OFFSET=0&WIDTH=WWWWWWWWWWWWWWWW" followed by a -- // null terminator. -- // -- ConfigRequestHdr = HiiConstructConfigHdr ( -- &gOvmfPlatformConfigGuid, -- mVariableName, -- mImageHandle -- ); -- if (ConfigRequestHdr == NULL) { -- return EFI_OUT_OF_RESOURCES; -- } -- -- Size = (StrLen (ConfigRequestHdr) + 32 + 1) * sizeof (CHAR16); -- ConfigRequest = AllocateZeroPool (Size); -- AllocatedRequest = TRUE; -- if (ConfigRequest == NULL) { -- FreePool (ConfigRequestHdr); -- return EFI_OUT_OF_RESOURCES; -- } -- -- UnicodeSPrint ( -- ConfigRequest, -- Size, -- L"%s&OFFSET=0&WIDTH=%016LX", -- ConfigRequestHdr, -- sizeof MainFormState -- ); -- FreePool (ConfigRequestHdr); -- } else { -- ConfigRequest = Request; -- } -- - // - // Answer the textual request keying off the binary form state. - // - Status = gHiiConfigRouting->BlockToConfig ( - gHiiConfigRouting, -- ConfigRequest, -+ Request, - (VOID *)&MainFormState, - sizeof MainFormState, - Results, -@@ -329,33 +265,6 @@ ExtractConfig ( - DEBUG ((DEBUG_VERBOSE, "%a: Results=\"%s\"\n", __FUNCTION__, *Results)); - } - -- // -- // If we used a newly allocated ConfigRequest, update Progress to point to -- // original Request instead of ConfigRequest. -- // -- if (Request == NULL) { -- *Progress = NULL; -- } else if (StrStr (Request, L"OFFSET") == NULL) { -- if (EFI_ERROR (Status)) { -- // -- // Since we constructed ConfigRequest, failure can only occur if there -- // is not enough memory. In this case, we point Progress to the first -- // character of Request. -- // -- *Progress = Request; -- } else { -- // -- // In case of success, we point Progress to the null terminator of -- // Request. -- // -- *Progress = Request + StrLen (Request); -- } -- } -- -- if (AllocatedRequest) { -- FreePool (ConfigRequest); -- } -- - return Status; - } - -@@ -439,21 +348,6 @@ RouteConfig ( - return EFI_INVALID_PARAMETER; - } - -- // -- // Check if matches the GUID and name -- // -- *Progress = Configuration; -- if ((Configuration != NULL) && -- !HiiIsConfigHdrMatch ( -- Configuration, -- &gOvmfPlatformConfigGuid, -- mVariableName -- ) -- ) -- { -- return EFI_NOT_FOUND; -- } -- - // - // the "read" step in RMW - // -@@ -972,11 +866,6 @@ PlatformInit ( - return Status; - } - -- // -- // Save the driver image handle. -- // -- mImageHandle = ImageHandle; -- - // - // Publish the HII package list to HII Database. - // -diff --git a/OvmfPkg/PlatformDxe/PlatformConfig.c b/OvmfPkg/PlatformDxe/PlatformConfig.c -index f5ac2d0609ff..e202ac5b4798 100644 ---- a/OvmfPkg/PlatformDxe/PlatformConfig.c -+++ b/OvmfPkg/PlatformDxe/PlatformConfig.c -@@ -21,7 +21,7 @@ - // - // Name of the UEFI variable that we use for persistent storage. - // --CHAR16 mVariableName[] = L"PlatformConfig"; -+STATIC CHAR16 mVariableName[] = L"PlatformConfig"; - - /** - Serialize and persistently save platform configuration. --- -2.38.1 - diff --git a/0019-OvmfPkg-SmbiosPlatformDxe-use-PcdFirmware.patch b/0019-OvmfPkg-SmbiosPlatformDxe-use-PcdFirmware.patch deleted file mode 100644 index 5a4a288..0000000 --- a/0019-OvmfPkg-SmbiosPlatformDxe-use-PcdFirmware.patch +++ /dev/null @@ -1,229 +0,0 @@ -From 29842668ef9c1b3d553279954c18743acdb3036c Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Mon, 28 Nov 2022 13:40:20 +0800 -Subject: [PATCH 19/20] OvmfPkg/SmbiosPlatformDxe: use PcdFirmware* - -Instead of using hard-coded strings ("0.0.0" for BiosVersion etc) -which is mostly useless read the PCDs (PcdFirmwareVendor, -PcdFirmwareVersionString and PcdFirmwareReleaseDateString) and -build the string table dynamuically at runtime. - -Signed-off-by: Gerd Hoffmann -Reviewed-by: Jiewen Yao -(cherry picked from commit 4cb94f20b002c99dd2b4b75f07c5495b81a34ffd) ---- - .../SmbiosPlatformDxe/SmbiosPlatformDxe.inf | 6 + - .../XenSmbiosPlatformDxe.inf | 9 +- - OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.c | 115 +++++++++++------- - 3 files changed, 85 insertions(+), 45 deletions(-) - -diff --git a/OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf b/OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf -index 0066bbc9229c..52689c96e5af 100644 ---- a/OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf -+++ b/OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf -@@ -32,9 +32,12 @@ [Sources] - - [Packages] - MdePkg/MdePkg.dec -+ MdeModulePkg/MdeModulePkg.dec - OvmfPkg/OvmfPkg.dec - - [LibraryClasses] -+ BaseLib -+ BaseMemoryLib - DebugLib - MemoryAllocationLib - PcdLib -@@ -45,6 +48,9 @@ [LibraryClasses] - [Pcd] - gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId - gUefiOvmfPkgTokenSpaceGuid.PcdQemuSmbiosValidated -+ gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVendor -+ gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString -+ gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareReleaseDateString - - [Protocols] - gEfiSmbiosProtocolGuid # PROTOCOL ALWAYS_CONSUMED -diff --git a/OvmfPkg/SmbiosPlatformDxe/XenSmbiosPlatformDxe.inf b/OvmfPkg/SmbiosPlatformDxe/XenSmbiosPlatformDxe.inf -index 7f4588e33d1e..e646c88741b6 100644 ---- a/OvmfPkg/SmbiosPlatformDxe/XenSmbiosPlatformDxe.inf -+++ b/OvmfPkg/SmbiosPlatformDxe/XenSmbiosPlatformDxe.inf -@@ -38,19 +38,26 @@ [Sources.ARM, Sources.AARCH64] - - [Packages] - MdePkg/MdePkg.dec -+ MdeModulePkg/MdeModulePkg.dec - - [Packages.IA32, Packages.X64] - OvmfPkg/OvmfPkg.dec - - [LibraryClasses] -+ BaseLib -+ BaseMemoryLib - DebugLib - UefiBootServicesTableLib - UefiDriverEntryPoint - - [LibraryClasses.IA32, LibraryClasses.X64] -- BaseLib - HobLib - -+[Pcd] -+ gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVendor -+ gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString -+ gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareReleaseDateString -+ - [Protocols] - gEfiSmbiosProtocolGuid # PROTOCOL ALWAYS_CONSUMED - -diff --git a/OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.c b/OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.c -index 94249d3ff1b0..dc1e6aed634f 100644 ---- a/OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.c -+++ b/OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.c -@@ -9,57 +9,43 @@ - **/ - - #include // SMBIOS_TABLE_TYPE0 -+#include -+#include - #include // ASSERT_EFI_ERROR() -+#include -+#include - #include // gBS - #include // EFI_SMBIOS_PROTOCOL - - #include "SmbiosPlatformDxe.h" - --#define TYPE0_STRINGS \ -- "EFI Development Kit II / OVMF\0" /* Vendor */ \ -- "0.0.0\0" /* BiosVersion */ \ -- "02/06/2015\0" /* BiosReleaseDate */ --// --// Type definition and contents of the default Type 0 SMBIOS table. --// --#pragma pack(1) --typedef struct { -- SMBIOS_TABLE_TYPE0 Base; -- UINT8 Strings[sizeof (TYPE0_STRINGS)]; --} OVMF_TYPE0; --#pragma pack() -- --STATIC CONST OVMF_TYPE0 mOvmfDefaultType0 = { -+STATIC CONST SMBIOS_TABLE_TYPE0 mOvmfDefaultType0 = { -+ // SMBIOS_STRUCTURE Hdr - { -- // SMBIOS_STRUCTURE Hdr -- { -- EFI_SMBIOS_TYPE_BIOS_INFORMATION, // UINT8 Type -- sizeof (SMBIOS_TABLE_TYPE0), // UINT8 Length -- }, -- 1, // SMBIOS_TABLE_STRING Vendor -- 2, // SMBIOS_TABLE_STRING BiosVersion -- 0xE800, // UINT16 BiosSegment -- 3, // SMBIOS_TABLE_STRING BiosReleaseDate -- 0, // UINT8 BiosSize -- { // MISC_BIOS_CHARACTERISTICS BiosCharacteristics -- 0, // Reserved :2 -- 0, // Unknown :1 -- 1, // BiosCharacteristicsNotSupported :1 -- // Remaining BiosCharacteristics bits left unset :60 -- }, -- { // BIOSCharacteristicsExtensionBytes[2] -- 0, // BiosReserved -- 0x1C // SystemReserved = VirtualMachineSupported | -- // UefiSpecificationSupported | -- // TargetContentDistributionEnabled -- }, -- 0, // UINT8 SystemBiosMajorRelease -- 0, // UINT8 SystemBiosMinorRelease -- 0xFF, // UINT8 EmbeddedControllerFirmwareMajorRelease -- 0xFF // UINT8 EmbeddedControllerFirmwareMinorRelease -+ EFI_SMBIOS_TYPE_BIOS_INFORMATION, // UINT8 Type -+ sizeof (SMBIOS_TABLE_TYPE0), // UINT8 Length - }, -- // Text strings (unformatted area) -- TYPE0_STRINGS -+ 1, // SMBIOS_TABLE_STRING Vendor -+ 2, // SMBIOS_TABLE_STRING BiosVersion -+ 0xE800, // UINT16 BiosSegment -+ 3, // SMBIOS_TABLE_STRING BiosReleaseDate -+ 0, // UINT8 BiosSize -+ { // MISC_BIOS_CHARACTERISTICS BiosCharacteristics -+ 0, // Reserved :2 -+ 0, // Unknown :1 -+ 1, // BiosCharacteristicsNotSupported :1 -+ // Remaining BiosCharacteristics bits left unset :60 -+ }, -+ { // BIOSCharacteristicsExtensionBytes[2] -+ 0, // BiosReserved -+ 0x1C // SystemReserved = VirtualMachineSupported | -+ // UefiSpecificationSupported | -+ // TargetContentDistributionEnabled -+ }, -+ 0, // UINT8 SystemBiosMajorRelease -+ 0, // UINT8 SystemBiosMinorRelease -+ 0xFF, // UINT8 EmbeddedControllerFirmwareMajorRelease -+ 0xFF // UINT8 EmbeddedControllerFirmwareMinorRelease - }; - - /** -@@ -153,14 +139,55 @@ InstallAllStructures ( - // - // Add OVMF default Type 0 (BIOS Information) table - // -+ CHAR16 *VendStr, *VersStr, *DateStr; -+ UINTN VendLen, VersLen, DateLen; -+ CHAR8 *Type0; -+ -+ VendStr = (CHAR16 *)FixedPcdGetPtr (PcdFirmwareVendor); -+ VendLen = StrLen (VendStr); -+ if (VendLen < 3) { -+ VendStr = L"unknown"; -+ VendLen = StrLen (VendStr); -+ } -+ -+ VersStr = (CHAR16 *)FixedPcdGetPtr (PcdFirmwareVersionString); -+ VersLen = StrLen (VersStr); -+ if (VersLen < 3) { -+ VersStr = L"unknown"; -+ VersLen = StrLen (VersStr); -+ } -+ -+ DateStr = (CHAR16 *)FixedPcdGetPtr (PcdFirmwareReleaseDateString); -+ DateLen = StrLen (DateStr); -+ if (DateLen < 3) { -+ DateStr = L"unknown"; -+ DateLen = StrLen (DateStr); -+ } -+ -+ DEBUG ((DEBUG_INFO, "FirmwareVendor: \"%s\" (%d chars)\n", VendStr, VendLen)); -+ DEBUG ((DEBUG_INFO, "FirmwareVersionString: \"%s\" (%d chars)\n", VersStr, VersLen)); -+ DEBUG ((DEBUG_INFO, "FirmwareReleaseDateString: \"%s\" (%d chars)\n", DateStr, DateLen)); -+ -+ Type0 = AllocateZeroPool (sizeof (mOvmfDefaultType0) + VendLen + VersLen + DateLen + 4); -+ if (Type0 == NULL) { -+ return EFI_OUT_OF_RESOURCES; -+ } -+ -+ CopyMem (Type0, &mOvmfDefaultType0, sizeof (mOvmfDefaultType0)); -+ UnicodeStrToAsciiStrS (VendStr, Type0 + sizeof (mOvmfDefaultType0), VendLen + 1); -+ UnicodeStrToAsciiStrS (VersStr, Type0 + sizeof (mOvmfDefaultType0) + VendLen + 1, VersLen + 1); -+ UnicodeStrToAsciiStrS (DateStr, Type0 + sizeof (mOvmfDefaultType0) + VendLen + VersLen + 2, DateLen + 1); -+ - SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED; - Status = Smbios->Add ( - Smbios, - NULL, - &SmbiosHandle, -- (EFI_SMBIOS_TABLE_HEADER *)&mOvmfDefaultType0 -+ (EFI_SMBIOS_TABLE_HEADER *)Type0 - ); - ASSERT_EFI_ERROR (Status); -+ -+ FreePool (Type0); - } - - return EFI_SUCCESS; --- -2.38.1 - diff --git a/0020-OvmfPkg-PlatformPei-AmdSev-stop-using-mPlatformInfoH.patch b/0020-OvmfPkg-PlatformPei-AmdSev-stop-using-mPlatformInfoH.patch deleted file mode 100644 index cd27dcb..0000000 --- a/0020-OvmfPkg-PlatformPei-AmdSev-stop-using-mPlatformInfoH.patch +++ /dev/null @@ -1,116 +0,0 @@ -From 4e22a4d1c1d7b492d1e1eee4fa81c697e0d59314 Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Fri, 2 Dec 2022 14:09:58 +0100 -Subject: [PATCH 20/32] OvmfPkg/PlatformPei: AmdSev: stop using - mPlatformInfoHob - -Stop using the mPlatformInfoHob global variable in AmdSevInitialize() -and AmdSevEsInitialize() functions. Pass a pointer to the -PlatformInfoHob instead. - -Signed-off-by: Gerd Hoffmann -Tested-by: Tom Lendacky -Acked-by: Ard Biesheuvel -(cherry picked from commit 78c373f2a5273af00b23b55d3e8c41583310cfb6) ---- - OvmfPkg/PlatformPei/Platform.h | 2 +- - OvmfPkg/PlatformPei/AmdSev.c | 14 +++++++------- - OvmfPkg/PlatformPei/Platform.c | 2 +- - 3 files changed, 9 insertions(+), 9 deletions(-) - -diff --git a/OvmfPkg/PlatformPei/Platform.h b/OvmfPkg/PlatformPei/Platform.h -index 29b51b2debd8..f245025fb46f 100644 ---- a/OvmfPkg/PlatformPei/Platform.h -+++ b/OvmfPkg/PlatformPei/Platform.h -@@ -82,7 +82,7 @@ InstallClearCacheCallback ( - - VOID - AmdSevInitialize ( -- VOID -+ IN EFI_HOB_PLATFORM_INFO *PlatformInfoHob - ); - - /** -diff --git a/OvmfPkg/PlatformPei/AmdSev.c b/OvmfPkg/PlatformPei/AmdSev.c -index e1b9fd9b7f68..c23fae7fcae0 100644 ---- a/OvmfPkg/PlatformPei/AmdSev.c -+++ b/OvmfPkg/PlatformPei/AmdSev.c -@@ -201,7 +201,7 @@ GhcbRegister ( - STATIC - VOID - AmdSevEsInitialize ( -- VOID -+ IN EFI_HOB_PLATFORM_INFO *PlatformInfoHob - ) - { - UINT8 *GhcbBase; -@@ -228,7 +228,7 @@ AmdSevEsInitialize ( - // Since the pages must survive across the UEFI to OS transition - // make them reserved. - // -- GhcbPageCount = mPlatformInfoHob.PcdCpuMaxLogicalProcessorNumber * 2; -+ GhcbPageCount = PlatformInfoHob->PcdCpuMaxLogicalProcessorNumber * 2; - GhcbBase = AllocateReservedPages (GhcbPageCount); - ASSERT (GhcbBase != NULL); - -@@ -266,7 +266,7 @@ AmdSevEsInitialize ( - // Allocate #VC recursion backup pages. The number of backup pages needed is - // one less than the maximum VC count. - // -- GhcbBackupPageCount = mPlatformInfoHob.PcdCpuMaxLogicalProcessorNumber * (VMGEXIT_MAXIMUM_VC_COUNT - 1); -+ GhcbBackupPageCount = PlatformInfoHob->PcdCpuMaxLogicalProcessorNumber * (VMGEXIT_MAXIMUM_VC_COUNT - 1); - GhcbBackupBase = AllocatePages (GhcbBackupPageCount); - ASSERT (GhcbBackupBase != NULL); - -@@ -320,7 +320,7 @@ AmdSevEsInitialize ( - **/ - VOID - AmdSevInitialize ( -- VOID -+ IN OUT EFI_HOB_PLATFORM_INFO *PlatformInfoHob - ) - { - UINT64 EncryptionMask; -@@ -367,7 +367,7 @@ AmdSevInitialize ( - // until after re-encryption, in order to prevent an information leak to the - // hypervisor. - // -- if (mPlatformInfoHob.SmmSmramRequire && (mPlatformInfoHob.BootMode != BOOT_ON_S3_RESUME)) { -+ if (PlatformInfoHob->SmmSmramRequire && (PlatformInfoHob->BootMode != BOOT_ON_S3_RESUME)) { - RETURN_STATUS LocateMapStatus; - UINTN MapPagesBase; - UINTN MapPagesCount; -@@ -378,7 +378,7 @@ AmdSevInitialize ( - ); - ASSERT_RETURN_ERROR (LocateMapStatus); - -- if (mPlatformInfoHob.Q35SmramAtDefaultSmbase) { -+ if (PlatformInfoHob->Q35SmramAtDefaultSmbase) { - // - // The initial SMRAM Save State Map has been covered as part of a larger - // reserved memory allocation in InitializeRamRegions(). -@@ -400,7 +400,7 @@ AmdSevInitialize ( - // - // Check and perform SEV-ES initialization if required. - // -- AmdSevEsInitialize (); -+ AmdSevEsInitialize (PlatformInfoHob); - - // - // Set the Confidential computing attr PCD to communicate which SEV -diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c -index e5132d95a8f8..14a75d40c005 100644 ---- a/OvmfPkg/PlatformPei/Platform.c -+++ b/OvmfPkg/PlatformPei/Platform.c -@@ -392,7 +392,7 @@ InitializePlatform ( - } - - InstallClearCacheCallback (); -- AmdSevInitialize (); -+ AmdSevInitialize (&mPlatformInfoHob); - if (mPlatformInfoHob.HostBridgeDevId == 0xffff) { - MiscInitializationForMicrovm (&mPlatformInfoHob); - } else { --- -2.38.1 - diff --git a/0021-OvmfPkg-PlatformPei-PeiFv-stop-using-mPlatformInfoHo.patch b/0021-OvmfPkg-PlatformPei-PeiFv-stop-using-mPlatformInfoHo.patch deleted file mode 100644 index 96900a5..0000000 --- a/0021-OvmfPkg-PlatformPei-PeiFv-stop-using-mPlatformInfoHo.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 8d45eeb9bbec1085b31b8b5ede6145bf9458566c Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Fri, 2 Dec 2022 14:09:59 +0100 -Subject: [PATCH 21/32] OvmfPkg/PlatformPei: PeiFv: stop using mPlatformInfoHob - -Stop using the mPlatformInfoHob global variable in PeiFvInitialization() -function. Pass a pointer to the PlatformInfoHob instead. - -Signed-off-by: Gerd Hoffmann -Tested-by: Tom Lendacky -Acked-by: Ard Biesheuvel -(cherry picked from commit 9d9d15b42a5e13bb18729da0f608c629aa274e80) ---- - OvmfPkg/PlatformPei/Platform.h | 2 +- - OvmfPkg/PlatformPei/Fv.c | 6 +++--- - OvmfPkg/PlatformPei/Platform.c | 2 +- - 3 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/OvmfPkg/PlatformPei/Platform.h b/OvmfPkg/PlatformPei/Platform.h -index f245025fb46f..b13f45ecdb69 100644 ---- a/OvmfPkg/PlatformPei/Platform.h -+++ b/OvmfPkg/PlatformPei/Platform.h -@@ -62,7 +62,7 @@ MaxCpuCountInitialization ( - - EFI_STATUS - PeiFvInitialization ( -- VOID -+ IN EFI_HOB_PLATFORM_INFO *PlatformInfoHob - ); - - VOID -diff --git a/OvmfPkg/PlatformPei/Fv.c b/OvmfPkg/PlatformPei/Fv.c -index e40c5922206b..fcf14c88faa7 100644 ---- a/OvmfPkg/PlatformPei/Fv.c -+++ b/OvmfPkg/PlatformPei/Fv.c -@@ -22,7 +22,7 @@ - **/ - EFI_STATUS - PeiFvInitialization ( -- VOID -+ IN EFI_HOB_PLATFORM_INFO *PlatformInfoHob - ) - { - BOOLEAN SecureS3Needed; -@@ -37,7 +37,7 @@ PeiFvInitialization ( - BuildMemoryAllocationHob ( - PcdGet32 (PcdOvmfPeiMemFvBase), - PcdGet32 (PcdOvmfPeiMemFvSize), -- mPlatformInfoHob.S3Supported ? EfiACPIMemoryNVS : EfiBootServicesData -+ PlatformInfoHob->S3Supported ? EfiACPIMemoryNVS : EfiBootServicesData - ); - - // -@@ -45,7 +45,7 @@ PeiFvInitialization ( - // - BuildFvHob (PcdGet32 (PcdOvmfDxeMemFvBase), PcdGet32 (PcdOvmfDxeMemFvSize)); - -- SecureS3Needed = mPlatformInfoHob.S3Supported && mPlatformInfoHob.SmmSmramRequire; -+ SecureS3Needed = PlatformInfoHob->S3Supported && PlatformInfoHob->SmmSmramRequire; - - // - // Create a memory allocation HOB for the DXE FV. -diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c -index 14a75d40c005..5ecd5d8b1ab6 100644 ---- a/OvmfPkg/PlatformPei/Platform.c -+++ b/OvmfPkg/PlatformPei/Platform.c -@@ -384,7 +384,7 @@ InitializePlatform ( - ReserveEmuVariableNvStore (); - } - -- PeiFvInitialization (); -+ PeiFvInitialization (&mPlatformInfoHob); - MemTypeInfoInitialization (); - MemMapInitialization (&mPlatformInfoHob); - NoexecDxeInitialization (); --- -2.38.1 - diff --git a/0022-OvmfPkg-PlatformPei-Q35-SMM-helpers-stop-using-mPlat.patch b/0022-OvmfPkg-PlatformPei-Q35-SMM-helpers-stop-using-mPlat.patch deleted file mode 100644 index 1d063a4..0000000 --- a/0022-OvmfPkg-PlatformPei-Q35-SMM-helpers-stop-using-mPlat.patch +++ /dev/null @@ -1,134 +0,0 @@ -From 1f0cc9c8bbc387a3e39daea604931fc819ba1650 Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Fri, 2 Dec 2022 14:10:00 +0100 -Subject: [PATCH 22/32] OvmfPkg/PlatformPei Q35 SMM helpers: stop using - mPlatformInfoHob - -Stop using the mPlatformInfoHob global variable in -Q35TsegMbytesInitialization() and -Q35SmramAtDefaultSmbaseInitialization() ) functions. -Pass a pointer to the PlatformInfoHob instead. - -Signed-off-by: Gerd Hoffmann -Tested-by: Tom Lendacky -Acked-by: Ard Biesheuvel -(cherry picked from commit 00743d144bc5b643e9323ad66f16cb48cf338705) ---- - OvmfPkg/PlatformPei/Platform.h | 4 ++-- - OvmfPkg/PlatformPei/MemDetect.c | 20 ++++++++++---------- - OvmfPkg/PlatformPei/Platform.c | 4 ++-- - 3 files changed, 14 insertions(+), 14 deletions(-) - -diff --git a/OvmfPkg/PlatformPei/Platform.h b/OvmfPkg/PlatformPei/Platform.h -index b13f45ecdb69..7baa5e1d289f 100644 ---- a/OvmfPkg/PlatformPei/Platform.h -+++ b/OvmfPkg/PlatformPei/Platform.h -@@ -22,12 +22,12 @@ AddressWidthInitialization ( - - VOID - Q35TsegMbytesInitialization ( -- VOID -+ IN OUT EFI_HOB_PLATFORM_INFO *PlatformInfoHob - ); - - VOID - Q35SmramAtDefaultSmbaseInitialization ( -- VOID -+ IN OUT EFI_HOB_PLATFORM_INFO *PlatformInfoHob - ); - - EFI_STATUS -diff --git a/OvmfPkg/PlatformPei/MemDetect.c b/OvmfPkg/PlatformPei/MemDetect.c -index 2e47b1322990..b9207107b4d9 100644 ---- a/OvmfPkg/PlatformPei/MemDetect.c -+++ b/OvmfPkg/PlatformPei/MemDetect.c -@@ -41,13 +41,13 @@ Module Name: - - VOID - Q35TsegMbytesInitialization ( -- VOID -+ IN OUT EFI_HOB_PLATFORM_INFO *PlatformInfoHob - ) - { - UINT16 ExtendedTsegMbytes; - RETURN_STATUS PcdStatus; - -- ASSERT (mPlatformInfoHob.HostBridgeDevId == INTEL_Q35_MCH_DEVICE_ID); -+ ASSERT (PlatformInfoHob->HostBridgeDevId == INTEL_Q35_MCH_DEVICE_ID); - - // - // Check if QEMU offers an extended TSEG. -@@ -68,7 +68,7 @@ Q35TsegMbytesInitialization ( - PciWrite16 (DRAMC_REGISTER_Q35 (MCH_EXT_TSEG_MB), MCH_EXT_TSEG_MB_QUERY); - ExtendedTsegMbytes = PciRead16 (DRAMC_REGISTER_Q35 (MCH_EXT_TSEG_MB)); - if (ExtendedTsegMbytes == MCH_EXT_TSEG_MB_QUERY) { -- mPlatformInfoHob.Q35TsegMbytes = PcdGet16 (PcdQ35TsegMbytes); -+ PlatformInfoHob->Q35TsegMbytes = PcdGet16 (PcdQ35TsegMbytes); - return; - } - -@@ -80,19 +80,19 @@ Q35TsegMbytesInitialization ( - )); - PcdStatus = PcdSet16S (PcdQ35TsegMbytes, ExtendedTsegMbytes); - ASSERT_RETURN_ERROR (PcdStatus); -- mPlatformInfoHob.Q35TsegMbytes = ExtendedTsegMbytes; -+ PlatformInfoHob->Q35TsegMbytes = ExtendedTsegMbytes; - } - - VOID - Q35SmramAtDefaultSmbaseInitialization ( -- VOID -+ IN OUT EFI_HOB_PLATFORM_INFO *PlatformInfoHob - ) - { - RETURN_STATUS PcdStatus; - -- ASSERT (mPlatformInfoHob.HostBridgeDevId == INTEL_Q35_MCH_DEVICE_ID); -+ ASSERT (PlatformInfoHob->HostBridgeDevId == INTEL_Q35_MCH_DEVICE_ID); - -- mPlatformInfoHob.Q35SmramAtDefaultSmbase = FALSE; -+ PlatformInfoHob->Q35SmramAtDefaultSmbase = FALSE; - if (FeaturePcdGet (PcdCsmEnable)) { - DEBUG (( - DEBUG_INFO, -@@ -106,19 +106,19 @@ Q35SmramAtDefaultSmbaseInitialization ( - CtlReg = DRAMC_REGISTER_Q35 (MCH_DEFAULT_SMBASE_CTL); - PciWrite8 (CtlReg, MCH_DEFAULT_SMBASE_QUERY); - CtlRegVal = PciRead8 (CtlReg); -- mPlatformInfoHob.Q35SmramAtDefaultSmbase = (BOOLEAN)(CtlRegVal == -+ PlatformInfoHob->Q35SmramAtDefaultSmbase = (BOOLEAN)(CtlRegVal == - MCH_DEFAULT_SMBASE_IN_RAM); - DEBUG (( - DEBUG_INFO, - "%a: SMRAM at default SMBASE %a\n", - __FUNCTION__, -- mPlatformInfoHob.Q35SmramAtDefaultSmbase ? "found" : "not found" -+ PlatformInfoHob->Q35SmramAtDefaultSmbase ? "found" : "not found" - )); - } - - PcdStatus = PcdSetBoolS ( - PcdQ35SmramAtDefaultSmbase, -- mPlatformInfoHob.Q35SmramAtDefaultSmbase -+ PlatformInfoHob->Q35SmramAtDefaultSmbase - ); - ASSERT_RETURN_ERROR (PcdStatus); - } -diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c -index 5ecd5d8b1ab6..402b2e88461e 100644 ---- a/OvmfPkg/PlatformPei/Platform.c -+++ b/OvmfPkg/PlatformPei/Platform.c -@@ -369,8 +369,8 @@ InitializePlatform ( - - if (mPlatformInfoHob.SmmSmramRequire) { - Q35BoardVerification (); -- Q35TsegMbytesInitialization (); -- Q35SmramAtDefaultSmbaseInitialization (); -+ Q35TsegMbytesInitialization (&mPlatformInfoHob); -+ Q35SmramAtDefaultSmbaseInitialization (&mPlatformInfoHob); - } - - PublishPeiMemory (); --- -2.38.1 - diff --git a/0023-OvmfPkg-PlatformPei-PeiMemory-stop-using-mPlatformIn.patch b/0023-OvmfPkg-PlatformPei-PeiMemory-stop-using-mPlatformIn.patch deleted file mode 100644 index 6f048b4..0000000 --- a/0023-OvmfPkg-PlatformPei-PeiMemory-stop-using-mPlatformIn.patch +++ /dev/null @@ -1,160 +0,0 @@ -From 44d2137d1bc1c3768b7c75843d6c40ef7491e630 Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Fri, 2 Dec 2022 14:10:01 +0100 -Subject: [PATCH 23/32] OvmfPkg/PlatformPei: PeiMemory: stop using - mPlatformInfoHob - -Stop using the mPlatformInfoHob global variable in PublishPeiMemory() -and GetPeiMemoryCap() functions. Pass a pointer to the PlatformInfoHob -instead. - -Signed-off-by: Gerd Hoffmann -Tested-by: Tom Lendacky -Acked-by: Ard Biesheuvel -(cherry picked from commit 27874a382c38a95d3ab613eebd35c152ca9b3897) ---- - OvmfPkg/PlatformPei/Platform.h | 2 +- - OvmfPkg/PlatformPei/MemDetect.c | 36 ++++++++++++++++----------------- - OvmfPkg/PlatformPei/Platform.c | 2 +- - 3 files changed, 20 insertions(+), 20 deletions(-) - -diff --git a/OvmfPkg/PlatformPei/Platform.h b/OvmfPkg/PlatformPei/Platform.h -index 7baa5e1d289f..d0c673c5a346 100644 ---- a/OvmfPkg/PlatformPei/Platform.h -+++ b/OvmfPkg/PlatformPei/Platform.h -@@ -32,7 +32,7 @@ Q35SmramAtDefaultSmbaseInitialization ( - - EFI_STATUS - PublishPeiMemory ( -- VOID -+ IN OUT EFI_HOB_PLATFORM_INFO *PlatformInfoHob - ); - - VOID -diff --git a/OvmfPkg/PlatformPei/MemDetect.c b/OvmfPkg/PlatformPei/MemDetect.c -index b9207107b4d9..3d8375320dcb 100644 ---- a/OvmfPkg/PlatformPei/MemDetect.c -+++ b/OvmfPkg/PlatformPei/MemDetect.c -@@ -188,7 +188,7 @@ AddressWidthInitialization ( - STATIC - UINT32 - GetPeiMemoryCap ( -- VOID -+ IN EFI_HOB_PLATFORM_INFO *PlatformInfoHob - ) - { - BOOLEAN Page1GSupport; -@@ -225,15 +225,15 @@ GetPeiMemoryCap ( - } - } - -- if (mPlatformInfoHob.PhysMemAddressWidth <= 39) { -+ if (PlatformInfoHob->PhysMemAddressWidth <= 39) { - Pml4Entries = 1; -- PdpEntries = 1 << (mPlatformInfoHob.PhysMemAddressWidth - 30); -+ PdpEntries = 1 << (PlatformInfoHob->PhysMemAddressWidth - 30); - ASSERT (PdpEntries <= 0x200); - } else { -- if (mPlatformInfoHob.PhysMemAddressWidth > 48) { -+ if (PlatformInfoHob->PhysMemAddressWidth > 48) { - Pml4Entries = 0x200; - } else { -- Pml4Entries = 1 << (mPlatformInfoHob.PhysMemAddressWidth - 39); -+ Pml4Entries = 1 << (PlatformInfoHob->PhysMemAddressWidth - 39); - } - - ASSERT (Pml4Entries <= 0x200); -@@ -260,7 +260,7 @@ GetPeiMemoryCap ( - **/ - EFI_STATUS - PublishPeiMemory ( -- VOID -+ IN OUT EFI_HOB_PLATFORM_INFO *PlatformInfoHob - ) - { - EFI_STATUS Status; -@@ -271,12 +271,12 @@ PublishPeiMemory ( - UINT32 S3AcpiReservedMemoryBase; - UINT32 S3AcpiReservedMemorySize; - -- LowerMemorySize = PlatformGetSystemMemorySizeBelow4gb (&mPlatformInfoHob); -- if (mPlatformInfoHob.SmmSmramRequire) { -+ LowerMemorySize = PlatformGetSystemMemorySizeBelow4gb (PlatformInfoHob); -+ if (PlatformInfoHob->SmmSmramRequire) { - // - // TSEG is chipped from the end of low RAM - // -- LowerMemorySize -= mPlatformInfoHob.Q35TsegMbytes * SIZE_1MB; -+ LowerMemorySize -= PlatformInfoHob->Q35TsegMbytes * SIZE_1MB; - } - - S3AcpiReservedMemoryBase = 0; -@@ -287,27 +287,27 @@ PublishPeiMemory ( - // downwards. Its size is primarily dictated by CpuMpPei. The formula below - // is an approximation. - // -- if (mPlatformInfoHob.S3Supported) { -+ if (PlatformInfoHob->S3Supported) { - S3AcpiReservedMemorySize = SIZE_512KB + -- mPlatformInfoHob.PcdCpuMaxLogicalProcessorNumber * -+ PlatformInfoHob->PcdCpuMaxLogicalProcessorNumber * - PcdGet32 (PcdCpuApStackSize); - S3AcpiReservedMemoryBase = LowerMemorySize - S3AcpiReservedMemorySize; - LowerMemorySize = S3AcpiReservedMemoryBase; - } - -- mPlatformInfoHob.S3AcpiReservedMemoryBase = S3AcpiReservedMemoryBase; -- mPlatformInfoHob.S3AcpiReservedMemorySize = S3AcpiReservedMemorySize; -+ PlatformInfoHob->S3AcpiReservedMemoryBase = S3AcpiReservedMemoryBase; -+ PlatformInfoHob->S3AcpiReservedMemorySize = S3AcpiReservedMemorySize; - -- if (mPlatformInfoHob.BootMode == BOOT_ON_S3_RESUME) { -+ if (PlatformInfoHob->BootMode == BOOT_ON_S3_RESUME) { - MemoryBase = S3AcpiReservedMemoryBase; - MemorySize = S3AcpiReservedMemorySize; - } else { -- PeiMemoryCap = GetPeiMemoryCap (); -+ PeiMemoryCap = GetPeiMemoryCap (PlatformInfoHob); - DEBUG (( - DEBUG_INFO, - "%a: PhysMemAddressWidth=%d PeiMemoryCap=%u KB\n", - __FUNCTION__, -- mPlatformInfoHob.PhysMemAddressWidth, -+ PlatformInfoHob->PhysMemAddressWidth, - PeiMemoryCap >> 10 - )); - -@@ -321,7 +321,7 @@ PublishPeiMemory ( - // allocation HOB, and other allocations served from the permanent PEI RAM - // shouldn't overlap with that HOB. - // -- MemoryBase = mPlatformInfoHob.S3Supported && mPlatformInfoHob.SmmSmramRequire ? -+ MemoryBase = PlatformInfoHob->S3Supported && PlatformInfoHob->SmmSmramRequire ? - PcdGet32 (PcdOvmfDecompressionScratchEnd) : - PcdGet32 (PcdOvmfDxeMemFvBase) + PcdGet32 (PcdOvmfDxeMemFvSize); - MemorySize = LowerMemorySize - MemoryBase; -@@ -336,7 +336,7 @@ PublishPeiMemory ( - // normal boot permanent PEI RAM. Regarding the S3 boot path, the S3 - // permanent PEI RAM is located even higher. - // -- if (mPlatformInfoHob.SmmSmramRequire && mPlatformInfoHob.Q35SmramAtDefaultSmbase) { -+ if (PlatformInfoHob->SmmSmramRequire && PlatformInfoHob->Q35SmramAtDefaultSmbase) { - ASSERT (SMM_DEFAULT_SMBASE + MCH_DEFAULT_SMBASE_SIZE <= MemoryBase); - } - -diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c -index 402b2e88461e..0d5ead724d3f 100644 ---- a/OvmfPkg/PlatformPei/Platform.c -+++ b/OvmfPkg/PlatformPei/Platform.c -@@ -373,7 +373,7 @@ InitializePlatform ( - Q35SmramAtDefaultSmbaseInitialization (&mPlatformInfoHob); - } - -- PublishPeiMemory (); -+ PublishPeiMemory (&mPlatformInfoHob); - - PlatformQemuUc32BaseInitialization (&mPlatformInfoHob); - --- -2.38.1 - diff --git a/0024-OvmfPkg-PlatformPei-MemTypeInfo-stop-using-mPlatform.patch b/0024-OvmfPkg-PlatformPei-MemTypeInfo-stop-using-mPlatform.patch deleted file mode 100644 index cfeddda..0000000 --- a/0024-OvmfPkg-PlatformPei-MemTypeInfo-stop-using-mPlatform.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 63ce5d51b90f213ec2281b6da8c1def59f9acaf8 Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Fri, 2 Dec 2022 14:10:02 +0100 -Subject: [PATCH 24/32] OvmfPkg/PlatformPei: MemTypeInfo: stop using - mPlatformInfoHob - -Stop using the mPlatformInfoHob global variable in MemTypeInfoInitialization() -function. Pass a pointer to the PlatformInfoHob instead. - -Signed-off-by: Gerd Hoffmann -Tested-by: Tom Lendacky -Acked-by: Ard Biesheuvel -(cherry picked from commit cc6efda7770b8cabea3ae8c6054d47c4a8e229c3) ---- - OvmfPkg/PlatformPei/Platform.h | 2 +- - OvmfPkg/PlatformPei/MemTypeInfo.c | 4 ++-- - OvmfPkg/PlatformPei/Platform.c | 2 +- - 3 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/OvmfPkg/PlatformPei/Platform.h b/OvmfPkg/PlatformPei/Platform.h -index d0c673c5a346..0c0558f0626c 100644 ---- a/OvmfPkg/PlatformPei/Platform.h -+++ b/OvmfPkg/PlatformPei/Platform.h -@@ -67,7 +67,7 @@ PeiFvInitialization ( - - VOID - MemTypeInfoInitialization ( -- VOID -+ IN OUT EFI_HOB_PLATFORM_INFO *PlatformInfoHob - ); - - VOID -diff --git a/OvmfPkg/PlatformPei/MemTypeInfo.c b/OvmfPkg/PlatformPei/MemTypeInfo.c -index c8fcf1732687..eb37febb31ae 100644 ---- a/OvmfPkg/PlatformPei/MemTypeInfo.c -+++ b/OvmfPkg/PlatformPei/MemTypeInfo.c -@@ -203,12 +203,12 @@ STATIC CONST EFI_PEI_NOTIFY_DESCRIPTOR mReadOnlyVariable2Notify = { - - VOID - MemTypeInfoInitialization ( -- VOID -+ IN OUT EFI_HOB_PLATFORM_INFO *PlatformInfoHob - ) - { - EFI_STATUS Status; - -- if (!mPlatformInfoHob.SmmSmramRequire) { -+ if (!PlatformInfoHob->SmmSmramRequire) { - // - // EFI_PEI_READ_ONLY_VARIABLE2_PPI will never be available; install - // the default memory type information HOB right away. -diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c -index 0d5ead724d3f..c0273091326c 100644 ---- a/OvmfPkg/PlatformPei/Platform.c -+++ b/OvmfPkg/PlatformPei/Platform.c -@@ -385,7 +385,7 @@ InitializePlatform ( - } - - PeiFvInitialization (&mPlatformInfoHob); -- MemTypeInfoInitialization (); -+ MemTypeInfoInitialization (&mPlatformInfoHob); - MemMapInitialization (&mPlatformInfoHob); - NoexecDxeInitialization (); - UPDATE_BOOLEAN_PCD_FROM_FW_CFG (PcdResizeXterm); --- -2.38.1 - diff --git a/0025-OvmfPkg-PlatformPei-NoExec-stop-using-mPlatformInfoH.patch b/0025-OvmfPkg-PlatformPei-NoExec-stop-using-mPlatformInfoH.patch deleted file mode 100644 index 06c2833..0000000 --- a/0025-OvmfPkg-PlatformPei-NoExec-stop-using-mPlatformInfoH.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 6c10dc63b0753d9e241274d1cac62c0af406256e Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Fri, 2 Dec 2022 14:10:03 +0100 -Subject: [PATCH 25/32] OvmfPkg/PlatformPei: NoExec: stop using - mPlatformInfoHob - -Stop using the mPlatformInfoHob global variable in NoexecDxeInitialization() -function. Pass a pointer to the PlatformInfoHob instead. - -Signed-off-by: Gerd Hoffmann -Tested-by: Tom Lendacky -Acked-by: Ard Biesheuvel -(cherry picked from commit 7dbb8a24d1a3403f85d959bc1234b9f4a92bfbf0) ---- - OvmfPkg/PlatformPei/Platform.c | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) - -diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c -index c0273091326c..8307a80617fc 100644 ---- a/OvmfPkg/PlatformPei/Platform.c -+++ b/OvmfPkg/PlatformPei/Platform.c -@@ -87,16 +87,17 @@ MemMapInitialization ( - ASSERT_RETURN_ERROR (PcdStatus); - } - -+STATIC - VOID - NoexecDxeInitialization ( -- VOID -+ IN OUT EFI_HOB_PLATFORM_INFO *PlatformInfoHob - ) - { - RETURN_STATUS Status; - -- Status = PlatformNoexecDxeInitialization (&mPlatformInfoHob); -+ Status = PlatformNoexecDxeInitialization (PlatformInfoHob); - if (!RETURN_ERROR (Status)) { -- Status = PcdSetBoolS (PcdSetNxForStack, mPlatformInfoHob.PcdSetNxForStack); -+ Status = PcdSetBoolS (PcdSetNxForStack, PlatformInfoHob->PcdSetNxForStack); - ASSERT_RETURN_ERROR (Status); - } - } -@@ -387,7 +388,7 @@ InitializePlatform ( - PeiFvInitialization (&mPlatformInfoHob); - MemTypeInfoInitialization (&mPlatformInfoHob); - MemMapInitialization (&mPlatformInfoHob); -- NoexecDxeInitialization (); -+ NoexecDxeInitialization (&mPlatformInfoHob); - UPDATE_BOOLEAN_PCD_FROM_FW_CFG (PcdResizeXterm); - } - --- -2.38.1 - diff --git a/0026-OvmfPkg-PlatformPei-Verification-stop-using-mPlatfor.patch b/0026-OvmfPkg-PlatformPei-Verification-stop-using-mPlatfor.patch deleted file mode 100644 index dcb5dea..0000000 --- a/0026-OvmfPkg-PlatformPei-Verification-stop-using-mPlatfor.patch +++ /dev/null @@ -1,85 +0,0 @@ -From d9fb9c50028ab90b0a1b044c9d13f3143f6093aa Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Fri, 2 Dec 2022 14:10:04 +0100 -Subject: [PATCH 26/32] OvmfPkg/PlatformPei: Verification: stop using - mPlatformInfoHob - -Stop using the mPlatformInfoHob global variable in S3Verification() and -Q35BoardVerification() functions. Pass a pointer to the PlatformInfoHob -instead. - -Signed-off-by: Gerd Hoffmann -Tested-by: Tom Lendacky -Acked-by: Ard Biesheuvel -(cherry picked from commit 4bc2c748516e5c4a8bb86093cd5e1b80a9f35c0f) ---- - OvmfPkg/PlatformPei/Platform.c | 16 +++++++++------- - 1 file changed, 9 insertions(+), 7 deletions(-) - -diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c -index 8307a80617fc..6e31c5fc1f41 100644 ---- a/OvmfPkg/PlatformPei/Platform.c -+++ b/OvmfPkg/PlatformPei/Platform.c -@@ -243,13 +243,14 @@ ReserveEmuVariableNvStore ( - ASSERT_RETURN_ERROR (PcdStatus); - } - -+STATIC - VOID - S3Verification ( -- VOID -+ IN EFI_HOB_PLATFORM_INFO *PlatformInfoHob - ) - { - #if defined (MDE_CPU_X64) -- if (mPlatformInfoHob.SmmSmramRequire && mPlatformInfoHob.S3Supported) { -+ if (PlatformInfoHob->SmmSmramRequire && PlatformInfoHob->S3Supported) { - DEBUG (( - DEBUG_ERROR, - "%a: S3Resume2Pei doesn't support X64 PEI + SMM yet.\n", -@@ -272,12 +273,13 @@ S3Verification ( - #endif - } - -+STATIC - VOID - Q35BoardVerification ( -- VOID -+ IN EFI_HOB_PLATFORM_INFO *PlatformInfoHob - ) - { -- if (mPlatformInfoHob.HostBridgeDevId == INTEL_Q35_MCH_DEVICE_ID) { -+ if (PlatformInfoHob->HostBridgeDevId == INTEL_Q35_MCH_DEVICE_ID) { - return; - } - -@@ -286,7 +288,7 @@ Q35BoardVerification ( - "%a: no TSEG (SMRAM) on host bridge DID=0x%04x; " - "only DID=0x%04x (Q35) is supported\n", - __FUNCTION__, -- mPlatformInfoHob.HostBridgeDevId, -+ PlatformInfoHob->HostBridgeDevId, - INTEL_Q35_MCH_DEVICE_ID - )); - ASSERT (FALSE); -@@ -357,7 +359,7 @@ InitializePlatform ( - ASSERT_EFI_ERROR (Status); - } - -- S3Verification (); -+ S3Verification (&mPlatformInfoHob); - BootModeInitialization (&mPlatformInfoHob); - - // -@@ -369,7 +371,7 @@ InitializePlatform ( - MaxCpuCountInitialization (&mPlatformInfoHob); - - if (mPlatformInfoHob.SmmSmramRequire) { -- Q35BoardVerification (); -+ Q35BoardVerification (&mPlatformInfoHob); - Q35TsegMbytesInitialization (&mPlatformInfoHob); - Q35SmramAtDefaultSmbaseInitialization (&mPlatformInfoHob); - } --- -2.38.1 - diff --git a/0027-OvmfPkg-PlatformPei-remove-mPlatformInfoHob.patch b/0027-OvmfPkg-PlatformPei-remove-mPlatformInfoHob.patch deleted file mode 100644 index 5fa1df9..0000000 --- a/0027-OvmfPkg-PlatformPei-remove-mPlatformInfoHob.patch +++ /dev/null @@ -1,177 +0,0 @@ -From 0aa971e9b02ff1b380c5363a5a543bc4e2b9532f Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Fri, 2 Dec 2022 14:10:05 +0100 -Subject: [PATCH 27/32] OvmfPkg/PlatformPei: remove mPlatformInfoHob - -Stop using the mPlatformInfoHob global variable. Let -BuildPlatformInfoHob() allocate and return PlatformInfoHob instead. - -Signed-off-by: Gerd Hoffmann -Tested-by: Tom Lendacky -Acked-by: Ard Biesheuvel -(cherry picked from commit 862614e2544997c848fab7388733774ae0ea92d8) ---- - OvmfPkg/PlatformPei/Platform.h | 4 +- - OvmfPkg/PlatformPei/Platform.c | 71 ++++++++++++++++++---------------- - 2 files changed, 39 insertions(+), 36 deletions(-) - -diff --git a/OvmfPkg/PlatformPei/Platform.h b/OvmfPkg/PlatformPei/Platform.h -index 0c0558f0626c..86f603ff649c 100644 ---- a/OvmfPkg/PlatformPei/Platform.h -+++ b/OvmfPkg/PlatformPei/Platform.h -@@ -13,8 +13,6 @@ - #include - #include - --extern EFI_HOB_PLATFORM_INFO mPlatformInfoHob; -- - VOID - AddressWidthInitialization ( - IN OUT EFI_HOB_PLATFORM_INFO *PlatformInfoHob -@@ -98,7 +96,7 @@ IntelTdxInitialize ( - /** - * @brief Builds PlatformInfo Hob - */ --VOID -+EFI_HOB_PLATFORM_INFO * - BuildPlatformInfoHob ( - VOID - ); -diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c -index 6e31c5fc1f41..ee72b4ef24aa 100644 ---- a/OvmfPkg/PlatformPei/Platform.c -+++ b/OvmfPkg/PlatformPei/Platform.c -@@ -53,8 +53,6 @@ - } \ - } while (0) - --EFI_HOB_PLATFORM_INFO mPlatformInfoHob = { 0 }; -- - EFI_PEI_PPI_DESCRIPTOR mPpiBootMode[] = { - { - EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST, -@@ -317,12 +315,18 @@ MaxCpuCountInitialization ( - /** - * @brief Builds PlatformInfo Hob - */ --VOID -+EFI_HOB_PLATFORM_INFO * - BuildPlatformInfoHob ( - VOID - ) - { -- BuildGuidDataHob (&gUefiOvmfPkgPlatformInfoGuid, &mPlatformInfoHob, sizeof (EFI_HOB_PLATFORM_INFO)); -+ EFI_HOB_PLATFORM_INFO PlatformInfoHob; -+ EFI_HOB_GUID_TYPE *GuidHob; -+ -+ ZeroMem (&PlatformInfoHob, sizeof PlatformInfoHob); -+ BuildGuidDataHob (&gUefiOvmfPkgPlatformInfoGuid, &PlatformInfoHob, sizeof (EFI_HOB_PLATFORM_INFO)); -+ GuidHob = GetFirstGuidHob (&gUefiOvmfPkgPlatformInfoGuid); -+ return (EFI_HOB_PLATFORM_INFO *)GET_GUID_HOB_DATA (GuidHob); - } - - /** -@@ -341,70 +345,71 @@ InitializePlatform ( - IN CONST EFI_PEI_SERVICES **PeiServices - ) - { -- EFI_STATUS Status; -+ EFI_HOB_PLATFORM_INFO *PlatformInfoHob; -+ EFI_STATUS Status; - - DEBUG ((DEBUG_INFO, "Platform PEIM Loaded\n")); -+ PlatformInfoHob = BuildPlatformInfoHob (); - -- mPlatformInfoHob.SmmSmramRequire = FeaturePcdGet (PcdSmmSmramRequire); -- mPlatformInfoHob.SevEsIsEnabled = MemEncryptSevEsIsEnabled (); -- mPlatformInfoHob.PcdPciMmio64Size = PcdGet64 (PcdPciMmio64Size); -- mPlatformInfoHob.DefaultMaxCpuNumber = PcdGet32 (PcdCpuMaxLogicalProcessorNumber); -+ PlatformInfoHob->SmmSmramRequire = FeaturePcdGet (PcdSmmSmramRequire); -+ PlatformInfoHob->SevEsIsEnabled = MemEncryptSevEsIsEnabled (); -+ PlatformInfoHob->PcdPciMmio64Size = PcdGet64 (PcdPciMmio64Size); -+ PlatformInfoHob->DefaultMaxCpuNumber = PcdGet32 (PcdCpuMaxLogicalProcessorNumber); - - PlatformDebugDumpCmos (); - - if (QemuFwCfgS3Enabled ()) { - DEBUG ((DEBUG_INFO, "S3 support was detected on QEMU\n")); -- mPlatformInfoHob.S3Supported = TRUE; -+ PlatformInfoHob->S3Supported = TRUE; - Status = PcdSetBoolS (PcdAcpiS3Enable, TRUE); - ASSERT_EFI_ERROR (Status); - } - -- S3Verification (&mPlatformInfoHob); -- BootModeInitialization (&mPlatformInfoHob); -+ S3Verification (PlatformInfoHob); -+ BootModeInitialization (PlatformInfoHob); - - // - // Query Host Bridge DID - // -- mPlatformInfoHob.HostBridgeDevId = PciRead16 (OVMF_HOSTBRIDGE_DID); -- AddressWidthInitialization (&mPlatformInfoHob); -+ PlatformInfoHob->HostBridgeDevId = PciRead16 (OVMF_HOSTBRIDGE_DID); -+ AddressWidthInitialization (PlatformInfoHob); - -- MaxCpuCountInitialization (&mPlatformInfoHob); -+ MaxCpuCountInitialization (PlatformInfoHob); - -- if (mPlatformInfoHob.SmmSmramRequire) { -- Q35BoardVerification (&mPlatformInfoHob); -- Q35TsegMbytesInitialization (&mPlatformInfoHob); -- Q35SmramAtDefaultSmbaseInitialization (&mPlatformInfoHob); -+ if (PlatformInfoHob->SmmSmramRequire) { -+ Q35BoardVerification (PlatformInfoHob); -+ Q35TsegMbytesInitialization (PlatformInfoHob); -+ Q35SmramAtDefaultSmbaseInitialization (PlatformInfoHob); - } - -- PublishPeiMemory (&mPlatformInfoHob); -+ PublishPeiMemory (PlatformInfoHob); - -- PlatformQemuUc32BaseInitialization (&mPlatformInfoHob); -+ PlatformQemuUc32BaseInitialization (PlatformInfoHob); - -- InitializeRamRegions (&mPlatformInfoHob); -+ InitializeRamRegions (PlatformInfoHob); - -- if (mPlatformInfoHob.BootMode != BOOT_ON_S3_RESUME) { -- if (!mPlatformInfoHob.SmmSmramRequire) { -+ if (PlatformInfoHob->BootMode != BOOT_ON_S3_RESUME) { -+ if (!PlatformInfoHob->SmmSmramRequire) { - ReserveEmuVariableNvStore (); - } - -- PeiFvInitialization (&mPlatformInfoHob); -- MemTypeInfoInitialization (&mPlatformInfoHob); -- MemMapInitialization (&mPlatformInfoHob); -- NoexecDxeInitialization (&mPlatformInfoHob); -+ PeiFvInitialization (PlatformInfoHob); -+ MemTypeInfoInitialization (PlatformInfoHob); -+ MemMapInitialization (PlatformInfoHob); -+ NoexecDxeInitialization (PlatformInfoHob); - UPDATE_BOOLEAN_PCD_FROM_FW_CFG (PcdResizeXterm); - } - - InstallClearCacheCallback (); -- AmdSevInitialize (&mPlatformInfoHob); -- if (mPlatformInfoHob.HostBridgeDevId == 0xffff) { -- MiscInitializationForMicrovm (&mPlatformInfoHob); -+ AmdSevInitialize (PlatformInfoHob); -+ if (PlatformInfoHob->HostBridgeDevId == 0xffff) { -+ MiscInitializationForMicrovm (PlatformInfoHob); - } else { -- MiscInitialization (&mPlatformInfoHob); -+ MiscInitialization (PlatformInfoHob); - } - - IntelTdxInitialize (); - InstallFeatureControlCallback (); -- BuildPlatformInfoHob (); - - return EFI_SUCCESS; - } --- -2.38.1 - diff --git a/0028-OvmfPkg-PlatformPei-remove-mFeatureControlValue.patch b/0028-OvmfPkg-PlatformPei-remove-mFeatureControlValue.patch deleted file mode 100644 index a9dae02..0000000 --- a/0028-OvmfPkg-PlatformPei-remove-mFeatureControlValue.patch +++ /dev/null @@ -1,176 +0,0 @@ -From f0d41555cc5b42bd284c8ee1f3b419c612a9a8ca Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Fri, 2 Dec 2022 14:10:06 +0100 -Subject: [PATCH 28/32] OvmfPkg/PlatformPei: remove mFeatureControlValue - -Use PlatformInfoHob->FeatureControlValue instead. -OnMpServicesAvailable() will find PlatformInfoHob using -GetFirstGuidHob() and pass a pointer to the WriteFeatureControl -callback. - -Signed-off-by: Gerd Hoffmann -Tested-by: Tom Lendacky -Acked-by: Ard Biesheuvel -(cherry picked from commit f6a196c7eb34affff0cfe1864e126953096885e1) ---- - OvmfPkg/Include/Library/PlatformInitLib.h | 2 ++ - OvmfPkg/PlatformPei/Platform.h | 2 +- - OvmfPkg/PlatformPei/FeatureControl.c | 44 ++++++++++++++++------- - OvmfPkg/PlatformPei/Platform.c | 2 +- - 4 files changed, 36 insertions(+), 14 deletions(-) - -diff --git a/OvmfPkg/Include/Library/PlatformInitLib.h b/OvmfPkg/Include/Library/PlatformInitLib.h -index c5234bf26d45..da7ed76041d2 100644 ---- a/OvmfPkg/Include/Library/PlatformInitLib.h -+++ b/OvmfPkg/Include/Library/PlatformInitLib.h -@@ -48,6 +48,8 @@ typedef struct { - - UINT32 S3AcpiReservedMemoryBase; - UINT32 S3AcpiReservedMemorySize; -+ -+ UINT64 FeatureControlValue; - } EFI_HOB_PLATFORM_INFO; - #pragma pack() - -diff --git a/OvmfPkg/PlatformPei/Platform.h b/OvmfPkg/PlatformPei/Platform.h -index 86f603ff649c..1cf44844a781 100644 ---- a/OvmfPkg/PlatformPei/Platform.h -+++ b/OvmfPkg/PlatformPei/Platform.h -@@ -70,7 +70,7 @@ MemTypeInfoInitialization ( - - VOID - InstallFeatureControlCallback ( -- VOID -+ IN OUT EFI_HOB_PLATFORM_INFO *PlatformInfoHob - ); - - VOID -diff --git a/OvmfPkg/PlatformPei/FeatureControl.c b/OvmfPkg/PlatformPei/FeatureControl.c -index 5864ee0c214d..d8a398cd5565 100644 ---- a/OvmfPkg/PlatformPei/FeatureControl.c -+++ b/OvmfPkg/PlatformPei/FeatureControl.c -@@ -8,6 +8,7 @@ - **/ - - #include -+#include - #include - #include - #include -@@ -16,11 +17,6 @@ - - #include "Platform.h" - --// --// The value to be written to the Feature Control MSR, retrieved from fw_cfg. --// --STATIC UINT64 mFeatureControlValue; -- - /** - Write the Feature Control MSR on an Application Processor or the Boot - Processor. -@@ -38,10 +34,22 @@ WriteFeatureControl ( - IN OUT VOID *WorkSpace - ) - { -+ EFI_HOB_PLATFORM_INFO *PlatformInfoHob = WorkSpace; -+ - if (TdIsEnabled ()) { -- TdVmCall (TDVMCALL_WRMSR, (UINT64)MSR_IA32_FEATURE_CONTROL, mFeatureControlValue, 0, 0, 0); -+ TdVmCall ( -+ TDVMCALL_WRMSR, -+ (UINT64)MSR_IA32_FEATURE_CONTROL, -+ PlatformInfoHob->FeatureControlValue, -+ 0, -+ 0, -+ 0 -+ ); - } else { -- AsmWriteMsr64 (MSR_IA32_FEATURE_CONTROL, mFeatureControlValue); -+ AsmWriteMsr64 ( -+ MSR_IA32_FEATURE_CONTROL, -+ PlatformInfoHob->FeatureControlValue -+ ); - } - } - -@@ -67,6 +75,15 @@ OnMpServicesAvailable ( - { - EFI_PEI_MP_SERVICES_PPI *MpServices; - EFI_STATUS Status; -+ EFI_HOB_PLATFORM_INFO *PlatformInfoHob; -+ EFI_HOB_GUID_TYPE *GuidHob; -+ -+ GuidHob = GetFirstGuidHob (&gUefiOvmfPkgPlatformInfoGuid); -+ if (GuidHob == NULL) { -+ return EFI_UNSUPPORTED; -+ } -+ -+ PlatformInfoHob = (EFI_HOB_PLATFORM_INFO *)GET_GUID_HOB_DATA (GuidHob); - - DEBUG ((DEBUG_VERBOSE, "%a: %a\n", gEfiCallerBaseName, __FUNCTION__)); - -@@ -80,7 +97,7 @@ OnMpServicesAvailable ( - WriteFeatureControl, // Procedure - FALSE, // SingleThread - 0, // TimeoutInMicroSeconds: inf. -- NULL // ProcedureArgument -+ PlatformInfoHob // ProcedureArgument - ); - if (EFI_ERROR (Status) && (Status != EFI_NOT_STARTED)) { - DEBUG ((DEBUG_ERROR, "%a: StartupAllAps(): %r\n", __FUNCTION__, Status)); -@@ -90,7 +107,7 @@ OnMpServicesAvailable ( - // - // Now write the MSR on the BSP too. - // -- WriteFeatureControl (NULL); -+ WriteFeatureControl (PlatformInfoHob); - return EFI_SUCCESS; - } - -@@ -107,7 +124,7 @@ STATIC CONST EFI_PEI_NOTIFY_DESCRIPTOR mMpServicesNotify = { - - VOID - InstallFeatureControlCallback ( -- VOID -+ IN OUT EFI_HOB_PLATFORM_INFO *PlatformInfoHob - ) - { - EFI_STATUS Status; -@@ -119,7 +136,7 @@ InstallFeatureControlCallback ( - &FwCfgItem, - &FwCfgSize - ); -- if (EFI_ERROR (Status) || (FwCfgSize != sizeof mFeatureControlValue)) { -+ if (EFI_ERROR (Status) || (FwCfgSize != sizeof (PlatformInfoHob->FeatureControlValue))) { - // - // Nothing to do. - // -@@ -127,7 +144,10 @@ InstallFeatureControlCallback ( - } - - QemuFwCfgSelectItem (FwCfgItem); -- QemuFwCfgReadBytes (sizeof mFeatureControlValue, &mFeatureControlValue); -+ QemuFwCfgReadBytes ( -+ sizeof (PlatformInfoHob->FeatureControlValue), -+ &(PlatformInfoHob->FeatureControlValue) -+ ); - - Status = PeiServicesNotifyPpi (&mMpServicesNotify); - if (EFI_ERROR (Status)) { -diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c -index ee72b4ef24aa..d324ae95f8f5 100644 ---- a/OvmfPkg/PlatformPei/Platform.c -+++ b/OvmfPkg/PlatformPei/Platform.c -@@ -409,7 +409,7 @@ InitializePlatform ( - } - - IntelTdxInitialize (); -- InstallFeatureControlCallback (); -+ InstallFeatureControlCallback (PlatformInfoHob); - - return EFI_SUCCESS; - } --- -2.38.1 - diff --git a/0029-OvmfPkg-DebugLibIoPort-use-Rom-version-for-PEI.patch b/0029-OvmfPkg-DebugLibIoPort-use-Rom-version-for-PEI.patch deleted file mode 100644 index 3361245..0000000 --- a/0029-OvmfPkg-DebugLibIoPort-use-Rom-version-for-PEI.patch +++ /dev/null @@ -1,169 +0,0 @@ -From b0f503de63b9f177d5457956025567806066bfb3 Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Fri, 2 Dec 2022 14:10:07 +0100 -Subject: [PATCH 29/32] OvmfPkg/DebugLibIoPort: use Rom version for PEI - -This variant does not use global variables. - -Signed-off-by: Gerd Hoffmann -Tested-by: Tom Lendacky -Acked-by: Ard Biesheuvel -(cherry picked from commit e59747bd8246135faeecc18879d62db66a6acfc2) ---- - OvmfPkg/AmdSev/AmdSevX64.dsc | 4 ++-- - OvmfPkg/Bhyve/BhyveX64.dsc | 4 ++-- - OvmfPkg/Microvm/MicrovmX64.dsc | 4 ++-- - OvmfPkg/OvmfPkgIa32.dsc | 4 ++-- - OvmfPkg/OvmfPkgIa32X64.dsc | 4 ++-- - OvmfPkg/OvmfPkgX64.dsc | 4 ++-- - .../PlatformDebugLibIoPort/PlatformRomDebugLibIoPort.inf | 2 +- - 7 files changed, 13 insertions(+), 13 deletions(-) - -diff --git a/OvmfPkg/AmdSev/AmdSevX64.dsc b/OvmfPkg/AmdSev/AmdSevX64.dsc -index 05908a72270f..ea755afbab82 100644 ---- a/OvmfPkg/AmdSev/AmdSevX64.dsc -+++ b/OvmfPkg/AmdSev/AmdSevX64.dsc -@@ -244,7 +244,7 @@ [LibraryClasses.common.PEI_CORE] - !ifdef $(DEBUG_ON_SERIAL_PORT) - DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf - !else -- DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf -+ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformRomDebugLibIoPort.inf - !endif - PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf - -@@ -260,7 +260,7 @@ [LibraryClasses.common.PEIM] - !ifdef $(DEBUG_ON_SERIAL_PORT) - DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf - !else -- DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf -+ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformRomDebugLibIoPort.inf - !endif - PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf - ResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiResourcePublicationLib.inf -diff --git a/OvmfPkg/Bhyve/BhyveX64.dsc b/OvmfPkg/Bhyve/BhyveX64.dsc -index e3bb367b6bf6..befec670d4f3 100644 ---- a/OvmfPkg/Bhyve/BhyveX64.dsc -+++ b/OvmfPkg/Bhyve/BhyveX64.dsc -@@ -265,7 +265,7 @@ [LibraryClasses.common.PEI_CORE] - !ifdef $(DEBUG_ON_SERIAL_PORT) - DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf - !else -- DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf -+ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformRomDebugLibIoPort.inf - !endif - PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf - -@@ -281,7 +281,7 @@ [LibraryClasses.common.PEIM] - !ifdef $(DEBUG_ON_SERIAL_PORT) - DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf - !else -- DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf -+ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformRomDebugLibIoPort.inf - !endif - PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf - ResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiResourcePublicationLib.inf -diff --git a/OvmfPkg/Microvm/MicrovmX64.dsc b/OvmfPkg/Microvm/MicrovmX64.dsc -index 3444304d0e46..97339d48a5ef 100644 ---- a/OvmfPkg/Microvm/MicrovmX64.dsc -+++ b/OvmfPkg/Microvm/MicrovmX64.dsc -@@ -292,7 +292,7 @@ [LibraryClasses.common.PEI_CORE] - !ifdef $(DEBUG_ON_SERIAL_PORT) - DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf - !else -- DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf -+ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformRomDebugLibIoPort.inf - !endif - PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf - -@@ -308,7 +308,7 @@ [LibraryClasses.common.PEIM] - !ifdef $(DEBUG_ON_SERIAL_PORT) - DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf - !else -- DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf -+ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformRomDebugLibIoPort.inf - !endif - PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf - ResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiResourcePublicationLib.inf -diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc -index 9c0fb7d545b8..72e623a65a38 100644 ---- a/OvmfPkg/OvmfPkgIa32.dsc -+++ b/OvmfPkg/OvmfPkgIa32.dsc -@@ -294,7 +294,7 @@ [LibraryClasses.common.PEI_CORE] - !ifdef $(DEBUG_ON_SERIAL_PORT) - DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf - !else -- DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf -+ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformRomDebugLibIoPort.inf - !endif - PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf - -@@ -310,7 +310,7 @@ [LibraryClasses.common.PEIM] - !ifdef $(DEBUG_ON_SERIAL_PORT) - DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf - !else -- DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf -+ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformRomDebugLibIoPort.inf - !endif - PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf - ResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiResourcePublicationLib.inf -diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc -index 8b93437044e7..55ceb5c3420b 100644 ---- a/OvmfPkg/OvmfPkgIa32X64.dsc -+++ b/OvmfPkg/OvmfPkgIa32X64.dsc -@@ -300,7 +300,7 @@ [LibraryClasses.common.PEI_CORE] - !ifdef $(DEBUG_ON_SERIAL_PORT) - DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf - !else -- DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf -+ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformRomDebugLibIoPort.inf - !endif - PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf - -@@ -316,7 +316,7 @@ [LibraryClasses.common.PEIM] - !ifdef $(DEBUG_ON_SERIAL_PORT) - DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf - !else -- DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf -+ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformRomDebugLibIoPort.inf - !endif - PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf - ResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiResourcePublicationLib.inf -diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc -index 8c9162db1743..6cef37c10822 100644 ---- a/OvmfPkg/OvmfPkgX64.dsc -+++ b/OvmfPkg/OvmfPkgX64.dsc -@@ -318,7 +318,7 @@ [LibraryClasses.common.PEI_CORE] - !ifdef $(DEBUG_ON_SERIAL_PORT) - DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf - !else -- DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf -+ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformRomDebugLibIoPort.inf - !endif - PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf - CcProbeLib|OvmfPkg/Library/CcProbeLib/SecPeiCcProbeLib.inf -@@ -335,7 +335,7 @@ [LibraryClasses.common.PEIM] - !ifdef $(DEBUG_ON_SERIAL_PORT) - DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf - !else -- DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf -+ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformRomDebugLibIoPort.inf - !endif - PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf - ResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiResourcePublicationLib.inf -diff --git a/OvmfPkg/Library/PlatformDebugLibIoPort/PlatformRomDebugLibIoPort.inf b/OvmfPkg/Library/PlatformDebugLibIoPort/PlatformRomDebugLibIoPort.inf -index 8f721d249dd5..c89b1571bad8 100644 ---- a/OvmfPkg/Library/PlatformDebugLibIoPort/PlatformRomDebugLibIoPort.inf -+++ b/OvmfPkg/Library/PlatformDebugLibIoPort/PlatformRomDebugLibIoPort.inf -@@ -16,7 +16,7 @@ [Defines] - FILE_GUID = CEB0D9D3-328F-4C24-8C02-28FA1986AE1B - MODULE_TYPE = BASE - VERSION_STRING = 1.0 -- LIBRARY_CLASS = DebugLib|SEC -+ LIBRARY_CLASS = DebugLib|SEC PEI_CORE PEIM - CONSTRUCTOR = PlatformRomDebugLibIoPortConstructor - - # --- -2.38.1 - diff --git a/0030-OvmfPkg-QemuFwCfgLib-rewrite-fw_cfg-probe.patch b/0030-OvmfPkg-QemuFwCfgLib-rewrite-fw_cfg-probe.patch deleted file mode 100644 index af711fe..0000000 --- a/0030-OvmfPkg-QemuFwCfgLib-rewrite-fw_cfg-probe.patch +++ /dev/null @@ -1,183 +0,0 @@ -From 64d555122ee65151008255a30173a3608006ae25 Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Fri, 2 Dec 2022 14:10:08 +0100 -Subject: [PATCH 30/32] OvmfPkg/QemuFwCfgLib: rewrite fw_cfg probe - -Move the code to a new QemuFwCfgProbe() function. Use direct Io*() calls -instead of indirect QemuFwCfg*() calls to make sure we don't get -recursive calls. Also simplify CC guest detection. - -Signed-off-by: Gerd Hoffmann -Tested-by: Tom Lendacky -Acked-by: Ard Biesheuvel -(cherry picked from commit 81bbc1452c972218f071cd4a8f5899df974b1dae) ---- - .../Library/QemuFwCfgLib/QemuFwCfgPeiLib.inf | 1 - - OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPei.c | 101 +++++++----------- - 2 files changed, 41 insertions(+), 61 deletions(-) - -diff --git a/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPeiLib.inf b/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPeiLib.inf -index 3910511880c9..1d7543a7d40f 100644 ---- a/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPeiLib.inf -+++ b/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPeiLib.inf -@@ -41,7 +41,6 @@ [LibraryClasses] - DebugLib - IoLib - MemoryAllocationLib -- MemEncryptSevLib - - [Pcd] - gUefiOvmfPkgTokenSpaceGuid.PcdOvmfWorkAreaBase -diff --git a/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPei.c b/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPei.c -index 7ab7027af168..a936fd103955 100644 ---- a/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPei.c -+++ b/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPei.c -@@ -13,7 +13,6 @@ - #include - #include - #include --#include - #include - - #include "QemuFwCfgLibInternal.h" -@@ -27,15 +26,16 @@ STATIC BOOLEAN mQemuFwCfgDmaSupported; - @retval TRUE It is Tdx guest - @retval FALSE It is not Tdx guest - **/ -+STATIC - BOOLEAN --QemuFwCfgIsTdxGuest ( -+QemuFwCfgIsCcGuest ( - VOID - ) - { - CONFIDENTIAL_COMPUTING_WORK_AREA_HEADER *CcWorkAreaHeader; - - CcWorkAreaHeader = (CONFIDENTIAL_COMPUTING_WORK_AREA_HEADER *)FixedPcdGet32 (PcdOvmfWorkAreaBase); -- return (CcWorkAreaHeader != NULL && CcWorkAreaHeader->GuestType == CcGuestTypeIntelTdx); -+ return (CcWorkAreaHeader != NULL && CcWorkAreaHeader->GuestType != CcGuestTypeNonEncrypted); - } - - /** -@@ -57,62 +57,49 @@ QemuFwCfgIsAvailable ( - return InternalQemuFwCfgIsAvailable (); - } - -+STATIC -+VOID -+QemuFwCfgProbe ( -+ BOOLEAN *Supported, -+ BOOLEAN *DmaSupported -+ ) -+{ -+ UINT32 Signature; -+ UINT32 Revision; -+ BOOLEAN CcGuest; -+ -+ // Use direct Io* calls for probing to avoid recursion. -+ IoWrite16 (FW_CFG_IO_SELECTOR, (UINT16)QemuFwCfgItemSignature); -+ IoReadFifo8 (FW_CFG_IO_DATA, sizeof Signature, &Signature); -+ IoWrite16 (FW_CFG_IO_SELECTOR, (UINT16)QemuFwCfgItemInterfaceVersion); -+ IoReadFifo8 (FW_CFG_IO_DATA, sizeof Revision, &Revision); -+ CcGuest = QemuFwCfgIsCcGuest (); -+ -+ *Supported = FALSE; -+ *DmaSupported = FALSE; -+ if ((Signature == SIGNATURE_32 ('Q', 'E', 'M', 'U')) && (Revision >= 1)) { -+ *Supported = TRUE; -+ if ((Revision & FW_CFG_F_DMA) && !CcGuest) { -+ *DmaSupported = TRUE; -+ } -+ } -+ -+ DEBUG (( -+ DEBUG_INFO, -+ "%a: Supported %d, DMA %d\n", -+ __func__, -+ *Supported, -+ *DmaSupported -+ )); -+} -+ - RETURN_STATUS - EFIAPI - QemuFwCfgInitialize ( - VOID - ) - { -- UINT32 Signature; -- UINT32 Revision; -- -- // -- // Enable the access routines while probing to see if it is supported. -- // For probing we always use the IO Port (IoReadFifo8()) access method. -- // -- mQemuFwCfgSupported = TRUE; -- mQemuFwCfgDmaSupported = FALSE; -- -- QemuFwCfgSelectItem (QemuFwCfgItemSignature); -- Signature = QemuFwCfgRead32 (); -- DEBUG ((DEBUG_INFO, "FW CFG Signature: 0x%x\n", Signature)); -- QemuFwCfgSelectItem (QemuFwCfgItemInterfaceVersion); -- Revision = QemuFwCfgRead32 (); -- DEBUG ((DEBUG_INFO, "FW CFG Revision: 0x%x\n", Revision)); -- if ((Signature != SIGNATURE_32 ('Q', 'E', 'M', 'U')) || -- (Revision < 1) -- ) -- { -- DEBUG ((DEBUG_INFO, "QemuFwCfg interface not supported.\n")); -- mQemuFwCfgSupported = FALSE; -- return RETURN_SUCCESS; -- } -- -- if ((Revision & FW_CFG_F_DMA) == 0) { -- DEBUG ((DEBUG_INFO, "QemuFwCfg interface (IO Port) is supported.\n")); -- } else { -- // -- // If SEV is enabled then we do not support DMA operations in PEI phase. -- // This is mainly because DMA in SEV guest requires using bounce buffer -- // (which need to allocate dynamic memory and allocating a PAGE size'd -- // buffer can be challenge in PEI phase) -- // -- if (MemEncryptSevIsEnabled ()) { -- DEBUG ((DEBUG_INFO, "SEV: QemuFwCfg fallback to IO Port interface.\n")); -- } else if (QemuFwCfgIsTdxGuest ()) { -- // -- // If TDX is enabled then we do not support DMA operations in PEI phase. -- // This is mainly because DMA in TDX guest requires using bounce buffer -- // (which need to allocate dynamic memory and allocating a PAGE size'd -- // buffer can be challenge in PEI phase) -- // -- DEBUG ((DEBUG_INFO, "TDX: QemuFwCfg fallback to IO Port interface.\n")); -- } else { -- mQemuFwCfgDmaSupported = TRUE; -- DEBUG ((DEBUG_INFO, "QemuFwCfg interface (DMA) is supported.\n")); -- } -- } -- -+ QemuFwCfgProbe (&mQemuFwCfgSupported, &mQemuFwCfgDmaSupported); - return RETURN_SUCCESS; - } - -@@ -183,17 +170,11 @@ InternalQemuFwCfgDmaBytes ( - return; - } - -- // -- // SEV does not support DMA operations in PEI stage, we should -- // not have reached here. -- // -- ASSERT (!MemEncryptSevIsEnabled ()); -- - // - // TDX does not support DMA operations in PEI stage, we should - // not have reached here. - // -- ASSERT (!QemuFwCfgIsTdxGuest ()); -+ ASSERT (!QemuFwCfgIsCcGuest ()); - - Access.Control = SwapBytes32 (Control); - Access.Length = SwapBytes32 (Size); --- -2.38.1 - diff --git a/0031-OvmfPkg-QemuFwCfgLib-remove-mQemuFwCfgSupported-mQem.patch b/0031-OvmfPkg-QemuFwCfgLib-remove-mQemuFwCfgSupported-mQem.patch deleted file mode 100644 index 14e6450..0000000 --- a/0031-OvmfPkg-QemuFwCfgLib-remove-mQemuFwCfgSupported-mQem.patch +++ /dev/null @@ -1,144 +0,0 @@ -From ed22693f4fc4d780c19280a7a26438b7c9d84ecd Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Fri, 2 Dec 2022 14:10:09 +0100 -Subject: [PATCH 31/32] OvmfPkg/QemuFwCfgLib: remove mQemuFwCfgSupported + - mQemuFwCfgDmaSupported - -Remove global variables, store the state in PlatformInfoHob instead. -Probing for fw_cfg happens on first use, at library initialization -time the Hob might not be present yet. - -Signed-off-by: Gerd Hoffmann -Tested-by: Tom Lendacky -Acked-by: Ard Biesheuvel -(cherry picked from commit cda98df16228970dcf9a4ce2af5368219711b4b0) ---- - .../Library/QemuFwCfgLib/QemuFwCfgPeiLib.inf | 4 ++ - OvmfPkg/Include/Library/PlatformInitLib.h | 4 ++ - OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPei.c | 44 ++++++++++++++++--- - 3 files changed, 45 insertions(+), 7 deletions(-) - -diff --git a/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPeiLib.inf b/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPeiLib.inf -index 1d7543a7d40f..b1f548febcf7 100644 ---- a/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPeiLib.inf -+++ b/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPeiLib.inf -@@ -39,8 +39,12 @@ [LibraryClasses] - BaseLib - BaseMemoryLib - DebugLib -+ HobLib - IoLib - MemoryAllocationLib - -+[Guids] -+ gUefiOvmfPkgPlatformInfoGuid -+ - [Pcd] - gUefiOvmfPkgTokenSpaceGuid.PcdOvmfWorkAreaBase -diff --git a/OvmfPkg/Include/Library/PlatformInitLib.h b/OvmfPkg/Include/Library/PlatformInitLib.h -index da7ed76041d2..bf6f90a5761c 100644 ---- a/OvmfPkg/Include/Library/PlatformInitLib.h -+++ b/OvmfPkg/Include/Library/PlatformInitLib.h -@@ -50,6 +50,10 @@ typedef struct { - UINT32 S3AcpiReservedMemorySize; - - UINT64 FeatureControlValue; -+ -+ BOOLEAN QemuFwCfgChecked; -+ BOOLEAN QemuFwCfgSupported; -+ BOOLEAN QemuFwCfgDmaSupported; - } EFI_HOB_PLATFORM_INFO; - #pragma pack() - -diff --git a/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPei.c b/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPei.c -index a936fd103955..da86a3c84c02 100644 ---- a/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPei.c -+++ b/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPei.c -@@ -9,17 +9,17 @@ - SPDX-License-Identifier: BSD-2-Clause-Patent - **/ - -+#include - #include --#include - #include -+#include -+#include -+#include - #include - #include - - #include "QemuFwCfgLibInternal.h" - --STATIC BOOLEAN mQemuFwCfgSupported = FALSE; --STATIC BOOLEAN mQemuFwCfgDmaSupported; -- - /** - Check if it is Tdx guest - -@@ -93,13 +93,39 @@ QemuFwCfgProbe ( - )); - } - -+STATIC -+EFI_HOB_PLATFORM_INFO * -+QemuFwCfgGetPlatformInfo ( -+ VOID -+ ) -+{ -+ EFI_HOB_PLATFORM_INFO *PlatformInfoHob; -+ EFI_HOB_GUID_TYPE *GuidHob; -+ -+ GuidHob = GetFirstGuidHob (&gUefiOvmfPkgPlatformInfoGuid); -+ if (GuidHob == NULL) { -+ return NULL; -+ } -+ -+ PlatformInfoHob = (EFI_HOB_PLATFORM_INFO *)GET_GUID_HOB_DATA (GuidHob); -+ -+ if (!PlatformInfoHob->QemuFwCfgChecked) { -+ QemuFwCfgProbe ( -+ &PlatformInfoHob->QemuFwCfgSupported, -+ &PlatformInfoHob->QemuFwCfgDmaSupported -+ ); -+ PlatformInfoHob->QemuFwCfgChecked = TRUE; -+ } -+ -+ return PlatformInfoHob; -+} -+ - RETURN_STATUS - EFIAPI - QemuFwCfgInitialize ( - VOID - ) - { -- QemuFwCfgProbe (&mQemuFwCfgSupported, &mQemuFwCfgDmaSupported); - return RETURN_SUCCESS; - } - -@@ -117,7 +143,9 @@ InternalQemuFwCfgIsAvailable ( - VOID - ) - { -- return mQemuFwCfgSupported; -+ EFI_HOB_PLATFORM_INFO *PlatformInfoHob = QemuFwCfgGetPlatformInfo (); -+ -+ return PlatformInfoHob->QemuFwCfgSupported; - } - - /** -@@ -132,7 +160,9 @@ InternalQemuFwCfgDmaIsAvailable ( - VOID - ) - { -- return mQemuFwCfgDmaSupported; -+ EFI_HOB_PLATFORM_INFO *PlatformInfoHob = QemuFwCfgGetPlatformInfo (); -+ -+ return PlatformInfoHob->QemuFwCfgDmaSupported; - } - - /** --- -2.38.1 - diff --git a/0032-OvmfPkg-VirtNorFlashDxe-map-flash-memory-as-uncachea.patch b/0032-OvmfPkg-VirtNorFlashDxe-map-flash-memory-as-uncachea.patch deleted file mode 100644 index f097416..0000000 --- a/0032-OvmfPkg-VirtNorFlashDxe-map-flash-memory-as-uncachea.patch +++ /dev/null @@ -1,61 +0,0 @@ -From c5c9385ffa28b9989a53c3a51ce3f8b4ef40aa41 Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Wed, 11 Jan 2023 19:00:23 +0100 -Subject: [PATCH 32/34] OvmfPkg/VirtNorFlashDxe: map flash memory as - uncacheable - -Switching from the ArmPlatformPkg/NorFlashDxe driver to the -OvmfPkg/VirtNorFlashDxe driver had the side effect that flash address -space got registered as EFI_MEMORY_WC instead of EFI_MEMORY_UC. - -That confuses the linux kernel's numa code, seems this makes kernel -consider the flash being node memory. "lsmem" changes from ... - - RANGE SIZE STATE REMOVABLE BLOCK - 0x0000000040000000-0x000000013fffffff 4G online yes 8-39 - -... to ... - - RANGE SIZE STATE REMOVABLE BLOCK - 0x0000000000000000-0x0000000007ffffff 128M online yes 0 - 0x0000000040000000-0x000000013fffffff 4G online yes 8-39 - -... and in the kernel log got new error lines: - - NUMA: Warning: invalid memblk node 512 [mem 0x0000000004000000-0x0000000007ffffff] - NUMA: Faking a node at [mem 0x0000000004000000-0x000000013fffffff] - -Changing the attributes back to EFI_MEMORY_UC fixes this. - -Fixes: b92298af8218 ("ArmVirtPkg/ArmVirtQemu: migrate to OVMF's VirtNorFlashDxe") -Signed-off-by: Gerd Hoffmann -Reviewed-by: Ard Biesheuvel -(cherry picked from commit e5ec3ba409b5baa9cf429cc25fdf3c8d1b8dcef0) ---- - OvmfPkg/VirtNorFlashDxe/VirtNorFlashDxe.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/OvmfPkg/VirtNorFlashDxe/VirtNorFlashDxe.c b/OvmfPkg/VirtNorFlashDxe/VirtNorFlashDxe.c -index ff3121af2a40..f9a41f6aab0f 100644 ---- a/OvmfPkg/VirtNorFlashDxe/VirtNorFlashDxe.c -+++ b/OvmfPkg/VirtNorFlashDxe/VirtNorFlashDxe.c -@@ -394,14 +394,14 @@ NorFlashFvbInitialize ( - EfiGcdMemoryTypeMemoryMappedIo, - Instance->DeviceBaseAddress, - RuntimeMmioRegionSize, -- EFI_MEMORY_WC | EFI_MEMORY_RUNTIME -+ EFI_MEMORY_UC | EFI_MEMORY_RUNTIME - ); - ASSERT_EFI_ERROR (Status); - - Status = gDS->SetMemorySpaceAttributes ( - Instance->DeviceBaseAddress, - RuntimeMmioRegionSize, -- EFI_MEMORY_WC | EFI_MEMORY_RUNTIME -+ EFI_MEMORY_UC | EFI_MEMORY_RUNTIME - ); - ASSERT_EFI_ERROR (Status); - --- -2.39.0 - diff --git a/0033-ArmVirtPkg-ArmVirtQemu-Avoid-early-ID-map-on-Thunder.patch b/0033-ArmVirtPkg-ArmVirtQemu-Avoid-early-ID-map-on-Thunder.patch deleted file mode 100644 index 94f26f5..0000000 --- a/0033-ArmVirtPkg-ArmVirtQemu-Avoid-early-ID-map-on-Thunder.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 4cab22343b32fec515813584a2620d6dafe0b1c2 Mon Sep 17 00:00:00 2001 -From: Ard Biesheuvel -Date: Wed, 4 Jan 2023 16:51:35 +0100 -Subject: [PATCH 33/34] ArmVirtPkg/ArmVirtQemu: Avoid early ID map on ThunderX - -The early ID map used by ArmVirtQemu uses ASID scoped non-global -mappings, as this allows us to switch to the permanent ID map seamlessly -without the need for explicit TLB maintenance. - -However, this triggers a known erratum on ThunderX, which does not -tolerate non-global mappings that are executable at EL1, as this appears -to result in I-cache corruption. (Linux disables the KPTI based Meltdown -mitigation on ThunderX for the same reason) - -So work around this, by detecting the CPU implementor and part number, -and proceeding without the early ID map if a ThunderX CPU is detected. - -Note that this requires the C code to be built with strict alignment -again, as we may end up executing it with the MMU and caches off. - -Signed-off-by: Ard Biesheuvel -Acked-by: Laszlo Ersek -Tested-by: dann frazier -(cherry picked from commit ec54ce1f1ab41b92782b37ae59e752fff0ef9c41) ---- - ArmVirtPkg/ArmVirtQemu.dsc | 5 +++++ - .../AArch64/ArmPlatformHelper.S | 15 +++++++++++++++ - 2 files changed, 20 insertions(+) - -diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc -index a3d744931a15..6b4dc213a7f7 100644 ---- a/ArmVirtPkg/ArmVirtQemu.dsc -+++ b/ArmVirtPkg/ArmVirtQemu.dsc -@@ -31,6 +31,7 @@ [Defines] - DEFINE SECURE_BOOT_ENABLE = FALSE - DEFINE TPM2_ENABLE = FALSE - DEFINE TPM2_CONFIG_ENABLE = FALSE -+ DEFINE CAVIUM_ERRATUM_27456 = FALSE - - # - # Network definition -@@ -117,7 +118,11 @@ [LibraryClasses.common.UEFI_DRIVER] - UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf - - [BuildOptions] -+!if $(CAVIUM_ERRATUM_27456) == TRUE -+ GCC:*_*_AARCH64_PP_FLAGS = -DCAVIUM_ERRATUM_27456 -+!else - GCC:*_*_AARCH64_CC_XIPFLAGS == -+!endif - - !include NetworkPkg/NetworkBuildOptions.dsc.inc - -diff --git a/ArmVirtPkg/Library/ArmPlatformLibQemu/AArch64/ArmPlatformHelper.S b/ArmVirtPkg/Library/ArmPlatformLibQemu/AArch64/ArmPlatformHelper.S -index 05ccc7f9f043..1c0022c1efd9 100644 ---- a/ArmVirtPkg/Library/ArmPlatformLibQemu/AArch64/ArmPlatformHelper.S -+++ b/ArmVirtPkg/Library/ArmPlatformLibQemu/AArch64/ArmPlatformHelper.S -@@ -44,6 +44,21 @@ - - - ASM_FUNC(ArmPlatformPeiBootAction) -+#ifdef CAVIUM_ERRATUM_27456 -+ /* -+ * On Cavium ThunderX, using non-global mappings that are executable at EL1 -+ * results in I-cache corruption. So just avoid the early ID mapping there. -+ * -+ * MIDR implementor 0x43 -+ * MIDR part numbers 0xA1 0xA2 (but not 0xAF) -+ */ -+ mrs x0, midr_el1 // read the MIDR into X0 -+ ubfx x1, x0, #24, #8 // grab implementor id -+ ubfx x0, x0, #7, #9 // grab part number bits [11:3] -+ cmp x1, #0x43 // compare implementor id -+ ccmp x0, #0xA0 >> 3, #0, eq // compare part# bits [11:3] -+ b.eq 0f -+#endif - mrs x0, CurrentEL // check current exception level - tbz x0, #3, 0f // bail if above EL1 - ret --- -2.39.0 - diff --git a/0034-rh-openssl-add-crypto-bn-rsa_sup_mul.c-to-file-list.patch b/0034-rh-openssl-add-crypto-bn-rsa_sup_mul.c-to-file-list.patch deleted file mode 100644 index 55bfe20..0000000 --- a/0034-rh-openssl-add-crypto-bn-rsa_sup_mul.c-to-file-list.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 630fa990847e14507354a4d921143a8bfb255194 Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Fri, 10 Feb 2023 10:49:44 +0100 -Subject: [PATCH 34/34] rh openssl: add crypto/bn/rsa_sup_mul.c to file list - ---- - CryptoPkg/Library/OpensslLib/OpensslLib.inf | 1 + - CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/CryptoPkg/Library/OpensslLib/OpensslLib.inf b/CryptoPkg/Library/OpensslLib/OpensslLib.inf -index e446b51e66cd..7e78255467b1 100644 ---- a/CryptoPkg/Library/OpensslLib/OpensslLib.inf -+++ b/CryptoPkg/Library/OpensslLib/OpensslLib.inf -@@ -576,6 +576,7 @@ [Sources] - $(OPENSSL_PATH)/ssl/statem/statem_local.h - # Autogenerated files list ends here - # RHEL8-specific OpenSSL file list starts here -+ $(OPENSSL_PATH)/crypto/bn/rsa_sup_mul.c - $(OPENSSL_PATH)/crypto/evp/kdf_lib.c - $(OPENSSL_PATH)/crypto/evp/pkey_kdf.c - $(OPENSSL_PATH)/crypto/kdf/kbkdf.c -diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf -index c207dc8f4cfd..1c551cb0990c 100644 ---- a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf -+++ b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf -@@ -526,6 +526,7 @@ [Sources] - $(OPENSSL_PATH)/crypto/x509v3/v3_admis.h - # Autogenerated files list ends here - # RHEL8-specific OpenSSL file list starts here -+ $(OPENSSL_PATH)/crypto/bn/rsa_sup_mul.c - $(OPENSSL_PATH)/crypto/evp/kdf_lib.c - $(OPENSSL_PATH)/crypto/evp/pkey_kdf.c - $(OPENSSL_PATH)/crypto/kdf/kbkdf.c --- -2.39.1 - diff --git a/edk2.spec b/edk2.spec index e3bd106..e6e9c1d 100644 --- a/edk2.spec +++ b/edk2.spec @@ -78,38 +78,17 @@ Source90: DBXUpdate-20200729.x64.bin Patch0001: 0001-BaseTools-do-not-build-BrotliCompress-RH-only.patch Patch0002: 0002-MdeModulePkg-remove-package-private-Brotli-include-p.patch -#Patch0003: 0003-MdeModulePkg-TerminalDxe-add-other-text-resolutions-.patch -Patch0004: 0004-MdeModulePkg-TerminalDxe-set-xterm-resolution-on-mod.patch -Patch0005: 0005-OvmfPkg-take-PcdResizeXterm-from-the-QEMU-command-li.patch -Patch0006: 0006-ArmVirtPkg-take-PcdResizeXterm-from-the-QEMU-command.patch -Patch0007: 0007-OvmfPkg-enable-DEBUG_VERBOSE-RHEL-only.patch -Patch0008: 0008-OvmfPkg-silence-DEBUG_VERBOSE-0x00400000-in-QemuVide.patch -Patch0009: 0009-ArmVirtPkg-silence-DEBUG_VERBOSE-0x00400000-in-QemuR.patch -Patch0010: 0010-OvmfPkg-QemuRamfbDxe-Do-not-report-DXE-failure-on-Aa.patch -Patch0011: 0011-OvmfPkg-silence-EFI_D_VERBOSE-0x00400000-in-NvmExpre.patch -Patch0012: 0012-CryptoPkg-OpensslLib-list-RHEL8-specific-OpenSSL-fil.patch -Patch0013: 0013-OvmfPkg-QemuKernelLoaderFsDxe-suppress-error-on-no-k.patch -Patch0014: 0014-SecurityPkg-Tcg2Dxe-suppress-error-on-no-swtpm-in-si.patch -Patch0015: 0015-Tweak-the-tools_def-to-support-cross-compiling.patch -Patch0016: 0016-tools_def-add-fno-omit-frame-pointer-to-GCC48_-IA32-.patch -Patch0017: 0017-Revert-ArmVirtPkg-make-EFI_LOADER_DATA-non-executabl.patch -Patch0018: 0018-Revert-OvmfPkg-PlatformDxe-Handle-all-requests-in-Ex.patch -Patch0019: 0019-OvmfPkg-SmbiosPlatformDxe-use-PcdFirmware.patch -Patch0020: 0020-OvmfPkg-PlatformPei-AmdSev-stop-using-mPlatformInfoH.patch -Patch0021: 0021-OvmfPkg-PlatformPei-PeiFv-stop-using-mPlatformInfoHo.patch -Patch0022: 0022-OvmfPkg-PlatformPei-Q35-SMM-helpers-stop-using-mPlat.patch -Patch0023: 0023-OvmfPkg-PlatformPei-PeiMemory-stop-using-mPlatformIn.patch -Patch0024: 0024-OvmfPkg-PlatformPei-MemTypeInfo-stop-using-mPlatform.patch -Patch0025: 0025-OvmfPkg-PlatformPei-NoExec-stop-using-mPlatformInfoH.patch -Patch0026: 0026-OvmfPkg-PlatformPei-Verification-stop-using-mPlatfor.patch -Patch0027: 0027-OvmfPkg-PlatformPei-remove-mPlatformInfoHob.patch -Patch0028: 0028-OvmfPkg-PlatformPei-remove-mFeatureControlValue.patch -Patch0029: 0029-OvmfPkg-DebugLibIoPort-use-Rom-version-for-PEI.patch -Patch0030: 0030-OvmfPkg-QemuFwCfgLib-rewrite-fw_cfg-probe.patch -Patch0031: 0031-OvmfPkg-QemuFwCfgLib-remove-mQemuFwCfgSupported-mQem.patch -Patch0032: 0032-OvmfPkg-VirtNorFlashDxe-map-flash-memory-as-uncachea.patch -Patch0033: 0033-ArmVirtPkg-ArmVirtQemu-Avoid-early-ID-map-on-Thunder.patch -Patch0034: 0034-rh-openssl-add-crypto-bn-rsa_sup_mul.c-to-file-list.patch +Patch0003: 0003-MdeModulePkg-TerminalDxe-set-xterm-resolution-on-mod.patch +Patch0004: 0004-OvmfPkg-take-PcdResizeXterm-from-the-QEMU-command-li.patch +Patch0005: 0005-ArmVirtPkg-take-PcdResizeXterm-from-the-QEMU-command.patch +Patch0006: 0006-OvmfPkg-enable-DEBUG_VERBOSE-RHEL-only.patch +Patch0007: 0007-OvmfPkg-silence-DEBUG_VERBOSE-0x00400000-in-QemuVide.patch +Patch0008: 0008-ArmVirtPkg-silence-DEBUG_VERBOSE-0x00400000-in-QemuR.patch +Patch0009: 0009-OvmfPkg-QemuRamfbDxe-Do-not-report-DXE-failure-on-Aa.patch +Patch0010: 0010-OvmfPkg-silence-EFI_D_VERBOSE-0x00400000-in-NvmExpre.patch +Patch0011: 0011-CryptoPkg-OpensslLib-list-RHEL8-specific-OpenSSL-fil.patch +Patch0012: 0012-OvmfPkg-QemuKernelLoaderFsDxe-suppress-error-on-no-k.patch +Patch0013: 0013-SecurityPkg-Tcg2Dxe-suppress-error-on-no-swtpm-in-si.patch # python3-devel and libuuid-devel are required for building tools.