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 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 6c8bc9f6ce04633b5dabff292c07d15c2fb527e7..8c016aa56a3735d0847efc25434fb8ddf3d7b128 100644 GIT binary patch delta 19297 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 delta 19139 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 Ul<6P-GqQ1kVpre5lHtz^09V3vIsgCw