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 +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 +Signed-off-by: Anthony Liguori +--- + 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 +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 +Signed-off-by: Anthony Liguori +--- + 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 Binary files a/pc-bios/bios.bin and b/pc-bios/bios.bin differ