[coreboot] [ANN] SeaBIOS parallel hardware init

Kevin O'Connor kevin at koconnor.net
Sun Oct 25 00:23:57 CEST 2009


The latest version of SeaBIOS git now supports initializing hardware
in parallel.  This can lead to a reduction in boot time.

For info on using SeaBIOS with coreboot see:

http://www.coreboot.org/SeaBIOS


In past experiments, I've found that waiting for hardware consumes
most of the time spent in SeaBIOS.  So, initializing multiple hardware
controllers at the same time can reduce the boot time.  The ps2 port,
each ata controller, and each usb controller can now all be
initialized in parallel.  Note, option roms are still run
synchronously.

For the curious, the system allocates a stack for each hardware
controller, and explicit "yield" calls have been added to code that
waits for hardware.  The yield call then round-robins between
available stacks.  This effectively creates a simple cooperative
multitasking system.  No locking is needed or implemented.  Only the
main cpu is used (there doesn't seem to be any need for multiple cpus
anyway as most of the time is spent waiting for hardware to be ready).

-Kevin




More information about the coreboot mailing list