On Wed, Oct 13, 2010 at 06:43:21PM -0400, Corey Osgood wrote:
On Wed, Oct 13, 2010 at 6:15 PM, Nasa nasa01@comcast.net wrote:
I have read a little about payloads and noted that SeaBIOS would be the easiest way to go... However (this being important for the flash chip), I didn't see anything about the benefits of putting a linux kernel as a payload. I did read from the FAQ that most chips aren't large enough to have the kernel added as a payload. If my goal is the fastest boot time possible, while still supporting the basic system, would going to a Linux payload be the way to go? If so, what size flash chip should I get?
Most likely, you won't be able to find a flash chip large enough to support a full-fledged linux kernel for a payload. It's been done (like here: http://youtu.be/nuzRsXKm_NQ ), and would probably be the fastest way to go, but you would have to give up a lot of kernel features in order to get the kernel down to small enough of a size. If you're going with a linux payload though, I'd look at FILO rather then SeaBIOS, just because you don't need the legacy BIOS features that SeaBIOS implements.
SeaBIOS boots much faster than filo. The time to initialize the legacy BIOS interface is on the order of microseconds so it doesn't have any real impact on boot time. On the other hand, SeaBIOS has several optimizations that filo lacks (eg, parallel hardware init, ATA DMA, EHCI USB).
In my tests, the fastest way I could boot my machine was to use SeaBIOS and launch linux from an SSD. The SSD I tried (OCZ) had no detectable "spin up" delay, and could transfer over 100MB per second. The built-in flash, on the other hand, could only read at 1MB per second. (So, for a 2MB linux flash image there could be a 2s load delay - compare to 50K seabios flash image and 2MB Linux SSD image at ~100ms load delay.)
There is a tool in the SeaBIOS repo (tools/readserial.py) that can generate timings from normal serial debug output. It can be used with SeaBIOS, Linux, and FILO. I encourage anyone interested in boot times to run tests and compare the results.
-Kevin