Review changes committed to coreboot, virtualbox, qemu, kvm, and bochs
cvs tip.
  * bochs cvs 20081208:           -- synched
  * coreboot (r3348):    20060708 -- no noteworthy enhancements
  * qemu (r6125):        20080603 -- acpi hpet table
  * kvm (1a33292):       20081016 -- acpi dsdt changes, e820 vmx
    pages, setup mtrrs, clear tsc, acpi intsrcovr table, different pci
    irqs, smbios always uses 16 cpus, no acpi ssdt, fadt->gpe0_blk set
  * virtualbox (r13560): 20061231 -- lots of mouse changes, logo,
    scsi/etherboot hooks, int 1589, floppy data rate?, int19 calls
    post

Possibly introduce a data type for the many seg/off pairs.

Audit all sti/cli calls.  Audit all call16 calls to make sure flags is
setup properly with respect to irqs.

The __call16 code does a long jump to the interrupt trampolines - this
is unnecessary.

Possibly implement 32bit pcibios support.

Allow one to select adding 32 bit code to 0xf000 or in a separate
location.

Implement bios post memory manager (PMM)?

Add support for calling BCVs (and registering ATA drives) in a user
selectable manor.

Possibly add option to eliminate tsc based delays on emulators.

Add a kconfig style configuration program instead of requiring users
to modify config.h.

Look at integrating the lgpl vgabios into tree.

Look at usb booting specs.  Look at possibly supporting usb
keyboard/mice.

Add a graphical boot splash screen?
