summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pc-bios/bios-pq/0017-bochs-bios-Move-QEMU_CFG-constants-to-rombios.h.patch59
-rw-r--r--pc-bios/bios-pq/0018-bochs-bios-Make-boot-prompt-optional.patch68
-rw-r--r--pc-bios/bios-pq/series2
-rw-r--r--pc-bios/bios.binbin131072 -> 131072 bytes
4 files changed, 129 insertions, 0 deletions
diff --git a/pc-bios/bios-pq/0017-bochs-bios-Move-QEMU_CFG-constants-to-rombios.h.patch b/pc-bios/bios-pq/0017-bochs-bios-Move-QEMU_CFG-constants-to-rombios.h.patch
new file mode 100644
index 0000000000..f6a1788a65
--- /dev/null
+++ b/pc-bios/bios-pq/0017-bochs-bios-Move-QEMU_CFG-constants-to-rombios.h.patch
@@ -0,0 +1,59 @@
+From f371c480cb93f3516f34af5e3a4524ee6ba43c24 Mon Sep 17 00:00:00 2001
+From: Jan Kiszka <jan.kiszka@web.de>
+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.
+
+Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
+Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
+---
+ 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
+
diff --git a/pc-bios/bios-pq/0018-bochs-bios-Make-boot-prompt-optional.patch b/pc-bios/bios-pq/0018-bochs-bios-Make-boot-prompt-optional.patch
new file mode 100644
index 0000000000..cda97572d1
--- /dev/null
+++ b/pc-bios/bios-pq/0018-bochs-bios-Make-boot-prompt-optional.patch
@@ -0,0 +1,68 @@
+From fff8ffe1c92474ee58ebd6da82fede0ab7929214 Mon Sep 17 00:00:00 2001
+From: Jan Kiszka <jan.kiszka@web.de>
+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.
+
+Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
+Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
+---
+ 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
+
diff --git a/pc-bios/bios-pq/series b/pc-bios/bios-pq/series
index c7c7f67e0d..9e909de1dc 100644
--- a/pc-bios/bios-pq/series
+++ b/pc-bios/bios-pq/series
@@ -14,3 +14,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
diff --git a/pc-bios/bios.bin b/pc-bios/bios.bin
index 6c8bc9f6ce..8c016aa56a 100644
--- a/pc-bios/bios.bin
+++ b/pc-bios/bios.bin
Binary files differ