From ef2039f17d3e2226b8650b4d7692e5f458a37573 Mon Sep 17 00:00:00 2001 From: Anthony Liguori Date: Fri, 10 Jul 2009 11:56:35 -0500 Subject: [PATCH] Regenerate BIOS and add patches for -boot option Signed-off-by: Anthony Liguori --- ...Move-QEMU_CFG-constants-to-rombios.h.patch | 59 +++++++++++++++ ...bochs-bios-Make-boot-prompt-optional.patch | 68 ++++++++++++++++++ pc-bios/bios-pq/series | 2 + pc-bios/bios.bin | Bin 131072 -> 131072 bytes 4 files changed, 129 insertions(+) create mode 100644 pc-bios/bios-pq/0017-bochs-bios-Move-QEMU_CFG-constants-to-rombios.h.patch create mode 100644 pc-bios/bios-pq/0018-bochs-bios-Make-boot-prompt-optional.patch 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 00000000000..f6a1788a65f --- /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 00000000000..cda97572d19 --- /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 c7c7f67e0d8..9e909de1dcc 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 6c8bc9f6ce04633b5dabff292c07d15c2fb527e7..8c016aa56a3735d0847efc25434fb8ddf3d7b128 100644 GIT binary patch delta 19297 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