diff --git a/.gitignore b/.gitignore
index 1164a2d..13e5caa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,3 +22,4 @@ seabios-0.6.0.tar.gz
 /seabios-1.10.1.tar.gz
 /seabios-1.10.2.tar.gz
 /seabios-1.11.0.tar.gz
+/seabios-1.11.1.tar.gz
diff --git a/0001-Workaround-for-a-win8.1-32-S4-resume-bug.patch b/0001-Workaround-for-a-win8.1-32-S4-resume-bug.patch
new file mode 100644
index 0000000..a61d140
--- /dev/null
+++ b/0001-Workaround-for-a-win8.1-32-S4-resume-bug.patch
@@ -0,0 +1,74 @@
+From 0c1e0d59ceb3c4c8909d7a7b6e62d19c7ad81bef Mon Sep 17 00:00:00 2001
+From: Radim Krcmar <rkrcmar@redhat.com>
+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 <rkrcmar@redhat.com>
+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 <pbonzini@redhat.com>
+RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com>
+RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
+
+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ář <rkrcmar@redhat.com>
+---
+(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 <mrezanin@redhat.com>
+(cherry picked from commit aa1c26538deecfd820b7da9b3be09ebc20b7fef9)
+---
+ src/clock.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/src/clock.c b/src/clock.c
+index e44e112..298a722 100644
+--- a/src/clock.c
++++ b/src/clock.c
+@@ -309,7 +309,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/0002-reserve-more-memory-on-fseg.patch b/0002-reserve-more-memory-on-fseg.patch
new file mode 100644
index 0000000..859d418
--- /dev/null
+++ b/0002-reserve-more-memory-on-fseg.patch
@@ -0,0 +1,44 @@
+From cd088ce3bc68a6986637c0cd77b94ebff729b89b Mon Sep 17 00:00:00 2001
+From: Gerd Hoffmann <kraxel@redhat.com>
+Date: Tue, 19 Apr 2016 11:27:50 +0200
+Subject: redhat: reserve more memory on fseg
+
+RH-Author: Gerd Hoffmann <kraxel@redhat.com>
+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 <mrezanin@redhat.com>
+RH-Acked-by: Marcel Apfelbaum <marcel@redhat.com>
+RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
+
+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 <kraxel@redhat.com>
+Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
+(cherry picked from commit 0561b82b0470679505d62f49eec83adb01eec0ab)
+---
+ scripts/layoutrom.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scripts/layoutrom.py b/scripts/layoutrom.py
+index 6616721..71841aa 100755
+--- a/scripts/layoutrom.py
++++ b/scripts/layoutrom.py
+@@ -66,7 +66,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/0003-vgabios-Reorder-video-modes-to-work-around-a-Windows.patch b/0003-vgabios-Reorder-video-modes-to-work-around-a-Windows.patch
new file mode 100644
index 0000000..6394b1f
--- /dev/null
+++ b/0003-vgabios-Reorder-video-modes-to-work-around-a-Windows.patch
@@ -0,0 +1,124 @@
+From 4d08ebd4f8dc19dfc36495473b34c34d53650632 Mon Sep 17 00:00:00 2001
+From: Ladi Prosek <lprosek@redhat.com>
+Date: Mon, 31 Oct 2016 19:33:05 +0100
+Subject: vgabios: Reorder video modes to work around a Windows bug
+
+RH-Author: Ladi Prosek <lprosek@redhat.com>
+Message-id: <1477924385-6169-1-git-send-email-lprosek@redhat.com>
+Patchwork-id: 72677
+O-Subject: [RHEL-7.4/7.3.z seabios PATCH] vgabios: Reorder video modes to work around a Windows bug
+Bugzilla: 1392028
+RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
+RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com>
+RH-Acked-by: vrozenfe <vrozenfe@redhat.com>
+
+Windows Server 2016 and Windows 10 RS1 come with a bug in its blue screen
+of death rendering logic which prevents it from generating crash dumps.
+
+The bug does not manifest if Windows sees a suitable 32 bpp video mode
+before a suitable 24 bpp video mode in the list of modes returned from
+vgabios. This commit moves all 32 bpp modes to the front of the list to
+make sure that this is always the case.
+
+Upstream patch:
+https://www.coreboot.org/pipermail/seabios/2016-October/010963.html
+
+There are valid concerns upstream about the breaking nature of the fix
+but for the limited set of operating systems supported by RHEL/RHEV we
+can easily verify that they are unaffected. So as things stand now, this
+is a downstream-only patch which will be reverted in the near future;
+the exact time will depend on Windows 10 RS2 schedule and other factors.
+The goal is to make sure that our customers running Windows 10 VMs can
+generate crash dumps.
+
+Signed-off-by: Ladi Prosek <lprosek@redhat.com>
+Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
+---
+ vgasrc/bochsvga.c | 39 ++++++++++++++++++++-------------------
+ 1 file changed, 20 insertions(+), 19 deletions(-)
+
+diff --git a/vgasrc/bochsvga.c b/vgasrc/bochsvga.c
+index ec5d101..c5d1511 100644
+--- a/vgasrc/bochsvga.c
++++ b/vgasrc/bochsvga.c
+@@ -28,6 +28,25 @@ static struct bochsvga_mode
+     u16 mode;
+     struct vgamode_s info;
+ } bochsvga_modes[] VAR16 = {
++    /* 32 bpp BOCHS modes */
++    { 0x140, { MM_DIRECT, 320,  200,  32, 8, 16, SEG_GRAPH } },
++    { 0x141, { MM_DIRECT, 640,  400,  32, 8, 16, SEG_GRAPH } },
++    { 0x142, { MM_DIRECT, 640,  480,  32, 8, 16, SEG_GRAPH } },
++    { 0x143, { MM_DIRECT, 800,  600,  32, 8, 16, SEG_GRAPH } },
++    { 0x144, { MM_DIRECT, 1024, 768,  32, 8, 16, SEG_GRAPH } },
++    { 0x145, { MM_DIRECT, 1280, 1024, 32, 8, 16, SEG_GRAPH } },
++    { 0x147, { MM_DIRECT, 1600, 1200, 32, 8, 16, SEG_GRAPH } },
++    { 0x14c, { MM_DIRECT, 1152, 864,  32, 8, 16, SEG_GRAPH } },
++    { 0x177, { MM_DIRECT, 1280, 768,  32, 8, 16, SEG_GRAPH } },
++    { 0x17a, { MM_DIRECT, 1280, 800,  32, 8, 16, SEG_GRAPH } },
++    { 0x17d, { MM_DIRECT, 1280, 960,  32, 8, 16, SEG_GRAPH } },
++    { 0x180, { MM_DIRECT, 1440, 900,  32, 8, 16, SEG_GRAPH } },
++    { 0x183, { MM_DIRECT, 1400, 1050, 32, 8, 16, SEG_GRAPH } },
++    { 0x186, { MM_DIRECT, 1680, 1050, 32, 8, 16, SEG_GRAPH } },
++    { 0x189, { MM_DIRECT, 1920, 1200, 32, 8, 16, SEG_GRAPH } },
++    { 0x18c, { MM_DIRECT, 2560, 1600, 32, 8, 16, SEG_GRAPH } },
++    { 0x18f, { MM_DIRECT, 1280, 720,  32, 8, 16, SEG_GRAPH } },
++    { 0x192, { MM_DIRECT, 1920, 1080, 32, 8, 16, SEG_GRAPH } },
+     /* standard modes */
+     { 0x100, { MM_PACKED, 640,  400,  8,  8, 16, SEG_GRAPH } },
+     { 0x101, { MM_PACKED, 640,  480,  8,  8, 16, SEG_GRAPH } },
+@@ -56,50 +75,32 @@ static struct bochsvga_mode
+     { 0x11D, { MM_DIRECT, 1600, 1200, 15, 8, 16, SEG_GRAPH } },
+     { 0x11E, { MM_DIRECT, 1600, 1200, 16, 8, 16, SEG_GRAPH } },
+     { 0x11F, { MM_DIRECT, 1600, 1200, 24, 8, 16, SEG_GRAPH } },
+-    /* BOCHS modes */
+-    { 0x140, { MM_DIRECT, 320,  200,  32, 8, 16, SEG_GRAPH } },
+-    { 0x141, { MM_DIRECT, 640,  400,  32, 8, 16, SEG_GRAPH } },
+-    { 0x142, { MM_DIRECT, 640,  480,  32, 8, 16, SEG_GRAPH } },
+-    { 0x143, { MM_DIRECT, 800,  600,  32, 8, 16, SEG_GRAPH } },
+-    { 0x144, { MM_DIRECT, 1024, 768,  32, 8, 16, SEG_GRAPH } },
+-    { 0x145, { MM_DIRECT, 1280, 1024, 32, 8, 16, SEG_GRAPH } },
++    /* 8, 15, 16, and 24 bpp BOCHS modes */
+     { 0x146, { MM_PACKED, 320,  200,  8,  8, 16, SEG_GRAPH } },
+-    { 0x147, { MM_DIRECT, 1600, 1200, 32, 8, 16, SEG_GRAPH } },
+     { 0x148, { MM_PACKED, 1152, 864,  8,  8, 16, SEG_GRAPH } },
+     { 0x149, { MM_DIRECT, 1152, 864,  15, 8, 16, SEG_GRAPH } },
+     { 0x14a, { MM_DIRECT, 1152, 864,  16, 8, 16, SEG_GRAPH } },
+     { 0x14b, { MM_DIRECT, 1152, 864,  24, 8, 16, SEG_GRAPH } },
+-    { 0x14c, { MM_DIRECT, 1152, 864,  32, 8, 16, SEG_GRAPH } },
+     { 0x175, { MM_DIRECT, 1280, 768,  16, 8, 16, SEG_GRAPH } },
+     { 0x176, { MM_DIRECT, 1280, 768,  24, 8, 16, SEG_GRAPH } },
+-    { 0x177, { MM_DIRECT, 1280, 768,  32, 8, 16, SEG_GRAPH } },
+     { 0x178, { MM_DIRECT, 1280, 800,  16, 8, 16, SEG_GRAPH } },
+     { 0x179, { MM_DIRECT, 1280, 800,  24, 8, 16, SEG_GRAPH } },
+-    { 0x17a, { MM_DIRECT, 1280, 800,  32, 8, 16, SEG_GRAPH } },
+     { 0x17b, { MM_DIRECT, 1280, 960,  16, 8, 16, SEG_GRAPH } },
+     { 0x17c, { MM_DIRECT, 1280, 960,  24, 8, 16, SEG_GRAPH } },
+-    { 0x17d, { MM_DIRECT, 1280, 960,  32, 8, 16, SEG_GRAPH } },
+     { 0x17e, { MM_DIRECT, 1440, 900,  16, 8, 16, SEG_GRAPH } },
+     { 0x17f, { MM_DIRECT, 1440, 900,  24, 8, 16, SEG_GRAPH } },
+-    { 0x180, { MM_DIRECT, 1440, 900,  32, 8, 16, SEG_GRAPH } },
+     { 0x181, { MM_DIRECT, 1400, 1050, 16, 8, 16, SEG_GRAPH } },
+     { 0x182, { MM_DIRECT, 1400, 1050, 24, 8, 16, SEG_GRAPH } },
+-    { 0x183, { MM_DIRECT, 1400, 1050, 32, 8, 16, SEG_GRAPH } },
+     { 0x184, { MM_DIRECT, 1680, 1050, 16, 8, 16, SEG_GRAPH } },
+     { 0x185, { MM_DIRECT, 1680, 1050, 24, 8, 16, SEG_GRAPH } },
+-    { 0x186, { MM_DIRECT, 1680, 1050, 32, 8, 16, SEG_GRAPH } },
+     { 0x187, { MM_DIRECT, 1920, 1200, 16, 8, 16, SEG_GRAPH } },
+     { 0x188, { MM_DIRECT, 1920, 1200, 24, 8, 16, SEG_GRAPH } },
+-    { 0x189, { MM_DIRECT, 1920, 1200, 32, 8, 16, SEG_GRAPH } },
+     { 0x18a, { MM_DIRECT, 2560, 1600, 16, 8, 16, SEG_GRAPH } },
+     { 0x18b, { MM_DIRECT, 2560, 1600, 24, 8, 16, SEG_GRAPH } },
+-    { 0x18c, { MM_DIRECT, 2560, 1600, 32, 8, 16, SEG_GRAPH } },
+     { 0x18d, { MM_DIRECT, 1280, 720,  16, 8, 16, SEG_GRAPH } },
+     { 0x18e, { MM_DIRECT, 1280, 720,  24, 8, 16, SEG_GRAPH } },
+-    { 0x18f, { MM_DIRECT, 1280, 720,  32, 8, 16, SEG_GRAPH } },
+     { 0x190, { MM_DIRECT, 1920, 1080, 16, 8, 16, SEG_GRAPH } },
+     { 0x191, { MM_DIRECT, 1920, 1080, 24, 8, 16, SEG_GRAPH } },
+-    { 0x192, { MM_DIRECT, 1920, 1080, 32, 8, 16, SEG_GRAPH } },
+ };
+ 
+ static int dispi_found VAR16 = 0;
+-- 
+1.8.3.1
+
diff --git a/0004-Workaround-for-a-win8.1-32-S4-resume-bug.patch b/0004-Workaround-for-a-win8.1-32-S4-resume-bug.patch
deleted file mode 100644
index a61d140..0000000
--- a/0004-Workaround-for-a-win8.1-32-S4-resume-bug.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 0c1e0d59ceb3c4c8909d7a7b6e62d19c7ad81bef Mon Sep 17 00:00:00 2001
-From: Radim Krcmar <rkrcmar@redhat.com>
-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 <rkrcmar@redhat.com>
-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 <pbonzini@redhat.com>
-RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com>
-RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
-
-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ář <rkrcmar@redhat.com>
----
-(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 <mrezanin@redhat.com>
-(cherry picked from commit aa1c26538deecfd820b7da9b3be09ebc20b7fef9)
----
- src/clock.c | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/src/clock.c b/src/clock.c
-index e44e112..298a722 100644
---- a/src/clock.c
-+++ b/src/clock.c
-@@ -309,7 +309,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/0005-reserve-more-memory-on-fseg.patch b/0005-reserve-more-memory-on-fseg.patch
deleted file mode 100644
index 859d418..0000000
--- a/0005-reserve-more-memory-on-fseg.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From cd088ce3bc68a6986637c0cd77b94ebff729b89b Mon Sep 17 00:00:00 2001
-From: Gerd Hoffmann <kraxel@redhat.com>
-Date: Tue, 19 Apr 2016 11:27:50 +0200
-Subject: redhat: reserve more memory on fseg
-
-RH-Author: Gerd Hoffmann <kraxel@redhat.com>
-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 <mrezanin@redhat.com>
-RH-Acked-by: Marcel Apfelbaum <marcel@redhat.com>
-RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
-
-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 <kraxel@redhat.com>
-Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
-(cherry picked from commit 0561b82b0470679505d62f49eec83adb01eec0ab)
----
- scripts/layoutrom.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/scripts/layoutrom.py b/scripts/layoutrom.py
-index 6616721..71841aa 100755
---- a/scripts/layoutrom.py
-+++ b/scripts/layoutrom.py
-@@ -66,7 +66,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/0006-vgabios-Reorder-video-modes-to-work-around-a-Windows.patch b/0006-vgabios-Reorder-video-modes-to-work-around-a-Windows.patch
deleted file mode 100644
index 6394b1f..0000000
--- a/0006-vgabios-Reorder-video-modes-to-work-around-a-Windows.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-From 4d08ebd4f8dc19dfc36495473b34c34d53650632 Mon Sep 17 00:00:00 2001
-From: Ladi Prosek <lprosek@redhat.com>
-Date: Mon, 31 Oct 2016 19:33:05 +0100
-Subject: vgabios: Reorder video modes to work around a Windows bug
-
-RH-Author: Ladi Prosek <lprosek@redhat.com>
-Message-id: <1477924385-6169-1-git-send-email-lprosek@redhat.com>
-Patchwork-id: 72677
-O-Subject: [RHEL-7.4/7.3.z seabios PATCH] vgabios: Reorder video modes to work around a Windows bug
-Bugzilla: 1392028
-RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
-RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com>
-RH-Acked-by: vrozenfe <vrozenfe@redhat.com>
-
-Windows Server 2016 and Windows 10 RS1 come with a bug in its blue screen
-of death rendering logic which prevents it from generating crash dumps.
-
-The bug does not manifest if Windows sees a suitable 32 bpp video mode
-before a suitable 24 bpp video mode in the list of modes returned from
-vgabios. This commit moves all 32 bpp modes to the front of the list to
-make sure that this is always the case.
-
-Upstream patch:
-https://www.coreboot.org/pipermail/seabios/2016-October/010963.html
-
-There are valid concerns upstream about the breaking nature of the fix
-but for the limited set of operating systems supported by RHEL/RHEV we
-can easily verify that they are unaffected. So as things stand now, this
-is a downstream-only patch which will be reverted in the near future;
-the exact time will depend on Windows 10 RS2 schedule and other factors.
-The goal is to make sure that our customers running Windows 10 VMs can
-generate crash dumps.
-
-Signed-off-by: Ladi Prosek <lprosek@redhat.com>
-Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
----
- vgasrc/bochsvga.c | 39 ++++++++++++++++++++-------------------
- 1 file changed, 20 insertions(+), 19 deletions(-)
-
-diff --git a/vgasrc/bochsvga.c b/vgasrc/bochsvga.c
-index ec5d101..c5d1511 100644
---- a/vgasrc/bochsvga.c
-+++ b/vgasrc/bochsvga.c
-@@ -28,6 +28,25 @@ static struct bochsvga_mode
-     u16 mode;
-     struct vgamode_s info;
- } bochsvga_modes[] VAR16 = {
-+    /* 32 bpp BOCHS modes */
-+    { 0x140, { MM_DIRECT, 320,  200,  32, 8, 16, SEG_GRAPH } },
-+    { 0x141, { MM_DIRECT, 640,  400,  32, 8, 16, SEG_GRAPH } },
-+    { 0x142, { MM_DIRECT, 640,  480,  32, 8, 16, SEG_GRAPH } },
-+    { 0x143, { MM_DIRECT, 800,  600,  32, 8, 16, SEG_GRAPH } },
-+    { 0x144, { MM_DIRECT, 1024, 768,  32, 8, 16, SEG_GRAPH } },
-+    { 0x145, { MM_DIRECT, 1280, 1024, 32, 8, 16, SEG_GRAPH } },
-+    { 0x147, { MM_DIRECT, 1600, 1200, 32, 8, 16, SEG_GRAPH } },
-+    { 0x14c, { MM_DIRECT, 1152, 864,  32, 8, 16, SEG_GRAPH } },
-+    { 0x177, { MM_DIRECT, 1280, 768,  32, 8, 16, SEG_GRAPH } },
-+    { 0x17a, { MM_DIRECT, 1280, 800,  32, 8, 16, SEG_GRAPH } },
-+    { 0x17d, { MM_DIRECT, 1280, 960,  32, 8, 16, SEG_GRAPH } },
-+    { 0x180, { MM_DIRECT, 1440, 900,  32, 8, 16, SEG_GRAPH } },
-+    { 0x183, { MM_DIRECT, 1400, 1050, 32, 8, 16, SEG_GRAPH } },
-+    { 0x186, { MM_DIRECT, 1680, 1050, 32, 8, 16, SEG_GRAPH } },
-+    { 0x189, { MM_DIRECT, 1920, 1200, 32, 8, 16, SEG_GRAPH } },
-+    { 0x18c, { MM_DIRECT, 2560, 1600, 32, 8, 16, SEG_GRAPH } },
-+    { 0x18f, { MM_DIRECT, 1280, 720,  32, 8, 16, SEG_GRAPH } },
-+    { 0x192, { MM_DIRECT, 1920, 1080, 32, 8, 16, SEG_GRAPH } },
-     /* standard modes */
-     { 0x100, { MM_PACKED, 640,  400,  8,  8, 16, SEG_GRAPH } },
-     { 0x101, { MM_PACKED, 640,  480,  8,  8, 16, SEG_GRAPH } },
-@@ -56,50 +75,32 @@ static struct bochsvga_mode
-     { 0x11D, { MM_DIRECT, 1600, 1200, 15, 8, 16, SEG_GRAPH } },
-     { 0x11E, { MM_DIRECT, 1600, 1200, 16, 8, 16, SEG_GRAPH } },
-     { 0x11F, { MM_DIRECT, 1600, 1200, 24, 8, 16, SEG_GRAPH } },
--    /* BOCHS modes */
--    { 0x140, { MM_DIRECT, 320,  200,  32, 8, 16, SEG_GRAPH } },
--    { 0x141, { MM_DIRECT, 640,  400,  32, 8, 16, SEG_GRAPH } },
--    { 0x142, { MM_DIRECT, 640,  480,  32, 8, 16, SEG_GRAPH } },
--    { 0x143, { MM_DIRECT, 800,  600,  32, 8, 16, SEG_GRAPH } },
--    { 0x144, { MM_DIRECT, 1024, 768,  32, 8, 16, SEG_GRAPH } },
--    { 0x145, { MM_DIRECT, 1280, 1024, 32, 8, 16, SEG_GRAPH } },
-+    /* 8, 15, 16, and 24 bpp BOCHS modes */
-     { 0x146, { MM_PACKED, 320,  200,  8,  8, 16, SEG_GRAPH } },
--    { 0x147, { MM_DIRECT, 1600, 1200, 32, 8, 16, SEG_GRAPH } },
-     { 0x148, { MM_PACKED, 1152, 864,  8,  8, 16, SEG_GRAPH } },
-     { 0x149, { MM_DIRECT, 1152, 864,  15, 8, 16, SEG_GRAPH } },
-     { 0x14a, { MM_DIRECT, 1152, 864,  16, 8, 16, SEG_GRAPH } },
-     { 0x14b, { MM_DIRECT, 1152, 864,  24, 8, 16, SEG_GRAPH } },
--    { 0x14c, { MM_DIRECT, 1152, 864,  32, 8, 16, SEG_GRAPH } },
-     { 0x175, { MM_DIRECT, 1280, 768,  16, 8, 16, SEG_GRAPH } },
-     { 0x176, { MM_DIRECT, 1280, 768,  24, 8, 16, SEG_GRAPH } },
--    { 0x177, { MM_DIRECT, 1280, 768,  32, 8, 16, SEG_GRAPH } },
-     { 0x178, { MM_DIRECT, 1280, 800,  16, 8, 16, SEG_GRAPH } },
-     { 0x179, { MM_DIRECT, 1280, 800,  24, 8, 16, SEG_GRAPH } },
--    { 0x17a, { MM_DIRECT, 1280, 800,  32, 8, 16, SEG_GRAPH } },
-     { 0x17b, { MM_DIRECT, 1280, 960,  16, 8, 16, SEG_GRAPH } },
-     { 0x17c, { MM_DIRECT, 1280, 960,  24, 8, 16, SEG_GRAPH } },
--    { 0x17d, { MM_DIRECT, 1280, 960,  32, 8, 16, SEG_GRAPH } },
-     { 0x17e, { MM_DIRECT, 1440, 900,  16, 8, 16, SEG_GRAPH } },
-     { 0x17f, { MM_DIRECT, 1440, 900,  24, 8, 16, SEG_GRAPH } },
--    { 0x180, { MM_DIRECT, 1440, 900,  32, 8, 16, SEG_GRAPH } },
-     { 0x181, { MM_DIRECT, 1400, 1050, 16, 8, 16, SEG_GRAPH } },
-     { 0x182, { MM_DIRECT, 1400, 1050, 24, 8, 16, SEG_GRAPH } },
--    { 0x183, { MM_DIRECT, 1400, 1050, 32, 8, 16, SEG_GRAPH } },
-     { 0x184, { MM_DIRECT, 1680, 1050, 16, 8, 16, SEG_GRAPH } },
-     { 0x185, { MM_DIRECT, 1680, 1050, 24, 8, 16, SEG_GRAPH } },
--    { 0x186, { MM_DIRECT, 1680, 1050, 32, 8, 16, SEG_GRAPH } },
-     { 0x187, { MM_DIRECT, 1920, 1200, 16, 8, 16, SEG_GRAPH } },
-     { 0x188, { MM_DIRECT, 1920, 1200, 24, 8, 16, SEG_GRAPH } },
--    { 0x189, { MM_DIRECT, 1920, 1200, 32, 8, 16, SEG_GRAPH } },
-     { 0x18a, { MM_DIRECT, 2560, 1600, 16, 8, 16, SEG_GRAPH } },
-     { 0x18b, { MM_DIRECT, 2560, 1600, 24, 8, 16, SEG_GRAPH } },
--    { 0x18c, { MM_DIRECT, 2560, 1600, 32, 8, 16, SEG_GRAPH } },
-     { 0x18d, { MM_DIRECT, 1280, 720,  16, 8, 16, SEG_GRAPH } },
-     { 0x18e, { MM_DIRECT, 1280, 720,  24, 8, 16, SEG_GRAPH } },
--    { 0x18f, { MM_DIRECT, 1280, 720,  32, 8, 16, SEG_GRAPH } },
-     { 0x190, { MM_DIRECT, 1920, 1080, 16, 8, 16, SEG_GRAPH } },
-     { 0x191, { MM_DIRECT, 1920, 1080, 24, 8, 16, SEG_GRAPH } },
--    { 0x192, { MM_DIRECT, 1920, 1080, 32, 8, 16, SEG_GRAPH } },
- };
- 
- static int dispi_found VAR16 = 0;
--- 
-1.8.3.1
-
diff --git a/python3.patch b/python3.patch
deleted file mode 100644
index b87b9bb..0000000
--- a/python3.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -22,7 +22,7 @@
- OBJCOPY=$(CROSS_PREFIX)objcopy
- OBJDUMP=$(CROSS_PREFIX)objdump
- STRIP=$(CROSS_PREFIX)strip
--PYTHON=python
-+PYTHON=python3
- CPP=cpp
- IASL:=iasl
- LD32BIT_FLAG:=-melf_i386
diff --git a/seabios.spec b/seabios.spec
index bfcac35..bd969db 100644
--- a/seabios.spec
+++ b/seabios.spec
@@ -3,8 +3,8 @@
 %endif
 
 Name:           seabios
