* Fri Jan 08 2021 Miroslav Rezanina <mrezanin@redhat.com> - 20200602gitca407c7246bf-1.el9
- Include fixes to build in RHEL 9 environment (bz#1906468) - Resolves: bz#1906468 ([RHEL9][FTBFS] edk2 FTBFS on Red Hat Enterprise Linux 9.0.0 Alpha)
This commit is contained in:
		
							parent
							
								
									7e50666112
								
							
						
					
					
						commit
						5b6a4a1f9e
					
				
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -5,3 +5,4 @@ | ||||
| /softfloat-20180726-gitb64af41.tar.xz | ||||
| /qemu-ovmf-secureboot-20190521-gitf158f12.tar.xz | ||||
| /qemu-ovmf-secureboot-20200228-gitc3e16b3.tar.xz | ||||
| /openssl-rhel-bdd048e929dcfcf2f046d74e812e0e3d5fc58504.tar.xz | ||||
|  | ||||
| @ -1,57 +0,0 @@ | ||||
| From f8f04bc629c0874a4e7a361a55053005f9196152 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Wed, 27 Jan 2016 03:05:18 +0100 | ||||
| Subject: [PATCH] OvmfPkg: silence EFI_D_VERBOSE (0x00400000) in the DXE core | ||||
| 
 | ||||
| The DXE core logs a bunch of Properties Table and Memory Attributes Table | ||||
| related information, on the EFI_D_VERBOSE level, that I am at the moment | ||||
| not interested in. Suppress said output. | ||||
| 
 | ||||
| Contributed-under: TianoCore Contribution Agreement 1.0 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| ---
 | ||||
|  OvmfPkg/OvmfPkgIa32.dsc    | 2 ++ | ||||
|  OvmfPkg/OvmfPkgIa32X64.dsc | 2 ++ | ||||
|  OvmfPkg/OvmfPkgX64.dsc     | 2 ++ | ||||
|  3 files changed, 6 insertions(+) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| index 3ddc0c5edb..146e429126 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| @@ -704,6 +704,8 @@
 | ||||
|      <LibraryClasses> | ||||
|        NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf | ||||
|        DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
 | ||||
|    } | ||||
|   | ||||
|    MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| index aba4a6cc24..cdf5abba99 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| @@ -718,6 +718,8 @@
 | ||||
|      <LibraryClasses> | ||||
|        NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf | ||||
|        DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
 | ||||
|    } | ||||
|   | ||||
|    MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf | ||||
| diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| index 99c0ba4465..7d59d768fa 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| @@ -714,6 +714,8 @@
 | ||||
|      <LibraryClasses> | ||||
|        NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf | ||||
|        DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
 | ||||
|    } | ||||
|   | ||||
|    MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf | ||||
| @ -1,54 +0,0 @@ | ||||
| From 5b0813e1885c0234deafcb828f1747c766287c51 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Sun, 8 Jul 2012 14:26:07 +0200 | ||||
| Subject: [PATCH] OvmfPkg: enable DEBUG_VERBOSE | ||||
| 
 | ||||
| Enable verbose debug logs. | ||||
| 
 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| ---
 | ||||
|  OvmfPkg/OvmfPkgIa32.dsc    | 2 +- | ||||
|  OvmfPkg/OvmfPkgIa32X64.dsc | 2 +- | ||||
|  OvmfPkg/OvmfPkgX64.dsc     | 2 +- | ||||
|  3 files changed, 3 insertions(+), 3 deletions(-) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| index 146e429126..fce6051e47 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| @@ -514,7 +514,7 @@
 | ||||
|    # 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 cdf5abba99..983eebfaa7 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| @@ -518,7 +518,7 @@
 | ||||
|    # 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 7d59d768fa..ea62b82ff7 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| @@ -518,7 +518,7 @@
 | ||||
|    # 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 | ||||
| @ -1,30 +0,0 @@ | ||||
| From 04d5e4e3e7c8444dbb52784a2d71cf284c9e05a0 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Thu, 20 Feb 2014 22:54:45 +0100 | ||||
| Subject: [PATCH] OvmfPkg: increase max debug message length to 512 | ||||
| 
 | ||||
| Upstream prefers short debug messages (sometimes even limited to 80 | ||||
| characters), but any line length under 512 characters is just unsuitable | ||||
| for effective debugging. (For example, config strings in HII routing, | ||||
| logged by the platform driver "OvmfPkg/PlatformDxe" on DEBUG_VERBOSE | ||||
| level, can be several hundred characters long.) 512 is an empirically good | ||||
| value. | ||||
| 
 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| ---
 | ||||
|  OvmfPkg/Library/PlatformDebugLibIoPort/DebugLib.c | 2 +- | ||||
|  1 file changed, 1 insertion(+), 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/Library/PlatformDebugLibIoPort/DebugLib.c b/OvmfPkg/Library/PlatformDebugLibIoPort/DebugLib.c
 | ||||
| index dffb20822d..0577c43c3d 100644
 | ||||
| --- a/OvmfPkg/Library/PlatformDebugLibIoPort/DebugLib.c
 | ||||
| +++ b/OvmfPkg/Library/PlatformDebugLibIoPort/DebugLib.c
 | ||||
| @@ -21,7 +21,7 @@
 | ||||
|  // | ||||
|  // Define the maximum debug and assert message length that this library supports | ||||
|  // | ||||
| -#define MAX_DEBUG_MESSAGE_LENGTH  0x100
 | ||||
| +#define MAX_DEBUG_MESSAGE_LENGTH  0x200
 | ||||
|   | ||||
|  // | ||||
|  // VA_LIST can not initialize to NULL for all compiler, so we use this to | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -1,7 +1,7 @@ | ||||
| From cab35d13e43ef37e746befaa1f3c8200edf4e420 Mon Sep 17 00:00:00 2001 | ||||
| From db8ccca337e2c5722c1d408d2541cf653d3371a2 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Thu, 4 Jun 2020 13:34:12 +0200 | ||||
| Subject: [PATCH] BaseTools: do not build BrotliCompress (RH only) | ||||
| Subject: BaseTools: do not build BrotliCompress (RH only) | ||||
| 
 | ||||
| Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> | ||||
| RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: | ||||
| @ -18,8 +18,7 @@ Do not attempt to build BrotliCompress. | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| ---
 | ||||
|  BaseTools/Source/C/GNUmakefile | 1 - | ||||
|  MdeModulePkg/MdeModulePkg.dec  | 1 - | ||||
|  2 files changed, 2 deletions(-) | ||||
|  1 file changed, 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/BaseTools/Source/C/GNUmakefile b/BaseTools/Source/C/GNUmakefile
 | ||||
| index df4eb64ea9..52777eaff1 100644
 | ||||
| @ -33,15 +32,6 @@ index df4eb64ea9..52777eaff1 100644 | ||||
|    VfrCompile \ | ||||
|    EfiRom \ | ||||
|    GenFfs \ | ||||
| diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec
 | ||||
| index e562bed57e..7367adbaa3 100644
 | ||||
| --- a/MdeModulePkg/MdeModulePkg.dec
 | ||||
| +++ b/MdeModulePkg/MdeModulePkg.dec
 | ||||
| @@ -25,7 +25,6 @@
 | ||||
|    Include | ||||
|   | ||||
|  [Includes.Common.Private] | ||||
| -  Library/BrotliCustomDecompressLib/brotli/c/include
 | ||||
|   | ||||
|  [LibraryClasses] | ||||
|    ##  @libraryclass  Defines a set of methods to reset whole system. | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
| @ -0,0 +1,43 @@ | ||||
| From e05e0de713c4a2b8adb6ff9809611f222bfe50ed Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Thu, 4 Jun 2020 13:39:08 +0200 | ||||
| Subject: MdeModulePkg: remove package-private Brotli include path (RH only) | ||||
| 
 | ||||
| Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> | ||||
| RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: | ||||
| 
 | ||||
| - New patch.
 | ||||
| 
 | ||||
| Originating from upstream commit 58802e02c41b | ||||
| ("MdeModulePkg/BrotliCustomDecompressLib: Make brotli a submodule", | ||||
| 2020-04-16), "MdeModulePkg/MdeModulePkg.dec" contains a package-internal | ||||
| include path into a Brotli submodule. | ||||
| 
 | ||||
| The edk2 build system requires such include paths to resolve successfully, | ||||
| regardless of the firmware platform being built. Because | ||||
| BrotliCustomDecompressLib is not consumed by any OvmfPkg or ArmVirtPkg | ||||
| platforms, and we've removed the submodule earlier in this patch set, | ||||
| remove the include path too. | ||||
| 
 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| ---
 | ||||
|  MdeModulePkg/MdeModulePkg.dec | 3 --- | ||||
|  1 file changed, 3 deletions(-) | ||||
| 
 | ||||
| diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec
 | ||||
| index 4f44af6948..031043ec28 100644
 | ||||
| --- a/MdeModulePkg/MdeModulePkg.dec
 | ||||
| +++ b/MdeModulePkg/MdeModulePkg.dec
 | ||||
| @@ -24,9 +24,6 @@
 | ||||
|  [Includes] | ||||
|    Include | ||||
|   | ||||
| -[Includes.Common.Private]
 | ||||
| -  Library/BrotliCustomDecompressLib/brotli/c/include
 | ||||
| -
 | ||||
|  [LibraryClasses] | ||||
|    ##  @libraryclass  Defines a set of methods to reset whole system. | ||||
|    ResetSystemLib|Include/Library/ResetSystemLib.h | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
							
								
								
									
										614
									
								
								0009-advertise-OpenSSL-on-TianoCore-splash-screen-boot-lo.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										614
									
								
								0009-advertise-OpenSSL-on-TianoCore-splash-screen-boot-lo.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,614 @@ | ||||
| From cee80878b19e51d9b3c63335c681f152dcc59764 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Wed, 11 Jun 2014 23:33:33 +0200 | ||||
| Subject: advertise OpenSSL on TianoCore splash screen / boot logo (RHEL only) | ||||
| 
 | ||||
| Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> | ||||
| RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: | ||||
| 
 | ||||
| - Replace the open-coded BSDL with "SPDX-License-Identifier:
 | ||||
|   BSD-2-Clause-Patent" in the following files: | ||||
| 
 | ||||
|   - MdeModulePkg/Logo/Logo-OpenSSL.idf | ||||
|   - MdeModulePkg/Logo/LogoOpenSSLDxe.inf | ||||
|   - MdeModulePkg/Logo/LogoOpenSSLDxe.uni | ||||
| 
 | ||||
