From 13408a151e094243d83b9d9dc5a3488005e78950 Mon Sep 17 00:00:00 2001 From: MSVSphere Packaging Team Date: Fri, 29 Nov 2024 09:47:21 +0300 Subject: [PATCH] import seabios-1.16.3-6.el10 --- ...os-pciinit-don-t-misalign-large-BARs.patch | 59 +++++++++++++++++++ SPECS/seabios.spec | 9 ++- 2 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 SOURCES/seabios-pciinit-don-t-misalign-large-BARs.patch diff --git a/SOURCES/seabios-pciinit-don-t-misalign-large-BARs.patch b/SOURCES/seabios-pciinit-don-t-misalign-large-BARs.patch new file mode 100644 index 0000000..8a58990 --- /dev/null +++ b/SOURCES/seabios-pciinit-don-t-misalign-large-BARs.patch @@ -0,0 +1,59 @@ +From 5521f68fd19c268d31df8175d17eeac5f4e7b597 Mon Sep 17 00:00:00 2001 +From: Daniil Tatianin +Date: Thu, 11 Apr 2024 22:51:35 +0300 +Subject: [PATCH] pciinit: don't misalign large BARs +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +RH-Author: Gerd Hoffmann +RH-MergeRequest: 8: pciinit: don't misalign large BARs +RH-Jira: RHEL-67847 +RH-Acked-by: Oliver Steffen +RH-Acked-by: Stefano Garzarella +RH-Commit: [1/1] 308bfda29758ed7934c847cc45e25c4e67a1446e (kraxel.rh/centos-src-seabios) + +Previously we would unconditionally lower the alignment for large BARs +in case their alignment was greater than "pci_mem64_top >> 11", this +would make it impossible to use these devices by the kernel: + [ 13.821108] pci 0000:9c:00.0: can't claim BAR 1 [mem 0x66000000000-0x67fffffffff 64bit pref]: no compatible bridge window + [ 13.823492] pci 0000:9d:00.0: can't claim BAR 1 [mem 0x64000000000-0x65fffffffff 64bit pref]: no compatible bridge window + [ 13.824218] pci 0000:9e:00.0: can't claim BAR 1 [mem 0x62000000000-0x63fffffffff 64bit pref]: no compatible bridge window + [ 13.828322] pci 0000:8a:00.0: can't claim BAR 1 [mem 0x6e000000000-0x6ffffffffff 64bit pref]: no compatible bridge window + [ 13.830691] pci 0000:8b:00.0: can't claim BAR 1 [mem 0x6c000000000-0x6dfffffffff 64bit pref]: no compatible bridge window + [ 13.832218] pci 0000:8c:00.0: can't claim BAR 1 [mem 0x6a000000000-0x6bfffffffff 64bit pref]: no compatible bridge window + +Fix it by only overwriting the alignment in case it's actually greater +than the desired by the BAR window. + +Fixes: 96a8d130a8c ("be less conservative with the 64bit pci io window") +Signed-off-by: Daniil Tatianin +Reviewed-by: Gerd Hoffmann +Reviewed-by: Philippe Mathieu-Daudé +(cherry picked from commit e5f2e4c69643bc3cd385306a9e5d29e11578148c) +Resolves: RHEL-67847 +--- + src/fw/pciinit.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/fw/pciinit.c b/src/fw/pciinit.c +index 6b13cd5b..bb44dc29 100644 +--- a/src/fw/pciinit.c ++++ b/src/fw/pciinit.c +@@ -970,9 +970,11 @@ static int pci_bios_check_devices(struct pci_bus *busses) + int resource_optional = 0; + if (hotplug_support == HOTPLUG_PCIE) + resource_optional = pcie_cap && (type == PCI_REGION_TYPE_IO); ++ ++ u64 top_align = pci_mem64_top >> 11; + if (hotplug_support && pci_pad_mem64 && is64 +- && (type == PCI_REGION_TYPE_PREFMEM)) +- align = pci_mem64_top >> 11; ++ && (type == PCI_REGION_TYPE_PREFMEM) && (top_align > align)) ++ align = top_align; + if (align > sum && hotplug_support && !resource_optional) + sum = align; /* reserve min size for hot-plug */ + if (size > sum) { +-- +2.39.3 + diff --git a/SPECS/seabios.spec b/SPECS/seabios.spec index 8d10dab..f5915fb 100644 --- a/SPECS/seabios.spec +++ b/SPECS/seabios.spec @@ -1,6 +1,6 @@ Name: seabios Version: 1.16.3 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Open-source legacy BIOS implementation License: LGPL-3.0-only @@ -18,6 +18,8 @@ Source21: config.vga-bochs-display Patch1: 0001-add-hwerr_printf-function-for-threads.patch Patch2: 0002-display-error-message-for-blocksizes-512.patch +# For RHEL-67847 - amdgpu failed to initialize when multiple AMD MI210 GPUs assigned and firmware is seabios [rhel-10] +Patch3: seabios-pciinit-don-t-misalign-large-BARs.patch BuildRequires: make BuildRequires: gcc @@ -134,6 +136,11 @@ install -m 0644 binaries/vgabios*.bin $RPM_BUILD_ROOT%{_datadir}/seavgabios %{_datadir}/seavgabios/vgabios*.bin %changelog +* Tue Nov 26 2024 Miroslav Rezanina - 1.16.3-6 +- seabios-pciinit-don-t-misalign-large-BARs.patch [RHEL-67847] +- Resolves: RHEL-67847 + (amdgpu failed to initialize when multiple AMD MI210 GPUs assigned and firmware is seabios [rhel-10]) + * Tue Oct 29 2024 Troy Dawson - 1.16.3-5 - Bump release for October 2024 mass rebuild: Resolves: RHEL-64018