aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2010-07-06 16:56:47 +0100
committerKeir Fraser <keir.fraser@citrix.com>2010-07-06 16:56:47 +0100
commit32f5292d737bc1dd149385fc9d011ad430f323cd (patch)
tree6f544829e9596322c512de97aa598cf6ae9ace46
parent8052af351e301fd0040aa3223a846e43a854b487 (diff)
downloadxen-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.c22
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;