boot/edk2: bump to version edk2-stable202411
Sync edk2-platforms with the last commit merged at the edk2 release date (2024-11-22). See: https://github.com/tianocore/edk2/releases/tag/edk2-stable202411 Runtime tested with tests using EDK2 package: TestFwts, TestEdk2, TestIso9660Grub2EFI, TestIso9660Grub2Hybrid, TestGrubi386EFI, TestGrubX8664EFI, TestGrubAArch64EFI, TestGrubRiscV64EFI. Runtime tested with defconfig using EDK2 package: qemu_aarch64_sbsa_defconfig, qemu_riscv64_virt_efi_defconfig. Cc: Julien Olivain <ju.o@free.fr> Signed-off-by: Romain Naour <romain.naour@smile.fr> Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit is contained in:
committed by
Julien Olivain
parent
2ec27b763b
commit
0919d98e83
@@ -1,129 +0,0 @@
|
||||
From 921c78f57a16b00debd58899a48e7045015c374b Mon Sep 17 00:00:00 2001
|
||||
From: Ard Biesheuvel <ardb@kernel.org>
|
||||
Date: Mon, 17 Jun 2024 17:07:41 +0200
|
||||
Subject: [PATCH] OvmfPkg/QemuVideoDxe: add feature PCD to remap framebuffer
|
||||
W/C
|
||||
|
||||
Some platforms (such as SBSA-QEMU on recent builds of the emulator) only
|
||||
tolerate misaligned accesses to normal memory, and raise alignment
|
||||
faults on such accesses to device memory, which is the default for PCIe
|
||||
MMIO BARs.
|
||||
|
||||
When emulating a PCIe graphics controller, the framebuffer is typically
|
||||
exposed via a MMIO BAR, while the disposition of the region is closer to
|
||||
memory (no side effects on reads or writes, except for the changing
|
||||
picture on the screen; direct random access to any pixel in the image).
|
||||
|
||||
In order to permit the use of such controllers on platforms that only
|
||||
tolerate these types of accesses for normal memory, it is necessary to
|
||||
remap the memory. Use the DXE services to set the desired capabilities
|
||||
and attributes.
|
||||
|
||||
Hide this behavior under a feature PCD so only platforms that really
|
||||
need it can enable it. (OVMF on x86 has no need for this)
|
||||
|
||||
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
|
||||
Upstream: https://github.com/tianocore/edk2/commit/c1d1910be6e04a8b1a73090cf2881fb698947a6e
|
||||
Signed-off-by: Romain Naour <romain.naour@smile.fr>
|
||||
---
|
||||
OvmfPkg/OvmfPkg.dec | 5 +++++
|
||||
OvmfPkg/QemuVideoDxe/Gop.c | 19 +++++++++++++++++++
|
||||
OvmfPkg/QemuVideoDxe/Qemu.h | 2 +-
|
||||
OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf | 4 ++++
|
||||
4 files changed, 29 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/OvmfPkg/OvmfPkg.dec b/OvmfPkg/OvmfPkg.dec
|
||||
index 51be9a5959..2c40de8a13 100644
|
||||
--- a/OvmfPkg/OvmfPkg.dec
|
||||
+++ b/OvmfPkg/OvmfPkg.dec
|
||||
@@ -444,3 +444,8 @@
|
||||
|
||||
## This feature flag indicates the firmware build supports secure boot.
|
||||
gUefiOvmfPkgTokenSpaceGuid.PcdSecureBootSupported|FALSE|BOOLEAN|0x6d
|
||||
+
|
||||
+ ## Whether QemuVideoDxe should perform a EFI_MEMORY_WC remap of the PCI
|
||||
+ # framebuffer. This might be required on platforms that do not tolerate
|
||||
+ # misaligned accesses otherwise.
|
||||
+ gUefiOvmfPkgTokenSpaceGuid.PcdRemapFrameBufferWriteCombine|FALSE|BOOLEAN|0x75
|
||||
diff --git a/OvmfPkg/QemuVideoDxe/Gop.c b/OvmfPkg/QemuVideoDxe/Gop.c
|
||||
index b11eed7558..a29c025afd 100644
|
||||
--- a/OvmfPkg/QemuVideoDxe/Gop.c
|
||||
+++ b/OvmfPkg/QemuVideoDxe/Gop.c
|
||||
@@ -9,6 +9,8 @@
|
||||
|
||||
#include "Qemu.h"
|
||||
|
||||
+#include <Library/DxeServicesTableLib.h>
|
||||
+
|
||||
STATIC
|
||||
VOID
|
||||
QemuVideoCompleteModeInfo (
|
||||
@@ -54,6 +56,7 @@ QemuVideoCompleteModeData (
|
||||
EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;
|
||||
EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *FrameBufDesc;
|
||||
QEMU_VIDEO_MODE_DATA *ModeData;
|
||||
+ EFI_STATUS Status;
|
||||
|
||||
ModeData = &Private->ModeData[Mode->Mode];
|
||||
Info = Mode->Info;
|
||||
@@ -79,6 +82,22 @@ QemuVideoCompleteModeData (
|
||||
(UINT64)Mode->FrameBufferSize
|
||||
));
|
||||
|
||||
+ if (FeaturePcdGet (PcdRemapFrameBufferWriteCombine)) {
|
||||
+ Status = gDS->SetMemorySpaceCapabilities (
|
||||
+ FrameBufDesc->AddrRangeMin,
|
||||
+ FrameBufDesc->AddrLen,
|
||||
+ EFI_MEMORY_UC | EFI_MEMORY_WC | EFI_MEMORY_XP
|
||||
+ );
|
||||
+ ASSERT_EFI_ERROR (Status);
|
||||
+
|
||||
+ Status = gDS->SetMemorySpaceAttributes (
|
||||
+ FrameBufDesc->AddrRangeMin,
|
||||
+ FrameBufDesc->AddrLen,
|
||||
+ EFI_MEMORY_WC | EFI_MEMORY_XP
|
||||
+ );
|
||||
+ ASSERT_EFI_ERROR (Status);
|
||||
+ }
|
||||
+
|
||||
FreePool (FrameBufDesc);
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
diff --git a/OvmfPkg/QemuVideoDxe/Qemu.h b/OvmfPkg/QemuVideoDxe/Qemu.h
|
||||
index 57341a0bbf..a3da725fbf 100644
|
||||
--- a/OvmfPkg/QemuVideoDxe/Qemu.h
|
||||
+++ b/OvmfPkg/QemuVideoDxe/Qemu.h
|
||||
@@ -13,7 +13,7 @@
|
||||
#ifndef _QEMU_H_
|
||||
#define _QEMU_H_
|
||||
|
||||
-#include <Uefi.h>
|
||||
+#include <PiDxe.h>
|
||||
#include <Protocol/GraphicsOutput.h>
|
||||
#include <Protocol/PciIo.h>
|
||||
#include <Protocol/DriverSupportedEfiVersion.h>
|
||||
diff --git a/OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf b/OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf
|
||||
index 43a6e07faa..4c0870171b 100644
|
||||
--- a/OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf
|
||||
+++ b/OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf
|
||||
@@ -44,6 +44,7 @@
|
||||
|
||||
[LibraryClasses]
|
||||
BaseMemoryLib
|
||||
+ DxeServicesTableLib
|
||||
FrameBufferBltLib
|
||||
DebugLib
|
||||
DevicePathLib
|
||||
@@ -61,6 +62,9 @@
|
||||
gEfiDevicePathProtocolGuid # PROTOCOL BY_START
|
||||
gEfiPciIoProtocolGuid # PROTOCOL TO_START
|
||||
|
||||
+[FeaturePcd]
|
||||
+ gUefiOvmfPkgTokenSpaceGuid.PcdRemapFrameBufferWriteCombine
|
||||
+
|
||||
[Pcd]
|
||||
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId
|
||||
gUefiOvmfPkgTokenSpaceGuid.PcdVideoResolutionSource
|
||||
--
|
||||
2.45.0
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# Locally calculated
|
||||
sha256 4595b9d9d14c06bd03f575e4b7623574a4a874ef465652ecdc224099a5b14fc7 edk2-edk2-stable202405-git4.tar.gz
|
||||
sha256 e3e9ee3662335fac5df1f30f2027cf3c8d776bf2c52a77795a6d80766522e044 edk2-edk2-stable202411-git4.tar.gz
|
||||
sha256 50ce20c9cfdb0e19ee34fe0a51fc0afe961f743697b068359ab2f862b494df80 License.txt
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
EDK2_VERSION = edk2-stable202405
|
||||
EDK2_VERSION = edk2-stable202411
|
||||
EDK2_SITE = https://github.com/tianocore/edk2
|
||||
EDK2_SITE_METHOD = git
|
||||
EDK2_LICENSE = BSD-2-Clause-Patent
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# Locally calculated
|
||||
sha256 41fa720ac644ec0523c576ff28eba5e0308c9649111ce42f7d408b8d8b30eaf5 edk2-platforms-3f08401365d67e10924c774e6c3f64be56bc15b6.tar.gz
|
||||
sha256 6185750107616c263ed43157094e6fe2c1bfc1b55a2c9d98b322418784264e73 edk2-platforms-f10cc760cf3f7eb693822de1347e71173944e44a.tar.gz
|
||||
sha256 50ce20c9cfdb0e19ee34fe0a51fc0afe961f743697b068359ab2f862b494df80 License.txt
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
################################################################################
|
||||
|
||||
# Keep in sync with latest commit as of the release date for boot/edk2
|
||||
EDK2_PLATFORMS_VERSION = 3f08401365d67e10924c774e6c3f64be56bc15b6
|
||||
EDK2_PLATFORMS_VERSION = f10cc760cf3f7eb693822de1347e71173944e44a
|
||||
EDK2_PLATFORMS_SITE = $(call github,tianocore,edk2-platforms,$(EDK2_PLATFORMS_VERSION))
|
||||
EDK2_PLATFORMS_LICENSE = BSD-2-Clause-Patent
|
||||
EDK2_PLATFORMS_LICENSE_FILES = License.txt
|
||||
|
||||
Reference in New Issue
Block a user