On Sat, Apr 18, 2009 at 09:21:24PM -0700, Russell Whitaker wrote:
On Sat, 18 Apr 2009, Kevin O'Connor wrote:
260ms - initializing ATA drives
200ms - running the via vga rom
Does initializing ATA drives include a delay for motor spin-up?
SeaBIOS does wait for drives to spinup (it was just recently added). However, the above timings were not limited by drive spinup (in the above, coreboot took so long that the drivers were already ready by the time SeaBIOS ran). On this test machine, drive spinup can take 5+ seconds. Ironically, after fixing the delay that coreboot takes, the overall bootup time hasn't improved, because the delay just moved to spinup. :-) A reset does go much faster though, and the VGA reset is much more prompt.
The 260ms is the cost of issuing an ATA reset command and waiting for the drive to acknowledge it.
If so, perhaps the code could be split: Minimal initialization, start motor. Running the via vga rom. Completion of ATA drive initialiation.
Just a thought.
It's a good idea, but it's complex to implement. One of the gains to putting Linux in the flash is that Linux can do true multithreaded initialization of many of the devices. SeaBIOS doesn't have this infrastructure.
-Kevin