import edk2-20190308git89910a39dcfd-4.el8
This commit is contained in:
commit
97ad98022c
2
.edk2.metadata
Normal file
2
.edk2.metadata
Normal file
@ -0,0 +1,2 @@
|
||||
87a87bbfca0e751b2840f74b0612e2f0dad70535 SOURCES/edk2-89910a39dcfd.tar.xz
|
||||
f0655dec5d8d815956bab417fcdb25e6da7e21b8 SOURCES/openssl-fedora-d2ede125556ac99aa0faa7744c703af3f559094e.tar.xz
|
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
SOURCES/edk2-89910a39dcfd.tar.xz
|
||||
SOURCES/openssl-fedora-d2ede125556ac99aa0faa7744c703af3f559094e.tar.xz
|
@ -0,0 +1,602 @@
|
||||
From 727c11ecd9f34990312e14f239e6238693619849 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.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)
|
||||
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||||
---
|
||||
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 | 15 +++++++
|
||||
MdeModulePkg/Logo/LogoOpenSSLDxe.inf | 61 +++++++++++++++++++++++++++
|
||||
MdeModulePkg/Logo/LogoOpenSSLDxe.uni | 22 ++++++++++
|
||||
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, 107 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 a77d71bcea..f2e5125494 100644
|
||||
--- a/ArmVirtPkg/ArmVirtQemu.dsc
|
||||
+++ b/ArmVirtPkg/ArmVirtQemu.dsc
|
||||
@@ -347,7 +347,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 098d40b61b..ab799ca67f 100644
|
||||
--- a/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc
|
||||
+++ b/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc
|
||||
@@ -203,7 +203,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 1e5388ae70..d2b3f24394 100644
|
||||
--- a/ArmVirtPkg/ArmVirtQemuKernel.dsc
|
||||
+++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc
|
||||
@@ -331,7 +331,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..a80de29a63
|
||||
--- /dev/null
|
||||
+++ b/MdeModulePkg/Logo/Logo-OpenSSL.idf
|
||||
@@ -0,0 +1,15 @@
|
||||
+// /** @file
|
||||
+// Platform Logo image definition file.
|
||||
+//
|
||||
+// Copyright (c) 2016 - 2018, Intel Corporation. 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.
|
||||
+//
|
||||
+// **/
|
||||
+
|
||||
+#image IMG_LOGO Logo-OpenSSL.bmp
|
||||
diff --git a/MdeModulePkg/Logo/LogoOpenSSLDxe.inf b/MdeModulePkg/Logo/LogoOpenSSLDxe.inf
|
||||
new file mode 100644
|
||||
index 0000000000..2f79d873e2
|
||||
--- /dev/null
|
||||
+++ b/MdeModulePkg/Logo/LogoOpenSSLDxe.inf
|
||||
@@ -0,0 +1,61 @@
|
||||
+## @file
|
||||
+# The default logo bitmap picture shown on setup screen.
|
||||
+#
|
||||
+# Copyright (c) 2016 - 2017, Intel Corporation. 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.
|
||||
+#
|
||||
+#
|
||||
+##
|
||||
+
|
||||
+[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..7227ac3910
|
||||
--- /dev/null
|
||||
+++ b/MdeModulePkg/Logo/LogoOpenSSLDxe.uni
|
||||
@@ -0,0 +1,22 @@
|
||||
+// /** @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>
|
||||
+//
|
||||
+// 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.
|
||||
+//
|
||||
+// **/
|
||||
+
|
||||
+
|
||||
+#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 5b885590b2..249b1d8dc0 100644
|
||||
--- a/OvmfPkg/OvmfPkgIa32.dsc
|
||||
+++ b/OvmfPkg/OvmfPkgIa32.dsc
|
||||
@@ -693,7 +693,7 @@
|
||||
NULL|IntelFrameworkModulePkg/Library/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 4999403ad7..be3d3b4d14 100644
|
||||
--- a/OvmfPkg/OvmfPkgIa32.fdf
|
||||
+++ b/OvmfPkg/OvmfPkgIa32.fdf
|
||||
@@ -293,7 +293,7 @@ INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.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 bbf0853ee6..5ec186df4b 100644
|
||||
--- a/OvmfPkg/OvmfPkgIa32X64.dsc
|
||||
+++ b/OvmfPkg/OvmfPkgIa32X64.dsc
|
||||
@@ -702,7 +702,7 @@
|
||||
NULL|IntelFrameworkModulePkg/Library/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 d0cc107928..b56160b3bf 100644
|
||||
--- a/OvmfPkg/OvmfPkgIa32X64.fdf
|
||||
+++ b/OvmfPkg/OvmfPkgIa32X64.fdf
|
||||
@@ -294,7 +294,7 @@ INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.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 d81460f520..29538ade4d 100644
|
||||
--- a/OvmfPkg/OvmfPkgX64.dsc
|
||||
+++ b/OvmfPkg/OvmfPkgX64.dsc
|
||||
@@ -700,7 +700,7 @@
|
||||
NULL|IntelFrameworkModulePkg/Library/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 d0cc107928..b56160b3bf 100644
|
||||
--- a/OvmfPkg/OvmfPkgX64.fdf
|
||||
+++ b/OvmfPkg/OvmfPkgX64.fdf
|
||||
@@ -294,7 +294,7 @@ INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf
|
||||
!endif
|
||||
INF ShellPkg/Application/Shell/Shell.inf
|
||||
|
||||
-INF MdeModulePkg/Logo/LogoDxe.inf
|
||||
+INF MdeModulePkg/Logo/LogoOpenSSLDxe.inf
|
||||
|
||||
#
|
||||
# Network modules
|
||||
--
|
||||
2.18.1
|
||||
|
@ -0,0 +1,63 @@
|
||||
From a1260c9122c95bcbef1efc5eebe11902767813c2 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.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)
|
||||
Signed-off-by: Danilo C. L. de Paula <ddepaula@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 36cde54976..c0c4eaee0f 100644
|
||||
--- a/OvmfPkg/Library/PlatformDebugLibIoPort/DebugLib.c
|
||||
+++ b/OvmfPkg/Library/PlatformDebugLibIoPort/DebugLib.c
|
||||
@@ -27,7 +27,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
|
||||
|
||||
/**
|
||||
Prints a debug message to the debug output device if the specified error level is enabled.
|
||||
--
|
||||
2.18.1
|
||||
|
@ -0,0 +1,569 @@
|
||||
From bd264265a99c60f45cadaa4109a9db59ae218471 Mon Sep 17 00:00:00 2001
|
||||
From: Laszlo Ersek <lersek@redhat.com>
|
||||
Date: Thu, 12 Jun 2014 00:17:59 +0200
|
||||
Subject: OvmfPkg: QemuVideoDxe: enable debug messages in VbeShim (RHEL only)
|
||||
|
||||
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
|
||||
version is preferred; for us debug messages are important as a default.
|
||||
|
||||
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".
|
||||
|
||||
"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)
|
||||
(cherry picked from commit 9a8a034ebc082f86fdbb54dc1303a5059508e14c)
|
||||
(cherry picked from commit 7046d6040181bb0f76a5ebd680e0dc701c895dba)
|
||||
(cherry picked from commit 4dd1cc745bc9a8c8b32b5810b40743fed1e36d7e)
|
||||
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||||
---
|
||||
OvmfPkg/QemuVideoDxe/VbeShim.asm | 2 +-
|
||||
OvmfPkg/QemuVideoDxe/VbeShim.h | 481 ++++++++++++++++++++-----------
|
||||
2 files changed, 308 insertions(+), 175 deletions(-)
|
||||
|
||||
diff --git a/OvmfPkg/QemuVideoDxe/VbeShim.asm b/OvmfPkg/QemuVideoDxe/VbeShim.asm
|
||||
index 18fa9209d4..f87ed5cf30 100644
|
||||
--- a/OvmfPkg/QemuVideoDxe/VbeShim.asm
|
||||
+++ b/OvmfPkg/QemuVideoDxe/VbeShim.asm
|
||||
@@ -18,7 +18,7 @@
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
; enable this macro for debug messages
|
||||
-;%define DEBUG
|
||||
+%define DEBUG
|
||||
|
||||
%macro DebugLog 1
|
||||
%ifdef DEBUG
|
||||
diff --git a/OvmfPkg/QemuVideoDxe/VbeShim.h b/OvmfPkg/QemuVideoDxe/VbeShim.h
|
||||
index cc9b6e14cd..325d6478a1 100644
|
||||
--- a/OvmfPkg/QemuVideoDxe/VbeShim.h
|
||||
+++ b/OvmfPkg/QemuVideoDxe/VbeShim.h
|
||||
@@ -517,185 +517,318 @@ STATIC CONST UINT8 mVbeShim[] = {
|
||||
/* 000001FE nop */ 0x90,
|
||||
/* 000001FF nop */ 0x90,
|
||||
/* 00000200 cmp ax,0x4f00 */ 0x3D, 0x00, 0x4F,
|
||||
- /* 00000203 jz 0x22d */ 0x74, 0x28,
|
||||
+ /* 00000203 jz 0x235 */ 0x74, 0x30,
|
||||
/* 00000205 cmp ax,0x4f01 */ 0x3D, 0x01, 0x4F,
|
||||
- /* 00000208 jz 0x245 */ 0x74, 0x3B,
|
||||
+ /* 00000208 jz 0x255 */ 0x74, 0x4B,
|
||||
/* 0000020A cmp ax,0x4f02 */ 0x3D, 0x02, 0x4F,
|
||||
- /* 0000020D jz 0x269 */ 0x74, 0x5A,
|
||||
+ /* 0000020D jz 0x289 */ 0x74, 0x7A,
|
||||
/* 0000020F cmp ax,0x4f03 */ 0x3D, 0x03, 0x4F,
|
||||
- /* 00000212 jz word 0x331 */ 0x0F, 0x84, 0x1B, 0x01,
|
||||
+ /* 00000212 jz word 0x361 */ 0x0F, 0x84, 0x4B, 0x01,
|
||||
/* 00000216 cmp ax,0x4f10 */ 0x3D, 0x10, 0x4F,
|
||||
- /* 00000219 jz word 0x336 */ 0x0F, 0x84, 0x19, 0x01,
|
||||
+ /* 00000219 jz word 0x36e */ 0x0F, 0x84, 0x51, 0x01,
|
||||
/* 0000021D cmp ax,0x4f15 */ 0x3D, 0x15, 0x4F,
|
||||
- /* 00000220 jz word 0x338 */ 0x0F, 0x84, 0x14, 0x01,
|
||||
+ /* 00000220 jz word 0x378 */ 0x0F, 0x84, 0x54, 0x01,
|
||||
/* 00000224 cmp ah,0x0 */ 0x80, 0xFC, 0x00,
|
||||
- /* 00000227 jz word 0x33a */ 0x0F, 0x84, 0x0F, 0x01,
|
||||
- /* 0000022B jmp short 0x22b */ 0xEB, 0xFE,
|
||||
- /* 0000022D push es */ 0x06,
|
||||
- /* 0000022E push di */ 0x57,
|
||||
- /* 0000022F push ds */ 0x1E,
|
||||
- /* 00000230 push si */ 0x56,
|
||||
- /* 00000231 push cx */ 0x51,
|
||||
- /* 00000232 push cs */ 0x0E,
|
||||
- /* 00000233 pop ds */ 0x1F,
|
||||
- /* 00000234 mov si,0x0 */ 0xBE, 0x00, 0x00,
|
||||
- /* 00000237 mov cx,0x100 */ 0xB9, 0x00, 0x01,
|
||||
- /* 0000023A cld */ 0xFC,
|
||||
- /* 0000023B rep movsb */ 0xF3, 0xA4,
|
||||
- /* 0000023D pop cx */ 0x59,
|
||||
- /* 0000023E pop si */ 0x5E,
|
||||
- /* 0000023F pop ds */ 0x1F,
|
||||
- /* 00000240 pop di */ 0x5F,
|
||||
- /* 00000241 pop es */ 0x07,
|
||||
- /* 00000242 jmp word 0x34c */ 0xE9, 0x07, 0x01,
|
||||
- /* 00000245 push es */ 0x06,
|
||||
- /* 00000246 push di */ 0x57,
|
||||
- /* 00000247 push ds */ 0x1E,
|
||||
- /* 00000248 push si */ 0x56,
|
||||
- /* 00000249 push cx */ 0x51,
|
||||
- /* 0000024A and cx,0xbfff */ 0x81, 0xE1, 0xFF, 0xBF,
|
||||
- /* 0000024E cmp cx,0xf1 */ 0x81, 0xF9, 0xF1, 0x00,
|
||||
- /* 00000252 jz 0x256 */ 0x74, 0x02,
|
||||
- /* 00000254 jmp short 0x22b */ 0xEB, 0xD5,
|
||||
- /* 00000256 push cs */ 0x0E,
|
||||
- /* 00000257 pop ds */ 0x1F,
|
||||
- /* 00000258 mov si,0x100 */ 0xBE, 0x00, 0x01,
|
||||
- /* 0000025B mov cx,0x100 */ 0xB9, 0x00, 0x01,
|
||||
- /* 0000025E cld */ 0xFC,
|
||||
- /* 0000025F rep movsb */ 0xF3, 0xA4,
|
||||
- /* 00000261 pop cx */ 0x59,
|
||||
- /* 00000262 pop si */ 0x5E,
|
||||
- /* 00000263 pop ds */ 0x1F,
|
||||
- /* 00000264 pop di */ 0x5F,
|
||||
- /* 00000265 pop es */ 0x07,
|
||||
- /* 00000266 jmp word 0x34c */ 0xE9, 0xE3, 0x00,
|
||||
- /* 00000269 push dx */ 0x52,
|
||||
- /* 0000026A push ax */ 0x50,
|
||||
- /* 0000026B cmp bx,0x40f1 */ 0x81, 0xFB, 0xF1, 0x40,
|
||||
- /* 0000026F jz 0x273 */ 0x74, 0x02,
|
||||
- /* 00000271 jmp short 0x22b */ 0xEB, 0xB8,
|
||||
- /* 00000273 mov dx,0x3c0 */ 0xBA, 0xC0, 0x03,
|
||||
- /* 00000276 mov al,0x20 */ 0xB0, 0x20,
|
||||
- /* 00000278 out dx,al */ 0xEE,
|
||||
- /* 00000279 push dx */ 0x52,
|
||||
- /* 0000027A push ax */ 0x50,
|
||||
- /* 0000027B mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
||||
- /* 0000027E mov ax,0x4 */ 0xB8, 0x04, 0x00,
|
||||
- /* 00000281 out dx,ax */ 0xEF,
|
||||
- /* 00000282 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
||||
- /* 00000285 mov ax,0x0 */ 0xB8, 0x00, 0x00,
|
||||
- /* 00000288 out dx,ax */ 0xEF,
|
||||
- /* 00000289 pop ax */ 0x58,
|
||||
- /* 0000028A pop dx */ 0x5A,
|
||||
- /* 0000028B push dx */ 0x52,
|
||||
- /* 0000028C push ax */ 0x50,
|
||||
- /* 0000028D mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
||||
- /* 00000290 mov ax,0x5 */ 0xB8, 0x05, 0x00,
|
||||
- /* 00000293 out dx,ax */ 0xEF,
|
||||
- /* 00000294 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
||||
- /* 00000297 mov ax,0x0 */ 0xB8, 0x00, 0x00,
|
||||
- /* 0000029A out dx,ax */ 0xEF,
|
||||
- /* 0000029B pop ax */ 0x58,
|
||||
- /* 0000029C pop dx */ 0x5A,
|
||||
- /* 0000029D push dx */ 0x52,
|
||||
- /* 0000029E push ax */ 0x50,
|
||||
- /* 0000029F mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
||||
- /* 000002A2 mov ax,0x8 */ 0xB8, 0x08, 0x00,
|
||||
- /* 000002A5 out dx,ax */ 0xEF,
|
||||
- /* 000002A6 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
||||
- /* 000002A9 mov ax,0x0 */ 0xB8, 0x00, 0x00,
|
||||
- /* 000002AC out dx,ax */ 0xEF,
|
||||
- /* 000002AD pop ax */ 0x58,
|
||||
- /* 000002AE pop dx */ 0x5A,
|
||||
- /* 000002AF push dx */ 0x52,
|
||||
- /* 000002B0 push ax */ 0x50,
|
||||
- /* 000002B1 mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
||||
- /* 000002B4 mov ax,0x9 */ 0xB8, 0x09, 0x00,
|
||||
- /* 000002B7 out dx,ax */ 0xEF,
|
||||
- /* 000002B8 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
||||
- /* 000002BB mov ax,0x0 */ 0xB8, 0x00, 0x00,
|
||||
- /* 000002BE out dx,ax */ 0xEF,
|
||||
- /* 000002BF pop ax */ 0x58,
|
||||
- /* 000002C0 pop dx */ 0x5A,
|
||||
- /* 000002C1 push dx */ 0x52,
|
||||
- /* 000002C2 push ax */ 0x50,
|
||||
- /* 000002C3 mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
||||
- /* 000002C6 mov ax,0x3 */ 0xB8, 0x03, 0x00,
|
||||
- /* 000002C9 out dx,ax */ 0xEF,
|
||||
- /* 000002CA mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
||||
- /* 000002CD mov ax,0x20 */ 0xB8, 0x20, 0x00,
|
||||
- /* 000002D0 out dx,ax */ 0xEF,
|
||||
- /* 000002D1 pop ax */ 0x58,
|
||||
- /* 000002D2 pop dx */ 0x5A,
|
||||
- /* 000002D3 push dx */ 0x52,
|
||||
- /* 000002D4 push ax */ 0x50,
|
||||
- /* 000002D5 mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
||||
- /* 000002D8 mov ax,0x1 */ 0xB8, 0x01, 0x00,
|
||||
- /* 000002DB out dx,ax */ 0xEF,
|
||||
- /* 000002DC mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
||||
- /* 000002DF mov ax,0x400 */ 0xB8, 0x00, 0x04,
|
||||
- /* 000002E2 out dx,ax */ 0xEF,
|
||||
- /* 000002E3 pop ax */ 0x58,
|
||||
- /* 000002E4 pop dx */ 0x5A,
|
||||
- /* 000002E5 push dx */ 0x52,
|
||||
- /* 000002E6 push ax */ 0x50,
|
||||
- /* 000002E7 mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
||||
- /* 000002EA mov ax,0x6 */ 0xB8, 0x06, 0x00,
|
||||
- /* 000002ED out dx,ax */ 0xEF,
|
||||
- /* 000002EE mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
||||
- /* 000002F1 mov ax,0x400 */ 0xB8, 0x00, 0x04,
|
||||
- /* 000002F4 out dx,ax */ 0xEF,
|
||||
- /* 000002F5 pop ax */ 0x58,
|
||||
- /* 000002F6 pop dx */ 0x5A,
|
||||
- /* 000002F7 push dx */ 0x52,
|
||||
- /* 000002F8 push ax */ 0x50,
|
||||
- /* 000002F9 mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
||||
- /* 000002FC mov ax,0x2 */ 0xB8, 0x02, 0x00,
|
||||
- /* 000002FF out dx,ax */ 0xEF,
|
||||
- /* 00000300 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
||||
- /* 00000303 mov ax,0x300 */ 0xB8, 0x00, 0x03,
|
||||
- /* 00000306 out dx,ax */ 0xEF,
|
||||
- /* 00000307 pop ax */ 0x58,
|
||||
- /* 00000308 pop dx */ 0x5A,
|
||||
- /* 00000309 push dx */ 0x52,
|
||||
- /* 0000030A push ax */ 0x50,
|
||||
- /* 0000030B mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
||||
- /* 0000030E mov ax,0x7 */ 0xB8, 0x07, 0x00,
|
||||
- /* 00000311 out dx,ax */ 0xEF,
|
||||
- /* 00000312 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
||||
- /* 00000315 mov ax,0x300 */ 0xB8, 0x00, 0x03,
|
||||
- /* 00000318 out dx,ax */ 0xEF,
|
||||
- /* 00000319 pop ax */ 0x58,
|
||||
- /* 0000031A pop dx */ 0x5A,
|
||||
- /* 0000031B push dx */ 0x52,
|
||||
- /* 0000031C push ax */ 0x50,
|
||||
- /* 0000031D mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
||||
- /* 00000320 mov ax,0x4 */ 0xB8, 0x04, 0x00,
|
||||
- /* 00000323 out dx,ax */ 0xEF,
|
||||
- /* 00000324 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
||||
- /* 00000327 mov ax,0x41 */ 0xB8, 0x41, 0x00,
|
||||
- /* 0000032A out dx,ax */ 0xEF,
|
||||
- /* 0000032B pop ax */ 0x58,
|
||||
- /* 0000032C pop dx */ 0x5A,
|
||||
- /* 0000032D pop ax */ 0x58,
|
||||
- /* 0000032E pop dx */ 0x5A,
|
||||
- /* 0000032F jmp short 0x34c */ 0xEB, 0x1B,
|
||||
- /* 00000331 mov bx,0x40f1 */ 0xBB, 0xF1, 0x40,
|
||||
- /* 00000334 jmp short 0x34c */ 0xEB, 0x16,
|
||||
- /* 00000336 jmp short 0x350 */ 0xEB, 0x18,
|
||||
- /* 00000338 jmp short 0x350 */ 0xEB, 0x16,
|
||||
- /* 0000033A cmp al,0x3 */ 0x3C, 0x03,
|
||||
- /* 0000033C jz 0x345 */ 0x74, 0x07,
|
||||
- /* 0000033E cmp al,0x12 */ 0x3C, 0x12,
|
||||
- /* 00000340 jz 0x349 */ 0x74, 0x07,
|
||||
- /* 00000342 jmp word 0x22b */ 0xE9, 0xE6, 0xFE,
|
||||
- /* 00000345 mov al,0x30 */ 0xB0, 0x30,
|
||||
- /* 00000347 jmp short 0x34b */ 0xEB, 0x02,
|
||||
- /* 00000349 mov al,0x20 */ 0xB0, 0x20,
|
||||
- /* 0000034B iretw */ 0xCF,
|
||||
- /* 0000034C mov ax,0x4f */ 0xB8, 0x4F, 0x00,
|
||||
- /* 0000034F iretw */ 0xCF,
|
||||
- /* 00000350 mov ax,0x14f */ 0xB8, 0x4F, 0x01,
|
||||
- /* 00000353 iretw */ 0xCF,
|
||||
+ /* 00000227 jz word 0x382 */ 0x0F, 0x84, 0x57, 0x01,
|
||||
+ /* 0000022B push si */ 0x56,
|
||||
+ /* 0000022C mov si,0x3e9 */ 0xBE, 0xE9, 0x03,
|
||||
+ /* 0000022F call word 0x3c4 */ 0xE8, 0x92, 0x01,
|
||||
+ /* 00000232 pop si */ 0x5E,
|
||||
+ /* 00000233 jmp short 0x233 */ 0xEB, 0xFE,
|
||||
+ /* 00000235 push es */ 0x06,
|
||||
+ /* 00000236 push di */ 0x57,
|
||||
+ /* 00000237 push ds */ 0x1E,
|
||||
+ /* 00000238 push si */ 0x56,
|
||||
+ /* 00000239 push cx */ 0x51,
|
||||
+ /* 0000023A push si */ 0x56,
|
||||
+ /* 0000023B mov si,0x3fb */ 0xBE, 0xFB, 0x03,
|
||||
+ /* 0000023E call word 0x3c4 */ 0xE8, 0x83, 0x01,
|
||||
+ /* 00000241 pop si */ 0x5E,
|
||||
+ /* 00000242 push cs */ 0x0E,
|
||||
+ /* 00000243 pop ds */ 0x1F,
|
||||
+ /* 00000244 mov si,0x0 */ 0xBE, 0x00, 0x00,
|
||||
+ /* 00000247 mov cx,0x100 */ 0xB9, 0x00, 0x01,
|
||||
+ /* 0000024A cld */ 0xFC,
|
||||
+ /* 0000024B rep movsb */ 0xF3, 0xA4,
|
||||
+ /* 0000024D pop cx */ 0x59,
|
||||
+ /* 0000024E pop si */ 0x5E,
|
||||
+ /* 0000024F pop ds */ 0x1F,
|
||||
+ /* 00000250 pop di */ 0x5F,
|
||||
+ /* 00000251 pop es */ 0x07,
|
||||
+ /* 00000252 jmp word 0x3ac */ 0xE9, 0x57, 0x01,
|
||||
+ /* 00000255 push es */ 0x06,
|
||||
+ /* 00000256 push di */ 0x57,
|
||||
+ /* 00000257 push ds */ 0x1E,
|
||||
+ /* 00000258 push si */ 0x56,
|
||||
+ /* 00000259 push cx */ 0x51,
|
||||
+ /* 0000025A push si */ 0x56,
|
||||
+ /* 0000025B mov si,0x404 */ 0xBE, 0x04, 0x04,
|
||||
+ /* 0000025E call word 0x3c4 */ 0xE8, 0x63, 0x01,
|
||||
+ /* 00000261 pop si */ 0x5E,
|
||||
+ /* 00000262 and cx,0xbfff */ 0x81, 0xE1, 0xFF, 0xBF,
|
||||
+ /* 00000266 cmp cx,0xf1 */ 0x81, 0xF9, 0xF1, 0x00,
|
||||
+ /* 0000026A jz 0x276 */ 0x74, 0x0A,
|
||||
+ /* 0000026C push si */ 0x56,
|
||||
+ /* 0000026D mov si,0x432 */ 0xBE, 0x32, 0x04,
|
||||
+ /* 00000270 call word 0x3c4 */ 0xE8, 0x51, 0x01,
|
||||
+ /* 00000273 pop si */ 0x5E,
|
||||
+ /* 00000274 jmp short 0x233 */ 0xEB, 0xBD,
|
||||
+ /* 00000276 push cs */ 0x0E,
|
||||
+ /* 00000277 pop ds */ 0x1F,
|
||||
+ /* 00000278 mov si,0x100 */ 0xBE, 0x00, 0x01,
|
||||
+ /* 0000027B mov cx,0x100 */ 0xB9, 0x00, 0x01,
|
||||
+ /* 0000027E cld */ 0xFC,
|
||||
+ /* 0000027F rep movsb */ 0xF3, 0xA4,
|
||||
+ /* 00000281 pop cx */ 0x59,
|
||||
+ /* 00000282 pop si */ 0x5E,
|
||||
+ /* 00000283 pop ds */ 0x1F,
|
||||
+ /* 00000284 pop di */ 0x5F,
|
||||
+ /* 00000285 pop es */ 0x07,
|
||||
+ /* 00000286 jmp word 0x3ac */ 0xE9, 0x23, 0x01,
|
||||
+ /* 00000289 push dx */ 0x52,
|
||||
+ /* 0000028A push ax */ 0x50,
|
||||
+ /* 0000028B push si */ 0x56,
|
||||
+ /* 0000028C mov si,0x41a */ 0xBE, 0x1A, 0x04,
|
||||
+ /* 0000028F call word 0x3c4 */ 0xE8, 0x32, 0x01,
|
||||
+ /* 00000292 pop si */ 0x5E,
|
||||
+ /* 00000293 cmp bx,0x40f1 */ 0x81, 0xFB, 0xF1, 0x40,
|
||||
+ /* 00000297 jz 0x2a3 */ 0x74, 0x0A,
|
||||
+ /* 00000299 push si */ 0x56,
|
||||
+ /* 0000029A mov si,0x432 */ 0xBE, 0x32, 0x04,
|
||||
+ /* 0000029D call word 0x3c4 */ 0xE8, 0x24, 0x01,
|
||||
+ /* 000002A0 pop si */ 0x5E,
|
||||
+ /* 000002A1 jmp short 0x233 */ 0xEB, 0x90,
|
||||
+ /* 000002A3 mov dx,0x3c0 */ 0xBA, 0xC0, 0x03,
|
||||
+ /* 000002A6 mov al,0x20 */ 0xB0, 0x20,
|
||||
+ /* 000002A8 out dx,al */ 0xEE,
|
||||
+ /* 000002A9 push dx */ 0x52,
|
||||
+ /* 000002AA push ax */ 0x50,
|
||||
+ /* 000002AB mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
||||
+ /* 000002AE mov ax,0x4 */ 0xB8, 0x04, 0x00,
|
||||
+ /* 000002B1 out dx,ax */ 0xEF,
|
||||
+ /* 000002B2 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
||||
+ /* 000002B5 mov ax,0x0 */ 0xB8, 0x00, 0x00,
|
||||
+ /* 000002B8 out dx,ax */ 0xEF,
|
||||
+ /* 000002B9 pop ax */ 0x58,
|
||||
+ /* 000002BA pop dx */ 0x5A,
|
||||
+ /* 000002BB push dx */ 0x52,
|
||||
+ /* 000002BC push ax */ 0x50,
|
||||
+ /* 000002BD mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
||||
+ /* 000002C0 mov ax,0x5 */ 0xB8, 0x05, 0x00,
|
||||
+ /* 000002C3 out dx,ax */ 0xEF,
|
||||
+ /* 000002C4 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
||||
+ /* 000002C7 mov ax,0x0 */ 0xB8, 0x00, 0x00,
|
||||
+ /* 000002CA out dx,ax */ 0xEF,
|
||||
+ /* 000002CB pop ax */ 0x58,
|
||||
+ /* 000002CC pop dx */ 0x5A,
|
||||
+ /* 000002CD push dx */ 0x52,
|
||||
+ /* 000002CE push ax */ 0x50,
|
||||
+ /* 000002CF mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
||||
+ /* 000002D2 mov ax,0x8 */ 0xB8, 0x08, 0x00,
|
||||
+ /* 000002D5 out dx,ax */ 0xEF,
|
||||
+ /* 000002D6 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
||||
+ /* 000002D9 mov ax,0x0 */ 0xB8, 0x00, 0x00,
|
||||
+ /* 000002DC out dx,ax */ 0xEF,
|
||||
+ /* 000002DD pop ax */ 0x58,
|
||||
+ /* 000002DE pop dx */ 0x5A,
|
||||
+ /* 000002DF push dx */ 0x52,
|
||||
+ /* 000002E0 push ax */ 0x50,
|
||||
+ /* 000002E1 mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
||||
+ /* 000002E4 mov ax,0x9 */ 0xB8, 0x09, 0x00,
|
||||
+ /* 000002E7 out dx,ax */ 0xEF,
|
||||
+ /* 000002E8 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
||||
+ /* 000002EB mov ax,0x0 */ 0xB8, 0x00, 0x00,
|
||||
+ /* 000002EE out dx,ax */ 0xEF,
|
||||
+ /* 000002EF pop ax */ 0x58,
|
||||
+ /* 000002F0 pop dx */ 0x5A,
|
||||
+ /* 000002F1 push dx */ 0x52,
|
||||
+ /* 000002F2 push ax */ 0x50,
|
||||
+ /* 000002F3 mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
||||
+ /* 000002F6 mov ax,0x3 */ 0xB8, 0x03, 0x00,
|
||||
+ /* 000002F9 out dx,ax */ 0xEF,
|
||||
+ /* 000002FA mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
||||
+ /* 000002FD mov ax,0x20 */ 0xB8, 0x20, 0x00,
|
||||
+ /* 00000300 out dx,ax */ 0xEF,
|
||||
+ /* 00000301 pop ax */ 0x58,
|
||||
+ /* 00000302 pop dx */ 0x5A,
|
||||
+ /* 00000303 push dx */ 0x52,
|
||||
+ /* 00000304 push ax */ 0x50,
|
||||
+ /* 00000305 mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
||||
+ /* 00000308 mov ax,0x1 */ 0xB8, 0x01, 0x00,
|
||||
+ /* 0000030B out dx,ax */ 0xEF,
|
||||
+ /* 0000030C mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
||||
+ /* 0000030F mov ax,0x400 */ 0xB8, 0x00, 0x04,
|
||||
+ /* 00000312 out dx,ax */ 0xEF,
|
||||
+ /* 00000313 pop ax */ 0x58,
|
||||
+ /* 00000314 pop dx */ 0x5A,
|
||||
+ /* 00000315 push dx */ 0x52,
|
||||
+ /* 00000316 push ax */ 0x50,
|
||||
+ /* 00000317 mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
||||
+ /* 0000031A mov ax,0x6 */ 0xB8, 0x06, 0x00,
|
||||
+ /* 0000031D out dx,ax */ 0xEF,
|
||||
+ /* 0000031E mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
||||
+ /* 00000321 mov ax,0x400 */ 0xB8, 0x00, 0x04,
|
||||
+ /* 00000324 out dx,ax */ 0xEF,
|
||||
+ /* 00000325 pop ax */ 0x58,
|
||||
+ /* 00000326 pop dx */ 0x5A,
|
||||
+ /* 00000327 push dx */ 0x52,
|
||||
+ /* 00000328 push ax */ 0x50,
|
||||
+ /* 00000329 mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
||||
+ /* 0000032C mov ax,0x2 */ 0xB8, 0x02, 0x00,
|
||||
+ /* 0000032F out dx,ax */ 0xEF,
|
||||
+ /* 00000330 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
||||
+ /* 00000333 mov ax,0x300 */ 0xB8, 0x00, 0x03,
|
||||
+ /* 00000336 out dx,ax */ 0xEF,
|
||||
+ /* 00000337 pop ax */ 0x58,
|
||||
+ /* 00000338 pop dx */ 0x5A,
|
||||
+ /* 00000339 push dx */ 0x52,
|
||||
+ /* 0000033A push ax */ 0x50,
|
||||
+ /* 0000033B mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
||||
+ /* 0000033E mov ax,0x7 */ 0xB8, 0x07, 0x00,
|
||||
+ /* 00000341 out dx,ax */ 0xEF,
|
||||
+ /* 00000342 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
||||
+ /* 00000345 mov ax,0x300 */ 0xB8, 0x00, 0x03,
|
||||
+ /* 00000348 out dx,ax */ 0xEF,
|
||||
+ /* 00000349 pop ax */ 0x58,
|
||||
+ /* 0000034A pop dx */ 0x5A,
|
||||
+ /* 0000034B push dx */ 0x52,
|
||||
+ /* 0000034C push ax */ 0x50,
|
||||
+ /* 0000034D mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
||||
+ /* 00000350 mov ax,0x4 */ 0xB8, 0x04, 0x00,
|
||||
+ /* 00000353 out dx,ax */ 0xEF,
|
||||
+ /* 00000354 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
||||
+ /* 00000357 mov ax,0x41 */ 0xB8, 0x41, 0x00,
|
||||
+ /* 0000035A out dx,ax */ 0xEF,
|
||||
+ /* 0000035B pop ax */ 0x58,
|
||||
+ /* 0000035C pop dx */ 0x5A,
|
||||
+ /* 0000035D pop ax */ 0x58,
|
||||
+ /* 0000035E pop dx */ 0x5A,
|
||||
+ /* 0000035F jmp short 0x3ac */ 0xEB, 0x4B,
|
||||
+ /* 00000361 push si */ 0x56,
|
||||
+ /* 00000362 mov si,0x411 */ 0xBE, 0x11, 0x04,
|
||||
+ /* 00000365 call word 0x3c4 */ 0xE8, 0x5C, 0x00,
|
||||
+ /* 00000368 pop si */ 0x5E,
|
||||
+ /* 00000369 mov bx,0x40f1 */ 0xBB, 0xF1, 0x40,
|
||||
+ /* 0000036C jmp short 0x3ac */ 0xEB, 0x3E,
|
||||
+ /* 0000036E push si */ 0x56,
|
||||
+ /* 0000036F mov si,0x43f */ 0xBE, 0x3F, 0x04,
|
||||
+ /* 00000372 call word 0x3c4 */ 0xE8, 0x4F, 0x00,
|
||||
+ /* 00000375 pop si */ 0x5E,
|
||||
+ /* 00000376 jmp short 0x3b8 */ 0xEB, 0x40,
|
||||
+ /* 00000378 push si */ 0x56,
|
||||
+ /* 00000379 mov si,0x452 */ 0xBE, 0x52, 0x04,
|
||||
+ /* 0000037C call word 0x3c4 */ 0xE8, 0x45, 0x00,
|
||||
+ /* 0000037F pop si */ 0x5E,
|
||||
+ /* 00000380 jmp short 0x3b8 */ 0xEB, 0x36,
|
||||
+ /* 00000382 push si */ 0x56,
|
||||
+ /* 00000383 mov si,0x423 */ 0xBE, 0x23, 0x04,
|
||||
+ /* 00000386 call word 0x3c4 */ 0xE8, 0x3B, 0x00,
|
||||
+ /* 00000389 pop si */ 0x5E,
|
||||
+ /* 0000038A cmp al,0x3 */ 0x3C, 0x03,
|
||||
+ /* 0000038C jz 0x39d */ 0x74, 0x0F,
|
||||
+ /* 0000038E cmp al,0x12 */ 0x3C, 0x12,
|
||||
+ /* 00000390 jz 0x3a1 */ 0x74, 0x0F,
|
||||
+ /* 00000392 push si */ 0x56,
|
||||
+ /* 00000393 mov si,0x432 */ 0xBE, 0x32, 0x04,
|
||||
+ /* 00000396 call word 0x3c4 */ 0xE8, 0x2B, 0x00,
|
||||
+ /* 00000399 pop si */ 0x5E,
|
||||
+ /* 0000039A jmp word 0x233 */ 0xE9, 0x96, 0xFE,
|
||||
+ /* 0000039D mov al,0x30 */ 0xB0, 0x30,
|
||||
+ /* 0000039F jmp short 0x3a3 */ 0xEB, 0x02,
|
||||
+ /* 000003A1 mov al,0x20 */ 0xB0, 0x20,
|
||||
+ /* 000003A3 push si */ 0x56,
|
||||
+ /* 000003A4 mov si,0x3d6 */ 0xBE, 0xD6, 0x03,
|
||||
+ /* 000003A7 call word 0x3c4 */ 0xE8, 0x1A, 0x00,
|
||||
+ /* 000003AA pop si */ 0x5E,
|
||||
+ /* 000003AB iretw */ 0xCF,
|
||||
+ /* 000003AC push si */ 0x56,
|
||||
+ /* 000003AD mov si,0x3d6 */ 0xBE, 0xD6, 0x03,
|
||||
+ /* 000003B0 call word 0x3c4 */ 0xE8, 0x11, 0x00,
|
||||
+ /* 000003B3 pop si */ 0x5E,
|
||||
+ /* 000003B4 mov ax,0x4f */ 0xB8, 0x4F, 0x00,
|
||||
+ /* 000003B7 iretw */ 0xCF,
|
||||
+ /* 000003B8 push si */ 0x56,
|
||||
+ /* 000003B9 mov si,0x3dc */ 0xBE, 0xDC, 0x03,
|
||||
+ /* 000003BC call word 0x3c4 */ 0xE8, 0x05, 0x00,
|
||||
+ /* 000003BF pop si */ 0x5E,
|
||||
+ /* 000003C0 mov ax,0x14f */ 0xB8, 0x4F, 0x01,
|
||||
+ /* 000003C3 iretw */ 0xCF,
|
||||
+ /* 000003C4 pushaw */ 0x60,
|
||||
+ /* 000003C5 push ds */ 0x1E,
|
||||
+ /* 000003C6 push cs */ 0x0E,
|
||||
+ /* 000003C7 pop ds */ 0x1F,
|
||||
+ /* 000003C8 mov dx,0x402 */ 0xBA, 0x02, 0x04,
|
||||
+ /* 000003CB lodsb */ 0xAC,
|
||||
+ /* 000003CC cmp al,0x0 */ 0x3C, 0x00,
|
||||
+ /* 000003CE jz 0x3d3 */ 0x74, 0x03,
|
||||
+ /* 000003D0 out dx,al */ 0xEE,
|
||||
+ /* 000003D1 jmp short 0x3cb */ 0xEB, 0xF8,
|
||||
+ /* 000003D3 pop ds */ 0x1F,
|
||||
+ /* 000003D4 popaw */ 0x61,
|
||||
+ /* 000003D5 ret */ 0xC3,
|
||||
+ /* 000003D6 inc bp */ 0x45,
|
||||
+ /* 000003D7 js 0x442 */ 0x78, 0x69,
|
||||
+ /* 000003D9 jz 0x3e5 */ 0x74, 0x0A,
|
||||
+ /* 000003DB add [di+0x6e],dl */ 0x00, 0x55, 0x6E,
|
||||
+ /* 000003DE jnc 0x455 */ 0x73, 0x75,
|
||||
+ /* 000003E0 jo 0x452 */ 0x70, 0x70,
|
||||
+ /* 000003E2 outsw */ 0x6F,
|
||||
+ /* 000003E3 jc 0x459 */ 0x72, 0x74,
|
||||
+ /* 000003E5 or al,[fs:bx+si] */ 0x65, 0x64, 0x0A, 0x00,
|
||||
+ /* 000003E9 push bp */ 0x55,
|
||||
+ /* 000003EA outsb */ 0x6E,
|
||||
+ /* 000003EB imul bp,[bp+0x6f],byte +0x77 */ 0x6B, 0x6E, 0x6F, 0x77,
|
||||
+ /* 000003EF outsb */ 0x6E,
|
||||
+ /* 000003F0 and [bp+0x75],al */ 0x20, 0x46, 0x75,
|
||||
+ /* 000003F3 outsb */ 0x6E,
|
||||
+ /* 000003F4 arpl [si+0x69],si */ 0x63, 0x74, 0x69,
|
||||
+ /* 000003F7 outsw */ 0x6F,
|
||||
+ /* 000003F8 outsb */ 0x6E,
|
||||
+ /* 000003F9 or al,[bx+si] */ 0x0A, 0x00,
|
||||
+ /* 000003FB inc di */ 0x47,
|
||||
+ /* 000003FC gs jz 0x448 */ 0x65, 0x74, 0x49,
|
||||
+ /* 000003FF outsb */ 0x6E,
|
||||
+ /* 00000400 outsd */ 0x66, 0x6F,
|
||||
+ /* 00000402 or al,[bx+si] */ 0x0A, 0x00,
|
||||
+ /* 00000404 inc di */ 0x47,
|
||||
+ /* 00000405 gs jz 0x455 */ 0x65, 0x74, 0x4D,
|
||||
+ /* 00000408 outsw */ 0x6F,
|
||||
+ /* 00000409 gs dec cx */ 0x64, 0x65, 0x49,
|
||||
+ /* 0000040C outsb */ 0x6E,
|
||||
+ /* 0000040D outsd */ 0x66, 0x6F,
|
||||
+ /* 0000040F or al,[bx+si] */ 0x0A, 0x00,
|
||||
+ /* 00000411 inc di */ 0x47,
|
||||
+ /* 00000412 gs jz 0x462 */ 0x65, 0x74, 0x4D,
|
||||
+ /* 00000415 outsw */ 0x6F,
|
||||
+ /* 00000416 or al,[gs:bx+si] */ 0x64, 0x65, 0x0A, 0x00,
|
||||
+ /* 0000041A push bx */ 0x53,
|
||||
+ /* 0000041B gs jz 0x46b */ 0x65, 0x74, 0x4D,
|
||||
+ /* 0000041E outsw */ 0x6F,
|
||||
+ /* 0000041F or al,[gs:bx+si] */ 0x64, 0x65, 0x0A, 0x00,
|
||||
+ /* 00000423 push bx */ 0x53,
|
||||
+ /* 00000424 gs jz 0x474 */ 0x65, 0x74, 0x4D,
|
||||
+ /* 00000427 outsw */ 0x6F,
|
||||
+ /* 00000428 gs dec sp */ 0x64, 0x65, 0x4C,
|
||||
+ /* 0000042B gs a32 popaw */ 0x65, 0x67, 0x61,
|
||||
+ /* 0000042E arpl [bx+di+0xa],di */ 0x63, 0x79, 0x0A,
|
||||
+ /* 00000431 add [di+0x6e],dl */ 0x00, 0x55, 0x6E,
|
||||
+ /* 00000434 imul bp,[bx+0x77],byte +0x6e */ 0x6B, 0x6F, 0x77, 0x6E,
|
||||
+ /* 00000438 and [di+0x6f],cl */ 0x20, 0x4D, 0x6F,
|
||||
+ /* 0000043B or al,[gs:bx+si] */ 0x64, 0x65, 0x0A, 0x00,
|
||||
+ /* 0000043F inc di */ 0x47,
|
||||
+ /* 00000440 gs jz 0x493 */ 0x65, 0x74, 0x50,
|
||||
+ /* 00000443 insw */ 0x6D,
|
||||
+ /* 00000444 inc bx */ 0x43,
|
||||
+ /* 00000445 popaw */ 0x61,
|
||||
+ /* 00000446 jo 0x4a9 */ 0x70, 0x61,
|
||||
+ /* 00000448 bound bp,[bx+di+0x6c] */ 0x62, 0x69, 0x6C,
|
||||
+ /* 0000044B imul si,[si+0x69],word 0x7365 */ 0x69, 0x74, 0x69, 0x65, 0x73,
|
||||
+ /* 00000450 or al,[bx+si] */ 0x0A, 0x00,
|
||||
+ /* 00000452 push dx */ 0x52,
|
||||
+ /* 00000453 gs popaw */ 0x65, 0x61,
|
||||
+ /* 00000455 fs inc bp */ 0x64, 0x45,
|
||||
+ /* 00000457 fs */ 0x64,
|
||||
+ /* 00000458 db 0x69 */ 0x69,
|
||||
+ /* 00000459 or al,[fs:bx+si] */ 0x64, 0x0A, 0x00,
|
||||
};
|
||||
#endif
|
||||
--
|
||||
2.18.1
|
||||
|
@ -0,0 +1,151 @@
|
||||
From 4e4e15b80a5b2103eadd495ef4a830d46dd4ed51 Mon Sep 17 00:00:00 2001
|
||||
From: Laszlo Ersek <lersek@redhat.com>
|
||||
Date: Tue, 25 Feb 2014 18:40:35 +0100
|
||||
Subject: MdeModulePkg: TerminalDxe: add other text resolutions (RHEL only)
|
||||
|
||||
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
|
||||
supported by all console output devices.
|
||||
|
||||
Two notable output devices are provided by:
|
||||
(1) MdeModulePkg/Universal/Console/GraphicsConsoleDxe,
|
||||
(2) MdeModulePkg/Universal/Console/TerminalDxe.
|
||||
|
||||
GraphicsConsoleDxe supports four modes at most -- see
|
||||
InitializeGraphicsConsoleTextMode() and "mGraphicsConsoleModeData":
|
||||
|
||||
(1a) 80x25 (required by the UEFI spec as mode 0),
|
||||
(1b) 80x50 (not necessarily supported, but if it is, then the UEFI spec
|
||||
requires the driver to provide it as mode 1),
|
||||
(1c) 100x31 (corresponding to graphics resolution 800x600, which the UEFI
|
||||
spec requires from all plug-in graphics devices),
|
||||
(1d) "full screen" resolution, derived form the underlying GOP's
|
||||
horizontal and vertical resolutions with division by EFI_GLYPH_WIDTH
|
||||
(8) and EFI_GLYPH_HEIGHT (19), respectively.
|
||||
|
||||
The automatic "full screen resolution" makes GraphicsConsoleDxe's
|
||||
character console very flexible. However, TerminalDxe (which runs on
|
||||
serial ports) only provides the following fixed resolutions -- see
|
||||
InitializeTerminalConsoleTextMode() and "mTerminalConsoleModeData":
|
||||
|
||||
(2a) 80x25 (required by the UEFI spec as mode 0),
|
||||
(2b) 80x50 (since the character resolution of a serial device cannot be
|
||||
interrogated easily, this is added unconditionally as mode 1),
|
||||
(2c) 100x31 (since the character resolution of a serial device cannot be
|
||||
interrogated easily, this is added unconditionally as mode 2).
|
||||
|
||||
When ConSplitterDxe combines (1) and (2), multiplexing console output to
|
||||
both video output and serial terminal, the list of commonly supported text
|
||||
modes (ie. the "intersection") comprises:
|
||||
|
||||
(3a) 80x25, unconditionally, from (1a) and (2a),
|
||||
(3b) 80x50, if the graphics console provides at least 640x950 pixel
|
||||
resolution, from (1b) and (2b)
|
||||
(3c) 100x31, if the graphics device is a plug-in one (because in that case
|
||||
800x600 is a mandated pixel resolution), from (1c) and (2c).
|
||||
|
||||
Unfortunately, the "full screen resolution" (1d) of the GOP-based text
|
||||
console is not available in general.
|
||||
|
||||
Mitigate this problem by extending "mTerminalConsoleModeData" with a
|
||||
handful of text resolutions that are derived from widespread maximal pixel
|
||||
resolutions. This way TerminalDxe won't cause ConSplitterDxe to filter out
|
||||
the most frequent (1d) values from the intersection, and eg. the MODE
|
||||
command in the UEFI shell will offer the "best" (ie. full screen)
|
||||
resolution too.
|
||||
|
||||
Upstreaming efforts for this patch have been discontinued; it was clear
|
||||
from the off-list thread that consensus was impossible to reach.
|
||||
|
||||
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
|
||||
(cherry picked from commit 99dc3720ac86059f60156197328cc433603c536e)
|
||||
(cherry picked from commit d2066c1748f885043026c51dec1bc8d6d406ae8f)
|
||||
(cherry picked from commit 1facdd58e946c584a3dc1e5be8f2f837b5a7c621)
|
||||
(cherry picked from commit 28faeb5f94b4866b9da16cf2a1e4e0fc09a26e37)
|
||||
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||||
---
|
||||
.../Universal/Console/TerminalDxe/Terminal.c | 41 +++++++++++++++++--
|
||||
1 file changed, 38 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c
|
||||
index 66dd3ad550..78a198379a 100644
|
||||
--- a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c
|
||||
+++ b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c
|
||||
@@ -113,9 +113,44 @@ TERMINAL_DEV mTerminalDevTemplate = {
|
||||
};
|
||||
|
||||
TERMINAL_CONSOLE_MODE_DATA mTerminalConsoleModeData[] = {
|
||||
- {80, 25},
|
||||
- {80, 50},
|
||||
- {100, 31},
|
||||
+ { 80, 25 }, // from graphics resolution 640 x 480
|
||||
+ { 80, 50 }, // from graphics resolution 640 x 960
|
||||
+ { 100, 25 }, // from graphics resolution 800 x 480
|
||||
+ { 100, 31 }, // from graphics resolution 800 x 600
|
||||
+ { 104, 32 }, // from graphics resolution 832 x 624
|
||||
+ { 120, 33 }, // from graphics resolution 960 x 640
|
||||
+ { 128, 31 }, // from graphics resolution 1024 x 600
|
||||
+ { 128, 40 }, // from graphics resolution 1024 x 768
|
||||
+ { 144, 45 }, // from graphics resolution 1152 x 864
|
||||
+ { 144, 45 }, // from graphics resolution 1152 x 870
|
||||
+ { 160, 37 }, // from graphics resolution 1280 x 720
|
||||
+ { 160, 40 }, // from graphics resolution 1280 x 760
|
||||
+ { 160, 40 }, // from graphics resolution 1280 x 768
|
||||
+ { 160, 42 }, // from graphics resolution 1280 x 800
|
||||
+ { 160, 50 }, // from graphics resolution 1280 x 960
|
||||
+ { 160, 53 }, // from graphics resolution 1280 x 1024
|
||||
+ { 170, 40 }, // from graphics resolution 1360 x 768
|
||||
+ { 170, 40 }, // from graphics resolution 1366 x 768
|
||||
+ { 175, 55 }, // from graphics resolution 1400 x 1050
|
||||
+ { 180, 47 }, // from graphics resolution 1440 x 900
|
||||
+ { 200, 47 }, // from graphics resolution 1600 x 900
|
||||
+ { 200, 63 }, // from graphics resolution 1600 x 1200
|
||||
+ { 210, 55 }, // from graphics resolution 1680 x 1050
|
||||
+ { 240, 56 }, // from graphics resolution 1920 x 1080
|
||||
+ { 240, 63 }, // from graphics resolution 1920 x 1200
|
||||
+ { 240, 75 }, // from graphics resolution 1920 x 1440
|
||||
+ { 250, 105 }, // from graphics resolution 2000 x 2000
|
||||
+ { 256, 80 }, // from graphics resolution 2048 x 1536
|
||||
+ { 256, 107 }, // from graphics resolution 2048 x 2048
|
||||
+ { 320, 75 }, // from graphics resolution 2560 x 1440
|
||||
+ { 320, 84 }, // from graphics resolution 2560 x 1600
|
||||
+ { 320, 107 }, // from graphics resolution 2560 x 2048
|
||||
+ { 350, 110 }, // from graphics resolution 2800 x 2100
|
||||
+ { 400, 126 }, // from graphics resolution 3200 x 2400
|
||||
+ { 480, 113 }, // from graphics resolution 3840 x 2160
|
||||
+ { 512, 113 }, // from graphics resolution 4096 x 2160
|
||||
+ { 960, 227 }, // from graphics resolution 7680 x 4320
|
||||
+ { 1024, 227 }, // from graphics resolution 8192 x 4320
|
||||
//
|
||||
// New modes can be added here.
|
||||
//
|
||||
--
|
||||
2.18.1
|
||||
|
@ -0,0 +1,150 @@
|
||||
From cfccb98d13e955beb0b93b4a75a973f30c273ffc Mon Sep 17 00:00:00 2001
|
||||
From: Laszlo Ersek <lersek@redhat.com>
|
||||
Date: Tue, 25 Feb 2014 22:40:01 +0100
|
||||
Subject: MdeModulePkg: TerminalDxe: set xterm resolution on mode change (RH
|
||||
only)
|
||||
|
||||
Notes about the RHEL-8.0/20180508-ee3198e672e2 ->
|
||||
RHEL-8.1/20190308-89910a39dcfd rebase:
|
||||
|
||||
- no change
|
||||
|
||||
Notes about the RHEL-7.6/ovmf-20180508-2.gitee3198e672e2.el7 ->
|
||||
RHEL-8.0/20180508-ee3198e672e2 rebase:
|
||||
|
||||
- reorder the rebase changelog in the commit message so that it reads like
|
||||
a blog: place more recent entries near the top
|
||||
- no changes to the patch body
|
||||
|
||||
Notes about the 20171011-92d07e48907f -> 20180508-ee3198e672e2 rebase:
|
||||
|
||||
- no change
|
||||
|
||||
Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase:
|
||||
|
||||
- Refresh downstream-only commit 2909e025db68 against "MdeModulePkg.dec"
|
||||
context change from upstream commits e043f7895b83 ("MdeModulePkg: Add
|
||||
PCD PcdPteMemoryEncryptionAddressOrMask", 2017-02-27) and 76081dfcc5b2
|
||||
("MdeModulePkg: Add PROMPT&HELP string of pcd to UNI file", 2017-03-03).
|
||||
|
||||
Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase:
|
||||
|
||||
- refresh commit 519b9751573e against various context changes
|
||||
|
||||
The
|
||||
|
||||
CSI Ps ; Ps ; Ps t
|
||||
|
||||
escape sequence serves for window manipulation. We can use the
|
||||
|
||||
CSI 8 ; <rows> ; <columns> t
|
||||
|
||||
sequence to adapt eg. the xterm window size to the selected console mode.
|
||||
|
||||
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)
|
||||
(cherry picked from commit b9c5c901f25e48d68eef6e78a4abca00e153f574)
|
||||
(cherry picked from commit b7f6115b745de8cbc5214b6ede33c9a8558beb90)
|
||||
(cherry picked from commit 67415982afdc77922aa37496c981adeb4351acdb)
|
||||
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||||
---
|
||||
MdeModulePkg/MdeModulePkg.dec | 4 +++
|
||||
.../Console/TerminalDxe/TerminalConOut.c | 30 +++++++++++++++++++
|
||||
.../Console/TerminalDxe/TerminalDxe.inf | 2 ++
|
||||
3 files changed, 36 insertions(+)
|
||||
|
||||
diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec
|
||||
index a2130bc439..dcd118ba62 100644
|
||||
--- a/MdeModulePkg/MdeModulePkg.dec
|
||||
+++ b/MdeModulePkg/MdeModulePkg.dec
|
||||
@@ -1968,6 +1968,10 @@
|
||||
# @Prompt The address mask when memory encryption is enabled.
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask|0x0|UINT64|0x30001047
|
||||
|
||||
+ ## Controls whether TerminalDxe outputs an XTerm resize sequence on terminal
|
||||
+ # mode change.
|
||||
+ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE|BOOLEAN|0x00010080
|
||||
+
|
||||
[PcdsPatchableInModule]
|
||||
## Specify memory size with page number for PEI code when
|
||||
# Loading Module at Fixed Address feature is enabled.
|
||||
diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c
|
||||
index 4d7218e415..295e7641a5 100644
|
||||
--- a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c
|
||||
+++ b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c
|
||||
@@ -13,6 +13,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
**/
|
||||
|
||||
+#include <Library/PrintLib.h>
|
||||
+
|
||||
#include "Terminal.h"
|
||||
|
||||
//
|
||||
@@ -86,6 +88,16 @@ CHAR16 mSetCursorPositionString[] = { ESC, '[', '0', '0', ';', '0', '0', 'H', 0
|
||||
CHAR16 mCursorForwardString[] = { ESC, '[', '0', '0', 'C', 0 };
|
||||
CHAR16 mCursorBackwardString[] = { ESC, '[', '0', '0', 'D', 0 };
|
||||
|
||||
+//
|
||||
+// Note that this is an ASCII format string, taking two INT32 arguments:
|
||||
+// rows, columns.
|
||||
+//
|
||||
+// A %d (INT32) format specification can expand to at most 11 characters.
|
||||
+//
|
||||
+CHAR8 mResizeTextAreaFormatString[] = "\x1B[8;%d;%dt";
|
||||
+#define RESIZE_SEQ_SIZE (sizeof mResizeTextAreaFormatString + 2 * (11 - 2))
|
||||
+
|
||||
+
|
||||
//
|
||||
// Body of the ConOut functions
|
||||
//
|
||||
@@ -508,6 +520,24 @@ TerminalConOutSetMode (
|
||||
return EFI_DEVICE_ERROR;
|
||||
}
|
||||
|
||||
+ if (PcdGetBool (PcdResizeXterm)) {
|
||||
+ CHAR16 ResizeSequence[RESIZE_SEQ_SIZE];
|
||||
+
|
||||
+ UnicodeSPrintAsciiFormat (
|
||||
+ ResizeSequence,
|
||||
+ sizeof ResizeSequence,
|
||||
+ mResizeTextAreaFormatString,
|
||||
+ (INT32) TerminalDevice->TerminalConsoleModeData[ModeNumber].Rows,
|
||||
+ (INT32) TerminalDevice->TerminalConsoleModeData[ModeNumber].Columns
|
||||
+ );
|
||||
+ TerminalDevice->OutputEscChar = TRUE;
|
||||
+ Status = This->OutputString (This, ResizeSequence);
|
||||
+ TerminalDevice->OutputEscChar = FALSE;
|
||||
+ if (EFI_ERROR (Status)) {
|
||||
+ return EFI_DEVICE_ERROR;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
This->Mode->Mode = (INT32) ModeNumber;
|
||||
|
||||
Status = This->ClearScreen (This);
|
||||
diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
|
||||
index 15b4ac1c33..a704bc17e5 100644
|
||||
--- a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
|
||||
+++ b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
|
||||
@@ -60,6 +60,7 @@
|
||||
DebugLib
|
||||
PcdLib
|
||||
BaseLib
|
||||
+ PrintLib
|
||||
|
||||
[Guids]
|
||||
## SOMETIMES_PRODUCES ## Variable:L"ConInDev"
|
||||
@@ -88,6 +89,7 @@
|
||||
[Pcd]
|
||||
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType ## SOMETIMES_CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdErrorCodeSetVariable ## CONSUMES
|
||||
+ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm ## CONSUMES
|
||||
|
||||
# [Event]
|
||||
# # Relative timer event set by UnicodeToEfiKey(), used to be one 2 seconds input timeout.
|
||||
--
|
||||
2.18.1
|
||||
|
@ -0,0 +1,111 @@
|
||||
From f9b73437b9b231773c1a20e0c516168817a930a2 Mon Sep 17 00:00:00 2001
|
||||
From: Laszlo Ersek <lersek@redhat.com>
|
||||
Date: Wed, 14 Oct 2015 15:59:06 +0200
|
||||
Subject: OvmfPkg: take PcdResizeXterm from the QEMU command line (RH only)
|
||||
|
||||
Notes about the RHEL-8.0/20180508-ee3198e672e2 ->
|
||||
RHEL-8.1/20190308-89910a39dcfd rebase:
|
||||
|
||||
- no change
|
||||
|
||||
Notes about the RHEL-7.6/ovmf-20180508-2.gitee3198e672e2.el7 ->
|
||||
RHEL-8.0/20180508-ee3198e672e2 rebase:
|
||||
|
||||
- reorder the rebase changelog in the commit message so that it reads like
|
||||
a blog: place more recent entries near the top
|
||||
- no changes to the patch body
|
||||
|
||||
Notes about the 20171011-92d07e48907f -> 20180508-ee3198e672e2 rebase:
|
||||
|
||||
- no change
|
||||
|
||||
Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase:
|
||||
|
||||
- refresh downstream-only commit 8abc2a6ddad2 against context differences
|
||||
in the DSC files from upstream commit 5e167d7e784c
|
||||
("OvmfPkg/PlatformPei: don't allocate reserved mem varstore if
|
||||
SMM_REQUIRE", 2017-03-12).
|
||||
|
||||
Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase:
|
||||
|
||||
- no changes
|
||||
|
||||
Contributed-under: TianoCore Contribution Agreement 1.0
|
||||
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
|
||||
(cherry picked from commit 6fa0c4d67c0bb8bde2ddd6db41c19eb0c40b2721)
|
||||
(cherry picked from commit 8abc2a6ddad25af7e88dc0cf57d55dfb75fbf92d)
|
||||
(cherry picked from commit b311932d3841c017a0f0fec553edcac365cc2038)
|
||||
(cherry picked from commit 61914fb81cf624c9028d015533b400b2794e52d3)
|
||||
(cherry picked from commit 2ebf3cc2ae99275d63bb6efd3c22dec76251a853)
|
||||
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||||
---
|
||||
OvmfPkg/OvmfPkgIa32.dsc | 1 +
|
||||
OvmfPkg/OvmfPkgIa32X64.dsc | 1 +
|
||||
OvmfPkg/OvmfPkgX64.dsc | 1 +
|
||||
OvmfPkg/PlatformPei/Platform.c | 1 +
|
||||
OvmfPkg/PlatformPei/PlatformPei.inf | 1 +
|
||||
5 files changed, 5 insertions(+)
|
||||
|
||||
diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
|
||||
index 249b1d8dc0..3f1da66aab 100644
|
||||
--- a/OvmfPkg/OvmfPkgIa32.dsc
|
||||
+++ b/OvmfPkg/OvmfPkgIa32.dsc
|
||||
@@ -531,6 +531,7 @@
|
||||
# ($(SMM_REQUIRE) == FALSE)
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0
|
||||
|
||||
+ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0
|
||||
diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
|
||||
index 5ec186df4b..9bb0a4cede 100644
|
||||
--- a/OvmfPkg/OvmfPkgIa32X64.dsc
|
||||
+++ b/OvmfPkg/OvmfPkgIa32X64.dsc
|
||||
@@ -537,6 +537,7 @@
|
||||
# ($(SMM_REQUIRE) == FALSE)
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0
|
||||
|
||||
+ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0
|
||||
diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
|
||||
index 29538ade4d..3b7fc5328c 100644
|
||||
--- a/OvmfPkg/OvmfPkgX64.dsc
|
||||
+++ b/OvmfPkg/OvmfPkgX64.dsc
|
||||
@@ -536,6 +536,7 @@
|
||||
# ($(SMM_REQUIRE) == FALSE)
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0
|
||||
|
||||
+ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0
|
||||
diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c
|
||||
index 22139a64cb..64b8034117 100644
|
||||
--- a/OvmfPkg/PlatformPei/Platform.c
|
||||
+++ b/OvmfPkg/PlatformPei/Platform.c
|
||||
@@ -670,6 +670,7 @@ InitializePlatform (
|
||||
PeiFvInitialization ();
|
||||
MemMapInitialization ();
|
||||
NoexecDxeInitialization ();
|
||||
+ UPDATE_BOOLEAN_PCD_FROM_FW_CFG (PcdResizeXterm);
|
||||
}
|
||||
|
||||
InstallClearCacheCallback ();
|
||||
diff --git a/OvmfPkg/PlatformPei/PlatformPei.inf b/OvmfPkg/PlatformPei/PlatformPei.inf
|
||||
index 5c8dd0fe6d..035ce249fe 100644
|
||||
--- a/OvmfPkg/PlatformPei/PlatformPei.inf
|
||||
+++ b/OvmfPkg/PlatformPei/PlatformPei.inf
|
||||
@@ -96,6 +96,7 @@
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration
|
||||
+ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack
|
||||
--
|
||||
2.18.1
|
||||
|
@ -0,0 +1,57 @@
|
||||
From f372886be5f1c41677f168be77c484bae5841361 Mon Sep 17 00:00:00 2001
|
||||
From: Laszlo Ersek <lersek@redhat.com>
|
||||
Date: Tue, 12 Apr 2016 20:50:25 +0200
|
||||
Subject: ArmVirtPkg: QemuFwCfgLib: allow UEFI_DRIVER client modules (RH only)
|
||||
|
||||
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:
|
||||
|
||||
- no changes
|
||||
|
||||
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 8e2153358aa2bba2c91faa87a70beadcaae03fd8)
|
||||
(cherry picked from commit 5af259a93f4bbee5515ae18638068125e170f2cd)
|
||||
(cherry picked from commit 22b073005af491eef177ef5f80ffe71c1ebabb03)
|
||||
(cherry picked from commit f77f1e7dd6013f918c70e089c95b8f4166085fb9)
|
||||
(cherry picked from commit 762595334aa7ce88412cc77e136db9b41577a699)
|
||||
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||||
---
|
||||
ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf b/ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf
|
||||
index eff4a21650..adf1ff6c6a 100644
|
||||
--- a/ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf
|
||||
+++ b/ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf
|
||||
@@ -22,7 +22,7 @@
|
||||
FILE_GUID = B271F41F-B841-48A9-BA8D-545B4BC2E2BF
|
||||
MODULE_TYPE = BASE
|
||||
VERSION_STRING = 1.0
|
||||
- LIBRARY_CLASS = QemuFwCfgLib|DXE_DRIVER
|
||||
+ LIBRARY_CLASS = QemuFwCfgLib|DXE_DRIVER UEFI_DRIVER
|
||||
|
||||
CONSTRUCTOR = QemuFwCfgInitialize
|
||||
|
||||
--
|
||||
2.18.1
|
||||
|
@ -0,0 +1,218 @@
|
||||
From 232fcf06f6b3048b7c2ebd6931f23186b3852f04 Mon Sep 17 00:00:00 2001
|
||||
From: Laszlo Ersek <lersek@redhat.com>
|
||||
Date: Sun, 26 Jul 2015 08:02:50 +0000
|
||||
Subject: ArmVirtPkg: take PcdResizeXterm from the QEMU command line (RH only)
|
||||
|
||||
Notes about the RHEL-8.0/20180508-ee3198e672e2 ->
|
||||
RHEL-8.1/20190308-89910a39dcfd rebase:
|
||||
|
||||
- no change
|
||||
|
||||
Notes about the RHEL-7.6/ovmf-20180508-2.gitee3198e672e2.el7 ->
|
||||
RHEL-8.0/20180508-ee3198e672e2 rebase:
|
||||
|
||||
- reorder the rebase changelog in the commit message so that it reads like
|
||||
a blog: place more recent entries near the top
|
||||
- no changes to the patch body
|
||||
|
||||
Notes about the 20171011-92d07e48907f -> 20180508-ee3198e672e2 rebase:
|
||||
|
||||
- no change
|
||||
|
||||
Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase:
|
||||
|
||||
- Refresh downstream-only commit d4564d39dfdb against context changes in
|
||||
"ArmVirtPkg/ArmVirtQemu.dsc" from upstream commit 7e5f1b673870
|
||||
("ArmVirtPkg/PlatformHasAcpiDtDxe: allow guest level ACPI disable
|
||||
override", 2017-03-29).
|
||||
|
||||
Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase:
|
||||
|
||||
- Adapt commit 6b97969096a3 to the fact that upstream has deprecated such
|
||||
setter functions for dynamic PCDs that don't return a status code (such
|
||||
as PcdSetBool()). Employ PcdSetBoolS(), and assert that it succeeds --
|
||||
there's really no circumstance in this case when it could fail.
|
||||
|
||||
Contributed-under: TianoCore Contribution Agreement 1.0
|
||||
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
|
||||
(cherry picked from commit d4564d39dfdbf74e762af43314005a2c026cb262)
|
||||
(cherry picked from commit c9081ebe3bcd28e5cce4bf58bd8d4fca12f9af7c)
|
||||
(cherry picked from commit 8e92730c8e1cdb642b3b3e680e643ff774a90c65)
|
||||
(cherry picked from commit 9448b6b46267d8d807fac0c648e693171bb34806)
|
||||
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||||
---
|
||||
ArmVirtPkg/ArmVirtQemu.dsc | 7 +-
|
||||
.../TerminalPcdProducerLib.c | 87 +++++++++++++++++++
|
||||
.../TerminalPcdProducerLib.inf | 41 +++++++++
|
||||
3 files changed, 134 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 f2e5125494..9fc78d4e0a 100644
|
||||
--- a/ArmVirtPkg/ArmVirtQemu.dsc
|
||||
+++ b/ArmVirtPkg/ArmVirtQemu.dsc
|
||||
@@ -221,6 +221,8 @@
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0
|
||||
gUefiOvmfPkgTokenSpaceGuid.PcdQemuSmbiosValidated|FALSE
|
||||
|
||||
+ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE
|
||||
+
|
||||
[PcdsDynamicHii]
|
||||
gArmVirtTokenSpaceGuid.PcdForceNoAcpi|L"ForceNoAcpi"|gArmVirtVariableGuid|0x0|FALSE|NV,BS
|
||||
|
||||
@@ -297,7 +299,10 @@
|
||||
MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
|
||||
MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
|
||||
MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
|
||||
- MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
|
||||
+ MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf {
|
||||
+ <LibraryClasses>
|
||||
+ NULL|ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf
|
||||
+ }
|
||||
MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
|
||||
|
||||
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
|
||||
--- /dev/null
|
||||
+++ b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c
|
||||
@@ -0,0 +1,87 @@
|
||||
+/** @file
|
||||
+* Plugin library for setting up dynamic PCDs for TerminalDxe, from fw_cfg
|
||||
+*
|
||||
+* Copyright (C) 2015-2016, 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.
|
||||
+*
|
||||
+**/
|
||||
+
|
||||
+#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;
|
||||
+}
|
||||
+
|
||||
+#define UPDATE_BOOLEAN_PCD_FROM_FW_CFG(TokenName) \
|
||||
+ do { \
|
||||
+ BOOLEAN Setting; \
|
||||
+ RETURN_STATUS PcdStatus; \
|
||||
+ \
|
||||
+ if (!RETURN_ERROR (GetNamedFwCfgBoolean ( \
|
||||
+ "opt/org.tianocore.edk2.aavmf/" #TokenName, &Setting))) { \
|
||||
+ PcdStatus = PcdSetBoolS (TokenName, Setting); \
|
||||
+ ASSERT_RETURN_ERROR (PcdStatus); \
|
||||
+ } \
|
||||
+ } while (0)
|
||||
+
|
||||
+RETURN_STATUS
|
||||
+EFIAPI
|
||||
+TerminalPcdProducerLibConstructor (
|
||||
+ VOID
|
||||
+ )
|
||||
+{
|
||||
+ UPDATE_BOOLEAN_PCD_FROM_FW_CFG (PcdResizeXterm);
|
||||
+ return RETURN_SUCCESS;
|
||||
+}
|
||||
diff --git a/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf
|
||||
new file mode 100644
|
||||
index 0000000000..fecb37bcdf
|
||||
--- /dev/null
|
||||
+++ b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf
|
||||
@@ -0,0 +1,41 @@
|
||||
+## @file
|
||||
+# Plugin library for setting up dynamic PCDs for TerminalDxe, from fw_cfg
|
||||
+#
|
||||
+# Copyright (C) 2015-2016, 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.
|
||||
+#
|
||||
+##
|
||||
+
|
||||
+[Defines]
|
||||
+ INF_VERSION = 0x00010005
|
||||
+ BASE_NAME = TerminalPcdProducerLib
|
||||
+ FILE_GUID = 4a0c5ed7-8c42-4c01-8f4c-7bf258316a96
|
||||
+ MODULE_TYPE = BASE
|
||||
+ VERSION_STRING = 1.0
|
||||
+ LIBRARY_CLASS = TerminalPcdProducerLib|DXE_DRIVER
|
||||
+ CONSTRUCTOR = TerminalPcdProducerLibConstructor
|
||||
+
|
||||
+[Sources]
|
||||
+ TerminalPcdProducerLib.c
|
||||
+
|
||||
+[Packages]
|
||||
+ MdePkg/MdePkg.dec
|
||||
+ OvmfPkg/OvmfPkg.dec
|
||||
+ MdeModulePkg/MdeModulePkg.dec
|
||||
+
|
||||
+[LibraryClasses]
|
||||
+ DebugLib
|
||||
+ PcdLib
|
||||
+ QemuFwCfgLib
|
||||
+
|
||||
+[Pcd]
|
||||
+ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm
|
||||
--
|
||||
2.18.1
|
||||
|
@ -0,0 +1,142 @@
|
||||
From 8628ef1b8d675ebec39d83834abbe3c8c8c42cf4 Mon Sep 17 00:00:00 2001
|
||||
From: Laszlo Ersek <lersek@redhat.com>
|
||||
Date: Tue, 4 Nov 2014 23:02:53 +0100
|
||||
Subject: OvmfPkg: allow exclusion of the shell from the firmware image (RH
|
||||
only)
|
||||
|
||||
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.
|
||||
|
||||
Peter Jones advised us that firmware vendors for physical systems disable
|
||||
the memory-mapped, firmware image-contained UEFI shell in
|
||||
SecureBoot-enabled builds. The reason being that the memory-mapped shell
|
||||
can always load, it may have direct access to various hardware in the
|
||||
system, and it can run UEFI shell scripts (which cannot be signed at all).
|
||||
|
||||
Intended use of the new build option:
|
||||
|
||||
- In-tree builds: don't pass '-D EXCLUDE_SHELL_FROM_FD'. The resultant
|
||||
firmware image will contain a shell binary, independently of SecureBoot
|
||||
enablement, which is flexible for interactive development. (Ie. no
|
||||
change for in-tree builds.)
|
||||
|
||||
- RPM builds: pass both '-D SECURE_BOOT_ENABLE' and
|
||||
'-D EXCLUDE_SHELL_FROM_FD'. The resultant RPM will provide:
|
||||
|
||||
- OVMF_CODE.fd: SecureBoot-enabled firmware, without builtin UEFI shell,
|
||||
|
||||
- OVMF_VARS.fd: variable store template matching OVMF_CODE.fd,
|
||||
|
||||
- UefiShell.iso: a bootable ISO image with the shell on it as default
|
||||
boot loader. The shell binary will load when SecureBoot is turned off,
|
||||
and won't load when SecureBoot is turned on (because it is not
|
||||
signed).
|
||||
|
||||
UefiShell.iso is the reason we're not excluding the shell from the DSC
|
||||
files as well, only the FDF files -- when '-D EXCLUDE_SHELL_FROM_FD'
|
||||
is specified, the shell binary needs to be built the same, only it
|
||||
will be included in UefiShell.iso.
|
||||
|
||||
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
|
||||
(cherry picked from commit 9c391def70366cabae08e6008814299c3372fafd)
|
||||
(cherry picked from commit d9dd9ee42937b2611fe37183cc9ec7f62d946933)
|
||||
(cherry picked from commit 23df46ebbe7b09451d3a05034acd4d3a25e7177b)
|
||||
(cherry picked from commit f0303f71d576c51b01c4ff961b429d0e0e707245)
|
||||
(cherry picked from commit bbd64eb8658e9a33eab4227d9f4e51ad78d9f687)
|
||||
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||||
---
|
||||
OvmfPkg/OvmfPkgIa32.fdf | 2 ++
|
||||
OvmfPkg/OvmfPkgIa32X64.fdf | 2 ++
|
||||
OvmfPkg/OvmfPkgX64.fdf | 2 ++
|
||||
3 files changed, 6 insertions(+)
|
||||
|
||||
diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf
|
||||
index be3d3b4d14..a545f7c2a6 100644
|
||||
--- a/OvmfPkg/OvmfPkgIa32.fdf
|
||||
+++ b/OvmfPkg/OvmfPkgIa32.fdf
|
||||
@@ -288,10 +288,12 @@ INF MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResour
|
||||
INF FatPkg/EnhancedFatDxe/Fat.inf
|
||||
INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf
|
||||
|
||||
+!ifndef $(EXCLUDE_SHELL_FROM_FD)
|
||||
!if $(TOOL_CHAIN_TAG) != "XCODE5"
|
||||
INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf
|
||||
!endif
|
||||
INF ShellPkg/Application/Shell/Shell.inf
|
||||
+!endif
|
||||
|
||||
INF MdeModulePkg/Logo/LogoOpenSSLDxe.inf
|
||||
|
||||
diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf
|
||||
index b56160b3bf..fe24e86b92 100644
|
||||
--- a/OvmfPkg/OvmfPkgIa32X64.fdf
|
||||
+++ b/OvmfPkg/OvmfPkgIa32X64.fdf
|
||||
@@ -289,10 +289,12 @@ INF MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResour
|
||||
INF FatPkg/EnhancedFatDxe/Fat.inf
|
||||
INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf
|
||||
|
||||
+!ifndef $(EXCLUDE_SHELL_FROM_FD)
|
||||
!if $(TOOL_CHAIN_TAG) != "XCODE5"
|
||||
INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf
|
||||
!endif
|
||||
INF ShellPkg/Application/Shell/Shell.inf
|
||||
+!endif
|
||||
|
||||
INF MdeModulePkg/Logo/LogoOpenSSLDxe.inf
|
||||
|
||||
diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf
|
||||
index b56160b3bf..fe24e86b92 100644
|
||||
--- a/OvmfPkg/OvmfPkgX64.fdf
|
||||
+++ b/OvmfPkg/OvmfPkgX64.fdf
|
||||
@@ -289,10 +289,12 @@ INF MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResour
|
||||
INF FatPkg/EnhancedFatDxe/Fat.inf
|
||||
INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf
|
||||
|
||||
+!ifndef $(EXCLUDE_SHELL_FROM_FD)
|
||||
!if $(TOOL_CHAIN_TAG) != "XCODE5"
|
||||
INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf
|
||||
!endif
|
||||
INF ShellPkg/Application/Shell/Shell.inf
|
||||
+!endif
|
||||
|
||||
INF MdeModulePkg/Logo/LogoOpenSSLDxe.inf
|
||||
|
||||
--
|
||||
2.18.1
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,76 @@
|
||||
From c3f07e323e76856f1b42ea7b8c598ba3201c28a2 Mon Sep 17 00:00:00 2001
|
||||
From: Laszlo Ersek <lersek@redhat.com>
|
||||
Date: Wed, 14 Oct 2015 13:49:43 +0200
|
||||
Subject: ArmPlatformPkg: introduce fixed PCD for early hello message (RH only)
|
||||
|
||||
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
|
||||
serial port, regardless of debug mask settings. This should inform
|
||||
interactive users, and provide some rough help in localizing boot
|
||||
problems, even with restrictive debug masks.
|
||||
|
||||
If a platform doesn't want this feature, it should stick with the default
|
||||
empty string.
|
||||
|
||||
RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1270279
|
||||
Downstream only:
|
||||
<http://thread.gmane.org/gmane.comp.bios.edk2.devel/2996/focus=3433>.
|
||||
|
||||
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)
|
||||
(cherry picked from commit 6734b88cf7abcaf42632e3d2fc469b2169dd2f16)
|
||||
(cherry picked from commit ef77da632559e9baa1c69869e4cbea377068ef27)
|
||||
(cherry picked from commit 58755c51d3252312d80cbcb97928d71199c2f5e1)
|
||||
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||||
---
|
||||
ArmPlatformPkg/ArmPlatformPkg.dec | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/ArmPlatformPkg/ArmPlatformPkg.dec b/ArmPlatformPkg/ArmPlatformPkg.dec
|
||||
index 44c00bd0c1..40c8ec3251 100644
|
||||
--- a/ArmPlatformPkg/ArmPlatformPkg.dec
|
||||
+++ b/ArmPlatformPkg/ArmPlatformPkg.dec
|
||||
@@ -114,6 +114,13 @@
|
||||
## If set, this will swap settings for HDLCD RED_SELECT and BLUE_SELECT registers
|
||||
gArmPlatformTokenSpaceGuid.PcdArmHdLcdSwapBlueRedSelect|FALSE|BOOLEAN|0x00000045
|
||||
|
||||
+ #
|
||||
+ # Early hello message (ASCII string), printed to the serial port.
|
||||
+ # If set to the empty string, nothing is printed.
|
||||
+ # Otherwise, a trailing CRLF should be specified explicitly.
|
||||
+ #
|
||||
+ gArmPlatformTokenSpaceGuid.PcdEarlyHelloMessage|""|VOID*|0x00000100
|
||||
+
|
||||
[PcdsFixedAtBuild.common,PcdsDynamic.common]
|
||||
## PL031 RealTimeClock
|
||||
gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x0|UINT32|0x00000024
|
||||
--
|
||||
2.18.1
|
||||
|
@ -0,0 +1,128 @@
|
||||
From bb71490fdda3b38fa9f071d281b863f9b64363bf Mon Sep 17 00:00:00 2001
|
||||
From: Laszlo Ersek <lersek@redhat.com>
|
||||
Date: Wed, 14 Oct 2015 13:59:20 +0200
|
||||
Subject: ArmPlatformPkg: PrePeiCore: write early hello message to the serial
|
||||
port (RH)
|
||||
|
||||
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
|
||||
doesn't override the empty string (size=1) default of
|
||||
PcdEarlyHelloMessage.
|
||||
|
||||
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 b16c4c505ce0e27305235533eac9236aa66f132e)
|
||||
(cherry picked from commit 742e5bf6d5ce5a1e73879d6e5c0dd00feda7a9ac)
|
||||
(cherry picked from commit 93d69eb9393cf05af90676253875c59c1bec67fd)
|
||||
(cherry picked from commit 638594083b191f84f5d9333eb6147a31570f5a5a)
|
||||
(cherry picked from commit f4b7aae411d88b2b83f85d20ef06a4032a57e7de)
|
||||
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||||
---
|
||||
ArmPlatformPkg/PrePeiCore/MainMPCore.c | 5 +++++
|
||||
ArmPlatformPkg/PrePeiCore/MainUniCore.c | 5 +++++
|
||||
ArmPlatformPkg/PrePeiCore/PrePeiCore.h | 1 +
|
||||
ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf | 2 ++
|
||||
ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf | 2 ++
|
||||
5 files changed, 15 insertions(+)
|
||||
|
||||
diff --git a/ArmPlatformPkg/PrePeiCore/MainMPCore.c b/ArmPlatformPkg/PrePeiCore/MainMPCore.c
|
||||
index dc47adbaff..cbd72232c7 100644
|
||||
--- a/ArmPlatformPkg/PrePeiCore/MainMPCore.c
|
||||
+++ b/ArmPlatformPkg/PrePeiCore/MainMPCore.c
|
||||
@@ -117,6 +117,11 @@ PrimaryMain (
|
||||
UINTN TemporaryRamBase;
|
||||
UINTN TemporaryRamSize;
|
||||
|
||||
+ if (FixedPcdGetSize (PcdEarlyHelloMessage) > 1) {
|
||||
+ SerialPortWrite (FixedPcdGetPtr (PcdEarlyHelloMessage),
|
||||
+ FixedPcdGetSize (PcdEarlyHelloMessage) - 1);
|
||||
+ }
|
||||
+
|
||||
CreatePpiList (&PpiListSize, &PpiList);
|
||||
|
||||
// Enable the GIC Distributor
|
||||
diff --git a/ArmPlatformPkg/PrePeiCore/MainUniCore.c b/ArmPlatformPkg/PrePeiCore/MainUniCore.c
|
||||
index 134a469427..af39fc017c 100644
|
||||
--- a/ArmPlatformPkg/PrePeiCore/MainUniCore.c
|
||||
+++ b/ArmPlatformPkg/PrePeiCore/MainUniCore.c
|
||||
@@ -35,6 +35,11 @@ PrimaryMain (
|
||||
UINTN TemporaryRamBase;
|
||||
UINTN TemporaryRamSize;
|
||||
|
||||
+ if (FixedPcdGetSize (PcdEarlyHelloMessage) > 1) {
|
||||
+ SerialPortWrite (FixedPcdGetPtr (PcdEarlyHelloMessage),
|
||||
+ FixedPcdGetSize (PcdEarlyHelloMessage) - 1);
|
||||
+ }
|
||||
+
|
||||
CreatePpiList (&PpiListSize, &PpiList);
|
||||
|
||||
// Adjust the Temporary Ram as the new Ppi List (Common + Platform Ppi Lists) is created at
|
||||
diff --git a/ArmPlatformPkg/PrePeiCore/PrePeiCore.h b/ArmPlatformPkg/PrePeiCore/PrePeiCore.h
|
||||
index 160894620c..bf843d7768 100644
|
||||
--- a/ArmPlatformPkg/PrePeiCore/PrePeiCore.h
|
||||
+++ b/ArmPlatformPkg/PrePeiCore/PrePeiCore.h
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <Library/DebugLib.h>
|
||||
#include <Library/IoLib.h>
|
||||
#include <Library/PcdLib.h>
|
||||
+#include <Library/SerialPortLib.h>
|
||||
|
||||
#include <PiPei.h>
|
||||
#include <Ppi/TemporaryRamSupport.h>
|
||||
diff --git a/ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf b/ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf
|
||||
index e3a31fa7c6..1bc0c45420 100644
|
||||
--- a/ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf
|
||||
+++ b/ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf
|
||||
@@ -72,6 +72,8 @@
|
||||
gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize
|
||||
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecondaryStackSize
|
||||
|
||||
+ gArmPlatformTokenSpaceGuid.PcdEarlyHelloMessage
|
||||
+
|
||||
gArmTokenSpaceGuid.PcdGicDistributorBase
|
||||
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase
|
||||
gArmTokenSpaceGuid.PcdGicSgiIntId
|
||||
diff --git a/ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf b/ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
|
||||
index ec83cec2d8..b100820491 100644
|
||||
--- a/ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
|
||||
+++ b/ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
|
||||
@@ -70,4 +70,6 @@
|
||||
gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize
|
||||
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecondaryStackSize
|
||||
|
||||
+ gArmPlatformTokenSpaceGuid.PcdEarlyHelloMessage
|
||||
+
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdInitValueInTempStack
|
||||
--
|
||||
2.18.1
|
||||
|
@ -0,0 +1,63 @@
|
||||
From fb2032bbea7e02c426855cf86a323556d493fd8a 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.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)
|
||||
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||||
---
|
||||
ArmVirtPkg/ArmVirtQemu.dsc | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
|
||||
index 9fc78d4e0a..a4cd66b846 100644
|
||||
--- a/ArmVirtPkg/ArmVirtQemu.dsc
|
||||
+++ b/ArmVirtPkg/ArmVirtQemu.dsc
|
||||
@@ -94,6 +94,7 @@
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
|
||||
|
||||
[PcdsFixedAtBuild.common]
|
||||
+ gArmPlatformTokenSpaceGuid.PcdEarlyHelloMessage|"UEFI firmware starting.\r\n"
|
||||
!if $(ARCH) == AARCH64
|
||||
gArmTokenSpaceGuid.PcdVFPEnabled|1
|
||||
!endif
|
||||
--
|
||||
2.18.1
|
||||
|
89
SOURCES/0016-OvmfPkg-enable-DEBUG_VERBOSE-RHEL-only.patch
Normal file
89
SOURCES/0016-OvmfPkg-enable-DEBUG_VERBOSE-RHEL-only.patch
Normal file
@ -0,0 +1,89 @@
|
||||
From 7e6d5dc4078c64be6d55d8fc3317c59a91507a50 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.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)
|
||||
Signed-off-by: Danilo C. L. de Paula <ddepaula@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 bc75e03d47..8093e6f000 100644
|
||||
--- a/OvmfPkg/OvmfPkgIa32.dsc
|
||||
+++ b/OvmfPkg/OvmfPkgIa32.dsc
|
||||
@@ -484,7 +484,7 @@
|
||||
# DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may
|
||||
# // significantly impact boot performance
|
||||
# DEBUG_ERROR 0x80000000 // Error
|
||||
- gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
|
||||
+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8040004F
|
||||
|
||||
!ifdef $(SOURCE_DEBUG_ENABLE)
|
||||
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17
|
||||
diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
|
||||
index f630737662..eca9b4e6db 100644
|
||||
--- a/OvmfPkg/OvmfPkgIa32X64.dsc
|
||||
+++ b/OvmfPkg/OvmfPkgIa32X64.dsc
|
||||
@@ -489,7 +489,7 @@
|
||||
# DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may
|
||||
# // significantly impact boot performance
|
||||
# DEBUG_ERROR 0x80000000 // Error
|
||||
- gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
|
||||
+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8040004F
|
||||
|
||||
!ifdef $(SOURCE_DEBUG_ENABLE)
|
||||
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17
|
||||
diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
|
||||
index ac70a0cac1..3ff9a3181e 100644
|
||||
--- a/OvmfPkg/OvmfPkgX64.dsc
|
||||
+++ b/OvmfPkg/OvmfPkgX64.dsc
|
||||
@@ -489,7 +489,7 @@
|
||||
# DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may
|
||||
# // significantly impact boot performance
|
||||
# DEBUG_ERROR 0x80000000 // Error
|
||||
- gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
|
||||
+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8040004F
|
||||
|
||||
!ifdef $(SOURCE_DEBUG_ENABLE)
|
||||
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17
|
||||
--
|
||||
2.18.1
|
||||
|
@ -0,0 +1,130 @@
|
||||
From b06b87f8ffd4fed4ef7eacb13689a9b6d111f850 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.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)
|
||||
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||||
---
|
||||
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 8093e6f000..8f1cf80fe6 100644
|
||||
--- a/OvmfPkg/OvmfPkgIa32.dsc
|
||||
+++ b/OvmfPkg/OvmfPkgIa32.dsc
|
||||
@@ -746,8 +746,14 @@
|
||||
MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
|
||||
MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
|
||||
|
||||
- OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf
|
||||
- OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf
|
||||
+ OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf {
|
||||
+ <PcdsFixedAtBuild>
|
||||
+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
|
||||
+ }
|
||||
+ OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf {
|
||||
+ <PcdsFixedAtBuild>
|
||||
+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
|
||||
+ }
|
||||
OvmfPkg/VirtioGpuDxe/VirtioGpu.inf
|
||||
|
||||
#
|
||||
diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
|
||||
index eca9b4e6db..62d6d6c406 100644
|
||||
--- a/OvmfPkg/OvmfPkgIa32X64.dsc
|
||||
+++ b/OvmfPkg/OvmfPkgIa32X64.dsc
|
||||
@@ -755,8 +755,14 @@
|
||||
MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
|
||||
MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
|
||||
|
||||
- OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf
|
||||
- OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf
|
||||
+ OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf {
|
||||
+ <PcdsFixedAtBuild>
|
||||
+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
|
||||
+ }
|
||||
+ OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf {
|
||||
+ <PcdsFixedAtBuild>
|
||||
+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
|
||||
+ }
|
||||
OvmfPkg/VirtioGpuDxe/VirtioGpu.inf
|
||||
|
||||
#
|
||||
diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
|
||||
index 3ff9a3181e..992b141113 100644
|
||||
--- a/OvmfPkg/OvmfPkgX64.dsc
|
||||
+++ b/OvmfPkg/OvmfPkgX64.dsc
|
||||
@@ -753,8 +753,14 @@
|
||||
MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
|
||||
MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
|
||||
|
||||
- OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf
|
||||
- OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf
|
||||
+ OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf {
|
||||
+ <PcdsFixedAtBuild>
|
||||
+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
|
||||
+ }
|
||||
+ OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf {
|
||||
+ <PcdsFixedAtBuild>
|
||||
+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
|
||||
+ }
|
||||
OvmfPkg/VirtioGpuDxe/VirtioGpu.inf
|
||||
|
||||
#
|
||||
--
|
||||
2.18.1
|
||||
|
@ -0,0 +1,64 @@
|
||||
From 76b4ac28e975bd63c25db903a1d42c47b38cc756 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.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.
|
||||
|
||||
QemuRamfbDxe 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: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||||
---
|
||||
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 a4cd66b846..aac4094665 100644
|
||||
--- a/ArmVirtPkg/ArmVirtQemu.dsc
|
||||
+++ b/ArmVirtPkg/ArmVirtQemu.dsc
|
||||
@@ -421,7 +421,10 @@
|
||||
#
|
||||
# Video support
|
||||
#
|
||||
- OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf
|
||||
+ OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf {
|
||||
+ <PcdsFixedAtBuild>
|
||||
+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
|
||||
+ }
|
||||
OvmfPkg/VirtioGpuDxe/VirtioGpu.inf
|
||||
OvmfPkg/PlatformDxe/Platform.inf
|
||||
|
||||
diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc
|
||||
index d2b3f24394..c9a635e80b 100644
|
||||
--- a/ArmVirtPkg/ArmVirtQemuKernel.dsc
|
||||
+++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc
|
||||
@@ -399,7 +399,10 @@
|
||||
#
|
||||
# Video support
|
||||
#
|
||||
- OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf
|
||||
+ OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf {
|
||||
+ <PcdsFixedAtBuild>
|
||||
+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
|
||||
+ }
|
||||
OvmfPkg/VirtioGpuDxe/VirtioGpu.inf
|
||||
OvmfPkg/PlatformDxe/Platform.inf
|
||||
|
||||
--
|
||||
2.18.1
|
||||
|
@ -0,0 +1,99 @@
|
||||
From 58bba429b9ec7b78109940ef945d0dc93f3cd958 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.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>
|
||||
|
||||
NvmExpressDxe logs all BlockIo read & write calls on the EFI_D_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 5f432837b9c60c2929b13dda1a1b488d5c3a6d2f)
|
||||
(cherry picked from commit 33e00146eb878588ad1395d7b1ae38f401729da4)
|
||||
(cherry picked from commit bd10cabcfcb1bc9a32b05062f4ee3792e27bc2d8)
|
||||
(cherry picked from commit 5a27af700f49e00608f232f618dedd7bf5e9b3e6)
|
||||
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||||
---
|
||||
OvmfPkg/OvmfPkgIa32.dsc | 5 ++++-
|
||||
OvmfPkg/OvmfPkgIa32X64.dsc | 5 ++++-
|
||||
OvmfPkg/OvmfPkgX64.dsc | 5 ++++-
|
||||
3 files changed, 12 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
|
||||
index 8f1cf80fe6..bbf5e38274 100644
|
||||
--- a/OvmfPkg/OvmfPkgIa32.dsc
|
||||
+++ b/OvmfPkg/OvmfPkgIa32.dsc
|
||||
@@ -740,7 +740,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/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 62d6d6c406..3ec1b916e7 100644
|
||||
--- a/OvmfPkg/OvmfPkgIa32X64.dsc
|
||||
+++ b/OvmfPkg/OvmfPkgIa32X64.dsc
|
||||
@@ -749,7 +749,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/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 992b141113..ea54b4b8e8 100644
|
||||
--- a/OvmfPkg/OvmfPkgX64.dsc
|
||||
+++ b/OvmfPkg/OvmfPkgX64.dsc
|
||||
@@ -747,7 +747,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/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
||||
MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
|
||||
MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
|
||||
--
|
||||
2.18.1
|
||||
|
@ -0,0 +1,59 @@
|
||||
From d382b66affafe06c7e470e0a2dffbd3634b363f1 Mon Sep 17 00:00:00 2001
|
||||
From: Laszlo Ersek <lersek@redhat.com>
|
||||
Date: Tue, 19 Mar 2019 15:48:34 +0100
|
||||
Subject: Downgrade CryptoPkg INF files to OpenSSL 1.1.0i (RH only)
|
||||
|
||||
Notes about the RHEL-8.0/20180508-ee3198e672e2 ->
|
||||
RHEL-8.1/20190308-89910a39dcfd rebase:
|
||||
|
||||
- new patch, due to upstream commit a18f784cfdbe ("Upgrade OpenSSL to
|
||||
1.1.0j", 2018-12-21)
|
||||
|
||||
Upstream commit a18f784cfdbe (see above) advanced the OpenSSL git
|
||||
submodule from upstream OpenSSL commit d4e4bd2a8163 ("Prepare for 1.1.0h
|
||||
release", 2018-03-27) to upstream OpenSSL commit 74f2d9c1ec5f ("Prepare
|
||||
for 1.1.0j release", 2018-11-20). Meaning, upstream edk2 skipped 1.1.0i.
|
||||
|
||||
However, Fedora 28 only offers 1.1.0i at this point (and it will not be
|
||||
rebased again until 1.1.0k is released). Therefore hunks in the upstream
|
||||
CryptoPkg commit that relate specifically to 1.1.0j have to be backed out.
|
||||
|
||||
The only such hunks are the "crypto/getenv.c" additions to the INF files.
|
||||
The related upstream OpenSSL change was commit 1abdf08284af ("Use
|
||||
secure_getenv(3) when available.", 2018-09-24), part of tag
|
||||
"OpenSSL_1_1_0j".
|
||||
|
||||
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
|
||||
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||||
---
|
||||
CryptoPkg/Library/OpensslLib/OpensslLib.inf | 1 -
|
||||
CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf | 1 -
|
||||
2 files changed, 2 deletions(-)
|
||||
|
||||
diff --git a/CryptoPkg/Library/OpensslLib/OpensslLib.inf b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
|
||||
index 6162d29143..fcb8bfddde 100644
|
||||
--- a/CryptoPkg/Library/OpensslLib/OpensslLib.inf
|
||||
+++ b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
|
||||
@@ -282,7 +282,6 @@
|
||||
$(OPENSSL_PATH)/crypto/evp/pmeth_lib.c
|
||||
$(OPENSSL_PATH)/crypto/evp/scrypt.c
|
||||
$(OPENSSL_PATH)/crypto/ex_data.c
|
||||
- $(OPENSSL_PATH)/crypto/getenv.c
|
||||
$(OPENSSL_PATH)/crypto/hmac/hm_ameth.c
|
||||
$(OPENSSL_PATH)/crypto/hmac/hm_pmeth.c
|
||||
$(OPENSSL_PATH)/crypto/hmac/hmac.c
|
||||
diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
|
||||
index b04bf62b4e..99ff89da0e 100644
|
||||
--- a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
|
||||
+++ b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
|
||||
@@ -282,7 +282,6 @@
|
||||
$(OPENSSL_PATH)/crypto/evp/pmeth_lib.c
|
||||
$(OPENSSL_PATH)/crypto/evp/scrypt.c
|
||||
$(OPENSSL_PATH)/crypto/ex_data.c
|
||||
- $(OPENSSL_PATH)/crypto/getenv.c
|
||||
$(OPENSSL_PATH)/crypto/hmac/hm_ameth.c
|
||||
$(OPENSSL_PATH)/crypto/hmac/hm_pmeth.c
|
||||
$(OPENSSL_PATH)/crypto/hmac/hmac.c
|
||||
--
|
||||
2.18.1
|
||||
|
21
SOURCES/LICENSE.qosb
Normal file
21
SOURCES/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.
|
@ -0,0 +1,198 @@
|
||||
From 71c39f0fb0b9a3e9856cebc58ef3812752fd07cc Mon Sep 17 00:00:00 2001
|
||||
From: Laszlo Ersek <lersek@redhat.com>
|
||||
Date: Tue, 4 Jun 2019 11:06:45 +0200
|
||||
Subject: [PATCH 3/3] OvmfPkg/PlatformPei: set 32-bit UC area at PciBase /
|
||||
PciExBarBase (pc/q35)
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Message-id: <20190604090645.2847-4-lersek@redhat.com>
|
||||
Patchwork-id: 88483
|
||||
O-Subject: [RHEL-8.1.0 edk2 PATCH v2 3/3] OvmfPkg/PlatformPei: set 32-bit UC
|
||||
area at PciBase / PciExBarBase (pc/q35)
|
||||
Bugzilla: 1666941
|
||||
Acked-by: Philippe Mathieu-Daudé <philmd@redhat.com>
|
||||
Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
|
||||
(This is a replacement for commit 39b9a5ffe661 ("OvmfPkg/PlatformPei: fix
|
||||
MTRR for low-RAM sizes that have many bits clear", 2019-05-16).)
|
||||
|
||||
Reintroduce the same logic as seen in commit 39b9a5ffe661 for the pc
|
||||
(i440fx) board type.
|
||||
|
||||
For q35, the same approach doesn't work any longer, given that (a) we'd
|
||||
like to keep the PCIEXBAR in the platform DSC a fixed-at-build PCD, and
|
||||
(b) QEMU expects the PCIEXBAR to reside at a lower address than the 32-bit
|
||||
PCI MMIO aperture.
|
||||
|
||||
Therefore, introduce a helper function for determining the 32-bit
|
||||
"uncacheable" (MMIO) area base address:
|
||||
|
||||
- On q35, this function behaves statically. Furthermore, the MTRR setup
|
||||
exploits that the range [0xB000_0000, 0xFFFF_FFFF] can be marked UC with
|
||||
just two variable MTRRs (one at 0xB000_0000 (size 256MB), another at
|
||||
0xC000_0000 (size 1GB)).
|
||||
|
||||
- On pc (i440fx), the function behaves dynamically, implementing the same
|
||||
logic as commit 39b9a5ffe661 did. The PciBase value is adjusted to the
|
||||
value calculated, similarly to commit 39b9a5ffe661. A further
|
||||
simplification is that we show that the UC32 area size truncation to a
|
||||
whole power of two automatically guarantees a >=2GB base address.
|
||||
|
||||
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
|
||||
Cc: Gerd Hoffmann <kraxel@redhat.com>
|
||||
Cc: Jordan Justen <jordan.l.justen@intel.com>
|
||||
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1859
|
||||
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
|
||||
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
|
||||
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
|
||||
(cherry picked from commit 49edde15230a5bfd6746225eb95535eaa2ec1ba4)
|
||||
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
|
||||
---
|
||||
OvmfPkg/PlatformPei/MemDetect.c | 59 ++++++++++++++++++++++++++++++++++++++---
|
||||
OvmfPkg/PlatformPei/Platform.c | 5 +++-
|
||||
OvmfPkg/PlatformPei/Platform.h | 7 +++++
|
||||
3 files changed, 66 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/OvmfPkg/PlatformPei/MemDetect.c b/OvmfPkg/PlatformPei/MemDetect.c
|
||||
index 2f9e835..0c38b70 100644
|
||||
--- a/OvmfPkg/PlatformPei/MemDetect.c
|
||||
+++ b/OvmfPkg/PlatformPei/MemDetect.c
|
||||
@@ -20,6 +20,7 @@ Module Name:
|
||||
// The package level header files this module uses
|
||||
//
|
||||
#include <IndustryStandard/E820.h>
|
||||
+#include <IndustryStandard/I440FxPiix4.h>
|
||||
#include <IndustryStandard/Q35MchIch9.h>
|
||||
#include <PiPei.h>
|
||||
|
||||
@@ -48,6 +49,8 @@ STATIC UINT32 mS3AcpiReservedMemorySize;
|
||||
|
||||
STATIC UINT16 mQ35TsegMbytes;
|
||||
|
||||
+UINT32 mQemuUc32Base;
|
||||
+
|
||||
VOID
|
||||
Q35TsegMbytesInitialization (
|
||||
VOID
|
||||
@@ -104,6 +107,54 @@ Q35TsegMbytesInitialization (
|
||||
}
|
||||
|
||||
|
||||
+VOID
|
||||
+QemuUc32BaseInitialization (
|
||||
+ VOID
|
||||
+ )
|
||||
+{
|
||||
+ UINT32 LowerMemorySize;
|
||||
+ UINT32 Uc32Size;
|
||||
+
|
||||
+ if (mXen) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (mHostBridgeDevId == INTEL_Q35_MCH_DEVICE_ID) {
|
||||
+ //
|
||||
+ // On q35, the 32-bit area that we'll mark as UC, through variable MTRRs,
|
||||
+ // starts at PcdPciExpressBaseAddress. The platform DSC is responsible for
|
||||
+ // setting PcdPciExpressBaseAddress such that describing the
|
||||
+ // [PcdPciExpressBaseAddress, 4GB) range require a very small number of
|
||||
+ // variable MTRRs (preferably 1 or 2).
|
||||
+ //
|
||||
+ ASSERT (FixedPcdGet64 (PcdPciExpressBaseAddress) <= MAX_UINT32);
|
||||
+ mQemuUc32Base = (UINT32)FixedPcdGet64 (PcdPciExpressBaseAddress);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ ASSERT (mHostBridgeDevId == INTEL_82441_DEVICE_ID);
|
||||
+ //
|
||||
+ // On i440fx, start with the [LowerMemorySize, 4GB) range. Make sure one
|
||||
+ // variable MTRR suffices by truncating the size to a whole power of two,
|
||||
+ // while keeping the end affixed to 4GB. This will round the base up.
|
||||
+ //
|
||||
+ LowerMemorySize = GetSystemMemorySizeBelow4gb ();
|
||||
+ Uc32Size = GetPowerOfTwo32 ((UINT32)(SIZE_4GB - LowerMemorySize));
|
||||
+ mQemuUc32Base = (UINT32)(SIZE_4GB - Uc32Size);
|
||||
+ //
|
||||
+ // Assuming that LowerMemorySize is at least 1 byte, Uc32Size is at most 2GB.
|
||||
+ // Therefore mQemuUc32Base is at least 2GB.
|
||||
+ //
|
||||
+ ASSERT (mQemuUc32Base >= BASE_2GB);
|
||||
+
|
||||
+ if (mQemuUc32Base != LowerMemorySize) {
|
||||
+ DEBUG ((DEBUG_VERBOSE, "%a: rounded UC32 base from 0x%x up to 0x%x, for "
|
||||
+ "an UC32 size of 0x%x\n", __FUNCTION__, LowerMemorySize, mQemuUc32Base,
|
||||
+ Uc32Size));
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+
|
||||
/**
|
||||
Iterate over the RAM entries in QEMU's fw_cfg E820 RAM map that start outside
|
||||
of the 32-bit address range.
|
||||
@@ -694,11 +745,11 @@ QemuInitializeRam (
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
//
|
||||
- // Set memory range from the "top of lower RAM" (RAM below 4GB) to 4GB as
|
||||
- // uncacheable
|
||||
+ // Set the memory range from the start of the 32-bit MMIO area (32-bit PCI
|
||||
+ // MMIO aperture on i440fx, PCIEXBAR on q35) to 4GB as uncacheable.
|
||||
//
|
||||
- Status = MtrrSetMemoryAttribute (LowerMemorySize,
|
||||
- SIZE_4GB - LowerMemorySize, CacheUncacheable);
|
||||
+ Status = MtrrSetMemoryAttribute (mQemuUc32Base, SIZE_4GB - mQemuUc32Base,
|
||||
+ CacheUncacheable);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
}
|
||||
}
|
||||
diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c
|
||||
index 64b8034..de19f5c 100644
|
||||
--- a/OvmfPkg/PlatformPei/Platform.c
|
||||
+++ b/OvmfPkg/PlatformPei/Platform.c
|
||||
@@ -197,7 +197,8 @@ MemMapInitialization (
|
||||
ASSERT (PciExBarBase <= MAX_UINT32 - SIZE_256MB);
|
||||
PciBase = (UINT32)(PciExBarBase + SIZE_256MB);
|
||||
} else {
|
||||
- PciBase = (TopOfLowRam < BASE_2GB) ? BASE_2GB : TopOfLowRam;
|
||||
+ ASSERT (TopOfLowRam <= mQemuUc32Base);
|
||||
+ PciBase = mQemuUc32Base;
|
||||
}
|
||||
|
||||
//
|
||||
@@ -656,6 +657,8 @@ InitializePlatform (
|
||||
|
||||
PublishPeiMemory ();
|
||||
|
||||
+ QemuUc32BaseInitialization ();
|
||||
+
|
||||
InitializeRamRegions ();
|
||||
|
||||
if (mXen) {
|
||||
diff --git a/OvmfPkg/PlatformPei/Platform.h b/OvmfPkg/PlatformPei/Platform.h
|
||||
index b12a5c1..2b486ce 100644
|
||||
--- a/OvmfPkg/PlatformPei/Platform.h
|
||||
+++ b/OvmfPkg/PlatformPei/Platform.h
|
||||
@@ -69,6 +69,11 @@ GetSystemMemorySizeBelow4gb (
|
||||
);
|
||||
|
||||
VOID
|
||||
+QemuUc32BaseInitialization (
|
||||
+ VOID
|
||||
+ );
|
||||
+
|
||||
+VOID
|
||||
InitializeRamRegions (
|
||||
VOID
|
||||
);
|
||||
@@ -120,4 +125,6 @@ extern UINT32 mMaxCpuCount;
|
||||
|
||||
extern UINT16 mHostBridgeDevId;
|
||||
|
||||
+extern UINT32 mQemuUc32Base;
|
||||
+
|
||||
#endif // _PLATFORM_PEI_H_INCLUDED_
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -0,0 +1,109 @@
|
||||
From d362291ada9ee22316e3c069dc788c4c801b0796 Mon Sep 17 00:00:00 2001
|
||||
From: Laszlo Ersek <lersek@redhat.com>
|
||||
Date: Tue, 4 Jun 2019 11:06:44 +0200
|
||||
Subject: [PATCH 2/3] OvmfPkg: raise the PCIEXBAR base to 2816 MB on Q35
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Message-id: <20190604090645.2847-3-lersek@redhat.com>
|
||||
Patchwork-id: 88481
|
||||
O-Subject: [RHEL-8.1.0 edk2 PATCH v2 2/3] OvmfPkg: raise the PCIEXBAR base to
|
||||
2816 MB on Q35
|
||||
Bugzilla: 1666941
|
||||
Acked-by: Philippe Mathieu-Daudé <philmd@redhat.com>
|
||||
Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
|
||||
(This is a replacement for commit 75136b29541b, "OvmfPkg/PlatformPei:
|
||||
reorder the 32-bit PCI window vs. the PCIEXBAR on q35", 2019-05-16).
|
||||
|
||||
Commit 7b8fe63561b4 ("OvmfPkg: PlatformPei: enable PCIEXBAR (aka MMCONFIG
|
||||
/ ECAM) on Q35", 2016-03-10) claimed that,
|
||||
|
||||
On Q35 machine types that QEMU intends to support in the long term, QEMU
|
||||
never lets the RAM below 4 GB exceed 2 GB.
|
||||
|
||||
Alas, this statement came from a misunderstanding that occurred while we
|
||||
worked out the interface contract. In fact QEMU does allow the 32-bit RAM
|
||||
extend up to 0xB000_0000 (exclusive), in case the RAM size falls in the
|
||||
range (0x8000_0000, 0xB000_0000) (i.e., the RAM size is greater than
|
||||
2048MB and smaller than 2816MB).
|
||||
|
||||
In turn, such a RAM size (justifiedly) triggers
|
||||
|
||||
ASSERT (TopOfLowRam <= PciExBarBase);
|
||||
|
||||
in MemMapInitialization(), because we placed the 256MB PCIEXBAR at
|
||||
0x8000_0000 (2GB) exactly, relying on the interface contract. (And, the
|
||||
32-bit PCI window would follow the PCIEXBAR, covering the [0x9000_0000,
|
||||
0xFC00_0000) range.)
|
||||
|
||||
In order to fix this, place the PCIEXBAR at 2816MB (0xB000_0000), and
|
||||
start the 32-bit PCI window at 3 GB (0xC000_0000). This shrinks the 32-bit
|
||||
PCI window to
|
||||
|
||||
0xFC00_0000 - 0xC000_0000 = 0x3C00_0000 = 960 MB.
|
||||
|
||||
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
|
||||
Cc: Gerd Hoffmann <kraxel@redhat.com>
|
||||
Cc: Jordan Justen <jordan.l.justen@intel.com>
|
||||
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1859
|
||||
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
|
||||
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
|
||||
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
|
||||
(cherry picked from commit b07de0974b65a6a393c2d477427d1d6c7acce002)
|
||||
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
|
||||
---
|
||||
OvmfPkg/OvmfPkgIa32.dsc | 4 ++--
|
||||
OvmfPkg/OvmfPkgIa32X64.dsc | 4 ++--
|
||||
OvmfPkg/OvmfPkgX64.dsc | 4 ++--
|
||||
3 files changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
|
||||
index bbf5e38..cf5f2ea 100644
|
||||
--- a/OvmfPkg/OvmfPkgIa32.dsc
|
||||
+++ b/OvmfPkg/OvmfPkgIa32.dsc
|
||||
@@ -497,8 +497,8 @@
|
||||
# the PCIEXBAR register.
|
||||
#
|
||||
# On Q35 machine types that QEMU intends to support in the long term, QEMU
|
||||
- # never lets the RAM below 4 GB exceed 2 GB.
|
||||
- gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0x80000000
|
||||
+ # never lets the RAM below 4 GB exceed 2816 MB.
|
||||
+ gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xB0000000
|
||||
|
||||
!ifdef $(SOURCE_DEBUG_ENABLE)
|
||||
gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdDebugLoadImageMethod|0x2
|
||||
diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
|
||||
index 3ec1b91..5a24065 100644
|
||||
--- a/OvmfPkg/OvmfPkgIa32X64.dsc
|
||||
+++ b/OvmfPkg/OvmfPkgIa32X64.dsc
|
||||
@@ -502,8 +502,8 @@
|
||||
# the PCIEXBAR register.
|
||||
#
|
||||
# On Q35 machine types that QEMU intends to support in the long term, QEMU
|
||||
- # never lets the RAM below 4 GB exceed 2 GB.
|
||||
- gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0x80000000
|
||||
+ # never lets the RAM below 4 GB exceed 2816 MB.
|
||||
+ gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xB0000000
|
||||
|
||||
!ifdef $(SOURCE_DEBUG_ENABLE)
|
||||
gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdDebugLoadImageMethod|0x2
|
||||
diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
|
||||
index ea54b4b..6ab50c9 100644
|
||||
--- a/OvmfPkg/OvmfPkgX64.dsc
|
||||
+++ b/OvmfPkg/OvmfPkgX64.dsc
|
||||
@@ -502,8 +502,8 @@
|
||||
# the PCIEXBAR register.
|
||||
#
|
||||
# On Q35 machine types that QEMU intends to support in the long term, QEMU
|
||||
- # never lets the RAM below 4 GB exceed 2 GB.
|
||||
- gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0x80000000
|
||||
+ # never lets the RAM below 4 GB exceed 2816 MB.
|
||||
+ gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xB0000000
|
||||
|
||||
!ifdef $(SOURCE_DEBUG_ENABLE)
|
||||
gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdDebugLoadImageMethod|0x2
|
||||
--
|
||||
1.8.3.1
|
||||
|
31
SOURCES/edk2-aarch64-verbose.json
Normal file
31
SOURCES/edk2-aarch64-verbose.json
Normal file
@ -0,0 +1,31 @@
|
||||
{
|
||||
"description": "UEFI firmware for ARM64 virtual machines, verbose logs",
|
||||
"interface-types": [
|
||||
"uefi"
|
||||
],
|
||||
"mapping": {
|
||||
"device": "flash",
|
||||
"executable": {
|
||||
"filename": "/usr/share/edk2/aarch64/QEMU_EFI-pflash.raw",
|
||||
"format": "raw"
|
||||
},
|
||||
"nvram-template": {
|
||||
"filename": "/usr/share/edk2/aarch64/vars-template-pflash.raw",
|
||||
"format": "raw"
|
||||
}
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"architecture": "aarch64",
|
||||
"machines": [
|
||||
"virt-*"
|
||||
]
|
||||
}
|
||||
],
|
||||
"features": [
|
||||
"verbose-static"
|
||||
],
|
||||
"tags": [
|
||||
|
||||
]
|
||||
}
|
31
SOURCES/edk2-aarch64.json
Normal file
31
SOURCES/edk2-aarch64.json
Normal file
@ -0,0 +1,31 @@
|
||||
{
|
||||
"description": "UEFI firmware for ARM64 virtual machines",
|
||||
"interface-types": [
|
||||
"uefi"
|
||||
],
|
||||
"mapping": {
|
||||
"device": "flash",
|
||||
"executable": {
|
||||
"filename": "/usr/share/edk2/aarch64/QEMU_EFI-silent-pflash.raw",
|
||||
"format": "raw"
|
||||
},
|
||||
"nvram-template": {
|
||||
"filename": "/usr/share/edk2/aarch64/vars-template-pflash.raw",
|
||||
"format": "raw"
|
||||
}
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"architecture": "aarch64",
|
||||
"machines": [
|
||||
"virt-*"
|
||||
]
|
||||
}
|
||||
],
|
||||
"features": [
|
||||
|
||||
],
|
||||
"tags": [
|
||||
|
||||
]
|
||||
}
|
36
SOURCES/edk2-ovmf-sb.json
Normal file
36
SOURCES/edk2-ovmf-sb.json
Normal file
@ -0,0 +1,36 @@
|
||||
{
|
||||
"description": "OVMF with SB+SMM, SB enabled, MS certs enrolled",
|
||||
"interface-types": [
|
||||
"uefi"
|
||||
],
|
||||
"mapping": {
|
||||
"device": "flash",
|
||||
"executable": {
|
||||
"filename": "/usr/share/edk2/ovmf/OVMF_CODE.secboot.fd",
|
||||
"format": "raw"
|
||||
},
|
||||
"nvram-template": {
|
||||
"filename": "/usr/share/edk2/ovmf/OVMF_VARS.secboot.fd",
|
||||
"format": "raw"
|
||||
}
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"architecture": "x86_64",
|
||||
"machines": [
|
||||
"pc-q35-*"
|
||||
]
|
||||
}
|
||||
],
|
||||
"features": [
|
||||
"acpi-s3",
|
||||
"amd-sev",
|
||||
"enrolled-keys",
|
||||
"requires-smm",
|
||||
"secure-boot",
|
||||
"verbose-dynamic"
|
||||
],
|
||||
"tags": [
|
||||
|
||||
]
|
||||
}
|
35
SOURCES/edk2-ovmf.json
Normal file
35
SOURCES/edk2-ovmf.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"description": "OVMF with SB+SMM, empty varstore",
|
||||
"interface-types": [
|
||||
"uefi"
|
||||
],
|
||||
"mapping": {
|
||||
"device": "flash",
|
||||
"executable": {
|
||||
"filename": "/usr/share/edk2/ovmf/OVMF_CODE.secboot.fd",
|
||||
"format": "raw"
|
||||
},
|
||||
"nvram-template": {
|
||||
"filename": "/usr/share/edk2/ovmf/OVMF_VARS.fd",
|
||||
"format": "raw"
|
||||
}
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"architecture": "x86_64",
|
||||
"machines": [
|
||||
"pc-q35-*"
|
||||
]
|
||||
}
|
||||
],
|
||||
"features": [
|
||||
"acpi-s3",
|
||||
"amd-sev",
|
||||
"requires-smm",
|
||||
"secure-boot",
|
||||
"verbose-dynamic"
|
||||
],
|
||||
"tags": [
|
||||
|
||||
]
|
||||
}
|
273
SOURCES/ovmf-vars-generator
Executable file
273
SOURCES/ovmf-vars-generator
Executable file
@ -0,0 +1,273 @@
|
||||
#!/bin/python
|
||||
# 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')
|
||||
return [
|
||||
args.qemu_binary,
|
||||
'-machine', machinetype,
|
||||
'-display', 'none',
|
||||
'-no-user-config',
|
||||
'-nodefaults',
|
||||
'-m', '256',
|
||||
'-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'] + 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()
|
||||
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')
|
||||
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()
|
2422
SOURCES/ovmf-whitepaper-c770f8c.txt
Normal file
2422
SOURCES/ovmf-whitepaper-c770f8c.txt
Normal file
File diff suppressed because it is too large
Load Diff
1033
SPECS/edk2.spec
Normal file
1033
SPECS/edk2.spec
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user