diff --git a/.gitignore b/.gitignore index 2e008ad..045b843 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ seabios-0.6.0.tar.gz /seabios-1.7.3.2.tar.gz /seabios-1.7.4.tar.gz /seabios-1.7.5.tar.gz +/seabios-1.7.5.1.tar.gz diff --git a/0001-hw-pci-reserve-IO-and-mem-for-pci-express-downstream.patch b/0001-hw-pci-reserve-IO-and-mem-for-pci-express-downstream.patch deleted file mode 100644 index 6e169cc..0000000 --- a/0001-hw-pci-reserve-IO-and-mem-for-pci-express-downstream.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 3aa31d7d6375303fc88438021aad485f50bb1e39 Mon Sep 17 00:00:00 2001 -Message-Id: <3aa31d7d6375303fc88438021aad485f50bb1e39.1404919343.git.crobinso@redhat.com> -From: Marcel Apfelbaum -Date: Mon, 23 Jun 2014 18:29:51 +0300 -Subject: [PATCH] hw/pci: reserve IO and mem for pci express downstream ports - with no devices attached - -Commit c6e298e1f12e0f4ca02b6da5e42919ae055f6830 - hw/pci: reserve IO and mem for pci-2-pci bridges with no devices attached - -introduced support for hot-plugging devices behind pci-2-pci bridges. -Extend hotplug support also for pci express downstream ports. - -Signed-off-by: Marcel Apfelbaum -Signed-off-by: Gerd Hoffmann ---- - src/fw/pciinit.c | 34 ++++++++++++++++++++++++++++++++-- - 1 file changed, 32 insertions(+), 2 deletions(-) - -diff --git a/src/fw/pciinit.c b/src/fw/pciinit.c -index 0ad548f..fd5dfb9 100644 ---- a/src/fw/pciinit.c -+++ b/src/fw/pciinit.c -@@ -636,6 +636,36 @@ pci_region_create_entry(struct pci_bus *bus, struct pci_device *dev, - return entry; - } - -+static int pci_bus_hotplug_support(struct pci_bus *bus) -+{ -+ u8 pcie_cap = pci_find_capability(bus->bus_dev, PCI_CAP_ID_EXP); -+ u8 shpc_cap; -+ -+ if (pcie_cap) { -+ u16 pcie_flags = pci_config_readw(bus->bus_dev->bdf, -+ pcie_cap + PCI_EXP_FLAGS); -+ u8 port_type = ((pcie_flags & PCI_EXP_FLAGS_TYPE) >> -+ (__builtin_ffs(PCI_EXP_FLAGS_TYPE) - 1)); -+ u8 downstream_port = (port_type == PCI_EXP_TYPE_DOWNSTREAM) || -+ (port_type == PCI_EXP_TYPE_ROOT_PORT); -+ /* -+ * PCI Express SPEC, 7.8.2: -+ * Slot Implemented – When Set, this bit indicates that the Link -+ * HwInit associated with this Port is connected to a slot (as -+ * compared to being connected to a system-integrated device or -+ * being disabled). -+ * This bit is valid for Downstream Ports. This bit is undefined -+ * for Upstream Ports. -+ */ -+ u16 slot_implemented = pcie_flags & PCI_EXP_FLAGS_SLOT; -+ -+ return downstream_port && slot_implemented; -+ } -+ -+ shpc_cap = pci_find_capability(bus->bus_dev, PCI_CAP_ID_SHPC); -+ return !!shpc_cap; -+} -+ - static int pci_bios_check_devices(struct pci_bus *busses) - { - dprintf(1, "PCI: check devices\n"); -@@ -678,7 +708,7 @@ static int pci_bios_check_devices(struct pci_bus *busses) - continue; - struct pci_bus *parent = &busses[pci_bdf_to_bus(s->bus_dev->bdf)]; - int type; -- u8 shpc_cap = pci_find_capability(s->bus_dev, PCI_CAP_ID_SHPC); -+ int hotplug_support = pci_bus_hotplug_support(s); - for (type = 0; type < PCI_REGION_TYPE_COUNT; type++) { - u64 align = (type == PCI_REGION_TYPE_IO) ? - PCI_BRIDGE_IO_MIN : PCI_BRIDGE_MEM_MIN; -@@ -687,7 +717,7 @@ static int pci_bios_check_devices(struct pci_bus *busses) - if (pci_region_align(&s->r[type]) > align) - align = pci_region_align(&s->r[type]); - u64 sum = pci_region_sum(&s->r[type]); -- if (!sum && shpc_cap) -+ if (!sum && hotplug_support) - sum = align; /* reserve min size for hot-plug */ - u64 size = ALIGN(sum, align); - int is64 = pci_bios_bridge_region_is64(&s->r[type], --- -1.9.3 - diff --git a/seabios.spec b/seabios.spec index ba0b6b8..fcd9731 100644 --- a/seabios.spec +++ b/seabios.spec @@ -1,6 +1,6 @@ Name: seabios -Version: 1.7.5 -Release: 3%{?dist} +Version: 1.7.5.1 +Release: 1%{?dist} Summary: Open-source legacy BIOS implementation Group: Applications/Emulators @@ -19,9 +19,6 @@ Source16: config.coreboot Source17: config.seabios-128k Source18: config.seabios-256k -# Fix PCI-e hotplug (bz #1115598) -Patch0001: 0001-hw-pci-reserve-IO-and-mem-for-pci-express-downstream.patch - BuildRequires: python iasl BuildRequires: binutils-x86_64-linux-gnu gcc-x86_64-linux-gnu @@ -74,9 +71,6 @@ SeaVGABIOS is an open-source VGABIOS implementation. %prep %setup -q -# Fix PCI-e hotplug (bz #1115598) -%patch0001 -p1 - # Makefile changes version to include date and buildhost sed -i 's,VERSION=%{version}.*,VERSION=%{version},g' Makefile @@ -143,6 +137,9 @@ install -m 0644 binaries/vgabios*.bin $RPM_BUILD_ROOT%{_datadir}/seavgabios %changelog +* Sat Nov 15 2014 Cole Robinson - 1.7.5.1-1 +- Update to seabios-1.7.5.1 + * Wed Jul 09 2014 Cole Robinson - 1.7.5-3 - Fix PCI-e hotplug (bz #1115598) diff --git a/sources b/sources index b37b534..d779e12 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -3f1e17485ca327b245ae5938d9aa02d9 seabios-1.7.5.tar.gz +723593be9c0622682a949219f2806745 seabios-1.7.5.1.tar.gz