aboutsummaryrefslogtreecommitdiff
path: root/src/boot.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2010-05-01 12:20:33 -0400
committerKevin O'Connor <kevin@koconnor.net>2010-05-01 12:20:33 -0400
commite438b0c6202ab7e2c55f4e9bf4db0bc176e5c544 (patch)
treea498cf1b7a289d7de220887a5917b5f528bccaa7 /src/boot.c
parentf59b5ac27eec5a8bf3e2804bf57385b8c2b0fd06 (diff)
downloadseabios-e438b0c6202ab7e2c55f4e9bf4db0bc176e5c544.zip
seabios-e438b0c6202ab7e2c55f4e9bf4db0bc176e5c544.tar.gz
seabios-e438b0c6202ab7e2c55f4e9bf4db0bc176e5c544.tar.bz2
Further parallelize init when using CONFIG_THREAD_OPTIONROMS.
When optionrom threading is enabled, allow hardware init to run in parallel with boot menu key press delay and with the smp detection. Also, run qemu_cfg_port_probe() before ram_probe().
Diffstat (limited to 'src/boot.c')
-rw-r--r--src/boot.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/boot.c b/src/boot.c
index 19e16f3..36450f0 100644
--- a/src/boot.c
+++ b/src/boot.c
@@ -236,6 +236,7 @@ interactive_bootmenu(void)
;
printf("Select boot device:\n\n");
+ wait_threads();
int subcount[ARRAY_SIZE(IPL.bev)];
int menupos = 1;
@@ -306,13 +307,16 @@ run_bcv(struct ipl_entry_s *ie)
void
boot_prep(void)
{
- if (! CONFIG_BOOT)
+ if (! CONFIG_BOOT) {
+ wait_threads();
return;
+ }
// XXX - show available drives?
// Allow user to modify BCV/IPL order.
interactive_bootmenu();
+ wait_threads();
// Setup floppy boot order
int override = IPL.bev[0].subchoice;