mirror of
https://git.proxmox.com/git/qemu
synced 2025-08-07 07:30:33 +00:00
Regenerate BIOS and add patches for -boot option
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
2221dde5d4
commit
ef2039f17d
@ -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
|
||||||
|
|
@ -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
|
||||||
|
|
@ -14,3 +14,5 @@
|
|||||||
0014_add-srat-acpi-table-support.patch
|
0014_add-srat-acpi-table-support.patch
|
||||||
0015_enable-power-button-even-generation.patch
|
0015_enable-power-button-even-generation.patch
|
||||||
0016-use-correct-mask-to-size-pci-option-rom-bar.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
|
||||||
|
BIN
pc-bios/bios.bin
BIN
pc-bios/bios.bin
Binary file not shown.
Loading…
Reference in New Issue
Block a user