]> git.proxmox.com Git - qemu.git/commitdiff
Regenerate BIOS and add patches for -boot option
authorAnthony Liguori <aliguori@us.ibm.com>
Fri, 10 Jul 2009 16:56:35 +0000 (11:56 -0500)
committerAnthony Liguori <aliguori@us.ibm.com>
Thu, 16 Jul 2009 13:28:12 +0000 (08:28 -0500)
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
pc-bios/bios-pq/0017-bochs-bios-Move-QEMU_CFG-constants-to-rombios.h.patch [new file with mode: 0644]
pc-bios/bios-pq/0018-bochs-bios-Make-boot-prompt-optional.patch [new file with mode: 0644]
pc-bios/bios-pq/series
pc-bios/bios.bin

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 (file)
index 0000000..f6a1788
--- /dev/null
@@ -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 (file)
index 0000000..cda9757
--- /dev/null
@@ -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
+
index c7c7f67e0d8015cf762b13567d6696322c581ff3..9e909de1dcc7db2882c1b7d10472ad50ebc31247 100644 (file)
@@ -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
index 6c8bc9f6ce04633b5dabff292c07d15c2fb527e7..8c016aa56a3735d0847efc25434fb8ddf3d7b128 100644 (file)
Binary files a/pc-bios/bios.bin and b/pc-bios/bios.bin differ