|   (This should have been done in the previous rebase, because the same | ||||
|   license block changes had been applied to MdeModulePkg/Logo/ in upstream | ||||
|   commit 9d510e61fcee ("MdeModulePkg: Replace BSD License with BSD+Patent | ||||
|   License", 2019-04-09), part of tag edk2-stable201905.) | ||||
| 
 | ||||
| Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] -> | ||||
| RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase: | ||||
| 
 | ||||
| - trivial context update (performed silently by git-cherry-pick) for
 | ||||
|   upstream commit 3207a872a405 ("OvmfPkg: Update DSC/FDF files to consume | ||||
|   CSM components in OvmfPkg", 2019-06-14) | ||||
| 
 | ||||
| - A note for the future: the logo could change completely in a subsequent
 | ||||
|   rebase. See <https://bugzilla.tianocore.org/show_bug.cgi?id=2050> (in | ||||
|   CONFIRMED status at the time of writing). | ||||
| 
 | ||||
| Notes about the RHEL-8.0/20180508-ee3198e672e2 -> | ||||
| RHEL-8.1/20190308-89910a39dcfd rebase: | ||||
| 
 | ||||
| - Upstream edk2 removed the obsoleted network drivers in MdeModulePkg. The
 | ||||
|   OvmfPkg platforms were adapted in commit d2f1f6423bd1 ("OvmfPkg: Replace | ||||
|   obsoleted network drivers from platform DSC/FDF.", 2018-11-06). The | ||||
|   ArmVirtPkg platforms were adapted in commit 9a67ba261fe9 ("ArmVirtPkg: | ||||
|   Replace obsoleted network drivers from platform DSC/FDF.", 2018-12-14). | ||||
| 
 | ||||
|   Consequently, because the NetworkPkg iSCSI driver requires OpenSSL | ||||
|   unconditionally, as explained in | ||||
|   <https://bugzilla.tianocore.org/show_bug.cgi?id=1278#c3>, this patch now | ||||
|   builds LogoOpenSSLDxe unconditionally, squashing and updating previous | ||||
|   downstream commits | ||||
| 
 | ||||
|   - 8e8ea8811e26 advertise OpenSSL on TianoCore splash screen / boot logo | ||||
|                  (RHEL only) | ||||
|   - 02ed2c501cdd advertise OpenSSL due to IPv6 enablement too (RHEL only) | ||||
| 
 | ||||
| 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: | ||||
| 
 | ||||
| - Adapted to upstream 25184ec33c36 ("MdeModulePkg/Logo.idf: Remove
 | ||||
|   incorrect comments.", 2018-02-28) | ||||
| 
 | ||||
| Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
| 
 | ||||
| - After picking previous downstream-only commit 32192c62e289, carry new
 | ||||
|   upstream commit e01e9ae28250 ("MdeModulePkg/LogoDxe: Add missing | ||||
|   dependency gEfiHiiImageExProtocolGuid", 2017-03-16) over to | ||||
|   "LogoOpenSSLDxe.inf". | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| 
 | ||||
| - For more fun, upstream completely changed the way logo bitmaps are
 | ||||
|   embedded in the firmware binary (see for example commit ab970515d2c6, | ||||
|   "OvmfPkg: Use the new LogoDxe driver", 2016-09-26). Therefore in this | ||||
|   rebase, we reimplement the previous downstream-only commit e775fb20c999, | ||||
|   as described below. | ||||
| 
 | ||||
| - Beyond the new bitmap file (which we preserve intact from the last
 | ||||
|   downstream branch), we introduce: | ||||
| 
 | ||||
|   - a new IDF (image description file) referencing the new BMP, | ||||
| 
 | ||||
|   - a new driver INF file, referencing the new BMP and new IDF (same C | ||||
|     source code though), | ||||
| 
 | ||||
|   - a new UNI (~description) file for the new driver INF file. | ||||
| 
 | ||||
| - In the OVMF DSC and FDF files, we select the new driver INF for
 | ||||
|   inclusion if either SECURE_BOOT_ENABLE or TLS_ENABLE is set, as they | ||||
|   both make use of OpenSSL (although different subsets of it). | ||||
| 
 | ||||
| - In the AAVMF DSC and FDF files, we only look at SECURE_BOOT_ENABLE,
 | ||||
|   because the ArmVirtQemu platform does not support TLS_ENABLE yet. | ||||
| 
 | ||||
| - This patch is best displayed with "git show --find-copies-harder".
 | ||||
| 
 | ||||
| Notes about the d7c0dfa -> 90bb4c5 rebase: | ||||
| 
 | ||||
| - squash in the following downstream-only commits (made originally for
 | ||||
|   <https://bugzilla.redhat.com/show_bug.cgi?id=1308678>): | ||||
| 
 | ||||
|   - eef9eb0 restore TianoCore splash logo without OpenSSL advertisment | ||||
|             (RHEL only) | ||||
| 
 | ||||
|   - 25842f0 OvmfPkg, ArmVirtPkg: show OpenSSL-less logo without Secure | ||||
|             Boot (RH only) | ||||
| 
 | ||||
|   The reason is that ideas keep changing when and where to include the | ||||
|   Secure Boot feature, so the logo must be controllable directly on the | ||||
|   build command line, from the RPM spec file. See the following | ||||
|   references: | ||||
| 
 | ||||
|   - https://post-office.corp.redhat.com/mailman/private/virt-devel/2016-March/msg00253.html | ||||
|   - https://post-office.corp.redhat.com/mailman/private/virt-devel/2016-April/msg00118.html | ||||
|   - https://bugzilla.redhat.com/show_bug.cgi?id=1323363 | ||||
| 
 | ||||
| - This squashed variant should remain the final version of this patch.
 | ||||
| 
 | ||||
| Notes about the c9e5618 -> b9ffeab rebase: | ||||
| - AAVMF gained Secure Boot support, therefore the logo is again modified
 | ||||
|   in the common location, and no FDF changes are necessary. | ||||
| 
 | ||||
| Notes about the 9ece15a -> c9e5618 rebase: | ||||
| - Logo.bmp is no longer modified in-place; instead a modified copy is
 | ||||
|   created. That's because AAVMF includes the logo too, but it doesn't | ||||
|   include OpenSSL / Secure Boot, so we need the original copy too. | ||||
| 
 | ||||
| Because we may include the OpenSSL library in our OVMF and AAVMF builds | ||||
| now, we should advertise it as required by its license. This patch takes | ||||
| the original TianoCore logo, shifts it up by 20 pixels, and adds the | ||||
| horizontally centered message | ||||
| 
 | ||||
|   This product includes software developed by the OpenSSL Project | ||||
|   for use in the OpenSSL Toolkit (http://www.openssl.org/) | ||||
| 
 | ||||
| below. | ||||
| 
 | ||||
| Logo-OpenSSL.bmp: PC bitmap, Windows 3.x format, 469 x 111 x 24 | ||||
| Logo.bmp:         PC bitmap, Windows 3.x format, 193 x 58 x 8 | ||||
| 
 | ||||
| Downstream only because upstream edk2 does not intend to release a | ||||
| secure-boot-enabled OVMF build. (However the advertising requirement in | ||||
| the OpenSSL license, | ||||
| "CryptoPkg/Library/OpensslLib/openssl-1.0.2*/LICENSE", has been discussed | ||||
| nonetheless, which is why I'm changing the logo.) | ||||
| 
 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| (cherry picked from commit 32192c62e289f261f5ce74acee48e5a94561f10b) | ||||
| (cherry picked from commit 33a710cd613c2ca7d534b8401e2f9f2178af05be) | ||||
| (cherry picked from commit 0b2d90347cb016cc71c2de62e941a2a4ab0f35a3) | ||||
| (cherry picked from commit 8e8ea8811e269cdb31103c70fcd91d2dcfb1755d) | ||||
| (cherry picked from commit 727c11ecd9f34990312e14f239e6238693619849) | ||||
| (cherry picked from commit 740d239222c2656ae8eeb2d1cc4802ce5b07f3d2) | ||||
| ---
 | ||||
|  ArmVirtPkg/ArmVirtQemu.dsc           |   2 +- | ||||
|  ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc |   2 +- | ||||
|  ArmVirtPkg/ArmVirtQemuKernel.dsc     |   2 +- | ||||
|  MdeModulePkg/Logo/Logo-OpenSSL.bmp   | Bin 0 -> 156342 bytes | ||||
|  MdeModulePkg/Logo/Logo-OpenSSL.idf   |  10 +++++ | ||||
|  MdeModulePkg/Logo/LogoOpenSSLDxe.inf |  56 +++++++++++++++++++++++++++ | ||||
|  MdeModulePkg/Logo/LogoOpenSSLDxe.uni |  17 ++++++++ | ||||
|  OvmfPkg/OvmfPkgIa32.dsc              |   2 +- | ||||
|  OvmfPkg/OvmfPkgIa32.fdf              |   2 +- | ||||
|  OvmfPkg/OvmfPkgIa32X64.dsc           |   2 +- | ||||
|  OvmfPkg/OvmfPkgIa32X64.fdf           |   2 +- | ||||
|  OvmfPkg/OvmfPkgX64.dsc               |   2 +- | ||||
|  OvmfPkg/OvmfPkgX64.fdf               |   2 +- | ||||
|  13 files changed, 92 insertions(+), 9 deletions(-) | ||||
|  create mode 100644 MdeModulePkg/Logo/Logo-OpenSSL.bmp | ||||
|  create mode 100644 MdeModulePkg/Logo/Logo-OpenSSL.idf | ||||
|  create mode 100644 MdeModulePkg/Logo/LogoOpenSSLDxe.inf | ||||
|  create mode 100644 MdeModulePkg/Logo/LogoOpenSSLDxe.uni | ||||
| 
 | ||||
| diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
 | ||||
| index 3f649c91d8..360094ab6a 100644
 | ||||
| --- a/ArmVirtPkg/ArmVirtQemu.dsc
 | ||||
| +++ b/ArmVirtPkg/ArmVirtQemu.dsc
 | ||||
| @@ -424,7 +424,7 @@
 | ||||
|    MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf | ||||
|    MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf | ||||
|    MdeModulePkg/Universal/BdsDxe/BdsDxe.inf | ||||
| -  MdeModulePkg/Logo/LogoDxe.inf
 | ||||
| +  MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 | ||||
|    MdeModulePkg/Application/UiApp/UiApp.inf { | ||||
|      <LibraryClasses> | ||||
|        NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf | ||||
| diff --git a/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc b/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc
 | ||||
| index a2f4bd62c8..9b94043085 100644
 | ||||
| --- a/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc
 | ||||
| +++ b/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc
 | ||||
| @@ -193,7 +193,7 @@ READ_LOCK_STATUS   = TRUE
 | ||||
|    # | ||||
|    # TianoCore logo (splash screen) | ||||
|    # | ||||
| -  INF MdeModulePkg/Logo/LogoDxe.inf
 | ||||
| +  INF MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 | ||||
|   | ||||
|    # | ||||
|    # Ramdisk support | ||||
| diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc
 | ||||
| index 2a6fd6bc06..d186263e18 100644
 | ||||
| --- a/ArmVirtPkg/ArmVirtQemuKernel.dsc
 | ||||
| +++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc
 | ||||
| @@ -363,7 +363,7 @@
 | ||||
|    MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf | ||||
|    MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf | ||||
|    MdeModulePkg/Universal/BdsDxe/BdsDxe.inf | ||||
| -  MdeModulePkg/Logo/LogoDxe.inf
 | ||||
| +  MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 | ||||
|    MdeModulePkg/Application/UiApp/UiApp.inf { | ||||
|      <LibraryClasses> | ||||
|        NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf | ||||
| diff --git a/MdeModulePkg/Logo/Logo-OpenSSL.bmp b/MdeModulePkg/Logo/Logo-OpenSSL.bmp
 | ||||
| new file mode 100644 | ||||
| index 0000000000000000000000000000000000000000..4af5740232ce484a939a5852604e35711ea88a29
 | ||||
| GIT binary patch | ||||
| literal 156342 | ||||
| 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 | ||||
| BLUI5A | ||||
| 
 | ||||
| literal 0 | ||||
| HcmV?d00001 | ||||
| 
 | ||||
| diff --git a/MdeModulePkg/Logo/Logo-OpenSSL.idf b/MdeModulePkg/Logo/Logo-OpenSSL.idf
 | ||||
| new file mode 100644 | ||||
| index 0000000000..2a60ac61b7
 | ||||
| --- /dev/null
 | ||||
| +++ b/MdeModulePkg/Logo/Logo-OpenSSL.idf
 | ||||
| @@ -0,0 +1,10 @@
 | ||||
| +// /** @file
 | ||||
| +// Platform Logo image definition file.
 | ||||
| +//
 | ||||
| +// Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>
 | ||||
| +//
 | ||||
| +// SPDX-License-Identifier: BSD-2-Clause-Patent
 | ||||
| +//
 | ||||
| +// **/
 | ||||
| +
 | ||||
| +#image IMG_LOGO Logo-OpenSSL.bmp
 | ||||
| diff --git a/MdeModulePkg/Logo/LogoOpenSSLDxe.inf b/MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 | ||||
| new file mode 100644 | ||||
| index 0000000000..d1207663b2
 | ||||
| --- /dev/null
 | ||||
| +++ b/MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 | ||||
| @@ -0,0 +1,56 @@
 | ||||
| +## @file
 | ||||
| +#  The default logo bitmap picture shown on setup screen.
 | ||||
| +#
 | ||||
| +#  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>
 | ||||
| +#
 | ||||
| +#  SPDX-License-Identifier: BSD-2-Clause-Patent
 | ||||
| +#
 | ||||
| +#
 | ||||
| +##
 | ||||
| +
 | ||||
| +[Defines]
 | ||||
| +  INF_VERSION                    = 0x00010005
 | ||||
| +  BASE_NAME                      = LogoOpenSSLDxe
 | ||||
| +  MODULE_UNI_FILE                = LogoOpenSSLDxe.uni
 | ||||
| +  FILE_GUID                      = 9CAE7B89-D48D-4D68-BBC4-4C0F1D48CDFF
 | ||||
| +  MODULE_TYPE                    = DXE_DRIVER
 | ||||
| +  VERSION_STRING                 = 1.0
 | ||||
| +
 | ||||
| +  ENTRY_POINT                    = InitializeLogo
 | ||||
| +#
 | ||||
| +#  This flag specifies whether HII resource section is generated into PE image.
 | ||||
| +#
 | ||||
| +  UEFI_HII_RESOURCE_SECTION      = TRUE
 | ||||
| +
 | ||||
| +#
 | ||||
| +# The following information is for reference only and not required by the build tools.
 | ||||
| +#
 | ||||
| +#  VALID_ARCHITECTURES           = IA32 X64
 | ||||
| +#
 | ||||
| +
 | ||||
| +[Sources]
 | ||||
| +  Logo-OpenSSL.bmp
 | ||||
| +  Logo.c
 | ||||
| +  Logo-OpenSSL.idf
 | ||||
| +
 | ||||
| +[Packages]
 | ||||
| +  MdeModulePkg/MdeModulePkg.dec
 | ||||
| +  MdePkg/MdePkg.dec
 | ||||
| +
 | ||||
| +[LibraryClasses]
 | ||||
| +  UefiBootServicesTableLib
 | ||||
| +  UefiDriverEntryPoint
 | ||||
| +  DebugLib
 | ||||
| +
 | ||||
| +[Protocols]
 | ||||
| +  gEfiHiiDatabaseProtocolGuid        ## CONSUMES
 | ||||
| +  gEfiHiiImageExProtocolGuid         ## CONSUMES
 | ||||
| +  gEfiHiiPackageListProtocolGuid     ## PRODUCES CONSUMES
 | ||||
| +  gEdkiiPlatformLogoProtocolGuid     ## PRODUCES
 | ||||
| +
 | ||||
| +[Depex]
 | ||||
| +  gEfiHiiDatabaseProtocolGuid AND
 | ||||
| +  gEfiHiiImageExProtocolGuid
 | ||||
| +
 | ||||
| +[UserExtensions.TianoCore."ExtraFiles"]
 | ||||
| +  LogoDxeExtra.uni
 | ||||
| diff --git a/MdeModulePkg/Logo/LogoOpenSSLDxe.uni b/MdeModulePkg/Logo/LogoOpenSSLDxe.uni
 | ||||
| new file mode 100644 | ||||
| index 0000000000..6439502b6a
 | ||||
| --- /dev/null
 | ||||
| +++ b/MdeModulePkg/Logo/LogoOpenSSLDxe.uni
 | ||||
| @@ -0,0 +1,17 @@
 | ||||
| +// /** @file
 | ||||
| +// The logo bitmap picture (with OpenSSL advertisment) shown on setup screen.
 | ||||
| +//
 | ||||
| +// This module provides the logo bitmap picture (with OpenSSL advertisment)
 | ||||
| +// shown on setup screen, through EDKII Platform Logo protocol.
 | ||||
| +//
 | ||||
| +// Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
 | ||||
| +//
 | ||||
| +// SPDX-License-Identifier: BSD-2-Clause-Patent
 | ||||
| +//
 | ||||
| +// **/
 | ||||
| +
 | ||||
| +
 | ||||
| +#string STR_MODULE_ABSTRACT             #language en-US "Provides the logo bitmap picture (with OpenSSL advertisment) shown on setup screen."
 | ||||
| +
 | ||||
| +#string STR_MODULE_DESCRIPTION          #language en-US "This module provides the logo bitmap picture (with OpenSSL advertisment) shown on setup screen, through EDKII Platform Logo protocol."
 | ||||
| +
 | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| index d0df9cbbfb..f8317a4f5d 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| @@ -750,7 +750,7 @@
 | ||||
|        NULL|OvmfPkg/Csm/LegacyBootManagerLib/LegacyBootManagerLib.inf | ||||
|  !endif | ||||
|    } | ||||
| -  MdeModulePkg/Logo/LogoDxe.inf
 | ||||
| +  MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 | ||||
|    MdeModulePkg/Application/UiApp/UiApp.inf { | ||||
|      <LibraryClasses> | ||||
|        NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf
 | ||||
| index e2b759aa8d..ec64551bcb 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32.fdf
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32.fdf
 | ||||
| @@ -294,7 +294,7 @@ INF  OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf
 | ||||
|  !endif | ||||
|  INF  ShellPkg/Application/Shell/Shell.inf | ||||
|   | ||||
| -INF MdeModulePkg/Logo/LogoDxe.inf
 | ||||
| +INF MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 | ||||
|   | ||||
|  # | ||||
|  # Network modules | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| index b3ae62fee9..55423d356c 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| @@ -764,7 +764,7 @@
 | ||||
|        NULL|OvmfPkg/Csm/LegacyBootManagerLib/LegacyBootManagerLib.inf | ||||
|  !endif | ||||
|    } | ||||
| -  MdeModulePkg/Logo/LogoDxe.inf
 | ||||
| +  MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 | ||||
|    MdeModulePkg/Application/UiApp/UiApp.inf { | ||||
|      <LibraryClasses> | ||||
|        NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf
 | ||||
| index bfca1eff9e..2f02ac2d73 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32X64.fdf
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32X64.fdf
 | ||||
| @@ -295,7 +295,7 @@ INF  OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf
 | ||||
|  !endif | ||||
|  INF  ShellPkg/Application/Shell/Shell.inf | ||||
|   | ||||
| -INF MdeModulePkg/Logo/LogoDxe.inf
 | ||||
| +INF MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 | ||||
|   | ||||
|  # | ||||
|  # Network modules | ||||
| diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| index f7fe75ebf5..17aeeed96e 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| @@ -760,7 +760,7 @@
 | ||||
|        NULL|OvmfPkg/Csm/LegacyBootManagerLib/LegacyBootManagerLib.inf | ||||
|  !endif | ||||
|    } | ||||
| -  MdeModulePkg/Logo/LogoDxe.inf
 | ||||
| +  MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 | ||||
|    MdeModulePkg/Application/UiApp/UiApp.inf { | ||||
|      <LibraryClasses> | ||||
|        NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf | ||||
| diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf
 | ||||
| index bfca1eff9e..2f02ac2d73 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgX64.fdf
 | ||||
| +++ b/OvmfPkg/OvmfPkgX64.fdf
 | ||||
| @@ -295,7 +295,7 @@ INF  OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf
 | ||||
|  !endif | ||||
|  INF  ShellPkg/Application/Shell/Shell.inf | ||||
|   | ||||
| -INF MdeModulePkg/Logo/LogoDxe.inf
 | ||||
| +INF MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 | ||||
|   | ||||
|  # | ||||
|  # Network modules | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
| @ -0,0 +1,76 @@ | ||||
| From a95cff0b9573bf23699551beb4786383f697ff1e Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Thu, 20 Feb 2014 22:54:45 +0100 | ||||
| Subject: OvmfPkg: increase max debug message length to 512 (RHEL only) | ||||
| 
 | ||||
| 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: | ||||
| 
 | ||||
| - trivial context difference due to upstream commit 2fe5f2f52918
 | ||||
|   ("OvmfPkg/PlatformDebugLibIoPort: Add new APIs", 2019-04-02), resolved | ||||
|   by git-cherry-pick automatically | ||||
| 
 | ||||
| Notes about the RHEL-8.0/20180508-ee3198e672e2 -> | ||||
| RHEL-8.1/20190308-89910a39dcfd rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| 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
 | ||||
| 
 | ||||
| Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Upstream prefers short debug messages (sometimes even limited to 80 | ||||
| characters), but any line length under 512 characters is just unsuitable | ||||
| for effective debugging. (For example, config strings in HII routing, | ||||
| logged by the platform driver "OvmfPkg/PlatformDxe" on DEBUG_VERBOSE | ||||
| level, can be several hundred characters long.) 512 is an empirically good | ||||
| value. | ||||
| 
 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| (cherry picked from commit bfe568d18dba15602604f155982e3b73add63dfb) | ||||
| (cherry picked from commit 29435a32ec9428720c74c454ce9817662e601fb6) | ||||
| (cherry picked from commit 58e1d1ebb78bfdaf05f4c6e8abf8d4908dfa038a) | ||||
| (cherry picked from commit 1df2c822c996ad767f2f45570ab2686458f7604a) | ||||
| (cherry picked from commit 22c9b4e971c70c69b4adf8eb93133824ccb6426a) | ||||
| (cherry picked from commit a1260c9122c95bcbef1efc5eebe11902767813c2) | ||||
| (cherry picked from commit e949bab1268f83f0f5815a96cd1cb9dd3b21bfb5) | ||||
| ---
 | ||||
|  OvmfPkg/Library/PlatformDebugLibIoPort/DebugLib.c | 2 +- | ||||
|  1 file changed, 1 insertion(+), 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/Library/PlatformDebugLibIoPort/DebugLib.c b/OvmfPkg/Library/PlatformDebugLibIoPort/DebugLib.c
 | ||||
| index dffb20822d..0577c43c3d 100644
 | ||||
| --- a/OvmfPkg/Library/PlatformDebugLibIoPort/DebugLib.c
 | ||||
| +++ b/OvmfPkg/Library/PlatformDebugLibIoPort/DebugLib.c
 | ||||
| @@ -21,7 +21,7 @@
 | ||||
|  // | ||||
|  // Define the maximum debug and assert message length that this library supports | ||||
|  // | ||||
| -#define MAX_DEBUG_MESSAGE_LENGTH  0x100
 | ||||
| +#define MAX_DEBUG_MESSAGE_LENGTH  0x200
 | ||||
|   | ||||
|  // | ||||
|  // VA_LIST can not initialize to NULL for all compiler, so we use this to | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
| @ -1,7 +1,42 @@ | ||||
| From 31dcc494a7c3ce1bbb1d35b42ba3b6359ca971cf Mon Sep 17 00:00:00 2001 | ||||
| From 99da4393139d428baf09d751af3d072229839126 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Thu, 12 Jun 2014 00:17:59 +0200 | ||||
| Subject: [PATCH] OvmfPkg: QemuVideoDxe: enable debug messages in VbeShim | ||||
| Subject: OvmfPkg: QemuVideoDxe: enable debug messages in VbeShim (RHEL only) | ||||
| 
 | ||||
| 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 changes
 | ||||
| 
 | ||||
| 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
 | ||||
|   <https://bugzilla.redhat.com/show_bug.cgi?id=1503316#c0> | ||||
| 
 | ||||
| Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| The Int10h VBE Shim is capable of emitting short debug messages when the | ||||
| win2k8r2 UEFI guest uses (emulates) the Video BIOS. In upstream the quiet | ||||
| @ -11,18 +46,20 @@ For this patch, the DEBUG macro is enabled in the assembly file, and then | ||||
| the header file is regenerated from the assembly, by running | ||||
| "OvmfPkg/QemuVideoDxe/VbeShim.sh". | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| "VbeShim.h" is not auto-generated; it is manually generated. The patch | ||||
| does not add "VbeShim.h", it just updates both "VbeShim.asm" and (the | ||||
| manually re-generated) "VbeShim.h" atomically. Doing so helps with local | ||||
| downstream builds, with bisection, and also keeps redhat/README a bit | ||||
| simpler. | ||||
| 
 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| (cherry picked from commit ccda46526bb2e573d9b54f0db75d27e442b4566f) | ||||
| (cherry picked from commit ed45b26dbeadd63dd8f2edf627290957d8bbb3b2) | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| (cherry picked from commit 9a8a034ebc082f86fdbb54dc1303a5059508e14c) | ||||
| (cherry picked from commit 7046d6040181bb0f76a5ebd680e0dc701c895dba) | ||||
| (cherry picked from commit 4dd1cc745bc9a8c8b32b5810b40743fed1e36d7e) | ||||
| (cherry picked from commit bd264265a99c60f45cadaa4109a9db59ae218471) | ||||
| (cherry picked from commit 3aa0316ea1db5416cb528179a3ba5ce37c1279b7) | ||||
| ---
 | ||||
|  OvmfPkg/QemuVideoDxe/VbeShim.asm |   2 +- | ||||
|  OvmfPkg/QemuVideoDxe/VbeShim.h   | 481 ++++++++++++++++++++----------- | ||||
| @ -538,3 +575,6 @@ index cc9b6e14cd..325d6478a1 100644 | ||||
| +  /* 00000459 or al,[fs:bx+si]               */  0x64, 0x0A, 0x00,
 | ||||
|  }; | ||||
|  #endif | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
| @ -1,7 +1,44 @@ | ||||
| From 3b413c99f3a5087710f4932b4ba61c2646ae84b9 Mon Sep 17 00:00:00 2001 | ||||
| From 82b9edc5fef3a07227a45059bbe821af7b9abd69 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Tue, 25 Feb 2014 18:40:35 +0100 | ||||
| Subject: [PATCH] MdeModulePkg: TerminalDxe: add other text resolutions | ||||
| Subject: MdeModulePkg: TerminalDxe: add other text resolutions (RHEL only) | ||||
| 
 | ||||
| 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
 | ||||
|   <https://bugzilla.redhat.com/show_bug.cgi?id=1503316#c0> | ||||
| 
 | ||||
| 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 | ||||
| @ -54,23 +91,16 @@ 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. | ||||
| 
 | ||||
| Upstream status: three calendar months (with on-and-off discussion and | ||||
| patches) have not been enough to find a solution to this problem that | ||||
| would please all stakeholders. | ||||
| 
 | ||||
| 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). | ||||
| 
 | ||||
| Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 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 <lersek@redhat.com> | ||||
| (cherry picked from commit 99dc3720ac86059f60156197328cc433603c536e) | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| (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) | ||||
| ---
 | ||||
|  .../Universal/Console/TerminalDxe/Terminal.c  | 41 +++++++++++++++++-- | ||||
|  1 file changed, 38 insertions(+), 3 deletions(-) | ||||
| @ -127,3 +157,6 @@ index a98b690c8b..ded5513c74 100644 | ||||
|    // | ||||
|    // New modes can be added here. | ||||
|    // | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
| @ -1,8 +1,52 @@ | ||||
| From 50b53194f7caea602e04df663358617c280f299c Mon Sep 17 00:00:00 2001 | ||||
| From bc2266f20de5db1636e09a07e4a72c8dbf505f5a Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Tue, 25 Feb 2014 22:40:01 +0100 | ||||
| Subject: [PATCH] MdeModulePkg: TerminalDxe: set xterm resolution on mode | ||||
|  change (RH only) | ||||
| Subject: MdeModulePkg: TerminalDxe: set xterm resolution on mode change (RH | ||||
|  only) | ||||
| 
 | ||||
| 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 | ||||
| 
 | ||||
| @ -14,22 +58,15 @@ escape sequence serves for window manipulation. We can use the | ||||
| 
 | ||||
| sequence to adapt eg. the xterm window size to the selected console mode. | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| 
 | ||||
| - refresh commit 519b9751573e against various context changes
 | ||||
| 
 | ||||
| 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). | ||||
| 
 | ||||
| Reference: <http://rtfm.etla.org/xterm/ctlseq.html> | ||||
| Contributed-under: TianoCore Contribution Agreement 1.0 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| (cherry picked from commit 2909e025db6878723b49644a8a0cf160d07e6444) | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| (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) | ||||
| ---
 | ||||
|  MdeModulePkg/MdeModulePkg.dec                 |  4 +++ | ||||
|  .../Console/TerminalDxe/TerminalConOut.c      | 30 +++++++++++++++++++ | ||||
| @ -37,12 +74,12 @@ Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
|  3 files changed, 36 insertions(+) | ||||
| 
 | ||||
| diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec
 | ||||
| index cb30a79758..e562bed57e 100644
 | ||||
| index 031043ec28..3978a500e5 100644
 | ||||
| --- a/MdeModulePkg/MdeModulePkg.dec
 | ||||
| +++ b/MdeModulePkg/MdeModulePkg.dec
 | ||||
| @@ -2013,6 +2013,10 @@
 | ||||
|    # @Prompt Enable StatusCode via memory. | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE|BOOLEAN|0x00010023 | ||||
| @@ -1998,6 +1998,10 @@
 | ||||
|    # @Prompt TCG Platform Firmware Profile revision. | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdTcgPfpMeasurementRevision|0|UINT32|0x00010077 | ||||
|   | ||||
| +  ## Controls whether TerminalDxe outputs an XTerm resize sequence on terminal
 | ||||
| +  #  mode change.
 | ||||
| @ -126,3 +163,6 @@ index b2a8aeba85..eff6253465 100644 | ||||
|   | ||||
|  # [Event] | ||||
|  # # Relative timer event set by UnicodeToEfiKey(), used to be one 2 seconds input timeout. | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
| @ -1,40 +0,0 @@ | ||||
| From 34a88714097996e34811d27b32e77ff71ca763a6 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Wed, 14 Oct 2015 14:07:17 +0200 | ||||
| Subject: [PATCH] ArmVirtPkg: set early hello message (RH only) | ||||
| 
 | ||||
| Print a friendly banner on QEMU, regardless of debug mask settings. | ||||
| 
 | ||||
| RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1270279 | ||||
| Downstream only: | ||||
| <http://thread.gmane.org/gmane.comp.bios.edk2.devel/2996/focus=3433>. | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Contributed-under: TianoCore Contribution Agreement 1.0 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| (cherry picked from commit 5d4a15b9019728b2d96322bc679099da49916925) | ||||
| (cherry picked from commit 179df76dbb0d199bd905236e98775b4059c6502a) | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| ---
 | ||||
|  ArmVirtPkg/ArmVirtQemu.dsc | 1 + | ||||
|  1 file changed, 1 insertion(+) | ||||
| 
 | ||||
| diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
 | ||||
| index 24c6ea2e64..ad6af7f1c6 100644
 | ||||
| --- a/ArmVirtPkg/ArmVirtQemu.dsc
 | ||||
| +++ b/ArmVirtPkg/ArmVirtQemu.dsc
 | ||||
| @@ -125,6 +125,7 @@
 | ||||
|    gArmVirtTokenSpaceGuid.PcdTpm2SupportEnabled|$(TPM2_ENABLE) | ||||
|   | ||||
|  [PcdsFixedAtBuild.common] | ||||
| +  gArmPlatformTokenSpaceGuid.PcdEarlyHelloMessage|"UEFI firmware starting.\r\n"
 | ||||
|  !if $(ARCH) == AARCH64 | ||||
|    gArmTokenSpaceGuid.PcdVFPEnabled|1 | ||||
|  !endif | ||||
| @ -1,12 +1,35 @@ | ||||
| From 0616c1d69ef552bd35700992fae37263ddd8c4ce Mon Sep 17 00:00:00 2001 | ||||
| From 51e0de961029af84b5bdbfddcc9762b1819d500f Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Wed, 14 Oct 2015 15:59:06 +0200 | ||||
| Subject: [PATCH] OvmfPkg: take PcdResizeXterm from the QEMU command line (RH | ||||
|  only) | ||||
| Subject: OvmfPkg: take PcdResizeXterm from the QEMU command line (RH only) | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> | ||||
| RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| - 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: | ||||
| 
 | ||||
| @ -15,11 +38,19 @@ Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
|   ("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 <lersek@redhat.com> | ||||
| (cherry picked from commit 6fa0c4d67c0bb8bde2ddd6db41c19eb0c40b2721) | ||||
| (cherry picked from commit 8abc2a6ddad25af7e88dc0cf57d55dfb75fbf92d) | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| (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) | ||||
| ---
 | ||||
|  OvmfPkg/OvmfPkgIa32.dsc             | 1 + | ||||
|  OvmfPkg/OvmfPkgIa32X64.dsc          | 1 + | ||||
| @ -29,41 +60,41 @@ Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
|  5 files changed, 5 insertions(+) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| index 2886c10b1b..b974740e2f 100644
 | ||||
| index f8317a4f5d..6ce8a46d4e 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| @@ -577,6 +577,7 @@
 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0 | ||||
|  !endif | ||||
| @@ -574,6 +574,7 @@
 | ||||
|    #   ($(SMM_REQUIRE) == FALSE) | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 | ||||
|   | ||||
| +  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE
 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|FALSE | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600 | ||||
|  !if $(SMM_REQUIRE) == FALSE | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0 | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| index 5a9e9a707a..65a8c6764c 100644
 | ||||
| index 55423d356c..89d414cda7 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| @@ -586,6 +586,7 @@
 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|FALSE | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600 | ||||
| @@ -580,6 +580,7 @@
 | ||||
|    #   ($(SMM_REQUIRE) == FALSE) | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 | ||||
|   | ||||
| +  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE
 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiS3Enable|FALSE | ||||
|    gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId|0 | ||||
|    gUefiOvmfPkgTokenSpaceGuid.PcdPciIoBase|0x0 | ||||
|  !if $(SMM_REQUIRE) == FALSE | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0 | ||||
| diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| index 70c2c3e3b9..72bc289f26 100644
 | ||||
| index 17aeeed96e..e567eb76e0 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| @@ -582,6 +582,7 @@
 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0 | ||||
|  !endif | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|FALSE | ||||
| @@ -578,6 +578,7 @@
 | ||||
|    #   ($(SMM_REQUIRE) == FALSE) | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 | ||||
|   | ||||
| +  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE
 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiS3Enable|FALSE | ||||
|  !if $(SMM_REQUIRE) == FALSE | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0 | ||||
| diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c
 | ||||
| index 96468701e3..14efbabe39 100644
 | ||||
| --- a/OvmfPkg/PlatformPei/Platform.c
 | ||||
| @ -77,10 +108,10 @@ index 96468701e3..14efbabe39 100644 | ||||
|   | ||||
|    InstallClearCacheCallback (); | ||||
| diff --git a/OvmfPkg/PlatformPei/PlatformPei.inf b/OvmfPkg/PlatformPei/PlatformPei.inf
 | ||||
| index c53be2f492..e5744ed818 100644
 | ||||
| index ff397b3ee9..3a012a7fa4 100644
 | ||||
| --- a/OvmfPkg/PlatformPei/PlatformPei.inf
 | ||||
| +++ b/OvmfPkg/PlatformPei/PlatformPei.inf
 | ||||
| @@ -97,6 +97,7 @@
 | ||||
| @@ -93,6 +93,7 @@
 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration | ||||
| @ -88,3 +119,6 @@ index c53be2f492..e5744ed818 100644 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
| @ -1,15 +1,62 @@ | ||||
| From 4de2ee915d9f3eea6d32cd010ab856ac176f3983 Mon Sep 17 00:00:00 2001 | ||||
| From a5f7a57bf390f1f340ff1d1f1884a73716817ef1 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Sun, 26 Jul 2015 08:02:50 +0000 | ||||
| Subject: [PATCH] ArmVirtPkg: take PcdResizeXterm from the QEMU command line | ||||
|  (RH only) | ||||
| Subject: ArmVirtPkg: take PcdResizeXterm from the QEMU command line (RH only) | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> | ||||
| RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] 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. | ||||
| - 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 <https://bugzilla.tianocore.org/show_bug.cgi?id=2681> 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: | ||||
| 
 | ||||
| @ -18,31 +65,43 @@ Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
|   ("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 <lersek@redhat.com> | ||||
| (cherry picked from commit d4564d39dfdbf74e762af43314005a2c026cb262) | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| (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) | ||||
| ---
 | ||||
|  ArmVirtPkg/ArmVirtQemu.dsc                    |  6 +- | ||||
|  .../TerminalPcdProducerLib.c                  | 87 +++++++++++++++++++ | ||||
|  .../TerminalPcdProducerLib.inf                | 41 +++++++++ | ||||
|  3 files changed, 133 insertions(+), 1 deletion(-) | ||||
|  ArmVirtPkg/ArmVirtQemu.dsc                    |  7 +++- | ||||
|  .../TerminalPcdProducerLib.c                  | 34 +++++++++++++++++++ | ||||
|  .../TerminalPcdProducerLib.inf                | 33 ++++++++++++++++++ | ||||
|  3 files changed, 73 insertions(+), 1 deletion(-) | ||||
|  create mode 100644 ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c | ||||
|  create mode 100644 ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf | ||||
| 
 | ||||
| diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
 | ||||
| index 2405636af6..24c6ea2e64 100644
 | ||||
| index 360094ab6a..3345987503 100644
 | ||||
| --- a/ArmVirtPkg/ArmVirtQemu.dsc
 | ||||
| +++ b/ArmVirtPkg/ArmVirtQemu.dsc
 | ||||
| @@ -249,6 +249,7 @@
 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution|640 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|480 | ||||
| +  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE
 | ||||
| @@ -272,6 +272,8 @@
 | ||||
|    gEfiSecurityPkgTokenSpaceGuid.PcdTpm2HashMask|0 | ||||
|  !endif | ||||
|   | ||||
|    # | ||||
|    # SMBIOS entry point version | ||||
| @@ -374,7 +375,10 @@
 | ||||
| +  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE
 | ||||
| +
 | ||||
|  [PcdsDynamicHii] | ||||
|    gArmVirtTokenSpaceGuid.PcdForceNoAcpi|L"ForceNoAcpi"|gArmVirtVariableGuid|0x0|FALSE|NV,BS | ||||
|   | ||||
| @@ -374,7 +376,10 @@
 | ||||
|    MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf | ||||
|    MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf | ||||
|    MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf | ||||
| @ -56,82 +115,29 @@ index 2405636af6..24c6ea2e64 100644 | ||||
|    MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf | ||||
| diff --git a/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c
 | ||||
| new file mode 100644 | ||||
| index 0000000000..814ad48199
 | ||||
| index 0000000000..bfd3a6a535
 | ||||
| --- /dev/null
 | ||||
| +++ b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c
 | ||||
| @@ -0,0 +1,87 @@
 | ||||
| @@ -0,0 +1,34 @@
 | ||||
| +/** @file
 | ||||
| +*  Plugin library for setting up dynamic PCDs for TerminalDxe, from fw_cfg
 | ||||
| +*
 | ||||
| +*  Copyright (C) 2015-2016, Red Hat, Inc.
 | ||||
| +*  Copyright (C) 2015-2020, Red Hat, Inc.
 | ||||
| +*  Copyright (c) 2014, Linaro Ltd. All rights reserved.<BR>
 | ||||
| +*
 | ||||
| +*  This program and the accompanying materials are licensed and made available
 | ||||
| +*  under the terms and conditions of the BSD License which accompanies this
 | ||||
| +*  distribution.  The full text of the license may be found at
 | ||||
| +*  http://opensource.org/licenses/bsd-license.php
 | ||||
| +*
 | ||||
| +*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 | ||||
| +*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
 | ||||
| +*  IMPLIED.
 | ||||
| +*
 | ||||
| +*  SPDX-License-Identifier: BSD-2-Clause-Patent
 | ||||
| +**/
 | ||||
| +
 | ||||
| +#include <Library/DebugLib.h>
 | ||||
| +#include <Library/PcdLib.h>
 | ||||
| +#include <Library/QemuFwCfgLib.h>
 | ||||
| +
 | ||||
| +STATIC
 | ||||
| +RETURN_STATUS
 | ||||
| +GetNamedFwCfgBoolean (
 | ||||
| +  IN  CONST CHAR8 *FwCfgFileName,
 | ||||
| +  OUT BOOLEAN     *Setting
 | ||||
| +  )
 | ||||
| +{
 | ||||
| +  RETURN_STATUS        Status;
 | ||||
| +  FIRMWARE_CONFIG_ITEM FwCfgItem;
 | ||||
| +  UINTN                FwCfgSize;
 | ||||
| +  UINT8                Value[3];
 | ||||
| +
 | ||||
| +  Status = QemuFwCfgFindFile (FwCfgFileName, &FwCfgItem, &FwCfgSize);
 | ||||
| +  if (RETURN_ERROR (Status)) {
 | ||||
| +    return Status;
 | ||||
| +  }
 | ||||
| +  if (FwCfgSize > sizeof Value) {
 | ||||
| +    return RETURN_BAD_BUFFER_SIZE;
 | ||||
| +  }
 | ||||
| +  QemuFwCfgSelectItem (FwCfgItem);
 | ||||
| +  QemuFwCfgReadBytes (FwCfgSize, Value);
 | ||||
| +
 | ||||
| +  if ((FwCfgSize == 1) ||
 | ||||
| +      (FwCfgSize == 2 && Value[1] == '\n') ||
 | ||||
| +      (FwCfgSize == 3 && Value[1] == '\r' && Value[2] == '\n')) {
 | ||||
| +    switch (Value[0]) {
 | ||||
| +      case '0':
 | ||||
| +      case 'n':
 | ||||
| +      case 'N':
 | ||||
| +        *Setting = FALSE;
 | ||||
| +        return RETURN_SUCCESS;
 | ||||
| +
 | ||||
| +      case '1':
 | ||||
| +      case 'y':
 | ||||
| +      case 'Y':
 | ||||
| +        *Setting = TRUE;
 | ||||
| +        return RETURN_SUCCESS;
 | ||||
| +
 | ||||
| +      default:
 | ||||
| +        break;
 | ||||
| +    }
 | ||||
| +  }
 | ||||
| +  return RETURN_PROTOCOL_ERROR;
 | ||||
| +}
 | ||||
| +#include <Library/QemuFwCfgSimpleParserLib.h>
 | ||||
| +
 | ||||
| +#define UPDATE_BOOLEAN_PCD_FROM_FW_CFG(TokenName)                             \
 | ||||
| +          do {                                                                \
 | ||||
| +            BOOLEAN       Setting;                                            \
 | ||||
| +            RETURN_STATUS PcdStatus;                                          \
 | ||||
| +                                                                              \
 | ||||
| +            if (!RETURN_ERROR (GetNamedFwCfgBoolean (                         \
 | ||||
| +            if (!RETURN_ERROR (QemuFwCfgParseBool (                           \
 | ||||
| +                    "opt/org.tianocore.edk2.aavmf/" #TokenName, &Setting))) { \
 | ||||
| +              PcdStatus = PcdSetBoolS (TokenName, Setting);                   \
 | ||||
| +              ASSERT_RETURN_ERROR (PcdStatus);                                \
 | ||||
| @ -149,25 +155,17 @@ index 0000000000..814ad48199 | ||||
| +}
 | ||||
| diff --git a/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf
 | ||||
| new file mode 100644 | ||||
| index 0000000000..fecb37bcdf
 | ||||
| index 0000000000..a51dbd1670
 | ||||
| --- /dev/null
 | ||||
| +++ b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf
 | ||||
| @@ -0,0 +1,41 @@
 | ||||
| @@ -0,0 +1,33 @@
 | ||||
| +## @file
 | ||||
| +#  Plugin library for setting up dynamic PCDs for TerminalDxe, from fw_cfg
 | ||||
| +#
 | ||||
| +#  Copyright (C) 2015-2016, Red Hat, Inc.
 | ||||
| +#  Copyright (C) 2015-2020, Red Hat, Inc.
 | ||||
| +#  Copyright (c) 2014, Linaro Ltd. All rights reserved.<BR>
 | ||||
| +#
 | ||||
| +#  This program and the accompanying materials are licensed and made available
 | ||||
| +#  under the terms and conditions of the BSD License which accompanies this
 | ||||
| +#  distribution.  The full text of the license may be found at
 | ||||
| +#  http://opensource.org/licenses/bsd-license.php
 | ||||
| +#
 | ||||
| +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 | ||||
| +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
 | ||||
| +#  IMPLIED.
 | ||||
| +#
 | ||||
| +#  SPDX-License-Identifier: BSD-2-Clause-Patent
 | ||||
| +##
 | ||||
| +
 | ||||
| +[Defines]
 | ||||
| @ -176,21 +174,24 @@ index 0000000000..fecb37bcdf | ||||
| +  FILE_GUID                      = 4a0c5ed7-8c42-4c01-8f4c-7bf258316a96
 | ||||
| +  MODULE_TYPE                    = BASE
 | ||||
| +  VERSION_STRING                 = 1.0
 | ||||
| +  LIBRARY_CLASS                  = TerminalPcdProducerLib|DXE_DRIVER
 | ||||
| +  LIBRARY_CLASS                  = NULL
 | ||||
| +  CONSTRUCTOR                    = TerminalPcdProducerLibConstructor
 | ||||
| +
 | ||||
| +[Sources]
 | ||||
| +  TerminalPcdProducerLib.c
 | ||||
| +
 | ||||
| +[Packages]
 | ||||
| +  MdeModulePkg/MdeModulePkg.dec
 | ||||
| +  MdePkg/MdePkg.dec
 | ||||
| +  OvmfPkg/OvmfPkg.dec
 | ||||
| +  MdeModulePkg/MdeModulePkg.dec
 | ||||
| +
 | ||||
| +[LibraryClasses]
 | ||||
| +  DebugLib
 | ||||
| +  PcdLib
 | ||||
| +  QemuFwCfgLib
 | ||||
| +  QemuFwCfgSimpleParserLib
 | ||||
| +
 | ||||
| +[Pcd]
 | ||||
| +  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm
 | ||||
| +  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm ## SOMETIMES_PRODUCES
 | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
| @ -1,75 +0,0 @@ | ||||
| From d8b75ad1013b21c089a1af579b510f32c49c5b14 Mon Sep 17 00:00:00 2001 | ||||
| From: Paolo Bonzini <pbonzini@redhat.com> | ||||
| Date: Thu, 16 Aug 2018 15:45:47 -0400 | ||||
| Subject: [PATCH] Tweak the tools_def to support cross-compiling. | ||||
| 
 | ||||
| These files are meant for customization, so this is not upstream. | ||||
| 
 | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| Signed-off-by: Cole Robinson <crobinso@redhat.com> | ||||
| ---
 | ||||
|  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 933b3160fd..e62ccc322d 100755
 | ||||
| --- a/BaseTools/Conf/tools_def.template
 | ||||
| +++ b/BaseTools/Conf/tools_def.template
 | ||||
| @@ -2350,17 +2350,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 | ||||
| @@ -2382,17 +2382,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 | ||||
| @ -1,7 +1,55 @@ | ||||
| From c1d277217b6d4115277cac4de26943fde3b7f170 Mon Sep 17 00:00:00 2001 | ||||
| From c2812d7189dee06c780f05a5880eb421c359a687 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Tue, 4 Nov 2014 23:02:53 +0100 | ||||
| Subject: [PATCH] OvmfPkg: allow exclusion of the shell from the firmware image | ||||
| Subject: OvmfPkg: allow exclusion of the shell from the firmware image (RH | ||||
|  only) | ||||
| 
 | ||||
| Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> | ||||
| RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: | ||||
| 
 | ||||
| - context difference from upstream commit ec41733cfd10 ("OvmfPkg: add the
 | ||||
|   'initrd' dynamic shell command", 2020-03-04) correctly auto-resolved | ||||
| 
 | ||||
| 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: | ||||
| 
 | ||||
| - update the patch against the following upstream commits:
 | ||||
|   - 4b888334d234 ("OvmfPkg: Remove EdkShellBinPkg in FDF", 2018-11-19) | ||||
|   - 277a3958d93a ("OvmfPkg: Don't include TftpDynamicCommand in XCODE5 | ||||
|                   tool chain", 2018-11-27) | ||||
| 
 | ||||
| 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: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Message-id: <1415138578-27173-14-git-send-email-lersek@redhat.com> | ||||
| Patchwork-id: 62119 | ||||
| O-Subject:  [RHEL-7.1 ovmf PATCH v2 13/18] OvmfPkg: allow exclusion of the shell | ||||
| 	from the firmware image (RH only) | ||||
| Bugzilla: 1147592 | ||||
| Acked-by: Andrew Jones <drjones@redhat.com> | ||||
| Acked-by: Gerd Hoffmann <kraxel@redhat.com> | ||||
| Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com> | ||||
| 
 | ||||
| When '-D EXCLUDE_SHELL_FROM_FD' is passed to 'build', exclude the shell | ||||
| binary from the firmware image. | ||||
| @ -36,29 +84,25 @@ Intended use of the new build option: | ||||
|     is specified, the shell binary needs to be built the same, only it | ||||
|     will be included in UefiShell.iso. | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| (cherry picked from commit 9c391def70366cabae08e6008814299c3372fafd) | ||||
| (cherry picked from commit d9dd9ee42937b2611fe37183cc9ec7f62d946933) | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| (cherry picked from commit 23df46ebbe7b09451d3a05034acd4d3a25e7177b) | ||||
| (cherry picked from commit f0303f71d576c51b01c4ff961b429d0e0e707245) | ||||
| (cherry picked from commit bbd64eb8658e9a33eab4227d9f4e51ad78d9f687) | ||||
| (cherry picked from commit 8628ef1b8d675ebec39d83834abbe3c8c8c42cf4) | ||||
| (cherry picked from commit 229c88dc3ded9baeaca8b87767dc5c41c05afd6e) | ||||
| ---
 | ||||
|  OvmfPkg/OvmfPkgIa32.fdf    | 2 ++ | ||||
|  OvmfPkg/OvmfPkgIa32X64.fdf | 3 +++ | ||||
|  OvmfPkg/OvmfPkgX64.fdf     | 3 +++ | ||||
|  3 files changed, 8 insertions(+) | ||||
|  OvmfPkg/OvmfPkgIa32X64.fdf | 2 ++ | ||||
|  OvmfPkg/OvmfPkgX64.fdf     | 2 ++ | ||||
|  3 files changed, 6 insertions(+) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf
 | ||||
| index 6e1e7f5f44..07c1cdbe81 100644
 | ||||
| index ec64551bcb..44178a0da7 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32.fdf
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32.fdf
 | ||||
| @@ -291,11 +291,13 @@ INF  MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResour
 | ||||
| @@ -288,11 +288,13 @@ INF  MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResour
 | ||||
|  INF  FatPkg/EnhancedFatDxe/Fat.inf | ||||
|  INF  MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf | ||||
|   | ||||
| @ -70,13 +114,13 @@ index 6e1e7f5f44..07c1cdbe81 100644 | ||||
|  INF  ShellPkg/Application/Shell/Shell.inf | ||||
| +!endif
 | ||||
|   | ||||
|  !if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(NETWORK_IP6_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE) | ||||
|  INF MdeModulePkg/Logo/LogoOpenSSLDxe.inf | ||||
|   | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf
 | ||||
| index 1fab3d5014..b1560d6218 100644
 | ||||
| index 2f02ac2d73..06259c43d2 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32X64.fdf
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32X64.fdf
 | ||||
| @@ -292,11 +292,14 @@ INF  MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResour
 | ||||
| @@ -289,11 +289,13 @@ INF  MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResour
 | ||||
|  INF  FatPkg/EnhancedFatDxe/Fat.inf | ||||
|  INF  MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf | ||||
|   | ||||
| @ -87,15 +131,14 @@ index 1fab3d5014..b1560d6218 100644 | ||||
|  !endif | ||||
|  INF  ShellPkg/Application/Shell/Shell.inf | ||||
| +!endif
 | ||||
| +
 | ||||
|   | ||||
|  !if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(NETWORK_IP6_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE) | ||||
|  INF MdeModulePkg/Logo/LogoOpenSSLDxe.inf | ||||
|   | ||||
| diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf
 | ||||
| index 6dc48977a0..34cd97aac4 100644
 | ||||
| index 2f02ac2d73..06259c43d2 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgX64.fdf
 | ||||
| +++ b/OvmfPkg/OvmfPkgX64.fdf
 | ||||
| @@ -301,11 +301,14 @@ INF  MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResour
 | ||||
| @@ -289,11 +289,13 @@ INF  MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResour
 | ||||
|  INF  FatPkg/EnhancedFatDxe/Fat.inf | ||||
|  INF  MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf | ||||
|   | ||||
| @ -106,7 +149,9 @@ index 6dc48977a0..34cd97aac4 100644 | ||||
|  !endif | ||||
|  INF  ShellPkg/Application/Shell/Shell.inf | ||||
| +!endif
 | ||||
| +
 | ||||
|   | ||||
|  !if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(NETWORK_IP6_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE) | ||||
|  INF MdeModulePkg/Logo/LogoOpenSSLDxe.inf | ||||
|   | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
| @ -1,8 +1,41 @@ | ||||
| From cdd42dea1b59285def15d38feaf2093f9f1688dd Mon Sep 17 00:00:00 2001 | ||||
| From c75aea7a738ac7fb944c0695a4bfffc3985afaa9 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Wed, 14 Oct 2015 13:49:43 +0200 | ||||
| Subject: [PATCH] ArmPlatformPkg: introduce fixed PCD for early hello message | ||||
|  (RH only) | ||||
| Subject: ArmPlatformPkg: introduce fixed PCD for early hello message (RH only) | ||||
| 
 | ||||
| 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
 | ||||
| 
 | ||||
| Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Drew has proposed that ARM|AARCH64 platform firmware (especially virtual | ||||
| machine firmware) print a reasonably early, simple hello message to the | ||||
| @ -17,20 +50,16 @@ RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1270279 | ||||
| Downstream only: | ||||
| <http://thread.gmane.org/gmane.comp.bios.edk2.devel/2996/focus=3433>. | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Suggested-by: Drew Jones <drjones@redhat.com> | ||||
| Contributed-under: TianoCore Contribution Agreement 1.0 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| (cherry picked from commit 7ce97b06421434c82095f01a1753a8c9c546cc30) | ||||
| (cherry picked from commit 20b1f1cbd0590aa71c6d99d35e23cf08e0707750) | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| (cherry picked from commit 6734b88cf7abcaf42632e3d2fc469b2169dd2f16) | ||||
| (cherry picked from commit ef77da632559e9baa1c69869e4cbea377068ef27) | ||||
| (cherry picked from commit 58755c51d3252312d80cbcb97928d71199c2f5e1) | ||||
| (cherry picked from commit c3f07e323e76856f1b42ea7b8c598ba3201c28a2) | ||||
| (cherry picked from commit 9f756c1ad83cc81f7d892cd036d59a2b567b02dc) | ||||
| ---
 | ||||
|  ArmPlatformPkg/ArmPlatformPkg.dec | 7 +++++++ | ||||
|  1 file changed, 7 insertions(+) | ||||
| @ -53,3 +82,6 @@ index 696d636aac..1553e1ae92 100644 | ||||
|  [PcdsFixedAtBuild.common,PcdsDynamic.common] | ||||
|    ## PL031 RealTimeClock | ||||
|    gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x0|UINT32|0x00000024 | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
| @ -1,8 +1,44 @@ | ||||
| From f9b6876cb7e14d4e863cc33c8999ece2cf399ff6 Mon Sep 17 00:00:00 2001 | ||||
| From 49fe5596cd79c94d903c4d506c563d642ccd69aa Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Wed, 14 Oct 2015 13:59:20 +0200 | ||||
| Subject: [PATCH] ArmPlatformPkg: PrePeiCore: write early hello message to the | ||||
|  serial port (RH) | ||||
| Subject: ArmPlatformPkg: PrePeiCore: write early hello message to the serial | ||||
|  port (RH) | ||||
| 
 | ||||
| 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: | ||||
| 
 | ||||
| - adapt to upstream commit 7e2a8dfe8a9a ("ArmPlatformPkg/PrePeiCore: seed
 | ||||
|   temporary stack before entering PEI core", 2017-11-09) -- conflict | ||||
|   resolution in "ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf" | ||||
| 
 | ||||
| Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| The FixedPcdGetSize() macro expands to an integer constant, therefore an | ||||
| optimizing compiler can eliminate the new code, if the platform DSC | ||||
| @ -13,19 +49,15 @@ RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1270279 | ||||
| Downstream only: | ||||
| <http://thread.gmane.org/gmane.comp.bios.edk2.devel/2996/focus=3433>. | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Contributed-under: TianoCore Contribution Agreement 1.0 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| (cherry picked from commit b16c4c505ce0e27305235533eac9236aa66f132e) | ||||
| (cherry picked from commit 742e5bf6d5ce5a1e73879d6e5c0dd00feda7a9ac) | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| (cherry picked from commit 93d69eb9393cf05af90676253875c59c1bec67fd) | ||||
| (cherry picked from commit 638594083b191f84f5d9333eb6147a31570f5a5a) | ||||
| (cherry picked from commit f4b7aae411d88b2b83f85d20ef06a4032a57e7de) | ||||
| (cherry picked from commit bb71490fdda3b38fa9f071d281b863f9b64363bf) | ||||
| (cherry picked from commit 8d5a8827aabc67cb2a046697e1a750ca8d9cc453) | ||||
| ---
 | ||||
|  ArmPlatformPkg/PrePeiCore/MainMPCore.c          | 5 +++++ | ||||
|  ArmPlatformPkg/PrePeiCore/MainUniCore.c         | 5 +++++ | ||||
| @ -92,12 +124,16 @@ index fb01dd1a11..a6681c1032 100644 | ||||
|    gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase | ||||
|    gArmTokenSpaceGuid.PcdGicSgiIntId | ||||
| diff --git a/ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf b/ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
 | ||||
| index e9eb092d3a..a02ff39b7a 100644
 | ||||
| index e9eb092d3a..c98dc82f0c 100644
 | ||||
| --- a/ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
 | ||||
| +++ b/ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
 | ||||
| @@ -68,3 +68,5 @@
 | ||||
| @@ -67,4 +67,6 @@
 | ||||
|    gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize | ||||
|    gArmPlatformTokenSpaceGuid.PcdCPUCoreSecondaryStackSize | ||||
|   | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdInitValueInTempStack | ||||
| +
 | ||||
| +  gArmPlatformTokenSpaceGuid.PcdEarlyHelloMessage
 | ||||
| +
 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdInitValueInTempStack | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
							
								
								
									
										76
									
								
								0019-ArmVirtPkg-set-early-hello-message-RH-only.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								0019-ArmVirtPkg-set-early-hello-message-RH-only.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,76 @@ | ||||
| From 72550e12ae469012a505bf5b98a6543a754028d3 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Wed, 14 Oct 2015 14:07:17 +0200 | ||||
| Subject: ArmVirtPkg: set early hello message (RH only) | ||||
| 
 | ||||
| Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> | ||||
| RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: | ||||
| 
 | ||||
| - context difference from upstream commit f5cb3767038e
 | ||||
|   ("ArmVirtPkg/ArmVirtQemu: add ResetSystem PEIM for upcoming TPM2 | ||||
|   support", 2020-03-04) automatically resolved correctly | ||||
| 
 | ||||
| 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: | ||||
| 
 | ||||
| - resolve context conflict with upstream commit eaa1e98ae31d ("ArmVirtPkg:
 | ||||
|   don't set PcdCoreCount", 2019-02-13) | ||||
| 
 | ||||
| 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
 | ||||
| 
 | ||||
| Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Print a friendly banner on QEMU, regardless of debug mask settings. | ||||
| 
 | ||||
| RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1270279 | ||||
| Downstream only: | ||||
| <http://thread.gmane.org/gmane.comp.bios.edk2.devel/2996/focus=3433>. | ||||
| 
 | ||||
| Contributed-under: TianoCore Contribution Agreement 1.0 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| (cherry picked from commit 5d4a15b9019728b2d96322bc679099da49916925) | ||||
| (cherry picked from commit 179df76dbb0d199bd905236e98775b4059c6502a) | ||||
| (cherry picked from commit ce3f59d0710c24c162d5222bbf5cd7e36180c80c) | ||||
| (cherry picked from commit c201a8e6ae28d75f7ba581828b533c3b26fa7f18) | ||||
| (cherry picked from commit 2d4db6ec70e004cd9ac147615d17033bee5d3b18) | ||||
| (cherry picked from commit fb2032bbea7e02c426855cf86a323556d493fd8a) | ||||
| (cherry picked from commit ba73b99d5cb38f87c1a8f0936d515eaaefa3f04b) | ||||
| ---
 | ||||
|  ArmVirtPkg/ArmVirtQemu.dsc | 1 + | ||||
|  1 file changed, 1 insertion(+) | ||||
| 
 | ||||
| diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
 | ||||
| index 3345987503..57c5b3f898 100644
 | ||||
| --- a/ArmVirtPkg/ArmVirtQemu.dsc
 | ||||
| +++ b/ArmVirtPkg/ArmVirtQemu.dsc
 | ||||
| @@ -125,6 +125,7 @@
 | ||||
|    gArmVirtTokenSpaceGuid.PcdTpm2SupportEnabled|$(TPM2_ENABLE) | ||||
|   | ||||
|  [PcdsFixedAtBuild.common] | ||||
| +  gArmPlatformTokenSpaceGuid.PcdEarlyHelloMessage|"UEFI firmware starting.\r\n"
 | ||||
|  !if $(ARCH) == AARCH64 | ||||
|    gArmTokenSpaceGuid.PcdVFPEnabled|1 | ||||
|  !endif | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
							
								
								
									
										102
									
								
								0020-OvmfPkg-enable-DEBUG_VERBOSE-RHEL-only.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								0020-OvmfPkg-enable-DEBUG_VERBOSE-RHEL-only.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,102 @@ | ||||
| From 5ecc18badaabe774d9d0806b027ab63a30c6a2d7 Mon Sep 17 00:00:00 2001 | ||||
| From: Paolo Bonzini <pbonzini@redhat.com> | ||||
| Date: Tue, 21 Nov 2017 00:57:45 +0100 | ||||
| Subject: OvmfPkg: enable DEBUG_VERBOSE (RHEL only) | ||||
| 
 | ||||
| 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
 | ||||
| 
 | ||||
| Message-id: <20171120235748.29669-5-pbonzini@redhat.com> | ||||
| Patchwork-id: 77760 | ||||
| O-Subject:  [PATCH 4/7] OvmfPkg: enable DEBUG_VERBOSE (RHEL only) | ||||
| Bugzilla: 1488247 | ||||
| Acked-by: Laszlo Ersek <lersek@redhat.com> | ||||
| Acked-by: Thomas Huth <thuth@redhat.com> | ||||
| 
 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| 
 | ||||
| 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 <lersek@redhat.com> | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| (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) | ||||
| ---
 | ||||
|  OvmfPkg/OvmfPkgIa32.dsc    | 2 +- | ||||
|  OvmfPkg/OvmfPkgIa32X64.dsc | 2 +- | ||||
|  OvmfPkg/OvmfPkgX64.dsc     | 2 +- | ||||
|  3 files changed, 3 insertions(+), 3 deletions(-) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| index 6ce8a46d4e..765ffff312 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| @@ -516,7 +516,7 @@
 | ||||
|    # 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 89d414cda7..277297a964 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| @@ -520,7 +520,7 @@
 | ||||
|    # 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 e567eb76e0..5c1597fe3c 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| @@ -520,7 +520,7 @@
 | ||||
|    # 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.18.4 | ||||
| 
 | ||||
							
								
								
									
										147
									
								
								0021-OvmfPkg-silence-DEBUG_VERBOSE-0x00400000-in-QemuVide.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										147
									
								
								0021-OvmfPkg-silence-DEBUG_VERBOSE-0x00400000-in-QemuVide.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,147 @@ | ||||
| From 1355849ad97c1e4a5c430597a377165a5cc118f7 Mon Sep 17 00:00:00 2001 | ||||
| From: Paolo Bonzini <pbonzini@redhat.com> | ||||
| Date: Tue, 21 Nov 2017 00:57:46 +0100 | ||||
| Subject: OvmfPkg: silence DEBUG_VERBOSE (0x00400000) in | ||||
|  QemuVideoDxe/QemuRamfbDxe (RH) | ||||
| 
 | ||||
| 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
 | ||||
| 
 | ||||
| Message-id: <20171120235748.29669-6-pbonzini@redhat.com> | ||||
| Patchwork-id: 77761 | ||||
| O-Subject:  [PATCH 5/7] OvmfPkg: silence EFI_D_VERBOSE (0x00400000) in | ||||
| 	QemuVideoDxe (RH only) | ||||
| Bugzilla: 1488247 | ||||
| Acked-by: Laszlo Ersek <lersek@redhat.com> | ||||
| Acked-by: Thomas Huth <thuth@redhat.com> | ||||
| 
 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| 
 | ||||
| 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 <lersek@redhat.com> | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| (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) | ||||
| ---
 | ||||
|  OvmfPkg/OvmfPkgIa32.dsc    | 10 ++++++++-- | ||||
|  OvmfPkg/OvmfPkgIa32X64.dsc | 10 ++++++++-- | ||||
|  OvmfPkg/OvmfPkgX64.dsc     | 10 ++++++++-- | ||||
|  3 files changed, 24 insertions(+), 6 deletions(-) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| index 765ffff312..f5c6cceb4f 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| @@ -811,9 +811,15 @@
 | ||||
|    MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf | ||||
|   | ||||
|  !ifndef $(CSM_ENABLE) | ||||
| -  OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf
 | ||||
| +  OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf {
 | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
 | ||||
| +  }
 | ||||
|  !endif | ||||
| -  OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf
 | ||||
| +  OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf {
 | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
 | ||||
| +  }
 | ||||
|    OvmfPkg/VirtioGpuDxe/VirtioGpu.inf | ||||
|   | ||||
|    # | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| index 277297a964..c1e52b0acd 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| @@ -825,9 +825,15 @@
 | ||||
|    MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf | ||||
|   | ||||
|  !ifndef $(CSM_ENABLE) | ||||
| -  OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf
 | ||||
| +  OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf {
 | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
 | ||||
| +  }
 | ||||
|  !endif | ||||
| -  OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf
 | ||||
| +  OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf {
 | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
 | ||||
| +  }
 | ||||
|    OvmfPkg/VirtioGpuDxe/VirtioGpu.inf | ||||
|   | ||||
|    # | ||||
| diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| index 5c1597fe3c..e65165b9f0 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| @@ -821,9 +821,15 @@
 | ||||
|    MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf | ||||
|   | ||||
|  !ifndef $(CSM_ENABLE) | ||||
| -  OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf
 | ||||
| +  OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf {
 | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
 | ||||
| +  }
 | ||||
|  !endif | ||||
| -  OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf
 | ||||
| +  OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf {
 | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
 | ||||
| +  }
 | ||||
|    OvmfPkg/VirtioGpuDxe/VirtioGpu.inf | ||||
|   | ||||
|    # | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
| @ -0,0 +1,91 @@ | ||||
| From e7f57f154439c1c18ea5030b01f8d7bc492698b2 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Wed, 27 Jan 2016 03:05:18 +0100 | ||||
| Subject: ArmVirtPkg: silence DEBUG_VERBOSE (0x00400000) in QemuRamfbDxe (RH | ||||
|  only) | ||||
| 
 | ||||
| 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 <lersek@redhat.com> | ||||
| (cherry picked from commit 76b4ac28e975bd63c25db903a1d42c47b38cc756) | ||||
| Reported-by: Andrew Jones <drjones@redhat.com> | ||||
| Suggested-by: Laszlo Ersek <lersek@redhat.com> | ||||
| Signed-off-by: Philippe Mathieu-Daude <philmd@redhat.com> | ||||
| (cherry picked from commit 5a216abaa737195327235e37563b18a6bf2a74dc) | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| (cherry picked from commit e5b8152bced2364a1ded0926dbba4d65e23e3f84) | ||||
| ---
 | ||||
|  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 57c5b3f898..dda887b2ae 100644
 | ||||
| --- a/ArmVirtPkg/ArmVirtQemu.dsc
 | ||||
| +++ b/ArmVirtPkg/ArmVirtQemu.dsc
 | ||||
| @@ -494,7 +494,10 @@
 | ||||
|    # | ||||
|    # Video support | ||||
|    # | ||||
| -  OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf
 | ||||
| +  OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf {
 | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      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 d186263e18..711dd63e20 100644
 | ||||
| --- a/ArmVirtPkg/ArmVirtQemuKernel.dsc
 | ||||
| +++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc
 | ||||
| @@ -427,7 +427,10 @@
 | ||||
|    # | ||||
|    # Video support | ||||
|    # | ||||
| -  OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf
 | ||||
| +  OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf {
 | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|($(DEBUG_PRINT_ERROR_LEVEL)) & 0xFFBFFFFF
 | ||||
| +  }
 | ||||
|    OvmfPkg/VirtioGpuDxe/VirtioGpu.inf | ||||
|    OvmfPkg/PlatformDxe/Platform.inf | ||||
|   | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
| @ -0,0 +1,89 @@ | ||||
| From deb3451034326b75fd760aba47a5171493ff055e Mon Sep 17 00:00:00 2001 | ||||
| From: Philippe Mathieu-Daude <philmd@redhat.com> | ||||
| Date: Thu, 1 Aug 2019 20:43:48 +0200 | ||||
| Subject: OvmfPkg: QemuRamfbDxe: Do not report DXE failure on Aarch64 silent | ||||
|  builds (RH only) | ||||
| 
 | ||||
| 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 <lersek@redhat.com> | ||||
| Signed-off-by: Philippe Mathieu-Daude <philmd@redhat.com> | ||||
| (cherry picked from commit aaaedc1e2cfd55ef003fb1b5a37c73a196b26dc7) | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| (cherry picked from commit aa2b66b18a62d652bdbefae7b5732297294306ca) | ||||
| ---
 | ||||
|  OvmfPkg/QemuRamfbDxe/QemuRamfb.c      | 14 ++++++++++++++ | ||||
|  OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf |  1 + | ||||
|  2 files changed, 15 insertions(+) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/QemuRamfbDxe/QemuRamfb.c b/OvmfPkg/QemuRamfbDxe/QemuRamfb.c
 | ||||
| index 0d49d8bbab..dbf9bcbe16 100644
 | ||||
| --- a/OvmfPkg/QemuRamfbDxe/QemuRamfb.c
 | ||||
| +++ b/OvmfPkg/QemuRamfbDxe/QemuRamfb.c
 | ||||
| @@ -13,6 +13,7 @@
 | ||||
|  #include <Library/BaseLib.h> | ||||
|  #include <Library/BaseMemoryLib.h> | ||||
|  #include <Library/DebugLib.h> | ||||
| +#include <Library/DebugPrintErrorLevelLib.h>
 | ||||
|  #include <Library/DevicePathLib.h> | ||||
|  #include <Library/FrameBufferBltLib.h> | ||||
|  #include <Library/MemoryAllocationLib.h> | ||||
| @@ -242,6 +243,19 @@ 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; | ||||
|    } | ||||
|    if (FwCfgSize != sizeof (RAMFB_CONFIG)) { | ||||
| diff --git a/OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf b/OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf
 | ||||
| index e3890b8c20..6ffee5acb2 100644
 | ||||
| --- a/OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf
 | ||||
| +++ b/OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf
 | ||||
| @@ -29,6 +29,7 @@
 | ||||
|    BaseLib | ||||
|    BaseMemoryLib | ||||
|    DebugLib | ||||
| +  DebugPrintErrorLevelLib
 | ||||
|    DevicePathLib | ||||
|    FrameBufferBltLib | ||||
|    MemoryAllocationLib | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
| @ -1,14 +1,56 @@ | ||||
| From 46e9cd5dd6cb731d33e79b22619b217ba1600e52 Mon Sep 17 00:00:00 2001 | ||||
| From ed89844b47f46cfe911f1bf2bda40e537a908502 Mon Sep 17 00:00:00 2001 | ||||
| From: Paolo Bonzini <pbonzini@redhat.com> | ||||
| Date: Tue, 21 Nov 2017 00:57:47 +0100 | ||||
| Subject: OvmfPkg: silence EFI_D_VERBOSE (0x00400000) in NvmExpressDxe (RH | ||||
|  only) | ||||
| 
 | ||||
| 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
 | ||||
| 
 | ||||
| Message-id: <20171120235748.29669-7-pbonzini@redhat.com> | ||||
| Patchwork-id: 77759 | ||||
| O-Subject:  [PATCH 6/7] OvmfPkg: silence EFI_D_VERBOSE (0x00400000) in | ||||
| 	NvmExpressDxe (RH only) | ||||
| Bugzilla: 1488247 | ||||
| Acked-by: Laszlo Ersek <lersek@redhat.com> | ||||
| Acked-by: Thomas Huth <thuth@redhat.com> | ||||
| 
 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Wed, 27 Jan 2016 03:05:18 +0100 | ||||
| Subject: [PATCH] OvmfPkg: silence EFI_D_VERBOSE (0x00400000) in NvmExpressDxe | ||||
| 
 | ||||
| NvmExpressDxe logs all BlockIo read & write calls on the EFI_D_VERBOSE | ||||
| level. | ||||
| 
 | ||||
| Contributed-under: TianoCore Contribution Agreement 1.0 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| (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) | ||||
| ---
 | ||||
|  OvmfPkg/OvmfPkgIa32.dsc    | 5 ++++- | ||||
|  OvmfPkg/OvmfPkgIa32X64.dsc | 5 ++++- | ||||
| @ -16,50 +58,53 @@ Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
|  3 files changed, 12 insertions(+), 3 deletions(-) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| index 133a9a93c0..3ddc0c5edb 100644
 | ||||
| index f5c6cceb4f..e8868136d8 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| @@ -809,7 +809,10 @@
 | ||||
| @@ -804,7 +804,10 @@
 | ||||
|    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 {
 | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
 | ||||
| +  }
 | ||||
| +  MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf {
 | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      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 338c38db29..aba4a6cc24 100644
 | ||||
| index c1e52b0acd..d05275a324 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| @@ -823,7 +823,10 @@
 | ||||
| @@ -818,7 +818,10 @@
 | ||||
|    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 {
 | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
 | ||||
| +  }
 | ||||
| +  MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf {
 | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      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 b80710fbdc..99c0ba4465 100644
 | ||||
| index e65165b9f0..cac4cecf18 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| @@ -819,7 +819,10 @@
 | ||||
| @@ -814,7 +814,10 @@
 | ||||
|    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 {
 | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
 | ||||
| +  }
 | ||||
| +  MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf {
 | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
 | ||||
| +  }
 | ||||
|    MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf | ||||
|    MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf | ||||
|    MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
| @ -0,0 +1,99 @@ | ||||
| From 56c4bb81b311dfcee6a34c81d3e4feeda7f88995 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Sat, 16 Nov 2019 17:11:27 +0100 | ||||
| Subject: CryptoPkg/OpensslLib: list RHEL8-specific OpenSSL files in the INFs | ||||
|  (RH) | ||||
| 
 | ||||
| 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 <https://bugzilla.redhat.com/show_bug.cgi?id=1749693#c10>, | ||||
|     and will help with future changes too. | ||||
| 
 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| (cherry picked from commit 57bd3f146590df8757865d8f2cdd1db3cf3f4d40) | ||||
| ---
 | ||||
|  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 c8ec9454bd..24e790b538 100644
 | ||||
| --- a/CryptoPkg/Library/OpensslLib/OpensslLib.inf
 | ||||
| +++ b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
 | ||||
| @@ -570,6 +570,17 @@
 | ||||
|    $(OPENSSL_PATH)/ssl/statem/statem.h | ||||
|    $(OPENSSL_PATH)/ssl/statem/statem_locl.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 | ||||
|    rand_pool_noise.h | ||||
|    ossl_store.c | ||||
| diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
 | ||||
| index 2f232e3e12..52e70a2d03 100644
 | ||||
| --- a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
 | ||||
| +++ b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
 | ||||
| @@ -519,6 +519,17 @@
 | ||||
|    $(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 | ||||
|    rand_pool_noise.h | ||||
|    ossl_store.c | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
| @ -0,0 +1,83 @@ | ||||
| From bf88198555ce964377a56176de8e5e9b45e43e25 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Sat, 6 Jun 2020 01:16:09 +0200 | ||||
| Subject: OvmfPkg/X86QemuLoadImageLib: handle EFI_ACCESS_DENIED from | ||||
|  LoadImage() | ||||
| MIME-Version: 1.0 | ||||
| Content-Type: text/plain; charset=UTF-8 | ||||
| Content-Transfer-Encoding: 8bit | ||||
| 
 | ||||
| Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> | ||||
| RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: | ||||
| 
 | ||||
| - new patch
 | ||||
| 
 | ||||
| - the patch is being upstreamed; it's not a backport because the rebase
 | ||||
|   deadline is close | ||||
| 
 | ||||
| - upstream references:
 | ||||
|   - https://bugzilla.tianocore.org/show_bug.cgi?id=2785 | ||||
|   - http://mid.mail-archive.com/20200605235242.32442-1-lersek@redhat.com | ||||
|   - https://edk2.groups.io/g/devel/message/60825 | ||||
|   - https://www.redhat.com/archives/edk2-devel-archive/2020-June/msg00344.html | ||||
| 
 | ||||
| [downstream note ends, upstream commit message starts] | ||||
| 
 | ||||
| When an image fails Secure Boot validation, LoadImage() returns | ||||
| EFI_SECURITY_VIOLATION if the platform policy is | ||||
| DEFER_EXECUTE_ON_SECURITY_VIOLATION. | ||||
| 
 | ||||
| If the platform policy is DENY_EXECUTE_ON_SECURITY_VIOLATION, then | ||||
| LoadImage() returns EFI_ACCESS_DENIED (and the image does not remain | ||||
| loaded). | ||||
| 
 | ||||
| (Before <https://bugzilla.tianocore.org/show_bug.cgi?id=2129>, this | ||||
| difference would be masked, as DxeImageVerificationLib would incorrectly
 | ||||
| return EFI_SECURITY_VIOLATION for DENY_EXECUTE_ON_SECURITY_VIOLATION as | ||||
| well.) | ||||
| 
 | ||||
| In X86QemuLoadImageLib, proceed to the legacy Linux/x86 Boot Protocol upon | ||||
| seeing EFI_ACCESS_DENIED too. | ||||
| 
 | ||||
| Cc: Ard Biesheuvel <ard.biesheuvel@arm.com> | ||||
| Cc: Jordan Justen <jordan.l.justen@intel.com> | ||||
| Cc: Philippe Mathieu-Daudé <philmd@redhat.com> | ||||
| Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2785 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| ---
 | ||||
|  .../X86QemuLoadImageLib/X86QemuLoadImageLib.c      | 14 ++++++++++---- | ||||
|  1 file changed, 10 insertions(+), 4 deletions(-) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c b/OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c
 | ||||
| index ef753be7ea..931553c0c1 100644
 | ||||
| --- a/OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c
 | ||||
| +++ b/OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c
 | ||||
| @@ -320,15 +320,21 @@ QemuLoadKernelImage (
 | ||||
|   | ||||
|    case EFI_SECURITY_VIOLATION: | ||||
|      // | ||||
| -    // We are running with UEFI secure boot enabled, and the image failed to
 | ||||
| -    // authenticate. For compatibility reasons, we fall back to the legacy
 | ||||
| -    // loader in this case. Since the image has been loaded, we need to unload
 | ||||
| -    // it before proceeding
 | ||||
| +    // Since the image has been loaded, we need to unload it before proceeding
 | ||||
| +    // to the EFI_ACCESS_DENIED case below.
 | ||||
|      // | ||||
|      gBS->UnloadImage (KernelImageHandle); | ||||
|      // | ||||
|      // Fall through | ||||
|      // | ||||
| +  case EFI_ACCESS_DENIED:
 | ||||
| +    //
 | ||||
| +    // We are running with UEFI secure boot enabled, and the image failed to
 | ||||
| +    // authenticate. For compatibility reasons, we fall back to the legacy
 | ||||
| +    // loader in this case.
 | ||||
| +    //
 | ||||
| +    // Fall through
 | ||||
| +    //
 | ||||
|    case EFI_UNSUPPORTED: | ||||
|      // | ||||
|      // The image is not natively supported or cross-type supported. Let's try | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
							
								
								
									
										184
									
								
								0027-Revert-OvmfPkg-use-generic-QEMU-image-loader-for-sec.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										184
									
								
								0027-Revert-OvmfPkg-use-generic-QEMU-image-loader-for-sec.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,184 @@ | ||||
| From 74e5313dfa6719f7990c7e175e035d17c9b3f657 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Fri, 5 Jun 2020 23:44:43 +0200 | ||||
| Subject: Revert "OvmfPkg: use generic QEMU image loader for secure boot | ||||
|  enabled builds" | ||||
| 
 | ||||
| Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> | ||||
| RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: | ||||
| 
 | ||||
| - new patch (to be dropped later, hopefully)
 | ||||
| 
 | ||||
| This reverts commit ced77332cab626f35fbdb36630be27303d289d79. | ||||
| 
 | ||||
| Upstream commit ced77332cab6 ("OvmfPkg: use generic QEMU image loader for | ||||
| secure boot enabled builds", 2020-03-05) changes the "Secure Boot threat | ||||
| model" in a way that is incompatible with at least two use cases. | ||||
| 
 | ||||
| Namely, OVMF has always considered kernel images direct-booted via fw_cfg | ||||
| as trusted, bypassing Secure Boot validation. While that approach is | ||||
| rooted in a technicality (namely, OVMF doesn't load such images with the | ||||
| LoadImage() UEFI boot service / through the UEFI stub, but with the | ||||
| Linux/x86 Boot Protocol), that doesn't mean it's wrong. The direct-booted | ||||
| kernel from fw_cfg comes from the host side, and Secure Boot in the guest | ||||
| is a barrier between the guest firmware and the guest operating system -- | ||||
| it's not a barrier between host and guest. | ||||
| 
 | ||||
| Upstream commit ced77332cab6 points out that the above (historical) OVMF | ||||
| behavior differs from ArmVirtQemu's -- the latter direct-boots kernels | ||||
| from fw_cfg with the LoadImage() / StartImage() boot services. While that | ||||
| difference indeed exists between OVMF and ArmVirtQemu, it's not relevant
 | ||||
| for RHEL downstream. That's because we never build the ArmVirtQemu | ||||
| firmware with the Secure Boot feature, so LoadImage() can never reject the | ||||
| direct-booted kernel due to a signing issue. | ||||
| 
 | ||||
| Subjecting a kernel direct-booted via fw_cfg to Secure Boot verification | ||||
| breaks at least two use cases with OVMF: | ||||
| 
 | ||||
| - It breaks the %check stage in the SPEC file.
 | ||||
| 
 | ||||
|   In that stage, we use the "ovmf-vars-generator" utility from the | ||||
|   "qemu-ovmf-secureboot" project, for verifying whether the Secure Boot | ||||
|   operational mode is enabled. The guest kernel is supposed to boot, and | ||||
|   to print "Secure boot enabled". | ||||
| 
 | ||||
|   As guest kernel, we pick whatever host kernel is available in the Brew | ||||
|   build root. The kernel in question may be a publicly released RHEL | ||||
|   kernel, signed with "Red Hat Secure Boot (signing key 1)", or a | ||||
|   development build, signed for example with "Red Hat Secure Boot Signing | ||||
|   3 (beta)". Either way, none of these keys are accepted by the | ||||
|   certificates that were enrolled by "ovmf-vars-generator" / | ||||
|   "EnrollDefaultKeys.efi" in the %build stage. Therefore, the %check stage | ||||
|   fails. | ||||
| 
 | ||||
| - It breaks "virt-install --location NETWORK-URL" Linux guest
 | ||||
|   installations, if the variable store template used for the new domain | ||||
|   has the Secure Boot operational mode enabled. "virt-install --location" | ||||
|   fetches the kernel from the remote OS tree, and passes it to the guest | ||||
|   firmware via fw_cfg. Therefore the above symptom appears (even for | ||||
|   publicly released OSes). | ||||
| 
 | ||||
|   Importantly, if the user downloads the installer ISO of the publicly | ||||
|   released Fedora / RHEL OS, and exposes the ISO to the guest for example | ||||
|   as a virtio-scsi CD-ROM, then the installation with "virt-install" | ||||
|   (without "--location") does succeed. That's because that way, "shim" is | ||||
|   booted first, from the UEFI-bootable CD-ROM. "Shim" does pass Secure | ||||
|   Boot verification against the Microsoft certificates, and then it is | ||||
|   "shim" that accepts the "Red Hat Secure Boot (signing key 1)" signature | ||||
|   on the guest kernel. | ||||
| 
 | ||||
| Some ways to approach this problem (without reverting upstream commit | ||||
| ced77332cab6): | ||||
| 
 | ||||
| - Equip "ovmf-vars-generator" / "EnrollDefaultKeys.efi" to enroll the
 | ||||
|   public half of "Red Hat Secure Boot (signing key 1)" in the %build | ||||
|   stage. Use a publicly released RHEL kernel in the %check stage. | ||||
| 
 | ||||
|   Downsides: | ||||
| 
 | ||||
|   - The Brew build root does not offer any particular released RHEL | ||||
|     kernel, so either the %check stage would have to download it, or the | ||||
|     SRPM would have to bundle it. However, Brew build environments do not | ||||
|     have unfettered network access (rightly so), so the download wouldn't | ||||
|     work. Furthermore, for bundling with the SRPM, such a kernel image | ||||
|     could be considered too large. | ||||
| 
 | ||||
|   - Does not solve the "virt-install --location" issue for other vendors' | ||||
|     signed kernels. | ||||
| 
 | ||||
| - Invoke "ovmf-vars-generator" / "EnrollDefaultKeys.efi" multiple times
 | ||||
|   during %build, to create multiple varstore templates. One that would | ||||
|   accept publicly released RHEL kernels, and another to accept development | ||||
|   kernels. Don't try to use a particular guest kernel for verification; | ||||
|   instead, check what kernel Brew offers in the build environment, and use | ||||
|   the varstore template matching *that* kernel. | ||||
| 
 | ||||
|   Downsides: | ||||
| 
 | ||||
|   - It may be considered useless to perform %check with a varstore | ||||
|     template that is *not* the one that we ship. | ||||
| 
 | ||||
|   - Does not solve the "virt-install --location" issue for other vendors' | ||||
|     signed kernels. | ||||
| 
 | ||||
| - Sign the RHEL kernels such that the currently enrolled certificates
 | ||||
|   accept them. | ||||
| 
 | ||||
|   Downsides: | ||||
| 
 | ||||
|   - Not feasible at all; it would require Microsoft to sign our kernels. | ||||
|     "Shim" exists exactly to eliminate such signing requirements. | ||||
| 
 | ||||
| - Modify "virt-install --location NETWORK-URL" such that it download a
 | ||||
|   complete (UEFI-bootable) installer ISO image, rather than broken-out | ||||
|   vmlinuz / initrd files. In other words, replace direct (fw_cfg) kernel | ||||
|   boot with a CD-ROM / "shim" boot, internally to "virt-install". | ||||
| 
 | ||||
|   Downsides: | ||||
| 
 | ||||
|   - Defeats the goal of "virt-install --location NETWORK-URL", and defeats | ||||
|     the network installation method of (for example) Anaconda. | ||||
| 
 | ||||
| For now, revert upstream commit ced77332cab6, in order to return to the | ||||
| model we had used in RHEL-8.2 and before. The following ticket has been | ||||
| filed to investigate the problem separately: | ||||
| <https://bugzilla.redhat.com/show_bug.cgi?id=1844653>. | ||||
| 
 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| ---
 | ||||
|  OvmfPkg/OvmfPkgIa32.dsc    | 4 ---- | ||||
|  OvmfPkg/OvmfPkgIa32X64.dsc | 4 ---- | ||||
|  OvmfPkg/OvmfPkgX64.dsc     | 4 ---- | ||||
|  3 files changed, 12 deletions(-) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| index e8868136d8..5b1e757cb9 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| @@ -379,11 +379,7 @@
 | ||||
|    PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf | ||||
|    MpInitLib|UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf | ||||
|    QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/DxeQemuFwCfgS3LibFwCfg.inf | ||||
| -!if $(SECURE_BOOT_ENABLE) == TRUE
 | ||||
| -  QemuLoadImageLib|OvmfPkg/Library/GenericQemuLoadImageLib/GenericQemuLoadImageLib.inf
 | ||||
| -!else
 | ||||
|    QemuLoadImageLib|OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.inf | ||||
| -!endif
 | ||||
|  !if $(TPM_ENABLE) == TRUE | ||||
|    Tpm12DeviceLib|SecurityPkg/Library/Tpm12DeviceLibTcg/Tpm12DeviceLibTcg.inf | ||||
|    Tpm2DeviceLib|SecurityPkg/Library/Tpm2DeviceLibTcg2/Tpm2DeviceLibTcg2.inf | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| index d05275a324..5dffc32105 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| @@ -383,11 +383,7 @@
 | ||||
|    PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf | ||||
|    MpInitLib|UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf | ||||
|    QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/DxeQemuFwCfgS3LibFwCfg.inf | ||||
| -!if $(SECURE_BOOT_ENABLE) == TRUE
 | ||||
| -  QemuLoadImageLib|OvmfPkg/Library/GenericQemuLoadImageLib/GenericQemuLoadImageLib.inf
 | ||||
| -!else
 | ||||
|    QemuLoadImageLib|OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.inf | ||||
| -!endif
 | ||||
|  !if $(TPM_ENABLE) == TRUE | ||||
|    Tpm12DeviceLib|SecurityPkg/Library/Tpm12DeviceLibTcg/Tpm12DeviceLibTcg.inf | ||||
|    Tpm2DeviceLib|SecurityPkg/Library/Tpm2DeviceLibTcg2/Tpm2DeviceLibTcg2.inf | ||||
| diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| index cac4cecf18..a2a76fdeea 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| @@ -383,11 +383,7 @@
 | ||||
|    PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf | ||||
|    MpInitLib|UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf | ||||
|    QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/DxeQemuFwCfgS3LibFwCfg.inf | ||||
| -!if $(SECURE_BOOT_ENABLE) == TRUE
 | ||||
| -  QemuLoadImageLib|OvmfPkg/Library/GenericQemuLoadImageLib/GenericQemuLoadImageLib.inf
 | ||||
| -!else
 | ||||
|    QemuLoadImageLib|OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.inf | ||||
| -!endif
 | ||||
|  !if $(TPM_ENABLE) == TRUE | ||||
|    Tpm12DeviceLib|SecurityPkg/Library/Tpm12DeviceLibTcg/Tpm12DeviceLibTcg.inf | ||||
|    Tpm2DeviceLib|SecurityPkg/Library/Tpm2DeviceLibTcg2/Tpm2DeviceLibTcg2.inf | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
| @ -0,0 +1,85 @@ | ||||
| From 9adcdf493ebbd11efb74e2905ab5f6c8996e096d Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Wed, 24 Jun 2020 11:31:36 +0200 | ||||
| Subject: OvmfPkg/QemuKernelLoaderFsDxe: suppress error on no "-kernel" in | ||||
|  silent aa64 build (RH) | ||||
| MIME-Version: 1.0 | ||||
| Content-Type: text/plain; charset=UTF-8 | ||||
| Content-Transfer-Encoding: 8bit | ||||
| 
 | ||||
| RH-Author: Laszlo Ersek <lersek@redhat.com> | ||||
| Message-id: <20200615080105.11859-2-lersek@redhat.com> | ||||
| Patchwork-id: 97532 | ||||
| O-Subject: [RHEL-8.3.0 edk2 PATCH 1/3] OvmfPkg/QemuKernelLoaderFsDxe: suppress error on no "-kernel" in silent aa64 build (RH) | ||||
| Bugzilla: 1844682 | ||||
| RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com> | ||||
| RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com> | ||||
| RH-Acked-by: Philippe Mathieu-Daudé <philmd@redhat.com> | ||||
| 
 | ||||
| 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 <lersek@redhat.com> | ||||
| Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com> | ||||
| ---
 | ||||
|  .../QemuKernelLoaderFsDxe.c                     | 17 +++++++++++++++++ | ||||
|  .../QemuKernelLoaderFsDxe.inf                   |  1 + | ||||
|  2 files changed, 18 insertions(+) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.c b/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.c
 | ||||
| index b09ff6a359..ec0244d61b 100644
 | ||||
| --- a/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.c
 | ||||
| +++ b/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.c
 | ||||
| @@ -18,6 +18,7 @@
 | ||||
|  #include <Library/BaseLib.h> | ||||
|  #include <Library/BaseMemoryLib.h> | ||||
|  #include <Library/DebugLib.h> | ||||
| +#include <Library/DebugPrintErrorLevelLib.h>
 | ||||
|  #include <Library/DevicePathLib.h> | ||||
|  #include <Library/MemoryAllocationLib.h> | ||||
|  #include <Library/QemuFwCfgLib.h> | ||||
| @@ -1039,6 +1040,22 @@ 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; | ||||
|    } | ||||
|   | ||||
| diff --git a/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf b/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf
 | ||||
| index 7b35adb8e0..e0331c6e2c 100644
 | ||||
| --- a/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf
 | ||||
| +++ b/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf
 | ||||
| @@ -28,6 +28,7 @@
 | ||||
|    BaseLib | ||||
|    BaseMemoryLib | ||||
|    DebugLib | ||||
| +  DebugPrintErrorLevelLib
 | ||||
|    DevicePathLib | ||||
|    MemoryAllocationLib | ||||
|    QemuFwCfgLib | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
| @ -0,0 +1,49 @@ | ||||
| From 135d3d4b4ff12927f7b0c44e067fd42ceae83bb7 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Wed, 24 Jun 2020 11:37:50 +0200 | ||||
| Subject: OvmfPkg/GenericQemuLoadImageLib: log "Not Found" at INFO level | ||||
| MIME-Version: 1.0 | ||||
| Content-Type: text/plain; charset=UTF-8 | ||||
| Content-Transfer-Encoding: 8bit | ||||
| 
 | ||||
| RH-Author: Laszlo Ersek <lersek@redhat.com> | ||||
| Message-id: <20200615080105.11859-3-lersek@redhat.com> | ||||
| Patchwork-id: 97533 | ||||
| O-Subject: [RHEL-8.3.0 edk2 PATCH 2/3] OvmfPkg/GenericQemuLoadImageLib: log "Not Found" at INFO level | ||||
| Bugzilla: 1844682 | ||||
| RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com> | ||||
| RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com> | ||||
| RH-Acked-by: Philippe Mathieu-Daudé <philmd@redhat.com> | ||||
| 
 | ||||
| gBS->LoadImage() returning EFI_NOT_FOUND is an expected condition; it | ||||
| means that QEMU wasn't started with "-kernel". Log this status code as | ||||
| INFO rather than ERROR. | ||||
| 
 | ||||
| Cc: Ard Biesheuvel <ard.biesheuvel@arm.com> | ||||
| Cc: Jordan Justen <jordan.l.justen@intel.com> | ||||
| Cc: Philippe Mathieu-Daudé <philmd@redhat.com> | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| Message-Id: <20200609105414.12474-1-lersek@redhat.com> | ||||
| Acked-by: Ard Biesheuvel <ard.biesheuvel@arm.com> | ||||
| (cherry picked from commit 14c7ed8b51f60097ad771277da69f74b22a7a759) | ||||
| ---
 | ||||
|  .../Library/GenericQemuLoadImageLib/GenericQemuLoadImageLib.c  | 3 ++- | ||||
|  1 file changed, 2 insertions(+), 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/Library/GenericQemuLoadImageLib/GenericQemuLoadImageLib.c b/OvmfPkg/Library/GenericQemuLoadImageLib/GenericQemuLoadImageLib.c
 | ||||
| index 14c8417d43..114db7e844 100644
 | ||||
| --- a/OvmfPkg/Library/GenericQemuLoadImageLib/GenericQemuLoadImageLib.c
 | ||||
| +++ b/OvmfPkg/Library/GenericQemuLoadImageLib/GenericQemuLoadImageLib.c
 | ||||
| @@ -106,7 +106,8 @@ QemuLoadKernelImage (
 | ||||
|      goto UnloadImage; | ||||
|   | ||||
|    default: | ||||
| -    DEBUG ((DEBUG_ERROR, "%a: LoadImage(): %r\n", __FUNCTION__, Status));
 | ||||
| +    DEBUG ((Status == EFI_NOT_FOUND ? DEBUG_INFO : DEBUG_ERROR,
 | ||||
| +      "%a: LoadImage(): %r\n", __FUNCTION__, Status));
 | ||||
|      return Status; | ||||
|    } | ||||
|   | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
| @ -0,0 +1,84 @@ | ||||
| From cbce29f7749477e271f9764fed82de94724af5df Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Wed, 24 Jun 2020 11:40:09 +0200 | ||||
| Subject: SecurityPkg/Tcg2Dxe: suppress error on no swtpm in silent aa64 build | ||||
|  (RH) | ||||
| MIME-Version: 1.0 | ||||
| Content-Type: text/plain; charset=UTF-8 | ||||
| Content-Transfer-Encoding: 8bit | ||||
| 
 | ||||
| RH-Author: Laszlo Ersek <lersek@redhat.com> | ||||
| Message-id: <20200615080105.11859-4-lersek@redhat.com> | ||||
| Patchwork-id: 97534 | ||||
| O-Subject: [RHEL-8.3.0 edk2 PATCH 3/3] SecurityPkg/Tcg2Dxe: suppress error on no swtpm in silent aa64 build (RH) | ||||
| Bugzilla: 1844682 | ||||
| RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com> | ||||
| RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com> | ||||
| RH-Acked-by: Philippe Mathieu-Daudé <philmd@redhat.com> | ||||
| 
 | ||||
| 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 <lersek@redhat.com> | ||||
| Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com> | ||||
| ---
 | ||||
|  SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c   | 17 +++++++++++++++++ | ||||
|  SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf |  1 + | ||||
|  2 files changed, 18 insertions(+) | ||||
| 
 | ||||
| diff --git a/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c b/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c
 | ||||
| index 9a5f987e68..da2153cb25 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 <Protocol/ResetNotification.h> | ||||
|   | ||||
|  #include <Library/DebugLib.h> | ||||
| +#include <Library/DebugPrintErrorLevelLib.h>
 | ||||
|  #include <Library/BaseMemoryLib.h> | ||||
|  #include <Library/UefiRuntimeServicesTableLib.h> | ||||
|  #include <Library/UefiDriverEntryPoint.h> | ||||
| @@ -2642,6 +2643,22 @@ DriverEntry (
 | ||||
|    if (CompareGuid (PcdGetPtr(PcdTpmInstanceGuid), &gEfiTpmDeviceInstanceNoneGuid) || | ||||
|        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; | ||||
|    } | ||||
|   | ||||
| diff --git a/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf b/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf
 | ||||
| index 576cf80d06..851471afb7 100644
 | ||||
| --- a/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf
 | ||||
| +++ b/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf
 | ||||
| @@ -55,6 +55,7 @@
 | ||||
|    UefiRuntimeServicesTableLib | ||||
|    BaseMemoryLib | ||||
|    DebugLib | ||||
| +  DebugPrintErrorLevelLib
 | ||||
|    Tpm2CommandLib | ||||
|    PrintLib | ||||
|    UefiLib | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
							
								
								
									
										105
									
								
								0042-UefiCpuPkg-PiSmmCpuDxeSmm-pause-in-WaitForSemaphore-.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										105
									
								
								0042-UefiCpuPkg-PiSmmCpuDxeSmm-pause-in-WaitForSemaphore-.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,105 @@ | ||||
| From 70c9d989107c6ac964bb437c5a4ea6ffe3214e45 Mon Sep 17 00:00:00 2001 | ||||
| From: Miroslav Rezanina <mrezanin@redhat.com> | ||||
| Date: Mon, 10 Aug 2020 07:52:28 +0200 | ||||
| Subject: UefiCpuPkg/PiSmmCpuDxeSmm: pause in WaitForSemaphore() before | ||||
|  re-fetch | ||||
| MIME-Version: 1.0 | ||||
| Content-Type: text/plain; charset=UTF-8 | ||||
| Content-Transfer-Encoding: 8bit | ||||
| 
 | ||||
| RH-Author: Laszlo Ersek <lersek@redhat.com> | ||||
| Message-id: <20200731141037.1941-2-lersek@redhat.com> | ||||
| Patchwork-id: 98121 | ||||
| O-Subject: [RHEL-8.3.0 edk2 PATCH 1/1] UefiCpuPkg/PiSmmCpuDxeSmm: pause in WaitForSemaphore() before re-fetch | ||||
| Bugzilla: 1861718 | ||||
| RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com> | ||||
| RH-Acked-by: Eduardo Habkost <ehabkost@redhat.com> | ||||
| 
 | ||||
| Most busy waits (spinlocks) in "UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c" | ||||
| already call CpuPause() in their loop bodies; see SmmWaitForApArrival(), | ||||
| APHandler(), and SmiRendezvous(). However, the "main wait" within | ||||
| APHandler(): | ||||
| 
 | ||||
| >     //
 | ||||
| >     // Wait for something to happen
 | ||||
| >     //
 | ||||
| >     WaitForSemaphore (mSmmMpSyncData->CpuData[CpuIndex].Run);
 | ||||
| 
 | ||||
| doesn't do so, as WaitForSemaphore() keeps trying to acquire the semaphore | ||||
| without pausing. | ||||
| 
 | ||||
| The performance impact is especially notable in QEMU/KVM + OVMF | ||||
| virtualization with CPU overcommit (that is, when the guest has | ||||
| significantly more VCPUs than the host has physical CPUs). The guest BSP | ||||
| is working heavily in: | ||||
| 
 | ||||
|   BSPHandler()                  [MpService.c] | ||||
|     PerformRemainingTasks()     [PiSmmCpuDxeSmm.c] | ||||
|       SetUefiMemMapAttributes() [SmmCpuMemoryManagement.c] | ||||
| 
 | ||||
| while the many guest APs are spinning in the "Wait for something to | ||||
| happen" semaphore acquisition, in APHandler(). The guest APs are | ||||
| generating useless memory traffic and saturating host CPUs, hindering the | ||||
| guest BSP's progress in SetUefiMemMapAttributes(). | ||||
| 
 | ||||
| Rework the loop in WaitForSemaphore(): call CpuPause() in every iteration | ||||
| after the first check fails. Due to Pause Loop Exiting (known as Pause | ||||
| Filter on AMD), the host scheduler can favor the guest BSP over the guest | ||||
| APs. | ||||
| 
 | ||||
| Running a 16 GB RAM + 512 VCPU guest on a 448 PCPU host, this patch | ||||
| reduces OVMF boot time (counted until reaching grub) from 20-30 minutes to | ||||
| less than 4 minutes. | ||||
| 
 | ||||
| The patch should benefit physical machines as well -- according to the | ||||
| Intel SDM, PAUSE "Improves the performance of spin-wait loops". Adding | ||||
| PAUSE to the generic WaitForSemaphore() function is considered a general | ||||
| improvement. | ||||
| 
 | ||||
| Cc: Eric Dong <eric.dong@intel.com> | ||||
| Cc: Philippe Mathieu-Daudé <philmd@redhat.com> | ||||
| Cc: Rahul Kumar <rahul1.kumar@intel.com> | ||||
| Cc: Ray Ni <ray.ni@intel.com> | ||||
| Ref: https://bugzilla.redhat.com/show_bug.cgi?id=1861718 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| Message-Id: <20200729185217.10084-1-lersek@redhat.com> | ||||
| Reviewed-by: Eric Dong <eric.dong@intel.com> | ||||
| (cherry picked from commit 9001b750df64b25b14ec45a2efa1361a7b96c00a) | ||||
| Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com> | ||||
| ---
 | ||||
|  UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c | 18 +++++++++++------- | ||||
|  1 file changed, 11 insertions(+), 7 deletions(-) | ||||
| 
 | ||||
| diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c b/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c
 | ||||
| index 57e788c01b..4bcd217917 100644
 | ||||
| --- a/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c
 | ||||
| +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c
 | ||||
| @@ -40,14 +40,18 @@ WaitForSemaphore (
 | ||||
|  { | ||||
|    UINT32                            Value; | ||||
|   | ||||
| -  do {
 | ||||
| +  for (;;) {
 | ||||
|      Value = *Sem; | ||||
| -  } while (Value == 0 ||
 | ||||
| -           InterlockedCompareExchange32 (
 | ||||
| -             (UINT32*)Sem,
 | ||||
| -             Value,
 | ||||
| -             Value - 1
 | ||||
| -             ) != Value);
 | ||||
| +    if (Value != 0 &&
 | ||||
| +        InterlockedCompareExchange32 (
 | ||||
| +          (UINT32*)Sem,
 | ||||
| +          Value,
 | ||||
| +          Value - 1
 | ||||
| +          ) == Value) {
 | ||||
| +      break;
 | ||||
| +    }
 | ||||
| +    CpuPause ();
 | ||||
| +  }
 | ||||
|    return Value - 1; | ||||
|  } | ||||
|   | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
							
								
								
									
										139
									
								
								0045-OvmfPkg-SmmControl2Dxe-negotiate-ICH9_LPC_SMI_F_CPU_.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										139
									
								
								0045-OvmfPkg-SmmControl2Dxe-negotiate-ICH9_LPC_SMI_F_CPU_.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,139 @@ | ||||
| From a5efebddb858c739d4a67865a4f8d836ba989d30 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Tue, 14 Jul 2020 20:43:05 +0200 | ||||
| Subject: OvmfPkg/SmmControl2Dxe: negotiate ICH9_LPC_SMI_F_CPU_HOTPLUG | ||||
| MIME-Version: 1.0 | ||||
| Content-Type: text/plain; charset=UTF-8 | ||||
| Content-Transfer-Encoding: 8bit | ||||
| 
 | ||||
| RH-Author: Laszlo Ersek (lersek) | ||||
| RH-MergeRequest: 1: [RHEL-8.4.0] complete the "VCPU hotplug with SMI" OVMF feature | ||||
| RH-Commit: [1/3] 33d820d43a1be2ece09044b0cf105275f3fcc9ce (lersek/edk2) | ||||
| RH-Bugzilla: 1849177 | ||||
| 
 | ||||
| The ICH9_LPC_SMI_F_BROADCAST and ICH9_LPC_SMI_F_CPU_HOTPLUG feature flags | ||||
| cause QEMU to behave as follows: | ||||
| 
 | ||||
|   BROADCAST  CPU_HOTPLUG  use case / behavior | ||||
|   ---------  -----------  ------------------------------------------------ | ||||
|   clear      clear        OVMF built without SMM_REQUIRE; or very old OVMF | ||||
|                           (from before commit a316d7ac91d3 / 2017-02-07). | ||||
|                           QEMU permits CPU hotplug operations, and does | ||||
|                           not cause the OS to inject an SMI upon hotplug. | ||||
|                           Firmware is not expected to be aware of hotplug | ||||
|                           events. | ||||
| 
 | ||||
|   clear      set          Invalid feature set; QEMU rejects the feature | ||||
|                           negotiation. | ||||
| 
 | ||||
|   set        clear        OVMF after a316d7ac91d3 / 2017-02-07, built with | ||||
|                           SMM_REQUIRE, but no support for CPU hotplug. | ||||
|                           QEMU gracefully refuses hotplug operations. | ||||
| 
 | ||||
|   set        set          OVMF after a316d7ac91d3 / 2017-02-07, built with | ||||
|                           SMM_REQUIRE, and supporting CPU hotplug. QEMU | ||||
|                           permits CPU hotplug operations, and causes the | ||||
|                           OS to inject an SMI upon hotplug. Firmware is | ||||
|                           expected to deal with hotplug events. | ||||
| 
 | ||||
| Negotiate ICH9_LPC_SMI_F_CPU_HOTPLUG -- but only if SEV is disabled, as | ||||
| OvmfPkg/CpuHotplugSmm can't deal with SEV yet. | ||||
| 
 | ||||
| Cc: Ard Biesheuvel <ard.biesheuvel@arm.com> | ||||
| Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com> | ||||
| Cc: Igor Mammedov <imammedo@redhat.com> | ||||
| Cc: Jordan Justen <jordan.l.justen@intel.com> | ||||
| Cc: Liran Alon <liran.alon@oracle.com> | ||||
| Cc: Philippe Mathieu-Daudé <philmd@redhat.com> | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| Message-Id: <20200714184305.9814-1-lersek@redhat.com> | ||||
| Acked-by: Ard Biesheuvel <ard.biesheuvel@arm.com> | ||||
| Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> | ||||
| (cherry picked from commit 5ba203b54e5953572e279e5505cd65e4cc360e34) | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| ---
 | ||||
|  OvmfPkg/SmmControl2Dxe/SmiFeatures.c      | 26 +++++++++++++++++++++-- | ||||
|  OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf |  1 + | ||||
|  2 files changed, 25 insertions(+), 2 deletions(-) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/SmmControl2Dxe/SmiFeatures.c b/OvmfPkg/SmmControl2Dxe/SmiFeatures.c
 | ||||
| index 6210b7515e..c9d8755432 100644
 | ||||
| --- a/OvmfPkg/SmmControl2Dxe/SmiFeatures.c
 | ||||
| +++ b/OvmfPkg/SmmControl2Dxe/SmiFeatures.c
 | ||||
| @@ -9,6 +9,7 @@
 | ||||
|   | ||||
|  #include <Library/BaseLib.h> | ||||
|  #include <Library/DebugLib.h> | ||||
| +#include <Library/MemEncryptSevLib.h>
 | ||||
|  #include <Library/MemoryAllocationLib.h> | ||||
|  #include <Library/PcdLib.h> | ||||
|  #include <Library/QemuFwCfgLib.h> | ||||
| @@ -21,6 +22,12 @@
 | ||||
|  // "etc/smi/supported-features" and "etc/smi/requested-features" fw_cfg files. | ||||
|  // | ||||
|  #define ICH9_LPC_SMI_F_BROADCAST BIT0 | ||||
| +//
 | ||||
| +// The following bit value stands for "enable CPU hotplug, and inject an SMI
 | ||||
| +// with control value ICH9_APM_CNT_CPU_HOTPLUG upon hotplug", in the
 | ||||
| +// "etc/smi/supported-features" and "etc/smi/requested-features" fw_cfg files.
 | ||||
| +//
 | ||||
| +#define ICH9_LPC_SMI_F_CPU_HOTPLUG BIT1
 | ||||
|   | ||||
|  // | ||||
|  // Provides a scratch buffer (allocated in EfiReservedMemoryType type memory) | ||||
| @@ -67,6 +74,7 @@ NegotiateSmiFeatures (
 | ||||
|    UINTN                SupportedFeaturesSize; | ||||
|    UINTN                RequestedFeaturesSize; | ||||
|    UINTN                FeaturesOkSize; | ||||
| +  UINT64               RequestedFeaturesMask;
 | ||||
|   | ||||
|    // | ||||
|    // Look up the fw_cfg files used for feature negotiation. The selector keys | ||||
| @@ -104,9 +112,16 @@ NegotiateSmiFeatures (
 | ||||
|    QemuFwCfgReadBytes (sizeof mSmiFeatures, &mSmiFeatures); | ||||
|   | ||||
|    // | ||||
| -  // We want broadcast SMI and nothing else.
 | ||||
| +  // We want broadcast SMI, SMI on CPU hotplug, and nothing else.
 | ||||
|    // | ||||
| -  mSmiFeatures &= ICH9_LPC_SMI_F_BROADCAST;
 | ||||
| +  RequestedFeaturesMask = ICH9_LPC_SMI_F_BROADCAST;
 | ||||
| +  if (!MemEncryptSevIsEnabled ()) {
 | ||||
| +    //
 | ||||
| +    // For now, we only support hotplug with SEV disabled.
 | ||||
| +    //
 | ||||
| +    RequestedFeaturesMask |= ICH9_LPC_SMI_F_CPU_HOTPLUG;
 | ||||
| +  }
 | ||||
| +  mSmiFeatures &= RequestedFeaturesMask;
 | ||||
|    QemuFwCfgSelectItem (mRequestedFeaturesItem); | ||||
|    QemuFwCfgWriteBytes (sizeof mSmiFeatures, &mSmiFeatures); | ||||
|   | ||||
| @@ -144,6 +159,13 @@ NegotiateSmiFeatures (
 | ||||
|      DEBUG ((DEBUG_INFO, "%a: using SMI broadcast\n", __FUNCTION__)); | ||||
|    } | ||||
|   | ||||
| +  if ((mSmiFeatures & ICH9_LPC_SMI_F_CPU_HOTPLUG) == 0) {
 | ||||
| +    DEBUG ((DEBUG_INFO, "%a: CPU hotplug not negotiated\n", __FUNCTION__));
 | ||||
| +  } else {
 | ||||
| +    DEBUG ((DEBUG_INFO, "%a: CPU hotplug with SMI negotiated\n",
 | ||||
| +      __FUNCTION__));
 | ||||
| +  }
 | ||||
| +
 | ||||
|    // | ||||
|    // Negotiation successful (although we may not have gotten the optimal | ||||
|    // feature set). | ||||
| diff --git a/OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf b/OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf
 | ||||
| index 3abed141e6..b8fdea8deb 100644
 | ||||
| --- a/OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf
 | ||||
| +++ b/OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf
 | ||||
| @@ -46,6 +46,7 @@
 | ||||
|    BaseLib | ||||
|    DebugLib | ||||
|    IoLib | ||||
| +  MemEncryptSevLib
 | ||||
|    MemoryAllocationLib | ||||
|    PcdLib | ||||
|    PciLib | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
| @ -0,0 +1,90 @@ | ||||
| From 4e5edfcdf5986d9e0801a976a3aa558b5f370099 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Thu, 27 Aug 2020 00:21:28 +0200 | ||||
| Subject: OvmfPkg/CpuHotplugSmm: fix CPU hotplug race just before SMI broadcast | ||||
| MIME-Version: 1.0 | ||||
| Content-Type: text/plain; charset=UTF-8 | ||||
| Content-Transfer-Encoding: 8bit | ||||
| 
 | ||||
| RH-Author: Laszlo Ersek (lersek) | ||||
| RH-MergeRequest: 1: [RHEL-8.4.0] complete the "VCPU hotplug with SMI" OVMF feature | ||||
| RH-Commit: [2/3] ea3ff703dfb7bd4f77b6807f06c89e754cc9d980 (lersek/edk2) | ||||
| RH-Bugzilla: 1849177 | ||||
| 
 | ||||
| The "virsh setvcpus" (plural) command may hot-plug several VCPUs in quick | ||||
| succession -- it means a series of "device_add" QEMU monitor commands, | ||||
| back-to-back. | ||||
| 
 | ||||
| If a "device_add" occurs *just before* ACPI raises the broadcast SMI, | ||||
| then: | ||||
| 
 | ||||
| - OVMF processes the hot-added CPU well.
 | ||||
| 
 | ||||
| - However, QEMU's post-SMI ACPI loop -- which clears the pending events
 | ||||
|   for the hot-added CPUs that were collected before raising the SMI -- is | ||||
|   unaware of the stray CPU. Thus, the pending event is not cleared for it. | ||||
| 
 | ||||
| As a result of the stuck event, at the next hot-plug, OVMF tries to re-add | ||||
| (relocate for the 2nd time) the already-known CPU. At that time, the AP is | ||||
| already in the normal edk2 SMM busy-wait however, so it doesn't respond to | ||||
| the exchange that the BSP intends to do in SmbaseRelocate(). Thus the VM | ||||
| gets stuck in SMM. | ||||
| 
 | ||||
| (Because of the above symptom, this is not considered a security patch; it | ||||
| doesn't seem exploitable by a malicious guest OS.) | ||||
| 
 | ||||
| In CpuHotplugMmi(), skip the supposedly hot-added CPU if it's already | ||||
| known. The post-SMI ACPI loop will clear the pending event for it this | ||||
| time. | ||||
| 
 | ||||
| Cc: Ard Biesheuvel <ard.biesheuvel@arm.com> | ||||
| Cc: Igor Mammedov <imammedo@redhat.com> | ||||
| Cc: Jordan Justen <jordan.l.justen@intel.com> | ||||
| Cc: Philippe Mathieu-Daudé <philmd@redhat.com> | ||||
| Fixes: bc498ac4ca7590479cfd91ad1bb8a36286b0dc21 | ||||
| Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2929 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| Message-Id: <20200826222129.25798-2-lersek@redhat.com> | ||||
| Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com> | ||||
| (cherry picked from commit 020bb4b46d6f6708bb3358e1c738109b7908f0de) | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| ---
 | ||||
|  OvmfPkg/CpuHotplugSmm/CpuHotplug.c | 19 +++++++++++++++++++ | ||||
|  1 file changed, 19 insertions(+) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/CpuHotplugSmm/CpuHotplug.c b/OvmfPkg/CpuHotplugSmm/CpuHotplug.c
 | ||||
| index 20e6bec04f..cfe698ed2b 100644
 | ||||
| --- a/OvmfPkg/CpuHotplugSmm/CpuHotplug.c
 | ||||
| +++ b/OvmfPkg/CpuHotplugSmm/CpuHotplug.c
 | ||||
| @@ -193,9 +193,28 @@ CpuHotplugMmi (
 | ||||
|    NewSlot = 0; | ||||
|    while (PluggedIdx < PluggedCount) { | ||||
|      APIC_ID NewApicId; | ||||
| +    UINT32  CheckSlot;
 | ||||
|      UINTN   NewProcessorNumberByProtocol; | ||||
|   | ||||
|      NewApicId = mPluggedApicIds[PluggedIdx]; | ||||
| +
 | ||||
| +    //
 | ||||
| +    // Check if the supposedly hot-added CPU is already known to us.
 | ||||
| +    //
 | ||||
| +    for (CheckSlot = 0;
 | ||||
| +         CheckSlot < mCpuHotPlugData->ArrayLength;
 | ||||
| +         CheckSlot++) {
 | ||||
| +      if (mCpuHotPlugData->ApicId[CheckSlot] == NewApicId) {
 | ||||
| +        break;
 | ||||
| +      }
 | ||||
| +    }
 | ||||
| +    if (CheckSlot < mCpuHotPlugData->ArrayLength) {
 | ||||
| +      DEBUG ((DEBUG_VERBOSE, "%a: APIC ID " FMT_APIC_ID " was hot-plugged "
 | ||||
| +        "before; ignoring it\n", __FUNCTION__, NewApicId));
 | ||||
| +      PluggedIdx++;
 | ||||
| +      continue;
 | ||||
| +    }
 | ||||
| +
 | ||||
|      // | ||||
|      // Find the first empty slot in CPU_HOT_PLUG_DATA. | ||||
|      // | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
							
								
								
									
										119
									
								
								0047-OvmfPkg-CpuHotplugSmm-fix-CPU-hotplug-race-just-afte.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								0047-OvmfPkg-CpuHotplugSmm-fix-CPU-hotplug-race-just-afte.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,119 @@ | ||||
| From 08a95c3541cbe2b3a1c671fa683bd6214ad996f0 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Thu, 27 Aug 2020 00:21:29 +0200 | ||||
| Subject: OvmfPkg/CpuHotplugSmm: fix CPU hotplug race just after SMI broadcast | ||||
| MIME-Version: 1.0 | ||||
| Content-Type: text/plain; charset=UTF-8 | ||||
| Content-Transfer-Encoding: 8bit | ||||
| 
 | ||||
| RH-Author: Laszlo Ersek (lersek) | ||||
| RH-MergeRequest: 1: [RHEL-8.4.0] complete the "VCPU hotplug with SMI" OVMF feature | ||||
| RH-Commit: [3/3] 40521ea89725b8b0ff8ca3f0a610ff45431e610e (lersek/edk2) | ||||
| RH-Bugzilla: 1849177 | ||||
| 
 | ||||
| The "virsh setvcpus" (plural) command may hot-plug several VCPUs in quick | ||||
| succession -- it means a series of "device_add" QEMU monitor commands, | ||||
| back-to-back. | ||||
| 
 | ||||
| If a "device_add" occurs *just after* ACPI raises the broadcast SMI, then: | ||||
| 
 | ||||
| - the CPU_FOREACH() loop in QEMU's ich9_apm_ctrl_changed() cannot make the
 | ||||
|   SMI pending for the new CPU -- at that time, the new CPU doesn't even | ||||
|   exist yet, | ||||
| 
 | ||||
| - OVMF will find the new CPU however (in the CPU hotplug register block),
 | ||||
|   in QemuCpuhpCollectApicIds(). | ||||
| 
 | ||||
| As a result, when the firmware sends an INIT-SIPI-SIPI to the new CPU in | ||||
| SmbaseRelocate(), expecting it to boot into SMM (due to the pending SMI), | ||||
| the new CPU instead boots straight into the post-RSM (normal mode) "pen", | ||||
| skipping its initial SMI handler. | ||||
| 
 | ||||
| The CPU halts nicely in the pen, but its SMBASE is never relocated, and | ||||
| the SMRAM message exchange with the BSP falls apart -- the BSP gets stuck | ||||
| in the following loop: | ||||
| 
 | ||||
|   // | ||||
|   // Wait until the hot-added CPU is just about to execute RSM. | ||||
|   // | ||||
|   while (Context->AboutToLeaveSmm == 0) { | ||||
|     CpuPause (); | ||||
|   } | ||||
| 
 | ||||
| because the new CPU's initial SMI handler never sets the flag to nonzero. | ||||
| 
 | ||||
| Fix this by sending a directed SMI to the new CPU just before sending it | ||||
| the INIT-SIPI-SIPI. The various scenarios are documented in the code -- | ||||
| the cases affected by the patch are documented under point (2). | ||||
| 
 | ||||
| Note that this is not considered a security patch, as for a malicious | ||||
| guest OS, the issue is not exploitable -- the symptom is a hang on the | ||||
| BSP, in the above-noted loop in SmbaseRelocate(). Instead, the patch fixes | ||||
| behavior for a benign guest OS. | ||||
| 
 | ||||
| Cc: Ard Biesheuvel <ard.biesheuvel@arm.com> | ||||
| Cc: Igor Mammedov <imammedo@redhat.com> | ||||
| Cc: Jordan Justen <jordan.l.justen@intel.com> | ||||
| Cc: Philippe Mathieu-Daudé <philmd@redhat.com> | ||||
| Fixes: 51a6fb41181529e4b50ea13377425bda6bb69ba6 | ||||
| Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2929 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| Message-Id: <20200826222129.25798-3-lersek@redhat.com> | ||||
| Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com> | ||||
| (cherry picked from commit cbccf995920a28071f5403b847f29ebf8b732fa9) | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| ---
 | ||||
|  OvmfPkg/CpuHotplugSmm/Smbase.c | 35 ++++++++++++++++++++++++++++------ | ||||
|  1 file changed, 29 insertions(+), 6 deletions(-) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/CpuHotplugSmm/Smbase.c b/OvmfPkg/CpuHotplugSmm/Smbase.c
 | ||||
| index 170571221d..d8f45c4313 100644
 | ||||
| --- a/OvmfPkg/CpuHotplugSmm/Smbase.c
 | ||||
| +++ b/OvmfPkg/CpuHotplugSmm/Smbase.c
 | ||||
| @@ -220,14 +220,37 @@ SmbaseRelocate (
 | ||||
|    // | ||||
|    // Boot the hot-added CPU. | ||||
|    // | ||||
| -  // If the OS is benign, and so the hot-added CPU is still in RESET state,
 | ||||
| -  // then the broadcast SMI is still pending for it; it will now launch
 | ||||
| -  // directly into SMM.
 | ||||
| +  // There are 2*2 cases to consider:
 | ||||
|    // | ||||
| -  // If the OS is malicious, the hot-added CPU has been booted already, and so
 | ||||
| -  // it is already spinning on the APIC ID gate. In that case, the
 | ||||
| -  // INIT-SIPI-SIPI below will be ignored.
 | ||||
| +  // (1) The CPU was hot-added before the SMI was broadcast.
 | ||||
|    // | ||||
| +  // (1.1) The OS is benign.
 | ||||
| +  //
 | ||||
| +  //       The hot-added CPU is in RESET state, with the broadcast SMI pending
 | ||||
| +  //       for it. The directed SMI below will be ignored (it's idempotent),
 | ||||
| +  //       and the INIT-SIPI-SIPI will launch the CPU directly into SMM.
 | ||||
| +  //
 | ||||
| +  // (1.2) The OS is malicious.
 | ||||
| +  //
 | ||||
| +  //       The hot-added CPU has been booted, by the OS. Thus, the hot-added
 | ||||
| +  //       CPU is spinning on the APIC ID gate. In that case, both the SMI and
 | ||||
| +  //       the INIT-SIPI-SIPI below will be ignored.
 | ||||
| +  //
 | ||||
| +  // (2) The CPU was hot-added after the SMI was broadcast.
 | ||||
| +  //
 | ||||
| +  // (2.1) The OS is benign.
 | ||||
| +  //
 | ||||
| +  //       The hot-added CPU is in RESET state, with no SMI pending for it. The
 | ||||
| +  //       directed SMI will latch the SMI for the CPU. Then the INIT-SIPI-SIPI
 | ||||
| +  //       will launch the CPU into SMM.
 | ||||
| +  //
 | ||||
| +  // (2.2) The OS is malicious.
 | ||||
| +  //
 | ||||
| +  //       The hot-added CPU is executing OS code. The directed SMI will pull
 | ||||
| +  //       the hot-added CPU into SMM, where it will start spinning on the APIC
 | ||||
| +  //       ID gate. The INIT-SIPI-SIPI will be ignored.
 | ||||
| +  //
 | ||||
| +  SendSmiIpi (ApicId);
 | ||||
|    SendInitSipiSipi (ApicId, PenAddress); | ||||
|   | ||||
|    // | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
							
								
								
									
										386
									
								
								0048-CryptoPkg-OpensslLib-Upgrade-OpenSSL-to-1.1.1g.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										386
									
								
								0048-CryptoPkg-OpensslLib-Upgrade-OpenSSL-to-1.1.1g.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,386 @@ | ||||
| From e81751a1c303f5cd4bcae0ed1a38c60c38a0cf38 Mon Sep 17 00:00:00 2001 | ||||
| From: Guomin Jiang <guomin.jiang@intel.com> | ||||
| Date: Fri, 10 Jul 2020 09:47:31 +0800 | ||||
| Subject: CryptoPkg/OpensslLib: Upgrade OpenSSL to 1.1.1g | ||||
| 
 | ||||
| RH-Author: Laszlo Ersek (lersek) | ||||
| RH-MergeRequest: 2: [RHEL-8.4.0] bump OpenSSL dist-git submodule to 1.1.1g | ||||
| RH-Commit: [1/2] 36d4bc34a3b5c421819e94c58ff84fd779a93bae (lersek/edk2) | ||||
| RH-Bugzilla: 1893806 | ||||
| 
 | ||||
| --v-- RHEL8 notes --v--
 | ||||
| 
 | ||||
| - The "CryptoPkg/Library/OpensslLib/openssl" hunk, advancing upstream
 | ||||
|   edk2's OpenSSL submodule reference, has been stripped from this | ||||
|   backport. (Refer to downstream commit c5d729df70f8 ("remove upstream | ||||
|   edk2's openssl submodule (RH only)", 2020-06-05), as basis.) The | ||||
|   corresponding RHEL8 OpenSSL dist-git bump is implemented in a subsequent | ||||
|   patch in this series. | ||||
| 
 | ||||
|   This cherry-pick and the RHEL8 OpenSSL dist-git submodule bump are kept | ||||
|   separate for easing the next rebase, even at the cost of introducing a | ||||
|   brief interval in the git history where the downstream exploded tree | ||||
|   does not build. | ||||
| 
 | ||||
| - Contextual difference in "OpensslLib.inf" due to downstream commit
 | ||||
|   56c4bb81b311 ("CryptoPkg/OpensslLib: list RHEL8-specific OpenSSL files | ||||
|   in the INFs (RH)", 2020-06-05); automatically resolved by | ||||
|   git-cherry-pick. | ||||
| 
 | ||||
| --^-- RHEL8 notes --^--
 | ||||
| 
 | ||||
| Upgrade openssl to 1.1.1g. the directory have been reorganized, | ||||
| openssl moved crypto/include/internal to include/crypto folder. | ||||
| So we change directory to match the re-organization. | ||||
| 
 | ||||
| The dso_conf.h and opensslconf.h will generated in UNIX format, | ||||
| change process_files.pl to covent the EOL automatically. | ||||
| 
 | ||||
| Cc: Jian J Wang <jian.j.wang@intel.com> | ||||
| Cc: Xiaoyu Lu <xiaoyux.lu@intel.com> | ||||
| Signed-off-by: Guomin Jiang <guomin.jiang@intel.com> | ||||
| Reviewed-by: Laszlo Ersek <lersek@redhat.com> | ||||
| Tested-by: Laszlo Ersek <lersek@redhat.com> | ||||
| Reviewed-by: Jian J Wang <jian.j.wang@intel.com> | ||||
| (cherry picked from commit 8c30327debb28c0b6cfa2106b736774e0b20daac) | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| ---
 | ||||
|  CryptoPkg/CryptoPkg.dec                       |  1 - | ||||
|  .../Library/BaseCryptLib/Hash/CryptSm3.c      |  2 +- | ||||
|  .../BaseCryptLib/Pk/CryptPkcs7VerifyEku.c     |  4 +- | ||||
|  .../Include/{internal => crypto}/dso_conf.h   | 32 +++++----- | ||||
|  .../Library/Include/openssl/opensslconf.h     |  3 - | ||||
|  CryptoPkg/Library/OpensslLib/OpensslLib.inf   | 58 +++++++++---------- | ||||
|  .../Library/OpensslLib/OpensslLibCrypto.inf   | 50 ++++++++-------- | ||||
|  CryptoPkg/Library/OpensslLib/process_files.pl | 25 +++++--- | ||||
|  CryptoPkg/Library/OpensslLib/rand_pool.c      |  2 +- | ||||
|  9 files changed, 90 insertions(+), 87 deletions(-) | ||||
|  rename CryptoPkg/Library/Include/{internal => crypto}/dso_conf.h (76%) | ||||
| 
 | ||||
| diff --git a/CryptoPkg/CryptoPkg.dec b/CryptoPkg/CryptoPkg.dec
 | ||||
| index 4d1a1368a8..5888941bab 100644
 | ||||
| --- a/CryptoPkg/CryptoPkg.dec
 | ||||
| +++ b/CryptoPkg/CryptoPkg.dec
 | ||||
| @@ -23,7 +23,6 @@
 | ||||
|    Private | ||||
|    Library/Include | ||||
|    Library/OpensslLib/openssl/include | ||||
| -  Library/OpensslLib/openssl/crypto/include
 | ||||
|   | ||||
|  [LibraryClasses] | ||||
|    ##  @libraryclass  Provides basic library functions for cryptographic primitives. | ||||
| diff --git a/CryptoPkg/Library/BaseCryptLib/Hash/CryptSm3.c b/CryptoPkg/Library/BaseCryptLib/Hash/CryptSm3.c
 | ||||
| index eacf4826c4..235331c2a0 100644
 | ||||
| --- a/CryptoPkg/Library/BaseCryptLib/Hash/CryptSm3.c
 | ||||
| +++ b/CryptoPkg/Library/BaseCryptLib/Hash/CryptSm3.c
 | ||||
| @@ -7,7 +7,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 | ||||
|  **/ | ||||
|   | ||||
|  #include "InternalCryptLib.h" | ||||
| -#include "internal/sm3.h"
 | ||||
| +#include "crypto/sm3.h"
 | ||||
|   | ||||
|  /** | ||||
|    Retrieves the size, in bytes, of the context buffer required for SM3 hash operations. | ||||
| diff --git a/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7VerifyEku.c b/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7VerifyEku.c
 | ||||
| index 229c244b26..c9fdb65b99 100644
 | ||||
| --- a/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7VerifyEku.c
 | ||||
| +++ b/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7VerifyEku.c
 | ||||
| @@ -15,13 +15,13 @@
 | ||||
|  #include <openssl/asn1.h> | ||||
|  #include <openssl/x509.h> | ||||
|  #include <openssl/bio.h> | ||||
| -#include <internal/x509_int.h>
 | ||||
| +#include <crypto/x509.h>
 | ||||
|  #include <openssl/pkcs7.h> | ||||
|  #include <openssl/bn.h> | ||||
|  #include <openssl/x509_vfy.h> | ||||
|  #include <openssl/pem.h> | ||||
|  #include <openssl/evp.h> | ||||
| -#include <internal/asn1_int.h>
 | ||||
| +#include <crypto/asn1.h>
 | ||||
|   | ||||
|  /** | ||||
|    This function will return the leaf signer certificate in a chain.  This is | ||||
| diff --git a/CryptoPkg/Library/Include/internal/dso_conf.h b/CryptoPkg/Library/Include/crypto/dso_conf.h
 | ||||
| similarity index 76% | ||||
| rename from CryptoPkg/Library/Include/internal/dso_conf.h | ||||
| rename to CryptoPkg/Library/Include/crypto/dso_conf.h | ||||
| index 43c891588b..95f4db2b15 100644
 | ||||
| --- a/CryptoPkg/Library/Include/internal/dso_conf.h
 | ||||
| +++ b/CryptoPkg/Library/Include/crypto/dso_conf.h
 | ||||
| @@ -1,16 +1,16 @@
 | ||||
| -/* WARNING: do not edit! */
 | ||||
| -/* Generated from crypto/include/internal/dso_conf.h.in */
 | ||||
| -/*
 | ||||
| - * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
 | ||||
| - *
 | ||||
| - * Licensed under the OpenSSL license (the "License").  You may not use
 | ||||
| - * this file except in compliance with the License.  You can obtain a copy
 | ||||
| - * in the file LICENSE in the source distribution or at
 | ||||
| - * https://www.openssl.org/source/license.html
 | ||||
| - */
 | ||||
| -
 | ||||
| -#ifndef HEADER_DSO_CONF_H
 | ||||
| -# define HEADER_DSO_CONF_H
 | ||||
| -# define DSO_NONE
 | ||||
| -# define DSO_EXTENSION ".so"
 | ||||
| -#endif
 | ||||
| +/* WARNING: do not edit! */
 | ||||
| +/* Generated from include/crypto/dso_conf.h.in */
 | ||||
| +/*
 | ||||
| + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
 | ||||
| + *
 | ||||
| + * Licensed under the OpenSSL license (the "License").  You may not use
 | ||||
| + * this file except in compliance with the License.  You can obtain a copy
 | ||||
| + * in the file LICENSE in the source distribution or at
 | ||||
| + * https://www.openssl.org/source/license.html
 | ||||
| + */
 | ||||
| +
 | ||||
| +#ifndef OSSL_CRYPTO_DSO_CONF_H
 | ||||
| +# define OSSL_CRYPTO_DSO_CONF_H
 | ||||
| +# define DSO_NONE
 | ||||
| +# define DSO_EXTENSION ".so"
 | ||||
| +#endif
 | ||||
| diff --git a/CryptoPkg/Library/Include/openssl/opensslconf.h b/CryptoPkg/Library/Include/openssl/opensslconf.h
 | ||||
| index 62c2736cb0..3a2544ea5c 100644
 | ||||
| --- a/CryptoPkg/Library/Include/openssl/opensslconf.h
 | ||||
| +++ b/CryptoPkg/Library/Include/openssl/opensslconf.h
 | ||||
| @@ -247,9 +247,6 @@ extern "C" {
 | ||||
|  #ifndef OPENSSL_NO_DYNAMIC_ENGINE | ||||
|  # define OPENSSL_NO_DYNAMIC_ENGINE | ||||
|  #endif | ||||
| -#ifndef OPENSSL_NO_AFALGENG
 | ||||
| -# define OPENSSL_NO_AFALGENG
 | ||||
| -#endif
 | ||||
|   | ||||
|   | ||||
|  /* | ||||
| diff --git a/CryptoPkg/Library/OpensslLib/OpensslLib.inf b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
 | ||||
| index 24e790b538..4c21b11d0a 100644
 | ||||
| --- a/CryptoPkg/Library/OpensslLib/OpensslLib.inf
 | ||||
| +++ b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
 | ||||
| @@ -477,45 +477,45 @@
 | ||||
|    $(OPENSSL_PATH)/crypto/s390x_arch.h | ||||
|    $(OPENSSL_PATH)/crypto/sparc_arch.h | ||||
|    $(OPENSSL_PATH)/crypto/vms_rms.h | ||||
| -  $(OPENSSL_PATH)/crypto/aes/aes_locl.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/aes/aes_local.h
 | ||||
|    $(OPENSSL_PATH)/crypto/asn1/asn1_item_list.h | ||||
| -  $(OPENSSL_PATH)/crypto/asn1/asn1_locl.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/asn1/asn1_local.h
 | ||||
|    $(OPENSSL_PATH)/crypto/asn1/charmap.h | ||||
|    $(OPENSSL_PATH)/crypto/asn1/standard_methods.h | ||||
|    $(OPENSSL_PATH)/crypto/asn1/tbl_standard.h | ||||
| -  $(OPENSSL_PATH)/crypto/async/async_locl.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/async/async_local.h
 | ||||
|    $(OPENSSL_PATH)/crypto/async/arch/async_null.h | ||||
|    $(OPENSSL_PATH)/crypto/async/arch/async_posix.h | ||||
|    $(OPENSSL_PATH)/crypto/async/arch/async_win.h | ||||
| -  $(OPENSSL_PATH)/crypto/bio/bio_lcl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/bn/bn_lcl.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/bio/bio_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/bn/bn_local.h
 | ||||
|    $(OPENSSL_PATH)/crypto/bn/bn_prime.h | ||||
|    $(OPENSSL_PATH)/crypto/bn/rsaz_exp.h | ||||
| -  $(OPENSSL_PATH)/crypto/comp/comp_lcl.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/comp/comp_local.h
 | ||||
|    $(OPENSSL_PATH)/crypto/conf/conf_def.h | ||||
| -  $(OPENSSL_PATH)/crypto/conf/conf_lcl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/dh/dh_locl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/dso/dso_locl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/evp/evp_locl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/hmac/hmac_lcl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/lhash/lhash_lcl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/md5/md5_locl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/modes/modes_lcl.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/conf/conf_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/dh/dh_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/dso/dso_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/evp/evp_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/hmac/hmac_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/lhash/lhash_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/md5/md5_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/modes/modes_local.h
 | ||||
|    $(OPENSSL_PATH)/crypto/objects/obj_dat.h | ||||
| -  $(OPENSSL_PATH)/crypto/objects/obj_lcl.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/objects/obj_local.h
 | ||||
|    $(OPENSSL_PATH)/crypto/objects/obj_xref.h | ||||
| -  $(OPENSSL_PATH)/crypto/ocsp/ocsp_lcl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/pkcs12/p12_lcl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/rand/rand_lcl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/rsa/rsa_locl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/sha/sha_locl.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/ocsp/ocsp_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/pkcs12/p12_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/rand/rand_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/rsa/rsa_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/sha/sha_local.h
 | ||||
|    $(OPENSSL_PATH)/crypto/siphash/siphash_local.h | ||||
| -  $(OPENSSL_PATH)/crypto/sm3/sm3_locl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/store/store_locl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/ui/ui_locl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/x509/x509_lcl.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/sm3/sm3_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/store/store_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/ui/ui_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/x509/x509_local.h
 | ||||
|    $(OPENSSL_PATH)/crypto/x509v3/ext_dat.h | ||||
| -  $(OPENSSL_PATH)/crypto/x509v3/pcy_int.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/x509v3/pcy_local.h
 | ||||
|    $(OPENSSL_PATH)/crypto/x509v3/standard_exts.h | ||||
|    $(OPENSSL_PATH)/crypto/x509v3/v3_admis.h | ||||
|    $(OPENSSL_PATH)/ssl/bio_ssl.c | ||||
| @@ -562,13 +562,13 @@
 | ||||
|    $(OPENSSL_PATH)/ssl/t1_trce.c | ||||
|    $(OPENSSL_PATH)/ssl/tls13_enc.c | ||||
|    $(OPENSSL_PATH)/ssl/tls_srp.c | ||||
| -  $(OPENSSL_PATH)/ssl/packet_locl.h
 | ||||
| +  $(OPENSSL_PATH)/ssl/packet_local.h
 | ||||
|    $(OPENSSL_PATH)/ssl/ssl_cert_table.h | ||||
| -  $(OPENSSL_PATH)/ssl/ssl_locl.h
 | ||||
| +  $(OPENSSL_PATH)/ssl/ssl_local.h
 | ||||
|    $(OPENSSL_PATH)/ssl/record/record.h | ||||
| -  $(OPENSSL_PATH)/ssl/record/record_locl.h
 | ||||
| +  $(OPENSSL_PATH)/ssl/record/record_local.h
 | ||||
|    $(OPENSSL_PATH)/ssl/statem/statem.h | ||||
| -  $(OPENSSL_PATH)/ssl/statem/statem_locl.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 | ||||
| diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
 | ||||
| index 52e70a2d03..0c3b210d6a 100644
 | ||||
| --- a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
 | ||||
| +++ b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
 | ||||
| @@ -477,45 +477,45 @@
 | ||||
|    $(OPENSSL_PATH)/crypto/s390x_arch.h | ||||
|    $(OPENSSL_PATH)/crypto/sparc_arch.h | ||||
|    $(OPENSSL_PATH)/crypto/vms_rms.h | ||||
| -  $(OPENSSL_PATH)/crypto/aes/aes_locl.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/aes/aes_local.h
 | ||||
|    $(OPENSSL_PATH)/crypto/asn1/asn1_item_list.h | ||||
| -  $(OPENSSL_PATH)/crypto/asn1/asn1_locl.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/asn1/asn1_local.h
 | ||||
|    $(OPENSSL_PATH)/crypto/asn1/charmap.h | ||||
|    $(OPENSSL_PATH)/crypto/asn1/standard_methods.h | ||||
|    $(OPENSSL_PATH)/crypto/asn1/tbl_standard.h | ||||
| -  $(OPENSSL_PATH)/crypto/async/async_locl.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/async/async_local.h
 | ||||
|    $(OPENSSL_PATH)/crypto/async/arch/async_null.h | ||||
|    $(OPENSSL_PATH)/crypto/async/arch/async_posix.h | ||||
|    $(OPENSSL_PATH)/crypto/async/arch/async_win.h | ||||
| -  $(OPENSSL_PATH)/crypto/bio/bio_lcl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/bn/bn_lcl.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/bio/bio_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/bn/bn_local.h
 | ||||
|    $(OPENSSL_PATH)/crypto/bn/bn_prime.h | ||||
|    $(OPENSSL_PATH)/crypto/bn/rsaz_exp.h | ||||
| -  $(OPENSSL_PATH)/crypto/comp/comp_lcl.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/comp/comp_local.h
 | ||||
|    $(OPENSSL_PATH)/crypto/conf/conf_def.h | ||||
| -  $(OPENSSL_PATH)/crypto/conf/conf_lcl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/dh/dh_locl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/dso/dso_locl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/evp/evp_locl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/hmac/hmac_lcl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/lhash/lhash_lcl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/md5/md5_locl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/modes/modes_lcl.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/conf/conf_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/dh/dh_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/dso/dso_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/evp/evp_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/hmac/hmac_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/lhash/lhash_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/md5/md5_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/modes/modes_local.h
 | ||||
|    $(OPENSSL_PATH)/crypto/objects/obj_dat.h | ||||
| -  $(OPENSSL_PATH)/crypto/objects/obj_lcl.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/objects/obj_local.h
 | ||||
|    $(OPENSSL_PATH)/crypto/objects/obj_xref.h | ||||
| -  $(OPENSSL_PATH)/crypto/ocsp/ocsp_lcl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/pkcs12/p12_lcl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/rand/rand_lcl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/rsa/rsa_locl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/sha/sha_locl.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/ocsp/ocsp_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/pkcs12/p12_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/rand/rand_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/rsa/rsa_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/sha/sha_local.h
 | ||||
|    $(OPENSSL_PATH)/crypto/siphash/siphash_local.h | ||||
| -  $(OPENSSL_PATH)/crypto/sm3/sm3_locl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/store/store_locl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/ui/ui_locl.h
 | ||||
| -  $(OPENSSL_PATH)/crypto/x509/x509_lcl.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/sm3/sm3_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/store/store_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/ui/ui_local.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/x509/x509_local.h
 | ||||
|    $(OPENSSL_PATH)/crypto/x509v3/ext_dat.h | ||||
| -  $(OPENSSL_PATH)/crypto/x509v3/pcy_int.h
 | ||||
| +  $(OPENSSL_PATH)/crypto/x509v3/pcy_local.h
 | ||||
|    $(OPENSSL_PATH)/crypto/x509v3/standard_exts.h | ||||
|    $(OPENSSL_PATH)/crypto/x509v3/v3_admis.h | ||||
|  # Autogenerated files list ends here | ||||
| diff --git a/CryptoPkg/Library/OpensslLib/process_files.pl b/CryptoPkg/Library/OpensslLib/process_files.pl
 | ||||
| index 65d07a2aed..57ce195394 100755
 | ||||
| --- a/CryptoPkg/Library/OpensslLib/process_files.pl
 | ||||
| +++ b/CryptoPkg/Library/OpensslLib/process_files.pl
 | ||||
| @@ -111,8 +111,8 @@ BEGIN {
 | ||||
|              # Generate dso_conf.h per config data | ||||
|              system( | ||||
|                  "perl -I. -Mconfigdata util/dofile.pl " . | ||||
| -                "crypto/include/internal/dso_conf.h.in " .
 | ||||
| -                "> include/internal/dso_conf.h"
 | ||||
| +                "include/crypto/dso_conf.h.in " .
 | ||||
| +                "> include/crypto/dso_conf.h"
 | ||||
|                  ) == 0 || | ||||
|                      die "Failed to generate dso_conf.h!\n"; | ||||
|   | ||||
| @@ -263,14 +263,21 @@ print "Done!";
 | ||||
|  # Copy opensslconf.h and dso_conf.h generated from OpenSSL Configuration | ||||
|  # | ||||
|  print "\n--> Duplicating opensslconf.h into Include/openssl ... "; | ||||
| -copy($OPENSSL_PATH . "/include/openssl/opensslconf.h",
 | ||||
| -     $OPENSSL_PATH . "/../../Include/openssl/") ||
 | ||||
| -   die "Cannot copy opensslconf.h!";
 | ||||
| +system(
 | ||||
| +    "perl -pe 's/\\n/\\r\\n/' " .
 | ||||
| +    "< " . $OPENSSL_PATH . "/include/openssl/opensslconf.h " .
 | ||||
| +    "> " . $OPENSSL_PATH . "/../../Include/openssl/opensslconf.h"
 | ||||
| +    ) == 0 ||
 | ||||
| +    die "Cannot copy opensslconf.h!";
 | ||||
|  print "Done!"; | ||||
| -print "\n--> Duplicating dso_conf.h into Include/internal ... ";
 | ||||
| -copy($OPENSSL_PATH . "/include/internal/dso_conf.h",
 | ||||
| -     $OPENSSL_PATH . "/../../Include/internal/") ||
 | ||||
| -   die "Cannot copy dso_conf.h!";
 | ||||
| +
 | ||||
| +print "\n--> Duplicating dso_conf.h into Include/crypto ... ";
 | ||||
| +system(
 | ||||
| +    "perl -pe 's/\\n/\\r\\n/' " .
 | ||||
| +    "< " . $OPENSSL_PATH . "/include/crypto/dso_conf.h" .
 | ||||
| +    "> " . $OPENSSL_PATH . "/../../Include/crypto/dso_conf.h"
 | ||||
| +    ) == 0 ||
 | ||||
| +    die "Cannot copy dso_conf.h!";
 | ||||
|  print "Done!\n"; | ||||
|   | ||||
|  print "\nProcessing Files Done!\n"; | ||||
| diff --git a/CryptoPkg/Library/OpensslLib/rand_pool.c b/CryptoPkg/Library/OpensslLib/rand_pool.c
 | ||||
| index 9f3983f7c3..9e0179b034 100644
 | ||||
| --- a/CryptoPkg/Library/OpensslLib/rand_pool.c
 | ||||
| +++ b/CryptoPkg/Library/OpensslLib/rand_pool.c
 | ||||
| @@ -7,7 +7,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 | ||||
|   | ||||
|  **/ | ||||
|   | ||||
| -#include "internal/rand_int.h"
 | ||||
| +#include "crypto/rand.h"
 | ||||
|  #include <openssl/aes.h> | ||||
|   | ||||
|  #include <Uefi.h> | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
							
								
								
									
										53
									
								
								0052-BaseTools-fix-ucs-2-lookup-on-python-3.9.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								0052-BaseTools-fix-ucs-2-lookup-on-python-3.9.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,53 @@ | ||||
| From 87c2f21837e15c51ddb1cf3aac218a24c997362d Mon Sep 17 00:00:00 2001 | ||||
| From: Miroslav Rezanina <mrezanin@redhat.com> | ||||
| Date: Wed, 12 Aug 2020 01:28:17 +0800 | ||||
| Subject: BaseTools: fix ucs-2 lookup on python 3.9 | ||||
| 
 | ||||
| python3.9 changed/fixed codec.register behavior to always replace | ||||
| hyphen with underscore for passed in codec names: | ||||
| 
 | ||||
|   https://bugs.python.org/issue37751 | ||||
| 
 | ||||
| So the custom Ucs2Search needs to be adapted to handle 'ucs_2' in | ||||
| addition to existing 'ucs-2' for back compat. | ||||
| 
 | ||||
| This fixes test failures on python3.9, example: | ||||
| 
 | ||||
| ======================================================================
 | ||||
| FAIL: testUtf16InUniFile (CheckUnicodeSourceFiles.Tests) | ||||
| ----------------------------------------------------------------------
 | ||||
| Traceback (most recent call last): | ||||
|   File "/builddir/build/BUILD/edk2-edk2-stable202002/BaseTools/Source/Python/AutoGen/UniClassObject.py", line 375, in PreProcess | ||||
|     FileIn = UniFileClassObject.OpenUniFile(LongFilePath(File.Path)) | ||||
|   File "/builddir/build/BUILD/edk2-edk2-stable202002/BaseTools/Source/Python/AutoGen/UniClassObject.py", line 303, in OpenUniFile | ||||
|     UniFileClassObject.VerifyUcs2Data(FileIn, FileName, Encoding) | ||||
|   File "/builddir/build/BUILD/edk2-edk2-stable202002/BaseTools/Source/Python/AutoGen/UniClassObject.py", line 312, in VerifyUcs2Data | ||||
|     Ucs2Info = codecs.lookup('ucs-2') | ||||
| LookupError: unknown encoding: ucs-2 | ||||
| 
 | ||||
| Signed-off-by: Cole Robinson <crobinso@redhat.com> | ||||
| Reviewed-by: Yuwei Chen <yuwei.chen@intel.com> | ||||
| Reviewed-by: Bob Feng <bob.c.feng@intel.com> | ||||
| 
 | ||||
| (cherry picked from commit 5d8648345cd9ad729837118c731063c59edea192) | ||||
| Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com> | ||||
| ---
 | ||||
|  BaseTools/Source/Python/AutoGen/UniClassObject.py | 2 +- | ||||
|  1 file changed, 1 insertion(+), 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/BaseTools/Source/Python/AutoGen/UniClassObject.py b/BaseTools/Source/Python/AutoGen/UniClassObject.py
 | ||||
| index b2895f7e5c..883c2356e0 100644
 | ||||
| --- a/BaseTools/Source/Python/AutoGen/UniClassObject.py
 | ||||
| +++ b/BaseTools/Source/Python/AutoGen/UniClassObject.py
 | ||||
| @@ -152,7 +152,7 @@ class Ucs2Codec(codecs.Codec):
 | ||||
|   | ||||
|  TheUcs2Codec = Ucs2Codec() | ||||
|  def Ucs2Search(name): | ||||
| -    if name == 'ucs-2':
 | ||||
| +    if name in ['ucs-2', 'ucs_2']:
 | ||||
|          return codecs.CodecInfo( | ||||
|              name=name, | ||||
|              encode=TheUcs2Codec.encode, | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
| @ -0,0 +1,51 @@ | ||||
| From 866640ccf29f6572bed1c201cdbf73774cb8649b Mon Sep 17 00:00:00 2001 | ||||
| From: Miroslav Rezanina <mrezanin@redhat.com> | ||||
| Date: Wed, 12 Aug 2020 01:28:18 +0800 | ||||
| Subject: BaseTools: Work around array.array.tostring() removal in python 3.9 | ||||
| 
 | ||||
| In python3, array.array.tostring() was a compat alias for tobytes(). | ||||
| tostring() was removed in python 3.9. | ||||
| 
 | ||||
| Convert this to use tolist() which should be valid for all python | ||||
| versions. | ||||
| 
 | ||||
| This fixes this build error on python3.9: | ||||
| 
 | ||||
| (Python 3.9.0b5 on linux) Traceback (most recent call last): | ||||
|   File "/root/edk2/edk2-edk2-stable202002/BaseTools/BinWrappers/PosixLike/../../Source/Python/Trim/Trim.py", line 593, in Main | ||||
|     GenerateVfrBinSec(CommandOptions.ModuleName, CommandOptions.DebugDir, CommandOptions.OutputFile) | ||||
|   File "/root/edk2/edk2-edk2-stable202002/BaseTools/BinWrappers/PosixLike/../../Source/Python/Trim/Trim.py", line 449, in GenerateVfrBinSec | ||||
|     VfrUniOffsetList = GetVariableOffset(MapFileName, EfiFileName, VfrNameList) | ||||
|   File "/root/edk2/edk2-edk2-stable202002/BaseTools/Source/Python/Common/Misc.py", line 88, in GetVariableOffset | ||||
|     return _parseForGCC(lines, efifilepath, varnames) | ||||
|   File "/root/edk2/edk2-edk2-stable202002/BaseTools/Source/Python/Common/Misc.py", line 151, in _parseForGCC | ||||
|     efisecs = PeImageClass(efifilepath).SectionHeaderList | ||||
|   File "/root/edk2/edk2-edk2-stable202002/BaseTools/Source/Python/Common/Misc.py", line 1638, in __init__ | ||||
|     if ByteArray.tostring() != b'PE\0\0': | ||||
| AttributeError: 'array.array' object has no attribute 'tostring' | ||||
| 
 | ||||
| Signed-off-by: Cole Robinson <crobinso@redhat.com> | ||||
| Reviewed-by: Yuwei Chen <yuwei.chen@intel.com> | ||||
| Reviewed-by: Bob Feng <bob.c.feng@intel.com> | ||||
| (cherry picked from commit 43bec9ea3d56f3662ede78023baa2a791b66acac) | ||||
| Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com> | ||||
| ---
 | ||||
|  BaseTools/Source/Python/Common/Misc.py | 2 +- | ||||
|  1 file changed, 1 insertion(+), 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/BaseTools/Source/Python/Common/Misc.py b/BaseTools/Source/Python/Common/Misc.py
 | ||||
| index ad55671080..4be7957138 100755
 | ||||
| --- a/BaseTools/Source/Python/Common/Misc.py
 | ||||
| +++ b/BaseTools/Source/Python/Common/Misc.py
 | ||||
| @@ -1635,7 +1635,7 @@ class PeImageClass():
 | ||||
|          ByteArray = array.array('B') | ||||
|          ByteArray.fromfile(PeObject, 4) | ||||
|          # PE signature should be 'PE\0\0' | ||||
| -        if ByteArray.tostring() != b'PE\0\0':
 | ||||
| +        if ByteArray.tolist() != [ord('P'), ord('E'), 0, 0]:
 | ||||
|              self.ErrorInfo = self.FileName + ' has no valid PE signature PE00' | ||||
|              return | ||||
|   | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
| @ -0,0 +1,75 @@ | ||||
| From 28bd5e98630cc22830ed352c248bafdb60794391 Mon Sep 17 00:00:00 2001 | ||||
| From: Miroslav Rezanina <mrezanin@redhat.com> | ||||
| Date: Tue, 29 Dec 2020 17:03:53 +0800 | ||||
| Subject: BaseTools: Fix the issue caused by tostring() removal on Py39 | ||||
| 
 | ||||
| REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3136 | ||||
| 
 | ||||
| Python 3.9 remove the array.array.tostring and | ||||
| array.array.fromstring() function. This patch | ||||
| is to use other method to replace tostring() and | ||||
| fromstring() | ||||
| 
 | ||||
| Signed-off-by: Bob Feng <bob.c.feng@intel.com> | ||||
| 
 | ||||
| Cc: Liming Gao <gaoliming@byosoft.com.cn> | ||||
| Cc: Yuwei Chen <yuwei.chen@intel.com> | ||||
| Cc: Mingyue Liang <mingyuex.liang@intel.com> | ||||
| Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn> | ||||
| (cherry picked from commit 20b292d0cdf7dce58d824fdf9ab1613c2a1ad2ec) | ||||
| Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com> | ||||
| ---
 | ||||
|  .../Python/GenFds/GenFdsGlobalVariable.py     | 23 ++++++++++++++++--- | ||||
|  1 file changed, 20 insertions(+), 3 deletions(-) | ||||
| 
 | ||||
| diff --git a/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py b/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
 | ||||
| index dc1727c466..3019ec63c3 100644
 | ||||
| --- a/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
 | ||||
| +++ b/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
 | ||||
| @@ -27,10 +27,11 @@ from Common.TargetTxtClassObject import TargetTxtDict
 | ||||
|  from Common.ToolDefClassObject import ToolDefDict | ||||
|  from AutoGen.BuildEngine import ToolBuildRule | ||||
|  import Common.DataType as DataType | ||||
| -from Common.Misc import PathClass
 | ||||
| +from Common.Misc import PathClass,CreateDirectory
 | ||||
|  from Common.LongFilePathSupport import OpenLongFilePath as open | ||||
|  from Common.MultipleWorkspace import MultipleWorkspace as mws | ||||
|  import Common.GlobalData as GlobalData | ||||
| +from Common.BuildToolError import *
 | ||||
|   | ||||
|  ## Global variables | ||||
|  # | ||||
| @@ -463,12 +464,28 @@ class GenFdsGlobalVariable:
 | ||||
|                      GenFdsGlobalVariable.SecCmdList.append(' '.join(Cmd).strip()) | ||||
|              else: | ||||
|                  SectionData = array('B', [0, 0, 0, 0]) | ||||
| -                SectionData.fromstring(Ui.encode("utf_16_le"))
 | ||||
| +                SectionData.fromlist(array('B',Ui.encode('utf-16-le')).tolist())
 | ||||
|                  SectionData.append(0) | ||||
|                  SectionData.append(0) | ||||
|                  Len = len(SectionData) | ||||
|                  GenFdsGlobalVariable.SectionHeader.pack_into(SectionData, 0, Len & 0xff, (Len >> 8) & 0xff, (Len >> 16) & 0xff, 0x15) | ||||
| -                SaveFileOnChange(Output, SectionData.tostring())
 | ||||
| +
 | ||||
| +
 | ||||
| +                DirName = os.path.dirname(Output)
 | ||||
| +                if not CreateDirectory(DirName):
 | ||||
| +                    EdkLogger.error(None, FILE_CREATE_FAILURE, "Could not create directory %s" % DirName)
 | ||||
| +                else:
 | ||||
| +                    if DirName == '':
 | ||||
| +                        DirName = os.getcwd()
 | ||||
| +                    if not os.access(DirName, os.W_OK):
 | ||||
| +                        EdkLogger.error(None, PERMISSION_FAILURE, "Do not have write permission on directory %s" % DirName)
 | ||||
| +
 | ||||
| +                try:
 | ||||
| +                    with open(Output, "wb") as Fd:
 | ||||
| +                        SectionData.tofile(Fd)
 | ||||
| +                        Fd.flush()
 | ||||
| +                except IOError as X:
 | ||||
| +                    EdkLogger.error(None, FILE_CREATE_FAILURE, ExtraData='IOError %s' % X)
 | ||||
|   | ||||
|          elif Ver: | ||||
|              Cmd += ("-n", Ver) | ||||
| -- 
 | ||||
| 2.18.4 | ||||
| 
 | ||||
| @ -1,35 +0,0 @@ | ||||
| { | ||||
|     "description": "OVMF for i386, with SB+SMM, SB enabled, MS certs enrolled", | ||||
|     "interface-types": [ | ||||
|         "uefi" | ||||
|     ], | ||||
|     "mapping": { | ||||
|         "device": "flash", | ||||
|         "executable": { | ||||
|             "filename": "/usr/share/edk2/ovmf-ia32/OVMF_CODE.secboot.fd", | ||||
|             "format": "raw" | ||||
|         }, | ||||
|         "nvram-template": { | ||||
|             "filename": "/usr/share/edk2/ovmf-ia32/OVMF_VARS.secboot.fd", | ||||
|             "format": "raw" | ||||
|         } | ||||
|     }, | ||||
|     "targets": [ | ||||
|         { | ||||
|             "architecture": "i386", | ||||
|             "machines": [ | ||||
|                 "pc-q35-*" | ||||
|             ] | ||||
|         } | ||||
|     ], | ||||
|     "features": [ | ||||
|         "acpi-s3", | ||||
|         "enrolled-keys", | ||||
|         "requires-smm", | ||||
|         "secure-boot", | ||||
|         "verbose-dynamic" | ||||
|     ], | ||||
|     "tags": [ | ||||
| 
 | ||||
|     ] | ||||
| } | ||||
| @ -1,34 +0,0 @@ | ||||
| { | ||||
|     "description": "OVMF for i386, with SB+SMM, empty varstore", | ||||
|     "interface-types": [ | ||||
|         "uefi" | ||||
|     ], | ||||
|     "mapping": { | ||||
|         "device": "flash", | ||||
|         "executable": { | ||||
|             "filename": "/usr/share/edk2/ovmf-ia32/OVMF_CODE.secboot.fd", | ||||
|             "format": "raw" | ||||
|         }, | ||||
|         "nvram-template": { | ||||
|             "filename": "/usr/share/edk2/ovmf-ia32/OVMF_VARS.fd", | ||||
|             "format": "raw" | ||||
|         } | ||||
|     }, | ||||
|     "targets": [ | ||||
|         { | ||||
|             "architecture": "i386", | ||||
|             "machines": [ | ||||
|                 "pc-q35-*" | ||||
|             ] | ||||
|         } | ||||
|     ], | ||||
|     "features": [ | ||||
|         "acpi-s3", | ||||
|         "requires-smm", | ||||
|         "secure-boot", | ||||
|         "verbose-dynamic" | ||||
|     ], | ||||
|     "tags": [ | ||||
| 
 | ||||
|     ] | ||||
| } | ||||
| @ -1,33 +0,0 @@ | ||||
| { | ||||
|     "description": "OVMF for i386, without SB, without SMM, with empty varstore", | ||||
|     "interface-types": [ | ||||
|         "uefi" | ||||
|     ], | ||||
|     "mapping": { | ||||
|         "device": "flash", | ||||
|         "executable": { | ||||
|             "filename": "/usr/share/edk2/ovmf-ia32/OVMF_CODE.fd", | ||||
|             "format": "raw" | ||||
|         }, | ||||
|         "nvram-template": { | ||||
|             "filename": "/usr/share/edk2/ovmf-ia32/OVMF_VARS.fd", | ||||
|             "format": "raw" | ||||
|         } | ||||
|     }, | ||||
|     "targets": [ | ||||
|         { | ||||
|             "architecture": "i386", | ||||
|             "machines": [ | ||||
|                 "pc-i440fx-*", | ||||
|                 "pc-q35-*" | ||||
|             ] | ||||
|         } | ||||
|     ], | ||||
|     "features": [ | ||||
|         "acpi-s3", | ||||
|         "verbose-dynamic" | ||||
|     ], | ||||
|     "tags": [ | ||||
| 
 | ||||
|     ] | ||||
| } | ||||
| @ -1,34 +0,0 @@ | ||||
| { | ||||
|     "description": "OVMF for x86_64, without SB, without SMM, with empty varstore", | ||||
|     "interface-types": [ | ||||
|         "uefi" | ||||
|     ], | ||||
|     "mapping": { | ||||
|         "device": "flash", | ||||
|         "executable": { | ||||
|             "filename": "/usr/share/edk2/ovmf/OVMF_CODE.fd", | ||||
|             "format": "raw" | ||||
|         }, | ||||
|         "nvram-template": { | ||||
|             "filename": "/usr/share/edk2/ovmf/OVMF_VARS.fd", | ||||
|             "format": "raw" | ||||
|         } | ||||
|     }, | ||||
|     "targets": [ | ||||
|         { | ||||
|             "architecture": "x86_64", | ||||
|             "machines": [ | ||||
|                 "pc-i440fx-*", | ||||
|                 "pc-q35-*" | ||||
|             ] | ||||
|         } | ||||
|     ], | ||||
|     "features": [ | ||||
|         "acpi-s3", | ||||
|         "amd-sev", | ||||
|         "verbose-dynamic" | ||||
|     ], | ||||
|     "tags": [ | ||||
| 
 | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										21
									
								
								LICENSE.qosb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								LICENSE.qosb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,21 @@ | ||||
| MIT License | ||||
| 
 | ||||
| Copyright (c) 2017 Patrick Uiterwijk | ||||
| 
 | ||||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
| of this software and associated documentation files (the "Software"), to deal | ||||
| in the Software without restriction, including without limitation the rights | ||||
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
| copies of the Software, and to permit persons to whom the Software is | ||||
| furnished to do so, subject to the following conditions: | ||||
| 
 | ||||
| The above copyright notice and this permission notice shall be included in all | ||||
| copies or substantial portions of the Software. | ||||
| 
 | ||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||
| SOFTWARE. | ||||
							
								
								
									
										26
									
								
								build-iso.sh
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								build-iso.sh
									
									
									
									
									
								
							| @ -1,26 +0,0 @@ | ||||
| #!/bin/sh | ||||
| 
 | ||||
| # args | ||||
| dir="$1" | ||||
| 
 | ||||
| # cfg | ||||
| shell="$dir/Shell.efi" | ||||
| enroll="$dir/EnrollDefaultKeys.efi" | ||||
| root="$dir/image" | ||||
| vfat="$dir/shell.img" | ||||
| iso="$dir/UefiShell.iso" | ||||
| 
 | ||||
| # create non-partitioned (1.44 MB floppy disk) FAT image | ||||
| mkdir "$root" | ||||
| mkdir "$root"/efi | ||||
| mkdir "$root"/efi/boot | ||||
| cp "$shell" "$root"/efi/boot/bootx64.efi | ||||
| cp "$enroll" "$root" | ||||
| qemu-img convert --image-opts \ | ||||
| 	driver=vvfat,floppy=on,fat-type=12,label=UEFI_SHELL,dir="$root/" \ | ||||
| 	$vfat | ||||
| 
 | ||||
| # build ISO with FAT image file as El Torito EFI boot image | ||||
| genisoimage -input-charset ASCII -J -rational-rock \ | ||||
| 	-efi-boot "${vfat##*/}" -no-emul-boot -o "$iso" -- "$vfat" | ||||
| rm -rf "$root/" "$vfat" | ||||
| @ -1,5 +1,5 @@ | ||||
| { | ||||
|     "description": "UEFI firmware for aarch64, verbose logs", | ||||
|     "description": "UEFI firmware for ARM64 virtual machines, verbose logs", | ||||
|     "interface-types": [ | ||||
|         "uefi" | ||||
|     ], | ||||
| @ -1,29 +1,29 @@ | ||||
| { | ||||
|     "description": "UEFI firmware for arm, verbose logs", | ||||
|     "description": "UEFI firmware for ARM64 virtual machines", | ||||
|     "interface-types": [ | ||||
|         "uefi" | ||||
|     ], | ||||
|     "mapping": { | ||||
|         "device": "flash", | ||||
|         "executable": { | ||||
|             "filename": "/usr/share/edk2/arm/QEMU_EFI-pflash.raw", | ||||
|             "filename": "/usr/share/edk2/aarch64/QEMU_EFI-silent-pflash.raw", | ||||
|             "format": "raw" | ||||
|         }, | ||||
|         "nvram-template": { | ||||
|             "filename": "/usr/share/edk2/arm/vars-template-pflash.raw", | ||||
|             "filename": "/usr/share/edk2/aarch64/vars-template-pflash.raw", | ||||
|             "format": "raw" | ||||
|         } | ||||
|     }, | ||||
|     "targets": [ | ||||
|         { | ||||
|             "architecture": "arm", | ||||
|             "architecture": "aarch64", | ||||
|             "machines": [ | ||||
|                 "virt-*" | ||||
|             ] | ||||
|         } | ||||
|     ], | ||||
|     "features": [ | ||||
|         "verbose-static" | ||||
| 
 | ||||
|     ], | ||||
|     "tags": [ | ||||
| 
 | ||||
| @ -1,5 +1,5 @@ | ||||
| { | ||||
|     "description": "OVMF for x86_64, with SB+SMM, SB enabled, MS certs enrolled", | ||||
|     "description": "OVMF with SB+SMM, SB enabled, MS certs enrolled", | ||||
|     "interface-types": [ | ||||
|         "uefi" | ||||
|     ], | ||||
| @ -1,5 +1,5 @@ | ||||
| { | ||||
|     "description": "OVMF for x86_64, with SB+SMM, empty varstore", | ||||
|     "description": "OVMF with SB+SMM, empty varstore", | ||||
|     "interface-types": [ | ||||
|         "uefi" | ||||
|     ], | ||||
| @ -1,40 +0,0 @@ | ||||
| #!/bin/sh | ||||
| 
 | ||||
| # Quit out if anything fails. | ||||
| set -e | ||||
| 
 | ||||
| # Clean out patent-or-otherwise-encumbered code. | ||||
| # MDC-2: 4,908,861 13/03/2007 - expired, we do not remove it but do not enable it anyway | ||||
| # IDEA:  5,214,703 07/01/2012 - expired, we do not remove it anymore | ||||
| # RC5:   5,724,428 01/11/2015 - expired, we do not remove it anymore | ||||
| # EC:    ????????? ??/??/2020 | ||||
| # SRP:   ????????? ??/??/2017 - expired, we do not remove it anymore | ||||
| 
 | ||||
| # Remove assembler portions of IDEA, MDC2, and RC5. | ||||
| # (find crypto/rc5/asm -type f | xargs -r rm -fv) | ||||
| 
 | ||||
| for c in `find crypto/bn -name "*gf2m.c"`; do | ||||
| 	echo Destroying $c | ||||
| 	> $c | ||||
| done | ||||
| 
 | ||||
| for c in `find crypto/ec -name "ec2*.c" -o -name "ec_curve.c"`; do | ||||
| 	echo Destroying $c | ||||
| 	> $c | ||||
| done | ||||
| 
 | ||||
| for c in `find test -name "ectest.c"`; do | ||||
| 	echo Destroying $c | ||||
| 	> $c | ||||
| done | ||||
| 
 | ||||
| for h in `find crypto ssl apps test -name "*.h"` ; do | ||||
| 	echo Removing EC2M references from $h | ||||
| 	cat $h | \ | ||||
| 	awk    'BEGIN {ech=1;} \ | ||||
| 		/^#[ \t]*ifndef.*NO_EC2M/ {ech--; next;} \ | ||||
|                 /^#[ \t]*if/ {if(ech < 1) ech--;} \ | ||||
| 		{if(ech>0) {;print $0};} \ | ||||
| 		/^#[ \t]*endif/ {if(ech < 1) ech++;}' > $h.hobbled && \ | ||||
| 	mv $h.hobbled $h | ||||
| done | ||||
| @ -1,63 +0,0 @@ | ||||
| #! /bin/sh | ||||
| 
 | ||||
| : << \EOF | ||||
|   For importing the hobbled OpenSSL tarball from Fedora, the following | ||||
|   steps are necessary. Note that both the "sources" file format and the | ||||
|   pkgs.fedoraproject.org directory structure have changed, accommodating | ||||
|   SHA512 checksums. | ||||
| 
 | ||||
|   # in a separate directory | ||||
|   fedpkg clone -a openssl | ||||
|   cd openssl | ||||
|   fedpkg switch-branch master | ||||
|   gitk -- sources | ||||
| 
 | ||||
|   # the commit that added the 1.1.0h hobbled tarball is 6eb8f620273 | ||||
|   # subject "update to upstream version 1.1.0h" | ||||
|   git checkout 6eb8f620273 | ||||
| 
 | ||||
|   # fetch the hobbled tarball and verify the checksum | ||||
|   ( | ||||
|     set -e | ||||
|     while read HASH_TYPE FN EQ HASH; do | ||||
|       # remove leading and trailing parens | ||||
|       FN="${FN#(*}" | ||||
|       FN="${FN%*)}" | ||||
|       wget \ | ||||
|         http://pkgs.fedoraproject.org/repo/pkgs/openssl/$FN/sha512/$HASH/$FN | ||||
|     done <sources | ||||
|     sha512sum -c sources | ||||
|   ) | ||||
| 
 | ||||
|   # unpack the hobbled tarball into edk2, according to | ||||
|   # "OpenSSL-HOWTO.txt"; WORKSPACE stands for the root of the edk2 project | ||||
|   # tree | ||||
|   tar -x --xz -f openssl-1.1.0h-hobbled.tar.xz | ||||
|   mv -- openssl-1.1.0h "$WORKSPACE"/CryptoPkg/Library/OpensslLib/openssl | ||||
| 
 | ||||
|   # update the INF files as described in "OpenSSL-HOWTO.txt", then save | ||||
|   # the results as a single commit | ||||
|   (cd "$WORKSPACE"/CryptoPkg/Library/OpensslLib && perl process_files.pl) | ||||
|   git rm --cached CryptoPkg/Library/OpensslLib/openssl | ||||
|   git commit -m'remove openssl submodule' | ||||
|   git add -A CryptoPkg/Library/OpensslLib/openssl | ||||
|   git commit -m'add openssl 1.1.0h' | ||||
|   git format-patch -1 | ||||
| 
 | ||||
| Then run the patch through this script which will build a new tar file. | ||||
| EOF | ||||
| 
 | ||||
| set -e | ||||
| edk2_githash=$(awk '/^%global edk2_githash/ {print $3}' edk2.spec) | ||||
| openssl_version=$(awk '/^%global openssl_version/ {print $3}' edk2.spec) | ||||
| mkdir -p tianocore-openssl-${openssl_version} | ||||
| (exec 3> openssl-${openssl_version}-hobbled.tar.xz | ||||
|  cd tianocore-openssl-${openssl_version} | ||||
|  git init . | ||||
|  git config core.whitespace cr-at-eol | ||||
|  git config am.keepcr true | ||||
|  git am | ||||
|  git archive --format=tar --prefix=tianocore-edk2-${edk2_githash}/ \ | ||||
|   HEAD CryptoPkg/Library/OpensslLib/ | \ | ||||
|   xz -9ev >&3) < $1 | ||||
| rm -rf tianocore-openssl-${openssl_version} | ||||
							
								
								
									
										295
									
								
								ovmf-vars-generator
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										295
									
								
								ovmf-vars-generator
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,295 @@ | ||||
| #!/bin/python3 | ||||
| # Copyright (C) 2017 Red Hat | ||||
| # Authors: | ||||
| # - Patrick Uiterwijk <puiterwijk@redhat.com> | ||||
| # - Kashyap Chamarthy <kchamart@redhat.com> | ||||
| # | ||||
| # Licensed under MIT License, for full text see LICENSE | ||||
| # | ||||
| # Purpose: Launch a QEMU guest and enroll ithe UEFI keys into an OVMF | ||||
| #          variables ("VARS") file.  Then boot a Linux kernel with QEMU. | ||||
| #          Finally, perform a check to verify if Secure Boot | ||||
| #          is enabled. | ||||
| 
 | ||||
| from __future__ import print_function | ||||
| 
 | ||||
| import argparse | ||||
| import os | ||||
| import logging | ||||
| import tempfile | ||||
| import shutil | ||||
| import string | ||||
| import subprocess | ||||
| 
 | ||||
| 
 | ||||
| def strip_special(line): | ||||
|     return ''.join([c for c in str(line) if c in string.printable]) | ||||
| 
 | ||||
| 
 | ||||
| def generate_qemu_cmd(args, readonly, *extra_args): | ||||
|     if args.disable_smm: | ||||
|         machinetype = 'pc' | ||||
|     else: | ||||
|         machinetype = 'q35,smm=on' | ||||
|     machinetype += ',accel=%s' % ('kvm' if args.enable_kvm else 'tcg') | ||||
| 
 | ||||
|     if args.oem_string is None: | ||||
|         oemstrings = [] | ||||
|     else: | ||||
|         oemstring_values = [ | ||||
|             ",value=" + s.replace(",", ",,") for s in args.oem_string ] | ||||
|         oemstrings = [ | ||||
|             '-smbios', | ||||
|             "type=11" + ''.join(oemstring_values) ] | ||||
| 
 | ||||
|     return [ | ||||
|         args.qemu_binary, | ||||
|         '-machine', machinetype, | ||||
|         '-display', 'none', | ||||
|         '-no-user-config', | ||||
|         '-nodefaults', | ||||
|         '-m', '768', | ||||
|         '-smp', '2,sockets=2,cores=1,threads=1', | ||||
|         '-chardev', 'pty,id=charserial1', | ||||
|         '-device', 'isa-serial,chardev=charserial1,id=serial1', | ||||
|         '-global', 'driver=cfi.pflash01,property=secure,value=%s' % ( | ||||
|             'off' if args.disable_smm else 'on'), | ||||
|         '-drive', | ||||
|         'file=%s,if=pflash,format=raw,unit=0,readonly=on' % ( | ||||
|             args.ovmf_binary), | ||||
|         '-drive', | ||||
|         'file=%s,if=pflash,format=raw,unit=1,readonly=%s' % ( | ||||
|             args.out_temp, 'on' if readonly else 'off'), | ||||
|         '-serial', 'stdio'] + oemstrings + list(extra_args) | ||||
| 
 | ||||
| 
 | ||||
| def download(url, target, suffix, no_download): | ||||
|     istemp = False | ||||
|     if target and os.path.exists(target): | ||||
|         return target, istemp | ||||
|     if not target: | ||||
|         temped = tempfile.mkstemp(prefix='qosb.', suffix='.%s' % suffix) | ||||
|         os.close(temped[0]) | ||||
|         target = temped[1] | ||||
|         istemp = True | ||||
|     if no_download: | ||||
|         raise Exception('%s did not exist, but downloading was disabled' % | ||||
|                         target) | ||||
|     import requests | ||||
|     logging.debug('Downloading %s to %s', url, target) | ||||
|     r = requests.get(url, stream=True) | ||||
|     with open(target, 'wb') as f: | ||||
|         for chunk in r.iter_content(chunk_size=1024): | ||||
|             if chunk: | ||||
|                 f.write(chunk) | ||||
|     return target, istemp | ||||
| 
 | ||||
| 
 | ||||
| def enroll_keys(args): | ||||
|     shutil.copy(args.ovmf_template_vars, args.out_temp) | ||||
| 
 | ||||
|     logging.info('Starting enrollment') | ||||
| 
 | ||||
|     cmd = generate_qemu_cmd( | ||||
|         args, | ||||
|         False, | ||||
|         '-drive', | ||||
|         'file=%s,format=raw,if=none,media=cdrom,id=drive-cd1,' | ||||
|         'readonly=on' % args.uefi_shell_iso, | ||||
|         '-device', | ||||
|         'ide-cd,drive=drive-cd1,id=cd1,' | ||||
|         'bootindex=1') | ||||
|     p = subprocess.Popen(cmd, | ||||
|         stdin=subprocess.PIPE, | ||||
|         stdout=subprocess.PIPE, | ||||
|         stderr=subprocess.STDOUT) | ||||
|     logging.info('Performing enrollment') | ||||
|     # Wait until the UEFI shell starts (first line is printed) | ||||
|     read = p.stdout.readline() | ||||
|     if b'char device redirected' in read: | ||||
|         read = p.stdout.readline() | ||||
|     # Skip passed QEMU warnings, like the following one we see in Ubuntu: | ||||
|     # qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.vmx [bit 5] | ||||
|     while b'qemu-system-x86_64: warning:' in read: | ||||
|         read = p.stdout.readline() | ||||
|     if args.print_output: | ||||
|         print(strip_special(read), end='') | ||||
|         print() | ||||
|     # Send the escape char to enter the UEFI shell early | ||||
|     p.stdin.write(b'\x1b') | ||||
|     p.stdin.flush() | ||||
|     # And then run the following three commands from the UEFI shell: | ||||
|     # change into the first file system device; install the default | ||||
|     # keys and certificates, and reboot | ||||
|     p.stdin.write(b'fs0:\r\n') | ||||
|     p.stdin.write(b'EnrollDefaultKeys.efi\r\n') | ||||
|     p.stdin.write(b'reset -s\r\n') | ||||
|     p.stdin.flush() | ||||
|     while True: | ||||
|         read = p.stdout.readline() | ||||
|         if args.print_output: | ||||
|             print('OUT: %s' % strip_special(read), end='') | ||||
|             print() | ||||
|         if b'info: success' in read: | ||||
|             break | ||||
|     p.wait() | ||||
|     if args.print_output: | ||||
|         print(strip_special(p.stdout.read()), end='') | ||||
|     logging.info('Finished enrollment') | ||||
| 
 | ||||
| 
 | ||||
| def test_keys(args): | ||||
|     logging.info('Grabbing test kernel') | ||||
|     kernel, kerneltemp = download(args.kernel_url, args.kernel_path, | ||||
|                                   'kernel', args.no_download) | ||||
| 
 | ||||
|     logging.info('Starting verification') | ||||
|     try: | ||||
|         cmd = generate_qemu_cmd( | ||||
|             args, | ||||
|             True, | ||||
|             '-append', 'console=tty0 console=ttyS0,115200n8', | ||||
|             '-kernel', kernel) | ||||
|         p = subprocess.Popen(cmd, | ||||
|             stdin=subprocess.PIPE, | ||||
|             stdout=subprocess.PIPE, | ||||
|             stderr=subprocess.STDOUT) | ||||
|         logging.info('Performing verification') | ||||
|         while True: | ||||
|             read = p.stdout.readline() | ||||
|             if args.print_output: | ||||
|                 print('OUT: %s' % strip_special(read), end='') | ||||
|                 print() | ||||
|             if b'Secure boot disabled' in read: | ||||
|                 raise Exception('Secure Boot was disabled') | ||||
|             elif b'Secure boot enabled' in read: | ||||
|                 logging.info('Confirmed: Secure Boot is enabled') | ||||
|                 break | ||||
|             elif b'Kernel is locked down from EFI secure boot' in read: | ||||
|                 logging.info('Confirmed: Secure Boot is enabled') | ||||
|                 break | ||||
|         p.kill() | ||||
|         if args.print_output: | ||||
|             print(strip_special(p.stdout.read()), end='') | ||||
|         logging.info('Finished verification') | ||||
|     finally: | ||||
|         if kerneltemp: | ||||
|             os.remove(kernel) | ||||
| 
 | ||||
| 
 | ||||
| def parse_args(): | ||||
|     parser = argparse.ArgumentParser() | ||||
|     parser.add_argument('output', help='Filename for output vars file') | ||||
|     parser.add_argument('--out-temp', help=argparse.SUPPRESS) | ||||
|     parser.add_argument('--force', help='Overwrite existing output file', | ||||
|                         action='store_true') | ||||
|     parser.add_argument('--print-output', help='Print the QEMU guest output', | ||||
|                         action='store_true') | ||||
|     parser.add_argument('--verbose', '-v', help='Increase verbosity', | ||||
|                         action='count') | ||||
|     parser.add_argument('--quiet', '-q', help='Decrease verbosity', | ||||
|                         action='count') | ||||
|     parser.add_argument('--qemu-binary', help='QEMU binary path', | ||||
|                         default='/usr/bin/qemu-system-x86_64') | ||||
|     parser.add_argument('--enable-kvm', help='Enable KVM acceleration', | ||||
|                         action='store_true') | ||||
|     parser.add_argument('--ovmf-binary', help='OVMF secureboot code file', | ||||
|                         default='/usr/share/edk2/ovmf/OVMF_CODE.secboot.fd') | ||||
|     parser.add_argument('--ovmf-template-vars', help='OVMF empty vars file', | ||||
|                         default='/usr/share/edk2/ovmf/OVMF_VARS.fd') | ||||
|     parser.add_argument('--uefi-shell-iso', help='Path to uefi shell iso', | ||||
|                         default='/usr/share/edk2/ovmf/UefiShell.iso') | ||||
|     parser.add_argument('--skip-enrollment', | ||||
|                         help='Skip enrollment, only test', action='store_true') | ||||
|     parser.add_argument('--skip-testing', | ||||
|                         help='Skip testing generated "VARS" file', | ||||
|                         action='store_true') | ||||
|     parser.add_argument('--kernel-path', | ||||
|                         help='Specify a consistent path for kernel') | ||||
|     parser.add_argument('--no-download', action='store_true', | ||||
|                         help='Never download a kernel') | ||||
|     parser.add_argument('--fedora-version', | ||||
|                         help='Fedora version to get kernel for checking', | ||||
|                         default='27') | ||||
|     parser.add_argument('--kernel-url', help='Kernel URL', | ||||
|                         default='https://download.fedoraproject.org/pub/fedora' | ||||
|                                 '/linux/releases/%(version)s/Everything/x86_64' | ||||
|                                 '/os/images/pxeboot/vmlinuz') | ||||
|     parser.add_argument('--disable-smm', | ||||
|                         help=('Don\'t restrict varstore pflash writes to ' | ||||
|                               'guest code that executes in SMM. Use this ' | ||||
|                               'option only if your OVMF binary doesn\'t have ' | ||||
|                               'the edk2 SMM driver stack built into it ' | ||||
|                               '(possibly because your QEMU binary lacks SMM ' | ||||
|                               'emulation). Note that without restricting ' | ||||
|                               'varstore pflash writes to guest code that ' | ||||
|                               'executes in SMM, a malicious guest kernel, ' | ||||
|                               'used for testing, could undermine Secure ' | ||||
|                               'Boot.'), | ||||
|                         action='store_true') | ||||
|     parser.add_argument('--oem-string', | ||||
|                         help=('Pass the argument to the guest as a string in ' | ||||
|                               'the SMBIOS Type 11 (OEM Strings) table. ' | ||||
|                               'Multiple occurrences of this option are ' | ||||
|                               'collected into a single SMBIOS Type 11 table. ' | ||||
|                               'A pure ASCII string argument is strongly ' | ||||
|                               'suggested.'), | ||||
|                         action='append') | ||||
|     args = parser.parse_args() | ||||
|     args.kernel_url = args.kernel_url % {'version': args.fedora_version} | ||||
| 
 | ||||
|     validate_args(args) | ||||
|     return args | ||||
| 
 | ||||
| 
 | ||||
| def validate_args(args): | ||||
|     if (os.path.exists(args.output) | ||||
|             and not args.force | ||||
|             and not args.skip_enrollment): | ||||
|         raise Exception('%s already exists' % args.output) | ||||
| 
 | ||||
|     if args.skip_enrollment and not os.path.exists(args.output): | ||||
|         raise Exception('%s does not yet exist' % args.output) | ||||
| 
 | ||||
|     verbosity = (args.verbose or 1) - (args.quiet or 0) | ||||
|     if verbosity >= 2: | ||||
|         logging.basicConfig(level=logging.DEBUG) | ||||
|     elif verbosity == 1: | ||||
|         logging.basicConfig(level=logging.INFO) | ||||
|     elif verbosity < 0: | ||||
|         logging.basicConfig(level=logging.ERROR) | ||||
|     else: | ||||
|         logging.basicConfig(level=logging.WARN) | ||||
| 
 | ||||
|     if args.skip_enrollment: | ||||
|         args.out_temp = args.output | ||||
|     else: | ||||
|         temped = tempfile.mkstemp(prefix='qosb.', suffix='.vars') | ||||
|         os.close(temped[0]) | ||||
|         args.out_temp = temped[1] | ||||
|         logging.debug('Temp output: %s', args.out_temp) | ||||
| 
 | ||||
| 
 | ||||
| def move_to_dest(args): | ||||
|     shutil.copy(args.out_temp, args.output) | ||||
|     os.remove(args.out_temp) | ||||
| 
 | ||||
| 
 | ||||
| def main(): | ||||
|     args = parse_args() | ||||
|     if not args.skip_enrollment: | ||||
|         enroll_keys(args) | ||||
|     if not args.skip_testing: | ||||
|         test_keys(args) | ||||
|     if not args.skip_enrollment: | ||||
|         move_to_dest(args) | ||||
|         if args.skip_testing: | ||||
|             logging.info('Created %s' % args.output) | ||||
|         else: | ||||
|             logging.info('Created and verified %s' % args.output) | ||||
|     else: | ||||
|         logging.info('Verified %s', args.output) | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == '__main__': | ||||
|     main() | ||||
							
								
								
									
										6
									
								
								sources
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								sources
									
									
									
									
									
								
							| @ -1,4 +1,2 @@ | ||||
| SHA512 (softfloat-20180726-gitb64af41.tar.xz) = f079debd1bfcc0fe64329a8947b0689ef49246793edcdd28a2879f6550c652b0cf0f53ac4f6f5ab61ac4f7933972e0019d0ab63eb9931b6884c2909f3a5ead30 | ||||
| SHA512 (edk2-stable202008.tar.gz) = c32340104f27b9b85f79e934cc9eeb739d47b01e13975c88f39b053e9bc5a1ecfe579ab3b63fc7747cc328e104b337b53d41deb4470c3f20dbbd5552173a4666 | ||||
| SHA512 (openssl-1.1.1g-hobbled.tar.xz) = 7cd351d8fd4a028edcdc6804d8b73af7ff5693ab96cafd4f9252534d4e8e9000e22aefa45f51db490da52d89f4e5b41d02452be0b516fbb0fe84e36d5ca54971 | ||||
| SHA512 (qemu-ovmf-secureboot-20200228-gitc3e16b3.tar.xz) = 123889b9277adda472035f72e4836b6fe8e0cd8e2e87d28400bbc846ea1308378fc7aae413d463e0c1bfda096d85e51be100eb8d7dfb0738707c3412f2855711 | ||||
| SHA512 (edk2-ca407c7246bf.tar.xz) = c3a4dda1030580b9189e7fbc2cbd3a1080aee886ba2880201fc76f530c4328ee05bb9b9269b73782a4a1c7866c59a086c5d94201bbc3122212ef7a3451e99370 | ||||
| SHA512 (openssl-rhel-bdd048e929dcfcf2f046d74e812e0e3d5fc58504.tar.xz) = d989bb5591acfa3ede8807210117bd9af24ff83add2d9cf6fc249574bf04335322ecf06b580e7b5f03ec54c6baca1410162a4ef329043ac9e5896dc76908c3a4 | ||||
|  | ||||
| @ -1,54 +0,0 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| user="tianocore" | ||||
| repo="edk2" | ||||
| branch="master" | ||||
| 
 | ||||
| uri="https://github.com/${user}/${repo}" | ||||
| api="${uri/github.com/api.github.com/repos}" | ||||
| tar="${uri/github.com/codeload.github.com}/legacy.tar.gz" | ||||
| 
 | ||||
| if test $# -ge 1; then | ||||
|   hash=$1 | ||||
|   short=$1 | ||||
| else | ||||
|   hash=$(curl -s "${api}/git/refs/heads/${branch}" | grep '"sha"' | cut -d'"' -f4) | ||||
|   if test "$hash" = ""; then | ||||
| 	echo "# failed to fetch $branch hash" | ||||
| 	exit 1 | ||||
|   fi | ||||
|   short=$(echo $hash | sed -e 's/^\(.......\).*/\1/') | ||||
| fi | ||||
| 
 | ||||
| if test $# = 2; then | ||||
|   date=$2 | ||||
| else | ||||
|   date=$(curl -s "${api}/git/commits/$hash" | awk ' | ||||
| 	  /"committer"/	{ c=1 } | ||||
| 	  /"date"/	{ if (c) { print } } | ||||
|   ' | cut -d'"' -f4) | ||||
|   date="${date%T*}" | ||||
|   date="${date//-/}" | ||||
| fi | ||||
| 
 | ||||
| name="${repo}-${date}-${short}.tar.xz" | ||||
| 
 | ||||
| if test -f "$name"; then | ||||
| 	echo "# exists: $name" | ||||
| 	exit 1 | ||||
| fi | ||||
| 
 | ||||
| echo | ||||
| echo "# specfile update: version $date, release $short" | ||||
| sed -i.old \ | ||||
|         -e "s/\(%global edk2_date[ \t]\+\)\(.*\)/\1$date/" \ | ||||
|         -e "s/\(%global edk2_githash[ \t]\+\)\(.*\)/\1$short/" \ | ||||
|         edk2.spec | ||||
| diff -u edk2.spec.old edk2.spec | ||||
| 
 | ||||
| echo | ||||
| echo "# cleanup ..." | ||||
| rm -vf ${repo}-*.tar* | ||||
| echo "# fetching $name ..." | ||||
| curl "$tar/$hash" | zcat | xz -9e > "$name" | ||||
| exit 0 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user