On Sat, Dec 10, 2011 at 8:20 PM, Kevin O'Connor kevin@koconnor.net wrote:
On Sat, Dec 10, 2011 at 07:30:19PM +0100, Fred . wrote:
Analyze of the current state and proposed future path for SeaBIOS.
== Website == The current SeaBIOS website lacks information and is very basic. SeaBIOS needs a more informative website with documentation and information.
It would be a good thing to expand the website. I've wanted to add more technical information to the website, but I have not been able to set aside the time to do it.
If accounts were given someone else could improve it. Currently the website uses a wiki, but is not runned as a wiki, so in the long-term we might want to move to something else, such as a CMS, perhaps Drupal. What content would need to be added? * A feature page * Page with contact email for press, ISV, IHV, IBV, etc * Compile/build guide * TODO list * Guide for integration with coreboot, qemu, kvm, etc * A roadmap? What else?
== Logo == SeaBIOS have no logo. Award/Phoenix, AMI, Insyde, etc have a logo. Perhaps SeaBIOS should have a logo too?
If someone is willing to put together a logo, I will consider using it. I have no talent in that area myself. :-)
Anyone on the mailling list have the skillset? We should put a request on the website. Perhaps put a request for voluntary contributions on some art community. Logo should be in a scaleable graphics format (such as SVG), and should look good in print. Should look good on black background (system boot) and white background (paper print).
== Features & Standards == In many aspects SeaBIOS is behind the competition.
- Award/Phoenix, AMI, Inside have setup screen. SeaBIOS does not.
SeaBIOS _needs_ a setup menu in order to win the minds of enthusiasts, geeks and non-embedded systems.
This may be a semantic distinction, but I believe SeaBIOS should launch an application for system setup and SeaBIOS should not itself have a menu system.
Yes having it as a separate application might be a good idea. At least as a separate module that can be configured whether or not it should be included in compile-time.
The ability for SeaBIOS to launch a "setup program" is already present
- it just requires the creation of this setup program. Several
coreboot payloads already have some menu drawing code, so this shouldn't be too difficult. Frankly though, there isn't much to configure (and that is a good thing).
- Competition have password protection. SeaBIOS does not.
Again - this is part of the "setup program" - there is nothing in SeaBIOS to protect.
The BIOS of the competition have two types of passwords. One to boot the system and one to access the setup screen. Password for bootup has nothing todo with the "setup program". Since there is currently no such setup program, the initial implementation for a bootup password could use a password configured at compile-time.
- SeaBIOS is behind in standards. SeaBIOS supports SMBIOS 2.4, while
the competition is ahead, and the recent standard is SMBIOS 2.7.1.
- SeaBIOS does not support ESCD. The competition supports this.
There are a plethora of old "standards" for PC machines. Supporting all of these "standards" would take eons and provide little appreciable gain. The SeaBIOS approach (inherited from Bochs BIOS) is to support those standards which common operating systems use. I think this is the right approach.
I was not aware that there is a plethora of standards for PC BIOS. Which are the most essential parts that are needed but not implemented yet?
- SeaBIOS does not support (GUID Partition Table) GPT. It seems the
competition does not either. However it is possible to implement GPT support in BIOS. Doing so would give SeaBIOS a competitive advantage over the competition.
This is a common misconception - a standard BIOS has nothing to do with the partition table. The BIOS doesn't do partition tables - it's the task of the bootloader and OS to support them.
- SeaBIOS supports USB UHCI and OHCI. It should support the latest xHCI.
Agreed.
This needs to be added to the TODO list, and also added on the website. Perhaps something for GSoC students?
- SeaBIOS supports 32-bit PCI. It should support 64-bit PCI.
I'm not sure what you mean here.
I've read that SeaBIOS supports 32-bit PCI. http://www.seabios.org/Releases#SeaBIOS_0.5.1 PCI also have 64-bit. http://en.wikipedia.org/wiki/Conventional_PCI#64-bit_PCI
- Competition supports small logos in the corners. SeaBIOS only
supports fullscreen logos.
What features are under development? What features & standards are not supported yet? What features would we like to have? What features are planned? We need to document this.
== Unimportant features ==
- SeaBIOS does not support the PNG format which is superior to
currently BMP and JPG.
- SeaBIOS uses LZMA compression. The successor LZMA2 is out.
- Linux and Windows have animated splash screens on bootup. It would
be cool if SeaBIOS could have animated flash, via APNG or MNG.
SeaBIOS boots fast - there's no time to show a splash screen. That's its real advantage. Should someone wish to see a pretty picture during boot, they can easily add it to the bootloader (eg, as winldr and grub do).
That said, should someone wish to add new splash screen support, I don't see it as an issue.
Needs to be put on the website.
== Usage & Community == SeaBIOS is used by coreboot, KVM, QEMU and Bochs.
Bochs doesn't use SeaBIOS (at least by default). Xen is in the process of using SeaBIOS as well.
SeaBIOS should be used more widely on platforms and platform virtual machines. SeaBIOS should be supported by VirtualBox and VMware, can this be accomplished? how?
I believe VirtualBox uses (or at least used to use) Bochs BIOS, and it should be possible to migrate to SeaBIOS. It would be up to VMware if they wished to change BIOS.
What other platform virtual machines can SeaBIOS be supported/integrated with? The different communities needs to work tighter together to commonly develop SeaBIOS into a tier one BIOS.
-Kevin