diff --git a/.gitignore b/.gitignore index 2114b13..8d27ae2 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/seabios-1.7.5.tar.gz +SOURCES/seabios-1.9.1.tar.gz diff --git a/.seabios.metadata b/.seabios.metadata index d1c44ef..80981d9 100644 --- a/.seabios.metadata +++ b/.seabios.metadata @@ -1 +1 @@ -456e418482044b19fe397075ca093ebcae0200c5 SOURCES/seabios-1.7.5.tar.gz +f56011d5d942fc600ad9cd1cc38b9542b257f6bc SOURCES/seabios-1.9.1.tar.gz diff --git a/SOURCES/0002-allow-1TB-of-RAM.patch b/SOURCES/0002-allow-1TB-of-RAM.patch new file mode 100644 index 0000000..b16acf8 --- /dev/null +++ b/SOURCES/0002-allow-1TB-of-RAM.patch @@ -0,0 +1,67 @@ +From 4fee214c41b11b72b3427fda18e9eac1ee647746 Mon Sep 17 00:00:00 2001 +From: Andrea Arcangeli +Date: Tue, 8 Oct 2013 17:07:23 +0200 +Subject: allow >1TB of RAM + +RH-Author: Andrea Arcangeli +Message-id: <1381252043-13480-2-git-send-email-aarcange@redhat.com> +Patchwork-id: 54785 +O-Subject: [RHEL-7.0 seabios PATCH] allow >1TB of RAM +Bugzilla: 1016974 +RH-Acked-by: Paolo Bonzini +RH-Acked-by: Gleb Natapov +RH-Acked-by: Laszlo Ersek + +Receive bits 40-48 from qemu to setup e820 maps with more than 1TB of ram. + +Signed-off-by: Andrea Arcangeli +--- + src/cmos.h | 7 ++++--- + src/post.c | 7 ++++--- + 2 files changed, 8 insertions(+), 6 deletions(-) + +Signed-off-by: Miroslav Rezanina +--- + src/fw/paravirt.c | 7 ++++--- + src/hw/rtc.h | 7 ++++--- + 2 files changed, 8 insertions(+), 6 deletions(-) + +diff --git a/src/fw/paravirt.c b/src/fw/paravirt.c +index 3fae13a..0ad2bd6 100644 +--- a/src/fw/paravirt.c ++++ b/src/fw/paravirt.c +@@ -387,9 +387,10 @@ qemu_cfg_e820(void) + } + + // Check for memory over 4Gig in cmos +- u64 high = ((rtc_read(CMOS_MEM_HIGHMEM_LOW) << 16) +- | ((u32)rtc_read(CMOS_MEM_HIGHMEM_MID) << 24) +- | ((u64)rtc_read(CMOS_MEM_HIGHMEM_HIGH) << 32)); ++ u64 high = ((rtc_read(CMOS_MEM_HIGHMEM_16) << 16) ++ | ((u32)rtc_read(CMOS_MEM_HIGHMEM_24) << 24) ++ | ((u64)rtc_read(CMOS_MEM_HIGHMEM_32) << 32) ++ | ((u64)rtc_read(CMOS_MEM_HIGHMEM_40) << 40)); + RamSizeOver4G = high; + e820_add(0x100000000ull, high, E820_RAM); + dprintf(1, "RamSizeOver4G: 0x%016llx [cmos]\n", RamSizeOver4G); +diff --git a/src/hw/rtc.h b/src/hw/rtc.h +index 252e73a..c4369f8 100644 +--- a/src/hw/rtc.h ++++ b/src/hw/rtc.h +@@ -41,9 +41,10 @@ + #define CMOS_BIOS_BOOTFLAG1 0x38 + #define CMOS_BIOS_DISKTRANSFLAG 0x39 + #define CMOS_BIOS_BOOTFLAG2 0x3d +-#define CMOS_MEM_HIGHMEM_LOW 0x5b +-#define CMOS_MEM_HIGHMEM_MID 0x5c +-#define CMOS_MEM_HIGHMEM_HIGH 0x5d ++#define CMOS_MEM_HIGHMEM_16 0x5b ++#define CMOS_MEM_HIGHMEM_24 0x5c ++#define CMOS_MEM_HIGHMEM_32 0x5d ++#define CMOS_MEM_HIGHMEM_40 0x5e + #define CMOS_BIOS_SMP_COUNT 0x5f + + // RTC register flags +-- +1.8.3.1 + diff --git a/SOURCES/0003-smbios-set-bios-vendor-version-fields-to-Seabios-0.5.patch b/SOURCES/0003-smbios-set-bios-vendor-version-fields-to-Seabios-0.5.patch new file mode 100644 index 0000000..9d5656b --- /dev/null +++ b/SOURCES/0003-smbios-set-bios-vendor-version-fields-to-Seabios-0.5.patch @@ -0,0 +1,45 @@ +From bf361def4623ac1942512f255e5c1450970b5092 Mon Sep 17 00:00:00 2001 +From: Gerd Hoffmann +Date: Mon, 28 Jul 2014 12:14:11 +0200 +Subject: smbios: set bios vendor/version fields to Seabios/0.5.1 + +Message-id: <1406549651-26021-2-git-send-email-kraxel@redhat.com> +Patchwork-id: 60264 +O-Subject: [RHEL-7.1 seabios PATCH 1/1] smbios: set bios vendor/version fields to Seabios/0.5.1 +Bugzilla: 1123299 +RH-Acked-by: Miroslav Rezanina +RH-Acked-by: Laszlo Ersek +RH-Acked-by: Paolo Bonzini + +Mimic rhel6/seabios commit 1389643dad35a63362cd7d8357693f01175ef473. +Affects all 6.x and 7.0 machine types. + +Note: 7.1+ machine types will switch over to the new-style smbios +handling in qemu 2.1 + seabios 1.7.5 (and ovmf), where seabios will +fill in the actual version information instead of the bogous 0.5.1 +which we are using here for backward compatibility reasons. + +Signed-off-by: Gerd Hoffmann +Signed-off-by: Miroslav Rezanina +--- + src/fw/smbios.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/fw/smbios.c b/src/fw/smbios.c +index f3b5ad9..2770ff7 100644 +--- a/src/fw/smbios.c ++++ b/src/fw/smbios.c +@@ -174,8 +174,8 @@ smbios_init_type_0(void *start) + p->header.length = sizeof(struct smbios_type_0); + p->header.handle = 0; + +- load_str_field_with_default(0, vendor_str, BUILD_APPNAME); +- load_str_field_with_default(0, bios_version_str, BUILD_APPNAME); ++ load_str_field_with_default(0, vendor_str, "Seabios"); ++ load_str_field_with_default(0, bios_version_str, "0.5.1"); + + p->bios_starting_address_segment = 0xe800; + +-- +1.8.3.1 + diff --git a/SOURCES/0004-Workaround-for-a-win8.1-32-S4-resume-bug.patch b/SOURCES/0004-Workaround-for-a-win8.1-32-S4-resume-bug.patch new file mode 100644 index 0000000..1346099 --- /dev/null +++ b/SOURCES/0004-Workaround-for-a-win8.1-32-S4-resume-bug.patch @@ -0,0 +1,73 @@ +From aa1c26538deecfd820b7da9b3be09ebc20b7fef9 Mon Sep 17 00:00:00 2001 +From: Radim Krcmar +Date: Mon, 10 Mar 2014 15:14:27 +0100 +Subject: Workaround for a win8.1-32 S4 resume bug +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +RH-Author: Radim Krcmar +Message-id: <1394464467-23560-1-git-send-email-rkrcmar@redhat.com> +Patchwork-id: 58069 +O-Subject: [RHEL7.0 seabios PATCH] Workaround for a win8.1-32 S4 resume bug +Bugzilla: 1050775 +RH-Acked-by: Paolo Bonzini +RH-Acked-by: Gerd Hoffmann +RH-Acked-by: Laszlo Ersek + +bug: https://bugzilla.redhat.com/show_bug.cgi?id=1050775 +brew: http://brewweb.devel.redhat.com/brew/taskinfo?taskID=7176174 +This patch has no upstream equivalent. + +When a 32 bit version of windows 8.1 resumes from suspend, it writes 1 +into 0x72 in the early boot because it didn't expect a NULL pointer. +0x72 is lower offset byte of 0x1c interrupt entry, so we jump into a +middle of other function if this interrupt is triggered. + +Because 0x1c is only triggered from our handle_08, we detect if our +default value (function that does only iret) has its lower offset byte +overwritten and skip it in that case. +(Windows never sets own callback there, so we always detect this bug + correctly, as seabios doesn't use it either + Other sources shouldn't incorrectly overwrite it or use seabios code, + but it is quite ok even if the guest did this on purpose.) + +The reason Windows uses NULL pointer is still unknown, but this bug is +blocking WHQL certification, so we have to work around it in 7.0. + +Signed-off-by: Radim Krčmář +--- +(It is either a Windows bug that is going to be solved on their side, + or we will find a better solution after consulting what went wrong. + Happens on RHEL6 too.) + + src/clock.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +Signed-off-by: Miroslav Rezanina +--- + src/clock.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/src/clock.c b/src/clock.c +index e83e0f3..bca5cd7 100644 +--- a/src/clock.c ++++ b/src/clock.c +@@ -308,7 +308,13 @@ handle_08(void) + struct bregs br; + memset(&br, 0, sizeof(br)); + br.flags = F_IF; +- call16_int(0x1c, &br); ++ struct segoff_s isr1c = GET_IVT(0x1c); ++ // hardcoded address of entry_iret_official with lower segment byte ++ // overwritten by 1 ++ if (isr1c.seg == ((SEG_BIOS & ~0xff) | 0x1) && isr1c.offset == 0xff53) ++ dprintf(1, "Worked around win8.1-32 S4 resume bug\n"); ++ else ++ call16_int(0x1c, &br); + + pic_eoi1(); + } +-- +1.8.3.1 + diff --git a/SOURCES/config.base b/SOURCES/config.base index 0471a5e..f7ff3fa 100644 --- a/SOURCES/config.base +++ b/SOURCES/config.base @@ -4,4 +4,9 @@ CONFIG_LSI_SCSI=n CONFIG_USB_OHCI=n CONFIG_BOOTSPLASH=n CONFIG_MEGASAS=n +CONFIG_PVSCSI=n CONFIG_ROM_SIZE=128 +CONFIG_USB_OHCI=n +CONFIG_USB_XHCI=n +CONFIG_USB_UAS=n +CONFIG_TCGBIOS=n diff --git a/SOURCES/config.vga.virtio b/SOURCES/config.vga.virtio new file mode 100644 index 0000000..aa7a15b --- /dev/null +++ b/SOURCES/config.vga.virtio @@ -0,0 +1,6 @@ +CONFIG_BUILD_VGABIOS=y +CONFIG_VGA_BOCHS=y +CONFIG_VGA_PCI=y +CONFIG_OVERRIDE_PCI_ID=y +CONFIG_VGA_VID=0x1af4 +CONFIG_VGA_DID=0x1050 diff --git a/SOURCES/seabios-Place-rpm-version-info-into-version-banner.patch b/SOURCES/seabios-Place-rpm-version-info-into-version-banner.patch deleted file mode 100644 index 1e5f210..0000000 --- a/SOURCES/seabios-Place-rpm-version-info-into-version-banner.patch +++ /dev/null @@ -1,56 +0,0 @@ -From af34ffb86a1b8717e542edca97d7d96e6bd90f08 Mon Sep 17 00:00:00 2001 -From: Miroslav Rezanina -Date: Thu, 22 Aug 2013 12:06:40 +0200 -Subject: Place rpm version info into version banner - -RH-Author: Miroslav Rezanina -Message-id: <1377173200-17433-1-git-send-email-mrezanin@redhat.com> -Patchwork-id: 53692 -O-Subject: [RHEL7 seabios PATCH] Place rpm version info into version banner -Bugzilla: 894979 -RH-Acked-by: Laszlo Ersek -RH-Acked-by: Bandan Das -RH-Acked-by: Michal Novotny - -From: Miroslav Rezanina - -Bugzilla: 894979 -Brew: http://brewweb.devel.redhat.com/brew/taskinfo?taskID=6199274 - -This patch introduces two changes: - -1) Do not append date and hostname to version string. - -2) Use rpm version insted of git commit as the version string. - -Both changes are trivial so they are not posted in separate patches. - -Signed-off-by: Miroslav Rezanina ---- - redhat/seabios.spec.template | 5 ++--- - tools/buildversion.sh | 1 - - 2 files changed, 2 insertions(+), 4 deletions(-) - -Signed-off-by: Miroslav Rezanina - -Conflicts: - redhat/seabios.spec.template - We solved 1) in rebase commit ---- - scripts/buildversion.sh | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/scripts/buildversion.sh b/scripts/buildversion.sh -index e5ce96c..338b7f0 100755 ---- a/scripts/buildversion.sh -+++ b/scripts/buildversion.sh -@@ -11,7 +11,6 @@ elif [ -f .version ]; then - else - VERSION="?" - fi --VERSION="${VERSION}-`date +"%Y%m%d_%H%M%S"`-`hostname`" - echo "Version: ${VERSION}" - - # Build header file --- -1.9.3 - diff --git a/SOURCES/seabios-Workaround-for-a-win8.1-32-S4-resume-bug.patch b/SOURCES/seabios-Workaround-for-a-win8.1-32-S4-resume-bug.patch deleted file mode 100644 index 2d7deeb..0000000 --- a/SOURCES/seabios-Workaround-for-a-win8.1-32-S4-resume-bug.patch +++ /dev/null @@ -1,73 +0,0 @@ -From ce6fabfc8e1d11c70d83404c56464252c6eacac6 Mon Sep 17 00:00:00 2001 -From: Radim Krcmar -Date: Mon, 10 Mar 2014 15:14:27 +0100 -Subject: [PATCH 1/2] Workaround for a win8.1-32 S4 resume bug -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -RH-Author: Radim Krcmar -Message-id: <1394464467-23560-1-git-send-email-rkrcmar@redhat.com> -Patchwork-id: 58069 -O-Subject: [RHEL7.0 seabios PATCH] Workaround for a win8.1-32 S4 resume bug -Bugzilla: 1050775 -RH-Acked-by: Paolo Bonzini -RH-Acked-by: Gerd Hoffmann -RH-Acked-by: Laszlo Ersek - -bug: https://bugzilla.redhat.com/show_bug.cgi?id=1050775 -brew: http://brewweb.devel.redhat.com/brew/taskinfo?taskID=7176174 -This patch has no upstream equivalent. - -When a 32 bit version of windows 8.1 resumes from suspend, it writes 1 -into 0x72 in the early boot because it didn't expect a NULL pointer. -0x72 is lower offset byte of 0x1c interrupt entry, so we jump into a -middle of other function if this interrupt is triggered. - -Because 0x1c is only triggered from our handle_08, we detect if our -default value (function that does only iret) has its lower offset byte -overwritten and skip it in that case. -(Windows never sets own callback there, so we always detect this bug - correctly, as seabios doesn't use it either - Other sources shouldn't incorrectly overwrite it or use seabios code, - but it is quite ok even if the guest did this on purpose.) - -The reason Windows uses NULL pointer is still unknown, but this bug is -blocking WHQL certification, so we have to work around it in 7.0. - -Signed-off-by: Radim Krčmář ---- -(It is either a Windows bug that is going to be solved on their side, - or we will find a better solution after consulting what went wrong. - Happens on RHEL6 too.) - - src/clock.c | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -Signed-off-by: Miroslav Rezanina ---- - src/clock.c | 8 +++++++- - 1 files changed, 7 insertions(+), 1 deletions(-) - -diff --git a/src/clock.c b/src/clock.c -index 9ab0ac0..456849e 100644 ---- a/src/clock.c -+++ b/src/clock.c -@@ -289,7 +289,13 @@ handle_08(void) - struct bregs br; - memset(&br, 0, sizeof(br)); - br.flags = F_IF; -- call16_int(0x1c, &br); -+ struct segoff_s isr1c = GET_IVT(0x1c); -+ // hardcoded address of entry_iret_official with lower segment byte -+ // overwritten by 1 -+ if (isr1c.seg == ((SEG_BIOS & ~0xff) | 0x1) && isr1c.offset == 0xff53) -+ dprintf(1, "Worked around win8.1-32 S4 resume bug\n"); -+ else -+ call16_int(0x1c, &br); - - pic_eoi1(); - } --- -1.7.1 - diff --git a/SOURCES/seabios-allow-1TB-of-RAM.patch b/SOURCES/seabios-allow-1TB-of-RAM.patch deleted file mode 100644 index b069dc0..0000000 --- a/SOURCES/seabios-allow-1TB-of-RAM.patch +++ /dev/null @@ -1,67 +0,0 @@ -From f8461b3d0468a0ff2807ba1445513f3725ba350a Mon Sep 17 00:00:00 2001 -From: Andrea Arcangeli -Date: Tue, 8 Oct 2013 17:07:23 +0200 -Subject: allow >1TB of RAM - -RH-Author: Andrea Arcangeli -Message-id: <1381252043-13480-2-git-send-email-aarcange@redhat.com> -Patchwork-id: 54785 -O-Subject: [RHEL-7.0 seabios PATCH] allow >1TB of RAM -Bugzilla: 1016974 -RH-Acked-by: Paolo Bonzini -RH-Acked-by: Gleb Natapov -RH-Acked-by: Laszlo Ersek - -Receive bits 40-48 from qemu to setup e820 maps with more than 1TB of ram. - -Signed-off-by: Andrea Arcangeli ---- - src/cmos.h | 7 ++++--- - src/post.c | 7 ++++--- - 2 files changed, 8 insertions(+), 6 deletions(-) - -Signed-off-by: Miroslav Rezanina ---- - src/fw/paravirt.c | 7 ++++--- - src/hw/rtc.h | 7 ++++--- - 2 files changed, 8 insertions(+), 6 deletions(-) - -diff --git a/src/fw/paravirt.c b/src/fw/paravirt.c -index db22ae8..34fd0ac 100644 ---- a/src/fw/paravirt.c -+++ b/src/fw/paravirt.c -@@ -334,9 +334,10 @@ qemu_cfg_e820(void) - } - - // Check for memory over 4Gig in cmos -- u64 high = ((rtc_read(CMOS_MEM_HIGHMEM_LOW) << 16) -- | ((u32)rtc_read(CMOS_MEM_HIGHMEM_MID) << 24) -- | ((u64)rtc_read(CMOS_MEM_HIGHMEM_HIGH) << 32)); -+ u64 high = ((rtc_read(CMOS_MEM_HIGHMEM_16) << 16) -+ | ((u32)rtc_read(CMOS_MEM_HIGHMEM_24) << 24) -+ | ((u64)rtc_read(CMOS_MEM_HIGHMEM_32) << 32) -+ | ((u64)rtc_read(CMOS_MEM_HIGHMEM_40) << 40)); - RamSizeOver4G = high; - add_e820(0x100000000ull, high, E820_RAM); - dprintf(1, "RamSizeOver4G: 0x%016llx [cmos]\n", RamSizeOver4G); -diff --git a/src/hw/rtc.h b/src/hw/rtc.h -index 252e73a..c4369f8 100644 ---- a/src/hw/rtc.h -+++ b/src/hw/rtc.h -@@ -41,9 +41,10 @@ - #define CMOS_BIOS_BOOTFLAG1 0x38 - #define CMOS_BIOS_DISKTRANSFLAG 0x39 - #define CMOS_BIOS_BOOTFLAG2 0x3d --#define CMOS_MEM_HIGHMEM_LOW 0x5b --#define CMOS_MEM_HIGHMEM_MID 0x5c --#define CMOS_MEM_HIGHMEM_HIGH 0x5d -+#define CMOS_MEM_HIGHMEM_16 0x5b -+#define CMOS_MEM_HIGHMEM_24 0x5c -+#define CMOS_MEM_HIGHMEM_32 0x5d -+#define CMOS_MEM_HIGHMEM_40 0x5e - #define CMOS_BIOS_SMP_COUNT 0x5f - - // RTC register flags --- -1.9.3 - diff --git a/SOURCES/seabios-boot-Fix-boot-order-for-SCSI-target-lun-9.patch b/SOURCES/seabios-boot-Fix-boot-order-for-SCSI-target-lun-9.patch deleted file mode 100644 index d5688cd..0000000 --- a/SOURCES/seabios-boot-Fix-boot-order-for-SCSI-target-lun-9.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 4ca7fbed401c2aa39fea49859f4b89c839a36684 Mon Sep 17 00:00:00 2001 -From: Markus Armbruster -Date: Fri, 15 Aug 2014 15:05:26 +0200 -Subject: [PATCH 2/2] boot: Fix boot order for SCSI target, lun > 9 - -Message-id: <1408115126-2841-2-git-send-email-armbru@pond.sub.org> -Patchwork-id: 60594 -O-Subject: [PATCH RHEL-7.1 seabios 1/1] boot: Fix boot order for SCSI target, lun > 9 -Bugzilla: 1096560 -RH-Acked-by: Amos Kong -RH-Acked-by: Jeff Nelson -RH-Acked-by: Laszlo Ersek - -From: Markus Armbruster - -We identify devices by their Open Firmware device paths. The path -component for the logical unit on a bus is incorrect: -bootprio_find_scsi_device() and bootprio_find_usb() format target -(a.k.a. SCSI ID) and lun in decimal, while QEMU uses hexadecimal. -Bootorder list entries with target, lun > 9 aren't found (lucky case), -or attributed to the wrong logical unit (unlucky case). - -The relevant spec[*] agrees with QEMU (and OVMF, for that matter). -Change %d to %x. - -No actual impact on USB, because QEMU only uses LUN 0 there. - -RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1096560 - -[*] Open Firmware Recommended Practice: SCSI-3 Parallel Interface, -Version 1, Section 3.1 Physical Address Formats and Representations -http://www.openfirmware.org/1275/practice/spi/spi1_0.ps -IEEE Standard for Boot (Initialization Configuration) Firmware: Core -Requirements and Practices, IEEE Std 1275-1994, Annex E SCSI host -adapter package class, section E.2.1 Physical address formats and -representations - -Signed-off-by: Markus Armbruster -(cherry picked from commit 275672eb70efdf81c51b997d41a4409b404aa8f6) -Signed-off-by: Markus Armbruster ---- - src/boot.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -Signed-off-by: Miroslav Rezanina ---- - src/boot.c | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/boot.c b/src/boot.c -index 133e206..e60ed3e 100644 ---- a/src/boot.c -+++ b/src/boot.c -@@ -145,7 +145,7 @@ int bootprio_find_scsi_device(struct pci_device *pci, int target, int lun) - // Find scsi drive - for example: /pci@i0cf8/scsi@5/channel@0/disk@1,0 - char desc[256], *p; - p = build_pci_path(desc, sizeof(desc), "*", pci); -- snprintf(p, desc+sizeof(desc)-p, "/*@0/*@%d,%d", target, lun); -+ snprintf(p, desc+sizeof(desc)-p, "/*@0/*@%x,%x", target, lun); - return find_prio(desc); - } - -@@ -224,7 +224,7 @@ int bootprio_find_usb(struct usbdevice_s *usbdev, int lun) - char desc[256], *p; - p = build_pci_path(desc, sizeof(desc), "usb", usbdev->hub->cntl->pci); - p = build_usb_path(p, desc+sizeof(desc)-p, usbdev->hub); -- snprintf(p, desc+sizeof(desc)-p, "/storage@%x/*@0/*@0,%d" -+ snprintf(p, desc+sizeof(desc)-p, "/storage@%x/*@0/*@0,%x" - , usbdev->port+1, lun); - int ret = find_prio(desc); - if (ret >= 0) --- -1.7.1 - diff --git a/SOURCES/seabios-boot-switch-default-menu-key-to-ESC.patch b/SOURCES/seabios-boot-switch-default-menu-key-to-ESC.patch deleted file mode 100644 index cea5605..0000000 --- a/SOURCES/seabios-boot-switch-default-menu-key-to-ESC.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 24de64725e1000741dc9694464a3c4db4eaa0e36 Mon Sep 17 00:00:00 2001 -From: Paolo Bonzini -Date: Thu, 9 Apr 2015 13:17:21 +0200 -Subject: [PATCH 2/2] boot: switch default menu key to ESC - -Message-id: <1428585441-26367-3-git-send-email-pbonzini@redhat.com> -Patchwork-id: 64759 -O-Subject: [PATCH RHEL7.2 seabios 2/2] boot: switch default menu key to ESC -Bugzilla: 841638 -RH-Acked-by: Miroslav Rezanina -RH-Acked-by: Gerd Hoffmann -RH-Acked-by: Laszlo Ersek - -On some platforms, F12 may be hard to access; for example, on OS X -machines F9-F12 have been intercepted by the OS for a long time, and -on newer OS X releases function keys are basically gone for good. - -Which keys are and are not available depends on the client, not on -the server, but only function keys are usually trapped by terminals. -Hence, using ESC for the boot menu avoids the problems associated -with F12. - -Signed-off-by: Paolo Bonzini -(cherry picked from commit a1ac8861049a5ffefc26ca294293ad666954fcc8) -Signed-off-by: Miroslav Rezanina - -Conflicts: - docs/Runtime_config.md [not in RHEL]. ---- - src/boot.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/boot.c b/src/boot.c -index ac79724..a719349 100644 ---- a/src/boot.c -+++ b/src/boot.c -@@ -459,8 +459,8 @@ interactive_bootmenu(void) - ; - - char *bootmsg = romfile_loadfile("etc/boot-menu-message", NULL); -- int menukey = romfile_loadint("etc/boot-menu-key", 0x86); -- printf("%s", bootmsg ?: "\nPress F12 for boot menu.\n\n"); -+ int menukey = romfile_loadint("etc/boot-menu-key", 1); -+ printf("%s", bootmsg ?: "\nPress ESC for boot menu.\n\n"); - free(bootmsg); - - u32 menutime = romfile_loadint("etc/boot-menu-wait", DEFAULT_BOOTMENU_WAIT); --- -1.8.3.1 - diff --git a/SOURCES/seabios-boot.c-delay-exiting-boot-if-menu-key-is-ESC.patch b/SOURCES/seabios-boot.c-delay-exiting-boot-if-menu-key-is-ESC.patch deleted file mode 100644 index 7c22a4f..0000000 --- a/SOURCES/seabios-boot.c-delay-exiting-boot-if-menu-key-is-ESC.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 268461b7509f5d5a6b9b6d37ee8178966a3ff855 Mon Sep 17 00:00:00 2001 -From: Paolo Bonzini -Date: Thu, 9 Apr 2015 13:17:20 +0200 -Subject: [PATCH 1/2] boot.c: delay exiting boot if menu key is ESC - -Message-id: <1428585441-26367-2-git-send-email-pbonzini@redhat.com> -Patchwork-id: 64758 -O-Subject: [PATCH RHEL7.2 seabios 1/2] boot.c: delay exiting boot if menu key is ESC -Bugzilla: 841638 -RH-Acked-by: Miroslav Rezanina -RH-Acked-by: Gerd Hoffmann -RH-Acked-by: Laszlo Ersek - -If the menu key is ESC, do not restart boot unless -1.5 seconds have passed. Otherwise users (trained by years of -repeatedly hitting keys to enter the BIOS) will end up hitting ESC -multiple times and immediately booting the primary boot device. - -Suggested-by: Matt DeVillier -Signed-off-by: Paolo Bonzini -(cherry picked from commit 80aae26c9ef060bde15aebd84d0cc79a978706a9) -Signed-off-by: Miroslav Rezanina ---- - src/boot.c | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/src/boot.c b/src/boot.c -index e60ed3e..ac79724 100644 ---- a/src/boot.c -+++ b/src/boot.c -@@ -486,9 +486,15 @@ interactive_bootmenu(void) - , strtcpy(desc, pos->description, ARRAY_SIZE(desc))); - } - -- // Get key press -+ // Get key press. If the menu key is ESC, do not restart boot unless -+ // 1.5 seconds have passed. Otherwise users (trained by years of -+ // repeatedly hitting keys to enter the BIOS) will end up hitting ESC -+ // multiple times and immediately booting the primary boot device. -+ int esc_accepted_time = irqtimer_calc(menukey == 1 ? 1500 : 0); - for (;;) { - scan_code = get_keystroke(1000); -+ if (scan_code == 1 && !irqtimer_check(esc_accepted_time)) -+ continue; - if (scan_code >= 1 && scan_code <= maxmenu+1) - break; - } --- -1.8.3.1 - diff --git a/SOURCES/seabios-bootorder-Update-extra-pci-root-buses-bootorder-form.patch b/SOURCES/seabios-bootorder-Update-extra-pci-root-buses-bootorder-form.patch deleted file mode 100644 index 6614e9e..0000000 --- a/SOURCES/seabios-bootorder-Update-extra-pci-root-buses-bootorder-form.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 1522cd13558aa821de7435b291d47009907f3466 Mon Sep 17 00:00:00 2001 -From: Marcel Apfelbaum -Date: Tue, 14 Jul 2015 15:23:13 -0400 -Subject: [PATCH] bootorder: Update "extra pci root" buses bootorder format to - match qemu - -Message-id: <1436887393-17958-1-git-send-email-marcel@redhat.com> -Patchwork-id: 67011 -O-Subject: [RHEL-7.2 seabios PATCH] bootorder: Update "extra pci root" buses bootorder format to match qemu -Bugzilla: 1242968 -RH-Acked-by: Miroslav Rezanina -RH-Acked-by: Gerd Hoffmann -RH-Acked-by: Laszlo Ersek - -From: Kevin O'Connor - -The QEMU code will use the prefix "/pci@i0cf8,%x/" for devices on -extra pci root buses, so change the SeaBIOS code to match that. - -Signed-off-by: Kevin O'Connor -(cherry picked from commit 1202f03583f3b8b46e2de6b82630054d53e24801) -Signed-off-by: Marcel Apfelbaum -Signed-off-by: ymankad ---- - src/boot.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/boot.c b/src/boot.c -index a719349..05cb3e4 100644 ---- a/src/boot.c -+++ b/src/boot.c -@@ -111,9 +111,9 @@ build_pci_path(char *buf, int max, const char *devname, struct pci_device *pci) - if (pci->parent) { - p = build_pci_path(p, max, "pci-bridge", pci->parent); - } else { -- if (pci->rootbus) -- p += snprintf(p, max, "/pci-root@%x", pci->rootbus); - p += snprintf(p, buf+max-p, "%s", FW_PCI_DOMAIN); -+ if (pci->rootbus) -+ p += snprintf(p, buf+max-p, ",%x", pci->rootbus); - } - - int dev = pci_bdf_to_dev(pci->bdf), fn = pci_bdf_to_fn(pci->bdf); --- -2.4.0 - diff --git a/SOURCES/seabios-fw-pci-add-Q35-S3-support.patch b/SOURCES/seabios-fw-pci-add-Q35-S3-support.patch new file mode 100644 index 0000000..902e4ef --- /dev/null +++ b/SOURCES/seabios-fw-pci-add-Q35-S3-support.patch @@ -0,0 +1,167 @@ +From 64181e8938e1ebb31375bfb5372190a2f3f1ad60 Mon Sep 17 00:00:00 2001 +From: Marcel Apfelbaum +Date: Thu, 31 Mar 2016 16:19:03 +0200 +Subject: [PATCH] fw/pci: add Q35 S3 support + +RH-Author: Marcel Apfelbaum +Message-id: <1459441143-24378-1-git-send-email-marcel@redhat.com> +Patchwork-id: 69965 +O-Subject: [RHEL-7.3 seabios PATCH] fw/pci: add Q35 S3 support +Bugzilla: 1185721 +RH-Acked-by: Paolo Bonzini +RH-Acked-by: Laszlo Ersek +RH-Acked-by: Gerd Hoffmann + +Following the i440fx example, save the LPC, SMBUS and PCIEXBAR bdfs +between OS sleeps and use them to re-configure the +corresponding registers. + +Tested-by: Gal Hammer +Reviewed-by: Laszlo Ersek +Signed-off-by: Marcel Apfelbaum +(cherry picked from commit dce99e01b6bfc51175bdf32612fd4f2738e5c3c8) +Signed-off-by: Marcel Apfelbaum +Signed-off-by: Miroslav Rezanina +--- + src/fw/pciinit.c | 73 +++++++++++++++++++++++++++++++++++++++++++------------- + 1 file changed, 56 insertions(+), 17 deletions(-) + +diff --git a/src/fw/pciinit.c b/src/fw/pciinit.c +index c31c2fa..7896600 100644 +--- a/src/fw/pciinit.c ++++ b/src/fw/pciinit.c +@@ -149,6 +149,22 @@ static void piix_isa_bridge_setup(struct pci_device *pci, void *arg) + dprintf(1, "PIIX3/PIIX4 init: elcr=%02x %02x\n", elcr[0], elcr[1]); + } + ++static void mch_isa_lpc_setup(u16 bdf) ++{ ++ /* pm io base */ ++ pci_config_writel(bdf, ICH9_LPC_PMBASE, ++ acpi_pm_base | ICH9_LPC_PMBASE_RTE); ++ ++ /* acpi enable, SCI: IRQ9 000b = irq9*/ ++ pci_config_writeb(bdf, ICH9_LPC_ACPI_CTRL, ICH9_LPC_ACPI_CTRL_ACPI_EN); ++ ++ /* set root complex register block BAR */ ++ pci_config_writel(bdf, ICH9_LPC_RCBA, ++ ICH9_LPC_RCBA_ADDR | ICH9_LPC_RCBA_EN); ++} ++ ++static int ICH9LpcBDF = -1; ++ + /* ICH9 LPC PCI to ISA bridge */ + /* PCI_VENDOR_ID_INTEL && PCI_DEVICE_ID_INTEL_ICH9_LPC */ + static void mch_isa_bridge_setup(struct pci_device *dev, void *arg) +@@ -176,16 +192,10 @@ static void mch_isa_bridge_setup(struct pci_device *dev, void *arg) + outb(elcr[1], ICH9_LPC_PORT_ELCR2); + dprintf(1, "Q35 LPC init: elcr=%02x %02x\n", elcr[0], elcr[1]); + +- /* pm io base */ +- pci_config_writel(bdf, ICH9_LPC_PMBASE, +- acpi_pm_base | ICH9_LPC_PMBASE_RTE); ++ ICH9LpcBDF = bdf; + +- /* acpi enable, SCI: IRQ9 000b = irq9*/ +- pci_config_writeb(bdf, ICH9_LPC_ACPI_CTRL, ICH9_LPC_ACPI_CTRL_ACPI_EN); ++ mch_isa_lpc_setup(bdf); + +- /* set root complex register block BAR */ +- pci_config_writel(bdf, ICH9_LPC_RCBA, +- ICH9_LPC_RCBA_ADDR | ICH9_LPC_RCBA_EN); + e820_add(ICH9_LPC_RCBA_ADDR, 16*1024, E820_RESERVED); + + acpi_pm1a_cnt = acpi_pm_base + 0x04; +@@ -244,11 +254,8 @@ static void piix4_pm_setup(struct pci_device *pci, void *arg) + pmtimer_setup(acpi_pm_base + 0x08); + } + +-/* ICH9 SMBUS */ +-/* PCI_VENDOR_ID_INTEL && PCI_DEVICE_ID_INTEL_ICH9_SMBUS */ +-static void ich9_smbus_setup(struct pci_device *dev, void *arg) ++static void ich9_smbus_enable(u16 bdf) + { +- u16 bdf = dev->bdf; + /* map smbus into io space */ + pci_config_writel(bdf, ICH9_SMB_SMB_BASE, + (acpi_pm_base + 0x100) | PCI_BASE_ADDRESS_SPACE_IO); +@@ -257,6 +264,17 @@ static void ich9_smbus_setup(struct pci_device *dev, void *arg) + pci_config_writeb(bdf, ICH9_SMB_HOSTC, ICH9_SMB_HOSTC_HST_EN); + } + ++static int ICH9SmbusBDF = -1; ++ ++/* ICH9 SMBUS */ ++/* PCI_VENDOR_ID_INTEL && PCI_DEVICE_ID_INTEL_ICH9_SMBUS */ ++static void ich9_smbus_setup(struct pci_device *dev, void *arg) ++{ ++ ICH9SmbusBDF = dev->bdf; ++ ++ ich9_smbus_enable(dev->bdf); ++} ++ + static const struct pci_device_id pci_device_tbl[] = { + /* PIIX3/PIIX4 PCI to ISA bridge */ + PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371SB_0, +@@ -293,6 +311,9 @@ static const struct pci_device_id pci_device_tbl[] = { + PCI_DEVICE_END, + }; + ++static int MCHMmcfgBDF = -1; ++static void mch_mmconfig_setup(u16 bdf); ++ + void pci_resume(void) + { + if (!CONFIG_QEMU) { +@@ -302,6 +323,18 @@ void pci_resume(void) + if (PiixPmBDF >= 0) { + piix4_pm_config_setup(PiixPmBDF); + } ++ ++ if (ICH9LpcBDF >= 0) { ++ mch_isa_lpc_setup(ICH9LpcBDF); ++ } ++ ++ if (ICH9SmbusBDF >= 0) { ++ ich9_smbus_enable(ICH9SmbusBDF); ++ } ++ ++ if(MCHMmcfgBDF >= 0) { ++ mch_mmconfig_setup(MCHMmcfgBDF); ++ } + } + + static void pci_bios_init_device(struct pci_device *pci) +@@ -388,18 +421,24 @@ static void i440fx_mem_addr_setup(struct pci_device *dev, void *arg) + pci_slot_get_irq = piix_pci_slot_get_irq; + } + +-static void mch_mem_addr_setup(struct pci_device *dev, void *arg) ++static void mch_mmconfig_setup(u16 bdf) + { + u64 addr = Q35_HOST_BRIDGE_PCIEXBAR_ADDR; +- u32 size = Q35_HOST_BRIDGE_PCIEXBAR_SIZE; +- +- /* setup mmconfig */ +- u16 bdf = dev->bdf; + u32 upper = addr >> 32; + u32 lower = (addr & 0xffffffff) | Q35_HOST_BRIDGE_PCIEXBAREN; + pci_config_writel(bdf, Q35_HOST_BRIDGE_PCIEXBAR, 0); + pci_config_writel(bdf, Q35_HOST_BRIDGE_PCIEXBAR + 4, upper); + pci_config_writel(bdf, Q35_HOST_BRIDGE_PCIEXBAR, lower); ++} ++ ++static void mch_mem_addr_setup(struct pci_device *dev, void *arg) ++{ ++ u64 addr = Q35_HOST_BRIDGE_PCIEXBAR_ADDR; ++ u32 size = Q35_HOST_BRIDGE_PCIEXBAR_SIZE; ++ ++ /* setup mmconfig */ ++ MCHMmcfgBDF = dev->bdf; ++ mch_mmconfig_setup(dev->bdf); + e820_add(addr, size, E820_RESERVED); + + /* setup pci i/o window (above mmconfig) */ +-- +1.8.3.1 + diff --git a/SOURCES/seabios-fw-pci-map-memory-and-IO-regions-for-multiple-pci-ro.patch b/SOURCES/seabios-fw-pci-map-memory-and-IO-regions-for-multiple-pci-ro.patch deleted file mode 100644 index f6d217e..0000000 --- a/SOURCES/seabios-fw-pci-map-memory-and-IO-regions-for-multiple-pci-ro.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 6a0ca65b28bdc8a4ddde752602cc36d4b825464a Mon Sep 17 00:00:00 2001 -From: Marcel Apfelbaum -Date: Wed, 24 Jun 2015 13:45:13 +0200 -Subject: [PATCH 2/2] fw/pci: map memory and IO regions for multiple pci root - buses - -Message-id: <1435153513-25431-3-git-send-email-marcel@redhat.com> -Patchwork-id: 66383 -O-Subject: [RHEL-7.2 seabios PATCH 2/2] fw/pci: map memory and IO regions for multiple pci root buses -Bugzilla: 1235381 -RH-Acked-by: Miroslav Rezanina -RH-Acked-by: Gerd Hoffmann -RH-Acked-by: Laszlo Ersek - -For resource sizing and mapping purposes treat devices on extra root -buses as if they are on the default root bus (bus 0). - -Signed-off-by: Kevin O'Connor -Signed-off-by: Marcel Apfelbaum -Signed-off-by: Gerd Hoffmann -(cherry picked from commit 0fe4c9ee7af5f6bb3a1fcbf1d39116a894600c90) -Signed-off-by: Miroslav Rezanina ---- - src/fw/pciinit.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/src/fw/pciinit.c b/src/fw/pciinit.c -index b2fd659..0ce7325 100644 ---- a/src/fw/pciinit.c -+++ b/src/fw/pciinit.c -@@ -655,6 +655,11 @@ static int pci_bios_check_devices(struct pci_bus *busses) - busses[pci->secondary_bus].bus_dev = pci; - - struct pci_bus *bus = &busses[pci_bdf_to_bus(pci->bdf)]; -+ if (!bus->bus_dev) -+ /* -+ * Resources for all root busses go in busses[0] -+ */ -+ bus = &busses[0]; - int i; - for (i = 0; i < PCI_NUM_REGIONS; i++) { - if ((pci->class == PCI_CLASS_BRIDGE_PCI) && -@@ -685,6 +690,11 @@ static int pci_bios_check_devices(struct pci_bus *busses) - if (!s->bus_dev) - continue; - struct pci_bus *parent = &busses[pci_bdf_to_bus(s->bus_dev->bdf)]; -+ if (!parent->bus_dev) -+ /* -+ * Resources for all root busses go in busses[0] -+ */ -+ parent = &busses[0]; - int type; - u8 shpc_cap = pci_find_capability(s->bus_dev, PCI_CAP_ID_SHPC); - for (type = 0; type < PCI_REGION_TYPE_COUNT; type++) { --- -1.8.3.1 - diff --git a/SOURCES/seabios-fw-pci-scan-all-buses-if-extraroots-romfile-is-prese.patch b/SOURCES/seabios-fw-pci-scan-all-buses-if-extraroots-romfile-is-prese.patch deleted file mode 100644 index 13e0352..0000000 --- a/SOURCES/seabios-fw-pci-scan-all-buses-if-extraroots-romfile-is-prese.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 25940705b84d4e1148789f018738a2cfeec74ab6 Mon Sep 17 00:00:00 2001 -From: Marcel Apfelbaum -Date: Wed, 24 Jun 2015 13:45:12 +0200 -Subject: [PATCH 1/2] fw/pci: scan all buses if extraroots romfile is present - -Message-id: <1435153513-25431-2-git-send-email-marcel@redhat.com> -Patchwork-id: 66382 -O-Subject: [RHEL-7.2 seabios PATCH 1/2] fw/pci: scan all buses if extraroots romfile is present -Bugzilla: 1235381 -RH-Acked-by: Miroslav Rezanina -RH-Acked-by: Gerd Hoffmann -RH-Acked-by: Laszlo Ersek - -From: Marcel Apfelbaum - -If there are extra primary root buses, scanning the bus's 0 -subtree is not enough. Scan all the range. - -Signed-off-by: Marcel Apfelbaum -Signed-off-by: Gerd Hoffmann -(cherry picked from commit 5cc7eece39721f20b417770374a4112c454be801) -Signed-off-by: Miroslav Rezanina ---- - src/fw/pciinit.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/src/fw/pciinit.c b/src/fw/pciinit.c -index 2e6382f..b2fd659 100644 ---- a/src/fw/pciinit.c -+++ b/src/fw/pciinit.c -@@ -498,8 +498,17 @@ pci_bios_init_bus_rec(int bus, u8 *pci_bus) - static void - pci_bios_init_bus(void) - { -+ u8 extraroots = romfile_loadint("etc/extra-pci-roots", 0); - u8 pci_bus = 0; -+ - pci_bios_init_bus_rec(0 /* host bus */, &pci_bus); -+ -+ if (extraroots) { -+ while (pci_bus < 0xff) { -+ pci_bus++; -+ pci_bios_init_bus_rec(pci_bus, &pci_bus); -+ } -+ } - } - - --- -1.8.3.1 - diff --git a/SOURCES/seabios-pci-don-t-map-virtio-1.0-storage-devices-above-4G.patch b/SOURCES/seabios-pci-don-t-map-virtio-1.0-storage-devices-above-4G.patch new file mode 100644 index 0000000..1497d8d --- /dev/null +++ b/SOURCES/seabios-pci-don-t-map-virtio-1.0-storage-devices-above-4G.patch @@ -0,0 +1,57 @@ +From 01549028733315a513b1b5fcc1951fd271e8a531 Mon Sep 17 00:00:00 2001 +From: Marcel Apfelbaum +Date: Tue, 13 Sep 2016 13:20:45 +0200 +Subject: [PATCH] pci: don't map virtio 1.0 storage devices above 4G + +RH-Author: Marcel Apfelbaum +Message-id: <1473772845-913-1-git-send-email-marcel@redhat.com> +Patchwork-id: 72292 +O-Subject: [RHEL-7.3 seabios PATCH V2] pci: don't map virtio 1.0 storage devices above 4G +Bugzilla: 1373154 +RH-Acked-by: Maxime Coquelin +RH-Acked-by: Gerd Hoffmann +RH-Acked-by: Laszlo Ersek +RH-Acked-by: Michael S. Tsirkin + +v1->v2: + - add the note to the commit message (Gerd) + +BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1373154 +Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=11741451 +Upstream: Fixed upstream by commit: 0e21548b15 (virtio: pci cfg access) +Tests: Checked the virtio BARs are placed in the 32-bit range and + the guest boots successfully. + +Otherwise SeaBIOS can't access virtio's modern BAR. + +Note: It works in the master branch but can't be merged easily +into 1.9 branch, so use this as an interim solution +until we'll rebase to 1.10. + +Signed-off-by: Marcel Apfelbaum +Signed-off-by: Miroslav Rezanina +--- + src/fw/pciinit.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/src/fw/pciinit.c b/src/fw/pciinit.c +index 7896600..4ff1262 100644 +--- a/src/fw/pciinit.c ++++ b/src/fw/pciinit.c +@@ -650,6 +650,13 @@ static void pci_region_migrate_64bit_entries(struct pci_region *from, + continue; + if (entry->dev->class == PCI_CLASS_SERIAL_USB) + continue; ++ if (entry->dev->vendor == PCI_VENDOR_ID_REDHAT_QUMRANET && ++ (entry->dev->device == PCI_DEVICE_ID_VIRTIO_BLK_09 || ++ entry->dev->device == PCI_DEVICE_ID_VIRTIO_BLK_10 || ++ entry->dev->device == PCI_DEVICE_ID_VIRTIO_SCSI_09 || ++ entry->dev->device == PCI_DEVICE_ID_VIRTIO_SCSI_10)) ++ continue; ++ + // Move from source list to destination list. + hlist_del(&entry->node); + hlist_add(&entry->node, last); +-- +1.8.3.1 + diff --git a/SOURCES/seabios-redhat-reserve-more-memory-on-fseg.patch b/SOURCES/seabios-redhat-reserve-more-memory-on-fseg.patch new file mode 100644 index 0000000..03cad29 --- /dev/null +++ b/SOURCES/seabios-redhat-reserve-more-memory-on-fseg.patch @@ -0,0 +1,43 @@ +From 0561b82b0470679505d62f49eec83adb01eec0ab Mon Sep 17 00:00:00 2001 +From: Gerd Hoffmann +Date: Tue, 19 Apr 2016 11:27:50 +0200 +Subject: [PATCH 1/2] redhat: reserve more memory on fseg + +RH-Author: Gerd Hoffmann +Message-id: <1461065271-22039-2-git-send-email-kraxel@redhat.com> +Patchwork-id: 70213 +O-Subject: [RHEL-7.1 seabios PATCH 1/2] redhat: reserve more memory on fseg +Bugzilla: 1327060 +RH-Acked-by: Miroslav Rezanina +RH-Acked-by: Marcel Apfelbaum +RH-Acked-by: Laszlo Ersek + +seabios 1.7.5 has about 8k free space in fseg. + +configure 1.9.1 to keep the same amout space in fseg, so the amout of +disks we are able to handle stays roughly the same. ahci + scsi are +slightly below the 1.7.5 numbers but stay above the documented limits. +virtio-block numbers are higher than the 1.7.5 numbers. + +Signed-off-by: Gerd Hoffmann +Signed-off-by: Miroslav Rezanina +--- + scripts/layoutrom.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/scripts/layoutrom.py b/scripts/layoutrom.py +index b976fb0..f1cee6b 100755 +--- a/scripts/layoutrom.py ++++ b/scripts/layoutrom.py +@@ -62,7 +62,7 @@ BUILD_BIOS_SIZE = 0x10000 + BUILD_ROM_START = 0xc0000 + BUILD_LOWRAM_END = 0xa0000 + # Space to reserve in f-segment for dynamic allocations +-BUILD_MIN_BIOSTABLE = 2048 ++BUILD_MIN_BIOSTABLE = 8192 + + # Layout the 16bit code. This ensures sections with fixed offset + # requirements are placed in the correct location. It also places the +-- +1.8.3.1 + diff --git a/SOURCES/seabios-smbios-set-bios-vendor-version-fields-to-Seabios-0.5.patch b/SOURCES/seabios-smbios-set-bios-vendor-version-fields-to-Seabios-0.5.patch deleted file mode 100644 index f5bf3f0..0000000 --- a/SOURCES/seabios-smbios-set-bios-vendor-version-fields-to-Seabios-0.5.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 1141076a607c566707186d5e6e317d79b16b2661 Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Mon, 28 Jul 2014 12:14:11 +0200 -Subject: [PATCH] smbios: set bios vendor/version fields to Seabios/0.5.1 - -Message-id: <1406549651-26021-2-git-send-email-kraxel@redhat.com> -Patchwork-id: 60264 -O-Subject: [RHEL-7.1 seabios PATCH 1/1] smbios: set bios vendor/version fields to Seabios/0.5.1 -Bugzilla: 1123299 -RH-Acked-by: Miroslav Rezanina -RH-Acked-by: Laszlo Ersek -RH-Acked-by: Paolo Bonzini - -Mimic rhel6/seabios commit 1389643dad35a63362cd7d8357693f01175ef473. -Affects all 6.x and 7.0 machine types. - -Note: 7.1+ machine types will switch over to the new-style smbios -handling in qemu 2.1 + seabios 1.7.5 (and ovmf), where seabios will -fill in the actual version information instead of the bogous 0.5.1 -which we are using here for backward compatibility reasons. - -Signed-off-by: Gerd Hoffmann -Signed-off-by: Miroslav Rezanina ---- - src/fw/smbios.c | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/fw/smbios.c b/src/fw/smbios.c -index dba0541..465b9ee 100644 ---- a/src/fw/smbios.c -+++ b/src/fw/smbios.c -@@ -174,8 +174,8 @@ smbios_init_type_0(void *start) - p->header.length = sizeof(struct smbios_type_0); - p->header.handle = 0; - -- load_str_field_with_default(0, vendor_str, BUILD_APPNAME); -- load_str_field_with_default(0, bios_version_str, BUILD_APPNAME); -+ load_str_field_with_default(0, vendor_str, "Seabios"); -+ load_str_field_with_default(0, bios_version_str, "0.5.1"); - - p->bios_starting_address_segment = 0xe800; - --- -1.7.1 - diff --git a/SPECS/seabios.spec b/SPECS/seabios.spec index 1a9d475..ebf33a7 100644 --- a/SPECS/seabios.spec +++ b/SPECS/seabios.spec @@ -1,6 +1,6 @@ Name: seabios -Version: 1.7.5 -Release: 11%{?dist} +Version: 1.9.1 +Release: 5%{?dist} Summary: Open-source legacy BIOS implementation Group: Applications/Emulators @@ -8,11 +8,7 @@ License: LGPLv3 URL: http://www.coreboot.org/SeaBIOS -# No source releases of seabios stable. To generate: -# git clone git://git.seabios.org/seabios.git && cd seabios -# git archive --output seabios-1.7.2.2.tar.gz --prefix seabios-1.7.2.2/ rel-1.7.2.2 -#Source0: http://code.coreboot.org/p/seabios/downloads/get/%{name}-%{version}.tar.gz -Source0: seabios-%{version}.tar.gz +Source0: http://code.coreboot.org/p/seabios/downloads/get/%{name}-%{version}.tar.gz Source10: config.vga.cirrus Source11: config.vga.isavga @@ -21,27 +17,18 @@ Source13: config.vga.stdvga Source14: config.vga.vmware Source15: config.base Source16: config.base-256k - - -Patch0002: seabios-Place-rpm-version-info-into-version-banner.patch -Patch0003: seabios-allow-1TB-of-RAM.patch -# For bz#1123299 - smbios table 0 vendor string should be Seabios (for rhel6 compatibility) [7.1+7.0.z] -Patch4: seabios-smbios-set-bios-vendor-version-fields-to-Seabios-0.5.patch -# For bz#1050775 - [whql]KVM internal error. Suberror: 1 when win8.1-32 guest run HCK jobs -Patch5: seabios-Workaround-for-a-win8.1-32-S4-resume-bug.patch -# For bz#1096560 - fail to assign correct order for the boot device in seabios as we specified the bootindex in qemu-kvm cli(under the same virtio-scsi-pci) -Patch6: seabios-boot-Fix-boot-order-for-SCSI-target-lun-9.patch -# For bz#841638 - Provide a platform agnostic approach to invoking the BIOS, boot menu, or other BIOS functions -Patch7: seabios-boot.c-delay-exiting-boot-if-menu-key-is-ESC.patch -# For bz#841638 - Provide a platform agnostic approach to invoking the BIOS, boot menu, or other BIOS functions -Patch8: seabios-boot-switch-default-menu-key-to-ESC.patch -# For bz#1235381 - RFE: configure guest NUMA node locality for guest PCI devices -Patch9: seabios-fw-pci-scan-all-buses-if-extraroots-romfile-is-prese.patch -# For bz#1235381 - RFE: configure guest NUMA node locality for guest PCI devices -Patch10: seabios-fw-pci-map-memory-and-IO-regions-for-multiple-pci-ro.patch -# For bz#1242968 - pci: support booting of devices behind PXB -Patch11: seabios-bootorder-Update-extra-pci-root-buses-bootorder-form.patch - +Source17: config.vga.virtio + + +Patch0002: 0002-allow-1TB-of-RAM.patch +Patch0003: 0003-smbios-set-bios-vendor-version-fields-to-Seabios-0.5.patch +Patch0004: 0004-Workaround-for-a-win8.1-32-S4-resume-bug.patch +# For bz#1185721 - win7 guest (boot with q35) show dark screen after do S3 +Patch5: seabios-fw-pci-add-Q35-S3-support.patch +# For bz#1327060 - [Seabios]Limited boot number supported for SCSI/SATA +Patch6: seabios-redhat-reserve-more-memory-on-fseg.patch +# For bz#1373154 - Guest fails boot up with ivshmem-plain and virtio-pci device +Patch7: seabios-pci-don-t-map-virtio-1.0-storage-devices-above-4G.patch BuildRequires: python iasl ExclusiveArch: x86_64 %{power64} @@ -94,17 +81,12 @@ SeaVGABIOS is an open-source VGABIOS implementation. %patch0002 -p1 %patch0003 -p1 -%patch4 -p1 +%patch0004 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 -%patch8 -p1 -%patch9 -p1 -%patch10 -p1 -%patch11 -p1 # Store version to be used -echo "%{name}-%{version}-%release" > .version %build %ifarch x86_64 @@ -115,13 +97,14 @@ build_bios() { make clean distclean cp $1 .config echo "CONFIG_DEBUG_LEVEL=%{debug_level}" >> .config - make oldnoconfig V=1 + make oldnoconfig V=1 EXTRAVERSION="-%release" - make V=1 $4 + make V=1 $4 EXTRAVERSION="-%release" cp out/$2 binaries/$3 } + # seabios 128k build_bios %{SOURCE15} bios.bin bios.bin @@ -129,7 +112,7 @@ build_bios %{SOURCE15} bios.bin bios.bin build_bios %{SOURCE16} bios.bin bios-256k.bin # seavgabios -for config in %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14}; do +for config in %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} %{SOURCE17}; do name=${config#*config.vga.} build_bios ${config} vgabios.bin vgabios-${name}.bin out/vgabios.bin done @@ -143,7 +126,7 @@ install -m 0644 binaries/vgabios*.bin $RPM_BUILD_ROOT%{_datadir}/seavgabios %files -%doc COPYING COPYING.LESSER README TODO +%doc COPYING COPYING.LESSER README %files bin @@ -156,6 +139,32 @@ install -m 0644 binaries/vgabios*.bin $RPM_BUILD_ROOT%{_datadir}/seavgabios %endif %changelog +* Thu Sep 15 2016 Miroslav Rezanina - 1.9.1-5.el7 +- seabios-pci-don-t-map-virtio-1.0-storage-devices-above-4G.patch [bz#1373154] +- Resolves: bz#1373154 + (Guest fails boot up with ivshmem-plain and virtio-pci device) + +* Wed May 11 2016 Miroslav Rezanina - 1.9.1-4.el7 +- seabios-Build-vgabios-virtio.bin.patch [bz#1327001] +- Resolves: bz#1327001 + (vgabios-virtio.bin should be included in seavgabios-bin package) + +* Tue Apr 26 2016 Miroslav Rezanina - 1.9.1-3.el7 +- seabios-redhat-reserve-more-memory-on-fseg.patch [bz#1327060] +- seabios-redhat-turn-off-some-config-options.patch [bz#1327060] +- Resolves: bz#1327060 + ([Seabios]Limited boot number supported for SCSI/SATA) + +* Wed Apr 06 2016 Miroslav Rezanina - 1.9.1-2.el7 +- seabios-fw-pci-add-Q35-S3-support.patch [bz#1185721] +- Resolves: bz#1185721 + (win7 guest (boot with q35) show dark screen after do S3) + +* Tue Feb 16 2016 Miroslav Rezanina - 1.9.1-1.el7 +- Rebase to 1.9.1 [bz#1257052] +- Resolves: bz#1257052 + (rebase seabios to 1.9) + * Wed Jul 15 2015 Yash Mankad - 1.7.5-11.el7 - seabios-bootorder-Update-extra-pci-root-buses-bootorder-form.patch [bz#1242968] - Resolves: bz#1242968 @@ -178,10 +187,6 @@ install -m 0644 binaries/vgabios*.bin $RPM_BUILD_ROOT%{_datadir}/seavgabios - Resolves: bz#1182634 (Remove CONFIG_VGA_ALLOCATE_EXTRA_STACK) -* Wed Jan 14 2015 jblazek@redhat.com - 1.7.5-7 -- rebuilt with rpm-4.11.1-25.el7 -- Resolves: bz#1163924 - * Thu Nov 20 2014 Miroslav Rezanina - 1.7.5-6.el7 - seabios-Extend-ExclusiveArch-to-power64-architectures.patch [bz#1163924] - Resolves: bz#1163924 @@ -193,7 +198,7 @@ install -m 0644 binaries/vgabios*.bin $RPM_BUILD_ROOT%{_datadir}/seavgabios - Resolves: bz#1096560 (fail to assign correct order for the boot device in seabios as we specified the bootindex in qemu-kvm cli(under the same virtio-scsi-pci)) -* Wed Aug 13 2014 Miroslav Rezanina - 1.7.5-4.el7 +* Wed Aug 13 2014 Miroslav Rezanina - 1.7.5-4.el7 - seabios-smbios-set-bios-vendor-version-fields-to-Seabios-0.5.patch [bz#1123299] - Resolves: bz#1123299 (smbios table 0 vendor string should be Seabios (for rhel6 compatibility) [7.1+7.0.z])