--- /dev/null
+From f371c480cb93f3516f34af5e3a4524ee6ba43c24 Mon Sep 17 00:00:00 2001
+Date: Thu, 2 Jul 2009 00:11:38 +0200
+Subject: [PATCH 1/2] bochs-bios: Move QEMU_CFG constants to rombios.h
+
+We will need them outside of rombios32.c.
+
+---
+ bios/rombios.h | 10 ++++++++++
+ bios/rombios32.c | 10 ----------
+ 2 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/bios/rombios.h b/bios/rombios.h
+index 6f9cbb1..59ce19d 100644
+--- a/bios/rombios.h
++++ b/bios/rombios.h
+@@ -58,6 +58,16 @@
+ #define SMB_IO_BASE 0xb100
+ #define SMP_MSR_ADDR 0x0510
+
++#define QEMU_CFG_CTL_PORT 0x510
++#define QEMU_CFG_DATA_PORT 0x511
++#define QEMU_CFG_SIGNATURE 0x00
++#define QEMU_CFG_ID 0x01
++#define QEMU_CFG_UUID 0x02
++#define QEMU_CFG_NUMA 0x0d
++#define QEMU_CFG_ARCH_LOCAL 0x8000
++#define QEMU_CFG_ACPI_TABLES (QEMU_CFG_ARCH_LOCAL + 0)
++#define QEMU_CFG_SMBIOS_ENTRIES (QEMU_CFG_ARCH_LOCAL + 1)
++
+ // Define the application NAME
+ #if defined(BX_QEMU)
+ # define BX_APPNAME "QEMU"
+diff --git a/bios/rombios32.c b/bios/rombios32.c
+index f861f81..3fe4e48 100644
+--- a/bios/rombios32.c
++++ b/bios/rombios32.c
+@@ -468,16 +468,6 @@ void wrmsr_smp(uint32_t index, uint64_t val)
+ }
+
+ #ifdef BX_QEMU
+-#define QEMU_CFG_CTL_PORT 0x510
+-#define QEMU_CFG_DATA_PORT 0x511
+-#define QEMU_CFG_SIGNATURE 0x00
+-#define QEMU_CFG_ID 0x01
+-#define QEMU_CFG_UUID 0x02
+-#define QEMU_CFG_NUMA 0x0D
+-#define QEMU_CFG_ARCH_LOCAL 0x8000
+-#define QEMU_CFG_ACPI_TABLES (QEMU_CFG_ARCH_LOCAL + 0)
+-#define QEMU_CFG_SMBIOS_ENTRIES (QEMU_CFG_ARCH_LOCAL + 1)
+-
+ int qemu_cfg_port;
+
+ void qemu_cfg_select(int f)
+--
+1.6.2.5
+
--- /dev/null
+From fff8ffe1c92474ee58ebd6da82fede0ab7929214 Mon Sep 17 00:00:00 2001
+Date: Thu, 2 Jul 2009 00:11:44 +0200
+Subject: [PATCH 2/2] bochs-bios: Make boot prompt optional
+
+Check via QEMU's firmware configuration interface if the boot prompt
+should be given. This allows to disable the prompt with its several
+seconds long delay, speeding up the common boot case.
+
+---
+ bios/rombios.c | 19 +++++++++++++++++++
+ bios/rombios.h | 1 +
+ 2 files changed, 20 insertions(+), 0 deletions(-)
+
+diff --git a/bios/rombios.c b/bios/rombios.c
+index 0f13b53..560e6d5 100644
+--- a/bios/rombios.c
++++ b/bios/rombios.c
+@@ -2015,6 +2015,21 @@ Bit16u i; ipl_entry_t *e;
+ }
+
+ #if BX_ELTORITO_BOOT
++#ifdef BX_QEMU
++int
++qemu_cfg_probe_bootkey()
++{
++ outw(QEMU_CFG_CTL_PORT, QEMU_CFG_SIGNATURE);
++ if (inb(QEMU_CFG_DATA_PORT) != 'Q' ||
++ inb(QEMU_CFG_DATA_PORT) != 'E' ||
++ inb(QEMU_CFG_DATA_PORT) != 'M' ||
++ inb(QEMU_CFG_DATA_PORT) != 'U') return 1;
++
++ outw(QEMU_CFG_CTL_PORT, QEMU_CFG_BOOT_MENU);
++ return inb(QEMU_CFG_DATA_PORT);
++}
++#endif // BX_QEMU
++
+ void
+ interactive_bootkey()
+ {
+@@ -2026,6 +2041,10 @@ interactive_bootkey()
+ Bit16u ss = get_SS();
+ Bit16u valid_choice = 0;
+
++#ifdef BX_QEMU
++ if (!qemu_cfg_probe_bootkey()) return;
++#endif
++
+ while (check_for_keystroke())
+ get_keystroke();
+
+diff --git a/bios/rombios.h b/bios/rombios.h
+index 59ce19d..8ece2ee 100644
+--- a/bios/rombios.h
++++ b/bios/rombios.h
+@@ -64,6 +64,7 @@
+ #define QEMU_CFG_ID 0x01
+ #define QEMU_CFG_UUID 0x02
+ #define QEMU_CFG_NUMA 0x0d
++#define QEMU_CFG_BOOT_MENU 0x0e
+ #define QEMU_CFG_ARCH_LOCAL 0x8000
+ #define QEMU_CFG_ACPI_TABLES (QEMU_CFG_ARCH_LOCAL + 0)
+ #define QEMU_CFG_SMBIOS_ENTRIES (QEMU_CFG_ARCH_LOCAL + 1)
+--
+1.6.2.5
+
0014_add-srat-acpi-table-support.patch
0015_enable-power-button-even-generation.patch
0016-use-correct-mask-to-size-pci-option-rom-bar.patch
+0017-bochs-bios-Move-QEMU_CFG-constants-to-rombios.h.patch
+0018-bochs-bios-Make-boot-prompt-optional.patch