diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2010-07-06 16:56:47 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2010-07-06 16:56:47 +0100 |
commit | 32f5292d737bc1dd149385fc9d011ad430f323cd (patch) | |
tree | 6f544829e9596322c512de97aa598cf6ae9ace46 | |
parent | 8052af351e301fd0040aa3223a846e43a854b487 (diff) | |
download | xen-32f5292d737bc1dd149385fc9d011ad430f323cd.tar.gz xen-32f5292d737bc1dd149385fc9d011ad430f323cd.tar.bz2 xen-32f5292d737bc1dd149385fc9d011ad430f323cd.zip |
rombios: pause for a keypress after a failed boot
rombios: inform the user and pause for a keypress after a failed boot
rather than powering off immediately.
Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
xen-unstable changeset: 21720:a1008ce01820
xen-unstable date: Tue Jul 06 16:49:59 2010 +0100
-rw-r--r-- | tools/firmware/rombios/rombios.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/tools/firmware/rombios/rombios.c b/tools/firmware/rombios/rombios.c index 26a952f649..1c05d99e75 100644 --- a/tools/firmware/rombios/rombios.c +++ b/tools/firmware/rombios/rombios.c @@ -8243,7 +8243,27 @@ Bit16u seq_nr; write_word(ebda_seg, IPL_BOOTFIRST_OFFSET, 0xFFFF); /* Reset boot sequence */ write_word(ebda_seg, IPL_SEQUENCE_OFFSET, 0xFFFF); - } else if (bootdev == 0) BX_PANIC("No bootable device.\n"); + } else if (bootdev == 0) { + printf("\nNo bootable device.\n"); + printf("Reboot or press any key to retry."); + write_word(ebda_seg, IPL_SEQUENCE_OFFSET, 0xFFFF); +ASM_START + sti +ASM_END + { + Bit8u sc, ac; + while(!dequeue_key(&sc, &ac, 1)) { +ASM_START + hlt +ASM_END + } + } +ASM_START + cli +ASM_END + printf("\n\n"); + return; + } /* Translate from CMOS runes to an IPL table offset by subtracting 1 */ bootdev -= 1; |