* Mon Jul 10 2023 Miroslav Rezanina <mrezanin@redhat.com> - 20230524-2
- edk2-ArmVirt-add-VirtioSerialDxe-to-ArmVirtQemu-builds.patch [RHEL-643] - edk2-ArmVirt-PlatformBootManagerLib-factor-out-IsVirtio.patch [RHEL-643] - edk2-ArmVirt-PlatformBootManagerLib-factor-out-IsVirtioPc.patch [RHEL-643] - edk2-ArmVirt-PlatformBootManagerLib-set-up-virtio-serial-.patch [RHEL-643] - edk2-OvmfPkg-VirtioSerialDxe-use-TPL_NOTIFY.patch [RHEL-643] - edk2-OvmfPkg-VirtioSerialDxe-Remove-noisy-debug-print-on-.patch [RHEL-643] - edk2-OvmfPkg-PlatformInitLib-limit-phys-bits-to-46.patch [bz#2174749] - edk2-Revert-OvmfPkg-disable-dynamic-mmio-window-rhel-only.patch [bz#2174749] - edk2-UefiCpuPkg-MpInitLib-fix-apic-mode-for-cpu-hotplug.patch [bz#2124143] - edk2-OvmfPkg-PlatformInitLib-check-PcdUse1GPageTable.patch [RHEL-644] - edk2-OvmfPkg-OvmfPkgIa32X64-enable-1G-pages.patch [RHEL-644] - edk2-OvmfPkg-MicrovmX64-enable-1G-pages.patch [RHEL-644] - Resolves: RHEL-643 (add virtio serial support to armvirt) - Resolves: bz#2174749 ([edk2] re-enable dynamic mmio window) - Resolves: bz#2124143 (ovmf must consider max cpu count not boot cpu count for apic mode [rhel-9]) - Resolves: RHEL-644 (enable gigabyte pages)
This commit is contained in:
parent
f6a4f10ae6
commit
32696fd8dd
1
.gitignore
vendored
1
.gitignore
vendored
@ -11,3 +11,4 @@
|
|||||||
/openssl-rhel-d00c3c5b8a9d6d3ea3dabfcafdf36afd61ba8bcc.tar.xz
|
/openssl-rhel-d00c3c5b8a9d6d3ea3dabfcafdf36afd61ba8bcc.tar.xz
|
||||||
/DBXUpdate-20230314.x64.bin
|
/DBXUpdate-20230314.x64.bin
|
||||||
/DBXUpdate-20230509.x64.bin
|
/DBXUpdate-20230509.x64.bin
|
||||||
|
/*.src.rpm
|
||||||
|
@ -0,0 +1,74 @@
|
|||||||
|
From 9572a0fe959277c5b57df05a32503ff83a7e93af Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
Date: Thu, 1 Jun 2023 13:57:11 +0200
|
||||||
|
Subject: [PATCH 02/12] ArmVirt/PlatformBootManagerLib: factor out IsVirtio()
|
||||||
|
|
||||||
|
RH-Author: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
RH-MergeRequest: 39: ArmVirt: add VirtioSerialDxe to ArmVirtQemu builds
|
||||||
|
RH-Jira: RHEL-643
|
||||||
|
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
||||||
|
RH-Commit: [2/6] 553a155707eb1c878133c1d13f6422c2b70fb78d (kraxel/centos-edk2)
|
||||||
|
|
||||||
|
IsVirtioRng() becomes just a thin wrapper for IsVirtio().
|
||||||
|
This allows to add similar thin wrappers for other virtio
|
||||||
|
devices in the future.
|
||||||
|
|
||||||
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
|
||||||
|
(cherry picked from commit a196b04926e70880334fcd649837d0ac63b0bfd5)
|
||||||
|
---
|
||||||
|
.../PlatformBootManagerLib/PlatformBm.c | 26 +++++++++++++++----
|
||||||
|
1 file changed, 21 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c b/ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c
|
||||||
|
index 10c815378c..5eb6f0f9c1 100644
|
||||||
|
--- a/ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c
|
||||||
|
+++ b/ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c
|
||||||
|
@@ -269,15 +269,16 @@ IsPciDisplay (
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
- This FILTER_FUNCTION checks if a handle corresponds to a Virtio RNG device at
|
||||||
|
- the VIRTIO_DEVICE_PROTOCOL level.
|
||||||
|
+ This function checks if a handle corresponds to the Virtio Device ID given
|
||||||
|
+ at the VIRTIO_DEVICE_PROTOCOL level.
|
||||||
|
**/
|
||||||
|
STATIC
|
||||||
|
BOOLEAN
|
||||||
|
EFIAPI
|
||||||
|
-IsVirtioRng (
|
||||||
|
+IsVirtio (
|
||||||
|
IN EFI_HANDLE Handle,
|
||||||
|
- IN CONST CHAR16 *ReportText
|
||||||
|
+ IN CONST CHAR16 *ReportText,
|
||||||
|
+ IN UINT16 VirtIoDeviceId
|
||||||
|
)
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
@@ -293,7 +294,22 @@ IsVirtioRng (
|
||||||
|
}
|
||||||
|
|
||||||
|
return (BOOLEAN)(VirtIo->SubSystemDeviceId ==
|
||||||
|
- VIRTIO_SUBSYSTEM_ENTROPY_SOURCE);
|
||||||
|
+ VirtIoDeviceId);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
+ This FILTER_FUNCTION checks if a handle corresponds to a Virtio RNG device at
|
||||||
|
+ the VIRTIO_DEVICE_PROTOCOL level.
|
||||||
|
+**/
|
||||||
|
+STATIC
|
||||||
|
+BOOLEAN
|
||||||
|
+EFIAPI
|
||||||
|
+IsVirtioRng (
|
||||||
|
+ IN EFI_HANDLE Handle,
|
||||||
|
+ IN CONST CHAR16 *ReportText
|
||||||
|
+ )
|
||||||
|
+{
|
||||||
|
+ return IsVirtio (Handle, ReportText, VIRTIO_SUBSYSTEM_ENTROPY_SOURCE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
@ -0,0 +1,96 @@
|
|||||||
|
From 8545529f2b6d967946f111d79455ec8896d53311 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
Date: Thu, 1 Jun 2023 13:57:12 +0200
|
||||||
|
Subject: [PATCH 03/12] ArmVirt/PlatformBootManagerLib: factor out
|
||||||
|
IsVirtioPci()
|
||||||
|
|
||||||
|
RH-Author: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
RH-MergeRequest: 39: ArmVirt: add VirtioSerialDxe to ArmVirtQemu builds
|
||||||
|
RH-Jira: RHEL-643
|
||||||
|
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
||||||
|
RH-Commit: [3/6] d0000df1169e1f7b8ce3ad4942460cdc661a0ed9 (kraxel/centos-edk2)
|
||||||
|
|
||||||
|
IsVirtioPciRng() becomes just a thin wrapper for IsVirtioPci().
|
||||||
|
This allows to add similar thin wrappers for other virtio
|
||||||
|
devices in the future.
|
||||||
|
|
||||||
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
|
||||||
|
(cherry picked from commit aaf546879ab71722c36738ccc6f0f0ab4ecf5076)
|
||||||
|
---
|
||||||
|
.../PlatformBootManagerLib/PlatformBm.c | 30 ++++++++++++++-----
|
||||||
|
1 file changed, 23 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c b/ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c
|
||||||
|
index 5eb6f0f9c1..ed38c42a43 100644
|
||||||
|
--- a/ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c
|
||||||
|
+++ b/ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c
|
||||||
|
@@ -313,15 +313,16 @@ IsVirtioRng (
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
- This FILTER_FUNCTION checks if a handle corresponds to a Virtio RNG device at
|
||||||
|
- the EFI_PCI_IO_PROTOCOL level.
|
||||||
|
+ This function checks if a handle corresponds to the Virtio Device ID given
|
||||||
|
+ at the EFI_PCI_IO_PROTOCOL level.
|
||||||
|
**/
|
||||||
|
STATIC
|
||||||
|
BOOLEAN
|
||||||
|
EFIAPI
|
||||||
|
-IsVirtioPciRng (
|
||||||
|
+IsVirtioPci (
|
||||||
|
IN EFI_HANDLE Handle,
|
||||||
|
- IN CONST CHAR16 *ReportText
|
||||||
|
+ IN CONST CHAR16 *ReportText,
|
||||||
|
+ IN UINT16 VirtIoDeviceId
|
||||||
|
)
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
@@ -387,11 +388,11 @@ IsVirtioPciRng (
|
||||||
|
//
|
||||||
|
// From DeviceId and RevisionId, determine whether the device is a
|
||||||
|
// modern-only Virtio 1.0 device. In case of Virtio 1.0, DeviceId can
|
||||||
|
- // immediately be restricted to VIRTIO_SUBSYSTEM_ENTROPY_SOURCE, and
|
||||||
|
+ // immediately be restricted to VirtIoDeviceId, and
|
||||||
|
// SubsystemId will only play a sanity-check role. Otherwise, DeviceId can
|
||||||
|
// only be sanity-checked, and SubsystemId will decide.
|
||||||
|
//
|
||||||
|
- if ((DeviceId == 0x1040 + VIRTIO_SUBSYSTEM_ENTROPY_SOURCE) &&
|
||||||
|
+ if ((DeviceId == 0x1040 + VirtIoDeviceId) &&
|
||||||
|
(RevisionId >= 0x01))
|
||||||
|
{
|
||||||
|
Virtio10 = TRUE;
|
||||||
|
@@ -419,7 +420,7 @@ IsVirtioPciRng (
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (!Virtio10 && (SubsystemId == VIRTIO_SUBSYSTEM_ENTROPY_SOURCE)) {
|
||||||
|
+ if (!Virtio10 && (SubsystemId == VirtIoDeviceId)) {
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -430,6 +431,21 @@ PciError:
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
+/**
|
||||||
|
+ This FILTER_FUNCTION checks if a handle corresponds to a Virtio RNG device at
|
||||||
|
+ the EFI_PCI_IO_PROTOCOL level.
|
||||||
|
+**/
|
||||||
|
+STATIC
|
||||||
|
+BOOLEAN
|
||||||
|
+EFIAPI
|
||||||
|
+IsVirtioPciRng (
|
||||||
|
+ IN EFI_HANDLE Handle,
|
||||||
|
+ IN CONST CHAR16 *ReportText
|
||||||
|
+ )
|
||||||
|
+{
|
||||||
|
+ return IsVirtioPci (Handle, ReportText, VIRTIO_SUBSYSTEM_ENTROPY_SOURCE);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
This CALLBACK_FUNCTION attempts to connect a handle non-recursively, asking
|
||||||
|
the matching driver to produce all first-level child handles.
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
228
edk2-ArmVirt-PlatformBootManagerLib-set-up-virtio-serial-.patch
Normal file
228
edk2-ArmVirt-PlatformBootManagerLib-set-up-virtio-serial-.patch
Normal file
@ -0,0 +1,228 @@
|
|||||||
|
From ad95ab2b76485458fed60ab20631b62a010c0e4d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
Date: Thu, 1 Jun 2023 13:57:13 +0200
|
||||||
|
Subject: [PATCH 04/12] ArmVirt/PlatformBootManagerLib: set up virtio serial as
|
||||||
|
console
|
||||||
|
|
||||||
|
RH-Author: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
RH-MergeRequest: 39: ArmVirt: add VirtioSerialDxe to ArmVirtQemu builds
|
||||||
|
RH-Jira: RHEL-643
|
||||||
|
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
||||||
|
RH-Commit: [4/6] 46540eeb8901cfeef83cffcdcb6e1c23995b391a (kraxel/centos-edk2)
|
||||||
|
|
||||||
|
In case a virtio serial device is found in the system register the first
|
||||||
|
console port as EFI console, by updating ConIn, ConOut and ErrOut.
|
||||||
|
|
||||||
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
(cherry picked from commit 15f83fa36442eaa272300b31699b3b82ce7e07a9)
|
||||||
|
---
|
||||||
|
.../PlatformBootManagerLib/PlatformBm.c | 172 ++++++++++++++++++
|
||||||
|
1 file changed, 172 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c b/ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c
|
||||||
|
index ed38c42a43..b92a916f7e 100644
|
||||||
|
--- a/ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c
|
||||||
|
+++ b/ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c
|
||||||
|
@@ -312,6 +312,21 @@ IsVirtioRng (
|
||||||
|
return IsVirtio (Handle, ReportText, VIRTIO_SUBSYSTEM_ENTROPY_SOURCE);
|
||||||
|
}
|
||||||
|
|
||||||
|
+/**
|
||||||
|
+ This FILTER_FUNCTION checks if a handle corresponds to a Virtio serial device at
|
||||||
|
+ the VIRTIO_DEVICE_PROTOCOL level.
|
||||||
|
+**/
|
||||||
|
+STATIC
|
||||||
|
+BOOLEAN
|
||||||
|
+EFIAPI
|
||||||
|
+IsVirtioSerial (
|
||||||
|
+ IN EFI_HANDLE Handle,
|
||||||
|
+ IN CONST CHAR16 *ReportText
|
||||||
|
+ )
|
||||||
|
+{
|
||||||
|
+ return IsVirtio (Handle, ReportText, VIRTIO_SUBSYSTEM_CONSOLE);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
This function checks if a handle corresponds to the Virtio Device ID given
|
||||||
|
at the EFI_PCI_IO_PROTOCOL level.
|
||||||
|
@@ -446,6 +461,21 @@ IsVirtioPciRng (
|
||||||
|
return IsVirtioPci (Handle, ReportText, VIRTIO_SUBSYSTEM_ENTROPY_SOURCE);
|
||||||
|
}
|
||||||
|
|
||||||
|
+/**
|
||||||
|
+ This FILTER_FUNCTION checks if a handle corresponds to a Virtio serial device at
|
||||||
|
+ the EFI_PCI_IO_PROTOCOL level.
|
||||||
|
+**/
|
||||||
|
+STATIC
|
||||||
|
+BOOLEAN
|
||||||
|
+EFIAPI
|
||||||
|
+IsVirtioPciSerial (
|
||||||
|
+ IN EFI_HANDLE Handle,
|
||||||
|
+ IN CONST CHAR16 *ReportText
|
||||||
|
+ )
|
||||||
|
+{
|
||||||
|
+ return IsVirtioPci (Handle, ReportText, VIRTIO_SUBSYSTEM_CONSOLE);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
This CALLBACK_FUNCTION attempts to connect a handle non-recursively, asking
|
||||||
|
the matching driver to produce all first-level child handles.
|
||||||
|
@@ -534,6 +564,142 @@ AddOutput (
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
+/**
|
||||||
|
+ This CALLBACK_FUNCTION retrieves the EFI_DEVICE_PATH_PROTOCOL from
|
||||||
|
+ the handle, appends serial, uart and terminal nodes, finally updates
|
||||||
|
+ ConIn, ConOut and ErrOut.
|
||||||
|
+**/
|
||||||
|
+STATIC
|
||||||
|
+VOID
|
||||||
|
+EFIAPI
|
||||||
|
+SetupVirtioSerial (
|
||||||
|
+ IN EFI_HANDLE Handle,
|
||||||
|
+ IN CONST CHAR16 *ReportText
|
||||||
|
+ )
|
||||||
|
+{
|
||||||
|
+ STATIC CONST ACPI_HID_DEVICE_PATH SerialNode = {
|
||||||
|
+ {
|
||||||
|
+ ACPI_DEVICE_PATH,
|
||||||
|
+ ACPI_DP,
|
||||||
|
+ {
|
||||||
|
+ (UINT8)(sizeof (ACPI_HID_DEVICE_PATH)),
|
||||||
|
+ (UINT8)((sizeof (ACPI_HID_DEVICE_PATH)) >> 8)
|
||||||
|
+ },
|
||||||
|
+ },
|
||||||
|
+ EISA_PNP_ID (0x0501),
|
||||||
|
+ 0
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ STATIC CONST UART_DEVICE_PATH UartNode = {
|
||||||
|
+ {
|
||||||
|
+ MESSAGING_DEVICE_PATH,
|
||||||
|
+ MSG_UART_DP,
|
||||||
|
+ {
|
||||||
|
+ (UINT8)(sizeof (UART_DEVICE_PATH)),
|
||||||
|
+ (UINT8)((sizeof (UART_DEVICE_PATH)) >> 8)
|
||||||
|
+ },
|
||||||
|
+ },
|
||||||
|
+ 0,
|
||||||
|
+ 115200,
|
||||||
|
+ 8,
|
||||||
|
+ 1,
|
||||||
|
+ 1
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ STATIC CONST VENDOR_DEVICE_PATH TerminalNode = {
|
||||||
|
+ {
|
||||||
|
+ MESSAGING_DEVICE_PATH,
|
||||||
|
+ MSG_VENDOR_DP,
|
||||||
|
+ {
|
||||||
|
+ (UINT8)(sizeof (VENDOR_DEVICE_PATH)),
|
||||||
|
+ (UINT8)((sizeof (VENDOR_DEVICE_PATH)) >> 8)
|
||||||
|
+ },
|
||||||
|
+ },
|
||||||
|
+ DEVICE_PATH_MESSAGING_VT_UTF8
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ EFI_STATUS Status;
|
||||||
|
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath, *OldDevicePath;
|
||||||
|
+
|
||||||
|
+ DevicePath = DevicePathFromHandle (Handle);
|
||||||
|
+
|
||||||
|
+ if (DevicePath == NULL) {
|
||||||
|
+ DEBUG ((
|
||||||
|
+ DEBUG_ERROR,
|
||||||
|
+ "%a: %s: handle %p: device path not found\n",
|
||||||
|
+ __func__,
|
||||||
|
+ ReportText,
|
||||||
|
+ Handle
|
||||||
|
+ ));
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ DevicePath = AppendDevicePathNode (
|
||||||
|
+ DevicePath,
|
||||||
|
+ &SerialNode.Header
|
||||||
|
+ );
|
||||||
|
+
|
||||||
|
+ OldDevicePath = DevicePath;
|
||||||
|
+ DevicePath = AppendDevicePathNode (
|
||||||
|
+ DevicePath,
|
||||||
|
+ &UartNode.Header
|
||||||
|
+ );
|
||||||
|
+ FreePool (OldDevicePath);
|
||||||
|
+
|
||||||
|
+ OldDevicePath = DevicePath;
|
||||||
|
+ DevicePath = AppendDevicePathNode (
|
||||||
|
+ DevicePath,
|
||||||
|
+ &TerminalNode.Header
|
||||||
|
+ );
|
||||||
|
+ FreePool (OldDevicePath);
|
||||||
|
+
|
||||||
|
+ Status = EfiBootManagerUpdateConsoleVariable (ConIn, DevicePath, NULL);
|
||||||
|
+ if (EFI_ERROR (Status)) {
|
||||||
|
+ DEBUG ((
|
||||||
|
+ DEBUG_ERROR,
|
||||||
|
+ "%a: %s: adding to ConIn: %r\n",
|
||||||
|
+ __func__,
|
||||||
|
+ ReportText,
|
||||||
|
+ Status
|
||||||
|
+ ));
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ Status = EfiBootManagerUpdateConsoleVariable (ConOut, DevicePath, NULL);
|
||||||
|
+ if (EFI_ERROR (Status)) {
|
||||||
|
+ DEBUG ((
|
||||||
|
+ DEBUG_ERROR,
|
||||||
|
+
|
||||||
|
+ "%a: %s: adding to ConOut: %r\n",
|
||||||
|
+ __func__,
|
||||||
|
+ ReportText,
|
||||||
|
+ Status
|
||||||
|
+ ));
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ Status = EfiBootManagerUpdateConsoleVariable (ErrOut, DevicePath, NULL);
|
||||||
|
+ if (EFI_ERROR (Status)) {
|
||||||
|
+ DEBUG ((
|
||||||
|
+ DEBUG_ERROR,
|
||||||
|
+ "%a: %s: adding to ErrOut: %r\n",
|
||||||
|
+ __func__,
|
||||||
|
+ ReportText,
|
||||||
|
+ Status
|
||||||
|
+ ));
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ FreePool (DevicePath);
|
||||||
|
+
|
||||||
|
+ DEBUG ((
|
||||||
|
+ DEBUG_VERBOSE,
|
||||||
|
+ "%a: %s: added to ConIn, ConOut and ErrOut\n",
|
||||||
|
+ __func__,
|
||||||
|
+ ReportText
|
||||||
|
+ ));
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
STATIC
|
||||||
|
VOID
|
||||||
|
PlatformRegisterFvBootOption (
|
||||||
|
@@ -932,6 +1098,12 @@ PlatformBootManagerBeforeConsole (
|
||||||
|
// instances on Virtio PCI RNG devices.
|
||||||
|
//
|
||||||
|
FilterAndProcess (&gEfiPciIoProtocolGuid, IsVirtioPciRng, Connect);
|
||||||
|
+
|
||||||
|
+ //
|
||||||
|
+ // Register Virtio serial devices as console.
|
||||||
|
+ //
|
||||||
|
+ FilterAndProcess (&gVirtioDeviceProtocolGuid, IsVirtioSerial, SetupVirtioSerial);
|
||||||
|
+ FilterAndProcess (&gEfiPciIoProtocolGuid, IsVirtioPciSerial, SetupVirtioSerial);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
59
edk2-ArmVirt-add-VirtioSerialDxe-to-ArmVirtQemu-builds.patch
Normal file
59
edk2-ArmVirt-add-VirtioSerialDxe-to-ArmVirtQemu-builds.patch
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
From 262a607fbc608c02fc3c2a87244d033932d564bb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
Date: Thu, 1 Jun 2023 13:57:10 +0200
|
||||||
|
Subject: [PATCH 01/12] ArmVirt: add VirtioSerialDxe to ArmVirtQemu builds
|
||||||
|
|
||||||
|
RH-Author: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
RH-MergeRequest: 39: ArmVirt: add VirtioSerialDxe to ArmVirtQemu builds
|
||||||
|
RH-Jira: RHEL-643
|
||||||
|
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
||||||
|
RH-Commit: [1/6] 03b627e1fae7851fa51e6fe67253ff1b64948d0e (kraxel/centos-edk2)
|
||||||
|
|
||||||
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
Acked-by: Ard Biesheuvel <ardb@kernel.org>
|
||||||
|
(cherry picked from commit 6925150febb3a76d8e40c19babcc578555ca78fe)
|
||||||
|
---
|
||||||
|
ArmVirtPkg/ArmVirtQemu.dsc | 1 +
|
||||||
|
ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc | 1 +
|
||||||
|
ArmVirtPkg/ArmVirtQemuKernel.dsc | 1 +
|
||||||
|
3 files changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
|
||||||
|
index b1deefc2fd..5df6a89578 100644
|
||||||
|
--- a/ArmVirtPkg/ArmVirtQemu.dsc
|
||||||
|
+++ b/ArmVirtPkg/ArmVirtQemu.dsc
|
||||||
|
@@ -453,6 +453,7 @@
|
||||||
|
OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
|
||||||
|
OvmfPkg/VirtioNetDxe/VirtioNet.inf
|
||||||
|
OvmfPkg/VirtioRngDxe/VirtioRng.inf
|
||||||
|
+ OvmfPkg/VirtioSerialDxe/VirtioSerial.inf
|
||||||
|
|
||||||
|
#
|
||||||
|
# FAT filesystem + GPT/MBR partitioning + UDF filesystem + virtio-fs
|
||||||
|
diff --git a/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc b/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc
|
||||||
|
index 4dbb77a6ca..00ec4dd186 100644
|
||||||
|
--- a/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc
|
||||||
|
+++ b/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc
|
||||||
|
@@ -96,6 +96,7 @@ READ_LOCK_STATUS = TRUE
|
||||||
|
INF OvmfPkg/VirtioNetDxe/VirtioNet.inf
|
||||||
|
INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
|
||||||
|
INF OvmfPkg/VirtioRngDxe/VirtioRng.inf
|
||||||
|
+ INF OvmfPkg/VirtioSerialDxe/VirtioSerial.inf
|
||||||
|
|
||||||
|
INF ShellPkg/Application/Shell/Shell.inf
|
||||||
|
|
||||||
|
diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc
|
||||||
|
index afebc46a04..76b7c128bb 100644
|
||||||
|
--- a/ArmVirtPkg/ArmVirtQemuKernel.dsc
|
||||||
|
+++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc
|
||||||
|
@@ -353,6 +353,7 @@
|
||||||
|
OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
|
||||||
|
OvmfPkg/VirtioNetDxe/VirtioNet.inf
|
||||||
|
OvmfPkg/VirtioRngDxe/VirtioRng.inf
|
||||||
|
+ OvmfPkg/VirtioSerialDxe/VirtioSerial.inf
|
||||||
|
|
||||||
|
#
|
||||||
|
# FAT filesystem + GPT/MBR partitioning + UDF filesystem + virtio-fs
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
37
edk2-OvmfPkg-MicrovmX64-enable-1G-pages.patch
Normal file
37
edk2-OvmfPkg-MicrovmX64-enable-1G-pages.patch
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
From db07792f9eb095a1f7570b23b1e9dad6edca17a5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
Date: Wed, 17 May 2023 12:24:49 +0200
|
||||||
|
Subject: [PATCH 12/12] OvmfPkg/MicrovmX64: enable 1G pages
|
||||||
|
|
||||||
|
RH-Author: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
RH-MergeRequest: 40: enable use of gigabyte pages
|
||||||
|
RH-Jira: RHEL-644
|
||||||
|
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
||||||
|
RH-Commit: [3/3] 369373082e4dd0be9a4f257e5be9c827cc7de3c5 (kraxel/centos-edk2)
|
||||||
|
|
||||||
|
Reduces the memory footprint and speeds up booting.
|
||||||
|
|
||||||
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
Acked-by: Ard Biesheuvel <ardb@kernel.org>
|
||||||
|
(cherry picked from commit 04c5b3023e49c35d291f41d2c39b4d12a62b8f9c)
|
||||||
|
---
|
||||||
|
OvmfPkg/Microvm/MicrovmX64.dsc | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/OvmfPkg/Microvm/MicrovmX64.dsc b/OvmfPkg/Microvm/MicrovmX64.dsc
|
||||||
|
index 49d1d7ef5c..cc8e3abc45 100644
|
||||||
|
--- a/OvmfPkg/Microvm/MicrovmX64.dsc
|
||||||
|
+++ b/OvmfPkg/Microvm/MicrovmX64.dsc
|
||||||
|
@@ -544,6 +544,9 @@
|
||||||
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|0x100
|
||||||
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|0x100
|
||||||
|
|
||||||
|
+ # use 1G pages
|
||||||
|
+ gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable|TRUE
|
||||||
|
+
|
||||||
|
#
|
||||||
|
# Network Pcds
|
||||||
|
#
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
37
edk2-OvmfPkg-OvmfPkgIa32X64-enable-1G-pages.patch
Normal file
37
edk2-OvmfPkg-OvmfPkgIa32X64-enable-1G-pages.patch
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
From 943b4994942d550bef98685d13ffb26d4b5dd665 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
Date: Wed, 17 May 2023 12:24:48 +0200
|
||||||
|
Subject: [PATCH 11/12] OvmfPkg/OvmfPkgIa32X64: enable 1G pages
|
||||||
|
|
||||||
|
RH-Author: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
RH-MergeRequest: 40: enable use of gigabyte pages
|
||||||
|
RH-Jira: RHEL-644
|
||||||
|
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
||||||
|
RH-Commit: [2/3] 7385647b30e5096b356a13085a8081de79c916f8 (kraxel/centos-edk2)
|
||||||
|
|
||||||
|
Reduces the memory footprint and speeds up booting.
|
||||||
|
|
||||||
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
Acked-by: Ard Biesheuvel <ardb@kernel.org>
|
||||||
|
(cherry picked from commit b63e17d746aa6bab2b1101711395725005e71a02)
|
||||||
|
---
|
||||||
|
OvmfPkg/OvmfPkgIa32X64.dsc | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
|
||||||
|
index a41bc32454..a6714cea91 100644
|
||||||
|
--- a/OvmfPkg/OvmfPkgIa32X64.dsc
|
||||||
|
+++ b/OvmfPkg/OvmfPkgIa32X64.dsc
|
||||||
|
@@ -557,6 +557,9 @@
|
||||||
|
# never lets the RAM below 4 GB exceed 2816 MB.
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xE0000000
|
||||||
|
|
||||||
|
+ # use 1G pages
|
||||||
|
+ gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable|TRUE
|
||||||
|
+
|
||||||
|
!if $(SOURCE_DEBUG_ENABLE) == TRUE
|
||||||
|
gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdDebugLoadImageMethod|0x2
|
||||||
|
!endif
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
57
edk2-OvmfPkg-PlatformInitLib-check-PcdUse1GPageTable.patch
Normal file
57
edk2-OvmfPkg-PlatformInitLib-check-PcdUse1GPageTable.patch
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
From f24768ae482651073db9050fdaad49afe930b127 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
Date: Wed, 17 May 2023 12:24:47 +0200
|
||||||
|
Subject: [PATCH 10/12] OvmfPkg/PlatformInitLib: check PcdUse1GPageTable
|
||||||
|
|
||||||
|
RH-Author: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
RH-MergeRequest: 40: enable use of gigabyte pages
|
||||||
|
RH-Jira: RHEL-644
|
||||||
|
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
||||||
|
RH-Commit: [1/3] 5d8b87d3b6a6b8af4d1a4aabedd8f69c512bf01c (kraxel/centos-edk2)
|
||||||
|
|
||||||
|
If PcdUse1GPageTable is not enabled restrict the physical address space
|
||||||
|
used to 1TB, to limit the amount of memory needed for identity mapping
|
||||||
|
page tables.
|
||||||
|
|
||||||
|
The same already happens in case the processor has no support for
|
||||||
|
gigabyte pages.
|
||||||
|
|
||||||
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
Acked-by: Ard Biesheuvel <ardb@kernel.org>
|
||||||
|
(cherry picked from commit d4d24001f78bcee965d8854fba6f08f48b4ec446)
|
||||||
|
---
|
||||||
|
OvmfPkg/Library/PlatformInitLib/MemDetect.c | 5 +++++
|
||||||
|
OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf | 1 +
|
||||||
|
2 files changed, 6 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/OvmfPkg/Library/PlatformInitLib/MemDetect.c b/OvmfPkg/Library/PlatformInitLib/MemDetect.c
|
||||||
|
index 0482d8906d..662e7e85bb 100644
|
||||||
|
--- a/OvmfPkg/Library/PlatformInitLib/MemDetect.c
|
||||||
|
+++ b/OvmfPkg/Library/PlatformInitLib/MemDetect.c
|
||||||
|
@@ -666,6 +666,11 @@ PlatformAddressWidthFromCpuid (
|
||||||
|
PhysBits = 40;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (!FixedPcdGetBool (PcdUse1GPageTable) && (PhysBits > 40)) {
|
||||||
|
+ DEBUG ((DEBUG_INFO, "%a: limit PhysBits to 40 (PcdUse1GPageTable is false)\n", __func__));
|
||||||
|
+ PhysBits = 40;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
PlatformInfoHob->PhysMemAddressWidth = PhysBits;
|
||||||
|
PlatformInfoHob->FirstNonAddress = LShiftU64 (1, PlatformInfoHob->PhysMemAddressWidth);
|
||||||
|
}
|
||||||
|
diff --git a/OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf b/OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf
|
||||||
|
index 86a82ad3e0..5a79d95b68 100644
|
||||||
|
--- a/OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf
|
||||||
|
+++ b/OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf
|
||||||
|
@@ -58,6 +58,7 @@
|
||||||
|
|
||||||
|
[Pcd]
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress
|
||||||
|
+ gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable
|
||||||
|
|
||||||
|
[FixedPcd]
|
||||||
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfWorkAreaBase
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
53
edk2-OvmfPkg-PlatformInitLib-limit-phys-bits-to-46.patch
Normal file
53
edk2-OvmfPkg-PlatformInitLib-limit-phys-bits-to-46.patch
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
From b1643b16a4a70ea576b5f90476fd9c59750eafe8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
Date: Thu, 1 Jun 2023 09:57:31 +0200
|
||||||
|
Subject: [PATCH 07/12] OvmfPkg/PlatformInitLib: limit phys-bits to 46.
|
||||||
|
|
||||||
|
RH-Author: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
RH-MergeRequest: 41: enable dynamic mmio window
|
||||||
|
RH-Bugzilla: 2174749
|
||||||
|
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
||||||
|
RH-Commit: [1/2] d08a95b72276cba504176b3837714db67122ed66 (kraxel/centos-edk2)
|
||||||
|
|
||||||
|
Older linux kernels have problems with phys-bits larger than 46,
|
||||||
|
ubuntu 18.04 (kernel 4.15) has been reported to be affected.
|
||||||
|
|
||||||
|
Reduce phys-bits limit from 47 to 46.
|
||||||
|
|
||||||
|
Reported-by: Fiona Ebner <f.ebner@proxmox.com>
|
||||||
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
(cherry picked from commit c1e853769046b322690ad336fdb98966757e7414)
|
||||||
|
---
|
||||||
|
OvmfPkg/Library/PlatformInitLib/MemDetect.c | 9 ++++++---
|
||||||
|
1 file changed, 6 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/OvmfPkg/Library/PlatformInitLib/MemDetect.c b/OvmfPkg/Library/PlatformInitLib/MemDetect.c
|
||||||
|
index 86700fc028..aab266399f 100644
|
||||||
|
--- a/OvmfPkg/Library/PlatformInitLib/MemDetect.c
|
||||||
|
+++ b/OvmfPkg/Library/PlatformInitLib/MemDetect.c
|
||||||
|
@@ -646,16 +646,19 @@ PlatformAddressWidthFromCpuid (
|
||||||
|
));
|
||||||
|
|
||||||
|
if (Valid) {
|
||||||
|
- if (PhysBits > 47) {
|
||||||
|
+ if (PhysBits > 46) {
|
||||||
|
/*
|
||||||
|
* Avoid 5-level paging altogether for now, which limits
|
||||||
|
* PhysBits to 48. Also avoid using address bit 48, due to sign
|
||||||
|
* extension we can't identity-map these addresses (and lots of
|
||||||
|
* places in edk2 assume we have everything identity-mapped).
|
||||||
|
* So the actual limit is 47.
|
||||||
|
+ *
|
||||||
|
+ * Also some older linux kernels apparently have problems handling
|
||||||
|
+ * phys-bits > 46 correctly, so use that as limit.
|
||||||
|
*/
|
||||||
|
- DEBUG ((DEBUG_INFO, "%a: limit PhysBits to 47 (avoid 5-level paging)\n", __func__));
|
||||||
|
- PhysBits = 47;
|
||||||
|
+ DEBUG ((DEBUG_INFO, "%a: limit PhysBits to 46 (avoid 5-level paging)\n", __func__));
|
||||||
|
+ PhysBits = 46;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Page1GSupport && (PhysBits > 40)) {
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
@ -0,0 +1,42 @@
|
|||||||
|
From 60a5604388fa73872d67e9ed46a29c7fd0e4fc32 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ard Biesheuvel <ardb@kernel.org>
|
||||||
|
Date: Tue, 27 Jun 2023 13:14:06 +0200
|
||||||
|
Subject: [PATCH 06/12] OvmfPkg/VirtioSerialDxe: Remove noisy debug print on
|
||||||
|
supported() call
|
||||||
|
|
||||||
|
RH-Author: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
RH-MergeRequest: 39: ArmVirt: add VirtioSerialDxe to ArmVirtQemu builds
|
||||||
|
RH-Jira: RHEL-643
|
||||||
|
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
||||||
|
RH-Commit: [6/6] 62b611c1d82f1b87cac2a07655ca37117d438989 (kraxel/centos-edk2)
|
||||||
|
|
||||||
|
The UEFI driver model invokes the supported() method on every driver
|
||||||
|
every time a connection attempt is made on any handle, and so doing an
|
||||||
|
unconditional DEBUG() print inside this method produced a lot of noise.
|
||||||
|
|
||||||
|
So let's drop this DEBUG() call from the VirtioSerial driver's
|
||||||
|
Supported() method.
|
||||||
|
|
||||||
|
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
|
||||||
|
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
(cherry picked from commit ea7a3015a2404e1358218463dd25df5ae7615352)
|
||||||
|
---
|
||||||
|
OvmfPkg/VirtioSerialDxe/VirtioSerial.c | 2 --
|
||||||
|
1 file changed, 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/OvmfPkg/VirtioSerialDxe/VirtioSerial.c b/OvmfPkg/VirtioSerialDxe/VirtioSerial.c
|
||||||
|
index bfb2b324ea..9e27a519f4 100644
|
||||||
|
--- a/OvmfPkg/VirtioSerialDxe/VirtioSerial.c
|
||||||
|
+++ b/OvmfPkg/VirtioSerialDxe/VirtioSerial.c
|
||||||
|
@@ -510,8 +510,6 @@ VirtioSerialDriverBindingSupported (
|
||||||
|
Status = EFI_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
- DEBUG ((DEBUG_INFO, "%a:%d: subsystem %d -> %r\n", __func__, __LINE__, VirtIo->SubSystemDeviceId, Status));
|
||||||
|
-
|
||||||
|
//
|
||||||
|
// We needed VirtIo access only transitorily, to see whether we support the
|
||||||
|
// device or not.
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
45
edk2-OvmfPkg-VirtioSerialDxe-use-TPL_NOTIFY.patch
Normal file
45
edk2-OvmfPkg-VirtioSerialDxe-use-TPL_NOTIFY.patch
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
From 2ab130462062bfcd66d3047eaa6947a151296a21 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
Date: Fri, 12 May 2023 16:23:06 +0200
|
||||||
|
Subject: [PATCH 05/12] OvmfPkg/VirtioSerialDxe: use TPL_NOTIFY
|
||||||
|
|
||||||
|
RH-Author: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
RH-MergeRequest: 39: ArmVirt: add VirtioSerialDxe to ArmVirtQemu builds
|
||||||
|
RH-Jira: RHEL-643
|
||||||
|
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
||||||
|
RH-Commit: [5/6] 08998538804a8d62903e44e716bcafd9674d208f (kraxel/centos-edk2)
|
||||||
|
|
||||||
|
Apparently TPL_CALLBACK is too low, code runs into an ASSERT
|
||||||
|
complaining the new TPL is lower than the old TPL.
|
||||||
|
|
||||||
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
(cherry picked from commit 4e5a804222415ec7b2bec90ea0300b8a9f60f131)
|
||||||
|
---
|
||||||
|
OvmfPkg/VirtioSerialDxe/VirtioSerialPort.c | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/OvmfPkg/VirtioSerialDxe/VirtioSerialPort.c b/OvmfPkg/VirtioSerialDxe/VirtioSerialPort.c
|
||||||
|
index 522b25e969..e4a58deff1 100644
|
||||||
|
--- a/OvmfPkg/VirtioSerialDxe/VirtioSerialPort.c
|
||||||
|
+++ b/OvmfPkg/VirtioSerialDxe/VirtioSerialPort.c
|
||||||
|
@@ -158,7 +158,7 @@ VirtioSerialIoWrite (
|
||||||
|
|
||||||
|
VirtioSerialRingClearTx (SerialIo->Dev, PortTx (SerialIo->PortId));
|
||||||
|
|
||||||
|
- OldTpl = gBS->RaiseTPL (TPL_CALLBACK);
|
||||||
|
+ OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
|
||||||
|
if (SerialIo->WriteOffset &&
|
||||||
|
(SerialIo->WriteOffset + *BufferSize > PORT_TX_BUFSIZE))
|
||||||
|
{
|
||||||
|
@@ -201,7 +201,7 @@ VirtioSerialIoRead (
|
||||||
|
goto NoData;
|
||||||
|
}
|
||||||
|
|
||||||
|
- OldTpl = gBS->RaiseTPL (TPL_CALLBACK);
|
||||||
|
+ OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
|
||||||
|
if (SerialIo->WriteOffset) {
|
||||||
|
DEBUG ((DEBUG_VERBOSE, "%a:%d: WriteFlush %d\n", __func__, __LINE__, SerialIo->WriteOffset));
|
||||||
|
VirtioSerialRingSendBuffer (
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
@ -0,0 +1,34 @@
|
|||||||
|
From e4fe4b80159b7df136f419da69251f45b62f36ec Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
Date: Thu, 29 Jun 2023 13:37:33 +0200
|
||||||
|
Subject: [PATCH 08/12] Revert "OvmfPkg: disable dynamic mmio window (rhel
|
||||||
|
only)"
|
||||||
|
|
||||||
|
RH-Author: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
RH-MergeRequest: 41: enable dynamic mmio window
|
||||||
|
RH-Bugzilla: 2174749
|
||||||
|
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
||||||
|
RH-Commit: [2/2] 10ace0e012602153f82fccee3c555be40b3c6753 (kraxel/centos-edk2)
|
||||||
|
|
||||||
|
This reverts commit 218d3b32592bffe5ec7317c4838d29e92b4b86f0.
|
||||||
|
---
|
||||||
|
OvmfPkg/Library/PlatformInitLib/MemDetect.c | 3 +--
|
||||||
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/OvmfPkg/Library/PlatformInitLib/MemDetect.c b/OvmfPkg/Library/PlatformInitLib/MemDetect.c
|
||||||
|
index aab266399f..0482d8906d 100644
|
||||||
|
--- a/OvmfPkg/Library/PlatformInitLib/MemDetect.c
|
||||||
|
+++ b/OvmfPkg/Library/PlatformInitLib/MemDetect.c
|
||||||
|
@@ -682,8 +682,7 @@ PlatformDynamicMmioWindow (
|
||||||
|
AddrSpace = LShiftU64 (1, PlatformInfoHob->PhysMemAddressWidth);
|
||||||
|
MmioSpace = LShiftU64 (1, PlatformInfoHob->PhysMemAddressWidth - 3);
|
||||||
|
|
||||||
|
- if (FALSE /* disable for RHEL-9.2, libvirt is not ready yet */ &&
|
||||||
|
- (PlatformInfoHob->PcdPciMmio64Size < MmioSpace) &&
|
||||||
|
+ if ((PlatformInfoHob->PcdPciMmio64Size < MmioSpace) &&
|
||||||
|
(PlatformInfoHob->PcdPciMmio64Base + MmioSpace < AddrSpace))
|
||||||
|
{
|
||||||
|
DEBUG ((DEBUG_INFO, "%a: using dynamic mmio window\n", __func__));
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
@ -0,0 +1,48 @@
|
|||||||
|
From a920227615c895522739bbbf3a5fb7f6a470de86 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
Date: Tue, 28 Feb 2023 15:47:00 +0100
|
||||||
|
Subject: [PATCH 09/12] UefiCpuPkg/MpInitLib: fix apic mode for cpu hotplug
|
||||||
|
|
||||||
|
RH-Author: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
RH-MergeRequest: 42: UefiCpuPkg/MpInitLib: fix apic mode for cpu hotplug
|
||||||
|
RH-Bugzilla: 2124143
|
||||||
|
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
||||||
|
RH-Commit: [1/1] 5168501c31541a57aaeb3b3bd7c3602205eb7cdf (kraxel/centos-edk2)
|
||||||
|
|
||||||
|
In case the number of CPUs can in increase beyond 255
|
||||||
|
due to CPU hotplug choose x2apic mode.
|
||||||
|
|
||||||
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
---
|
||||||
|
UefiCpuPkg/Library/MpInitLib/MpLib.c | 8 +++++++-
|
||||||
|
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c b/UefiCpuPkg/Library/MpInitLib/MpLib.c
|
||||||
|
index f1f2840714..79fd8fb04d 100644
|
||||||
|
--- a/UefiCpuPkg/Library/MpInitLib/MpLib.c
|
||||||
|
+++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c
|
||||||
|
@@ -526,7 +526,9 @@ CollectProcessorCount (
|
||||||
|
//
|
||||||
|
// Enable x2APIC mode if
|
||||||
|
// 1. Number of CPU is greater than 255; or
|
||||||
|
- // 2. There are any logical processors reporting an Initial APIC ID of 255 or greater.
|
||||||
|
+ // 2. The platform exposed the exact *boot* CPU count to us in advance, and
|
||||||
|
+ // more than 255 logical processors are possible later, with hotplug; or
|
||||||
|
+ // 3. There are any logical processors reporting an Initial APIC ID of 255 or greater.
|
||||||
|
//
|
||||||
|
X2Apic = FALSE;
|
||||||
|
if (CpuMpData->CpuCount > 255) {
|
||||||
|
@@ -534,6 +536,10 @@ CollectProcessorCount (
|
||||||
|
// If there are more than 255 processor found, force to enable X2APIC
|
||||||
|
//
|
||||||
|
X2Apic = TRUE;
|
||||||
|
+ } else if ((PcdGet32 (PcdCpuBootLogicalProcessorNumber) > 0) &&
|
||||||
|
+ (PcdGet32 (PcdCpuMaxLogicalProcessorNumber) > 255))
|
||||||
|
+ {
|
||||||
|
+ X2Apic = TRUE;
|
||||||
|
} else {
|
||||||
|
CpuInfoInHob = (CPU_INFO_IN_HOB *)(UINTN)CpuMpData->CpuInfoInHob;
|
||||||
|
for (Index = 0; Index < CpuMpData->CpuCount; Index++) {
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
48
edk2.spec
48
edk2.spec
@ -18,7 +18,7 @@ ExclusiveArch: x86_64 aarch64
|
|||||||
|
|
||||||
Name: edk2
|
Name: edk2
|
||||||
Version: %{GITDATE}
|
Version: %{GITDATE}
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
Summary: UEFI firmware for 64-bit virtual machines
|
Summary: UEFI firmware for 64-bit virtual machines
|
||||||
License: BSD-2-Clause-Patent and OpenSSL and MIT
|
License: BSD-2-Clause-Patent and OpenSSL and MIT
|
||||||
URL: http://www.tianocore.org
|
URL: http://www.tianocore.org
|
||||||
@ -77,6 +77,30 @@ Patch0026: 0026-CryptoPkg-OpensslLib-list-RHEL8-specific-OpenSSL-fil.patch
|
|||||||
Patch0027: 0027-OvmfPkg-disable-dynamic-mmio-window-rhel-only.patch
|
Patch0027: 0027-OvmfPkg-disable-dynamic-mmio-window-rhel-only.patch
|
||||||
Patch0028: 0028-ArmPkg-Disable-EFI_MEMORY_ATTRIBUTE_PROTOCOL-RH-only.patch
|
Patch0028: 0028-ArmPkg-Disable-EFI_MEMORY_ATTRIBUTE_PROTOCOL-RH-only.patch
|
||||||
Patch0029: 0029-OvmfPkg-PciHotPlugInitDxe-Do-not-reserve-IO-ports-by.patch
|
Patch0029: 0029-OvmfPkg-PciHotPlugInitDxe-Do-not-reserve-IO-ports-by.patch
|
||||||
|
# For RHEL-643 - add virtio serial support to armvirt
|
||||||
|
Patch30: edk2-ArmVirt-add-VirtioSerialDxe-to-ArmVirtQemu-builds.patch
|
||||||
|
# For RHEL-643 - add virtio serial support to armvirt
|
||||||
|
Patch31: edk2-ArmVirt-PlatformBootManagerLib-factor-out-IsVirtio.patch
|
||||||
|
# For RHEL-643 - add virtio serial support to armvirt
|
||||||
|
Patch32: edk2-ArmVirt-PlatformBootManagerLib-factor-out-IsVirtioPc.patch
|
||||||
|
# For RHEL-643 - add virtio serial support to armvirt
|
||||||
|
Patch33: edk2-ArmVirt-PlatformBootManagerLib-set-up-virtio-serial-.patch
|
||||||
|
# For RHEL-643 - add virtio serial support to armvirt
|
||||||
|
Patch34: edk2-OvmfPkg-VirtioSerialDxe-use-TPL_NOTIFY.patch
|
||||||
|
# For RHEL-643 - add virtio serial support to armvirt
|
||||||
|
Patch35: edk2-OvmfPkg-VirtioSerialDxe-Remove-noisy-debug-print-on-.patch
|
||||||
|
# For bz#2174749 - [edk2] re-enable dynamic mmio window
|
||||||
|
Patch36: edk2-OvmfPkg-PlatformInitLib-limit-phys-bits-to-46.patch
|
||||||
|
# For bz#2174749 - [edk2] re-enable dynamic mmio window
|
||||||
|
Patch37: edk2-Revert-OvmfPkg-disable-dynamic-mmio-window-rhel-only.patch
|
||||||
|
# For bz#2124143 - ovmf must consider max cpu count not boot cpu count for apic mode [rhel-9]
|
||||||
|
Patch38: edk2-UefiCpuPkg-MpInitLib-fix-apic-mode-for-cpu-hotplug.patch
|
||||||
|
# For RHEL-644 - enable gigabyte pages
|
||||||
|
Patch39: edk2-OvmfPkg-PlatformInitLib-check-PcdUse1GPageTable.patch
|
||||||
|
# For RHEL-644 - enable gigabyte pages
|
||||||
|
Patch40: edk2-OvmfPkg-OvmfPkgIa32X64-enable-1G-pages.patch
|
||||||
|
# For RHEL-644 - enable gigabyte pages
|
||||||
|
Patch41: edk2-OvmfPkg-MicrovmX64-enable-1G-pages.patch
|
||||||
|
|
||||||
|
|
||||||
# python3-devel and libuuid-devel are required for building tools.
|
# python3-devel and libuuid-devel are required for building tools.
|
||||||
@ -396,6 +420,28 @@ install -m 0644 \
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jul 10 2023 Miroslav Rezanina <mrezanin@redhat.com> - 20230524-2
|
||||||
|
- edk2-ArmVirt-add-VirtioSerialDxe-to-ArmVirtQemu-builds.patch [RHEL-643]
|
||||||
|
- edk2-ArmVirt-PlatformBootManagerLib-factor-out-IsVirtio.patch [RHEL-643]
|
||||||
|
- edk2-ArmVirt-PlatformBootManagerLib-factor-out-IsVirtioPc.patch [RHEL-643]
|
||||||
|
- edk2-ArmVirt-PlatformBootManagerLib-set-up-virtio-serial-.patch [RHEL-643]
|
||||||
|
- edk2-OvmfPkg-VirtioSerialDxe-use-TPL_NOTIFY.patch [RHEL-643]
|
||||||
|
- edk2-OvmfPkg-VirtioSerialDxe-Remove-noisy-debug-print-on-.patch [RHEL-643]
|
||||||
|
- edk2-OvmfPkg-PlatformInitLib-limit-phys-bits-to-46.patch [bz#2174749]
|
||||||
|
- edk2-Revert-OvmfPkg-disable-dynamic-mmio-window-rhel-only.patch [bz#2174749]
|
||||||
|
- edk2-UefiCpuPkg-MpInitLib-fix-apic-mode-for-cpu-hotplug.patch [bz#2124143]
|
||||||
|
- edk2-OvmfPkg-PlatformInitLib-check-PcdUse1GPageTable.patch [RHEL-644]
|
||||||
|
- edk2-OvmfPkg-OvmfPkgIa32X64-enable-1G-pages.patch [RHEL-644]
|
||||||
|
- edk2-OvmfPkg-MicrovmX64-enable-1G-pages.patch [RHEL-644]
|
||||||
|
- Resolves: RHEL-643
|
||||||
|
(add virtio serial support to armvirt)
|
||||||
|
- Resolves: bz#2174749
|
||||||
|
([edk2] re-enable dynamic mmio window)
|
||||||
|
- Resolves: bz#2124143
|
||||||
|
(ovmf must consider max cpu count not boot cpu count for apic mode [rhel-9])
|
||||||
|
- Resolves: RHEL-644
|
||||||
|
(enable gigabyte pages)
|
||||||
|
|
||||||
* Tue Jun 27 2023 Oliver Steffen <osteffen@redhat.com> - 20230524-1
|
* Tue Jun 27 2023 Oliver Steffen <osteffen@redhat.com> - 20230524-1
|
||||||
- Rebase to edk2-stable202305 tag [RHEL-585]
|
- Rebase to edk2-stable202305 tag [RHEL-585]
|
||||||
Resolves: RHEL-585
|
Resolves: RHEL-585
|
||||||
|
Loading…
Reference in New Issue
Block a user