[coreboot] Timing via serial port

Kevin O'Connor kevin at koconnor.net
Sun Apr 19 15:13:04 CEST 2009


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




More information about the coreboot mailing list