|
|
1.1 ! root 1: From fff8ffe1c92474ee58ebd6da82fede0ab7929214 Mon Sep 17 00:00:00 2001 ! 2: From: Jan Kiszka <[email protected]> ! 3: Date: Thu, 2 Jul 2009 00:11:44 +0200 ! 4: Subject: [PATCH 2/2] bochs-bios: Make boot prompt optional ! 5: ! 6: Check via QEMU's firmware configuration interface if the boot prompt ! 7: should be given. This allows to disable the prompt with its several ! 8: seconds long delay, speeding up the common boot case. ! 9: ! 10: Signed-off-by: Jan Kiszka <[email protected]> ! 11: Signed-off-by: Anthony Liguori <[email protected]> ! 12: --- ! 13: bios/rombios.c | 19 +++++++++++++++++++ ! 14: bios/rombios.h | 1 + ! 15: 2 files changed, 20 insertions(+), 0 deletions(-) ! 16: ! 17: diff --git a/bios/rombios.c b/bios/rombios.c ! 18: index 0f13b53..560e6d5 100644 ! 19: --- a/bios/rombios.c ! 20: +++ b/bios/rombios.c ! 21: @@ -2015,6 +2015,21 @@ Bit16u i; ipl_entry_t *e; ! 22: } ! 23: ! 24: #if BX_ELTORITO_BOOT ! 25: +#ifdef BX_QEMU ! 26: +int ! 27: +qemu_cfg_probe_bootkey() ! 28: +{ ! 29: + outw(QEMU_CFG_CTL_PORT, QEMU_CFG_SIGNATURE); ! 30: + if (inb(QEMU_CFG_DATA_PORT) != 'Q' || ! 31: + inb(QEMU_CFG_DATA_PORT) != 'E' || ! 32: + inb(QEMU_CFG_DATA_PORT) != 'M' || ! 33: + inb(QEMU_CFG_DATA_PORT) != 'U') return 1; ! 34: + ! 35: + outw(QEMU_CFG_CTL_PORT, QEMU_CFG_BOOT_MENU); ! 36: + return inb(QEMU_CFG_DATA_PORT); ! 37: +} ! 38: +#endif // BX_QEMU ! 39: + ! 40: void ! 41: interactive_bootkey() ! 42: { ! 43: @@ -2026,6 +2041,10 @@ interactive_bootkey() ! 44: Bit16u ss = get_SS(); ! 45: Bit16u valid_choice = 0; ! 46: ! 47: +#ifdef BX_QEMU ! 48: + if (!qemu_cfg_probe_bootkey()) return; ! 49: +#endif ! 50: + ! 51: while (check_for_keystroke()) ! 52: get_keystroke(); ! 53: ! 54: diff --git a/bios/rombios.h b/bios/rombios.h ! 55: index 59ce19d..8ece2ee 100644 ! 56: --- a/bios/rombios.h ! 57: +++ b/bios/rombios.h ! 58: @@ -64,6 +64,7 @@ ! 59: #define QEMU_CFG_ID 0x01 ! 60: #define QEMU_CFG_UUID 0x02 ! 61: #define QEMU_CFG_NUMA 0x0d ! 62: +#define QEMU_CFG_BOOT_MENU 0x0e ! 63: #define QEMU_CFG_ARCH_LOCAL 0x8000 ! 64: #define QEMU_CFG_ACPI_TABLES (QEMU_CFG_ARCH_LOCAL + 0) ! 65: #define QEMU_CFG_SMBIOS_ENTRIES (QEMU_CFG_ARCH_LOCAL + 1) ! 66: -- ! 67: 1.6.2.5 ! 68:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.