-Version:        1.11.0
-Release:        2%{?dist}
+Version:        1.11.1
+Release:        1%{?dist}
 Summary:        Open-source legacy BIOS implementation
 
 Group:          Applications/Emulators
@@ -12,10 +12,10 @@ License:        LGPLv3
 URL:            http://www.coreboot.org/SeaBIOS
 
 Source0:        http://code.coreboot.org/p/seabios/downloads/get/%{name}-%{version}.tar.gz
-Patch0001:      python3.patch
-Patch0004:      0004-Workaround-for-a-win8.1-32-S4-resume-bug.patch
-Patch0005:      0005-reserve-more-memory-on-fseg.patch
-Patch0006:      0006-vgabios-Reorder-video-modes-to-work-around-a-Windows.patch
+
+Patch0001:      0001-Workaround-for-a-win8.1-32-S4-resume-bug.patch
+Patch0002:      0002-reserve-more-memory-on-fseg.patch
+Patch0003:      0003-vgabios-Reorder-video-modes-to-work-around-a-Windows.patch
 
 Source10:       config.vga.cirrus
 Source11:       config.vga.isavga
@@ -154,6 +154,9 @@ install -m 0644 binaries/vgabios*.bin $RPM_BUILD_ROOT%{_datadir}/seavgabios
 
 
 %changelog
+* Thu Mar 22 2018 Cole Robinson <crobinso@redhat.com> - 1.11.1-1
+- Rebased to version 1.11.1
+
 * Mon Mar 19 2018 Paolo Bonzini <pbonzini@redhat.com> - 1.11.0-2
 - Build with Python 3
 
diff --git a/sources b/sources
index 8046012..6229df7 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (seabios-1.11.0.tar.gz) = cae79c720bfbba3321777bbc6d5bde432fe56e2ba8f1be8acfebbde0bd453a58e889f5fa24db6055dca0a3a56d35b907761723ea35ef248c5f812129d0a27b77
+SHA512 (seabios-1.11.1.tar.gz) = 12de3784447388106bb05a06d1295fd0732a98f3e7732b0fe759032da86f52d26b48952e3264988ec5dd0e0c951fff21e9240083b38346d3b4d17f77ad6792b6