Clean up timer code. Don't use PORT_DIAG as delay mechanism. Disable a20 on jump to 16bit mode. The keyboard driver should detect ctrl+alt+del and reboot the machine. Fix keyboard LEDs. Improve option rom handling. A real bios can copy the option roms from PCI space. Also, there is no handling for BCVs today. Verify option roms wont stomp on seabios stack and bss. Clean up and clarify usage/scope of .bss and .data variables. Review changes committed to coreboot, virtualbox, qemu, kvm, and bochs cvs tip. * bochs cvs 20081016: -- better post resume support * coreboot (r3348): 20060708 -- no noteworthy enhancements * qemu (r5536): 20080603 -- has cmos smp count * kvm (1a33292): 20071016 -- 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 Look into ways to reduce stack usage. Alter ISRs so that they do not enable irqs. Only call out to other bios functions after minimizing stack usage. Audit all sti/cli calls. Audit all call16 calls to make sure flags is setup properly with respect to irqs. Audit statements where a 32bit intermediary changes meaning of a 16bit comparison. Code assumes ebda segment is static - it doesn't read 0x40e. The __call16 code does a long jump to the interrupt trampolines - this is unnecessary. Cleanup setting of ES on GET/SET_BDA Audit code for 16bit protected mode accesses. Support 1ab1 from 16bit protected mode. Possibly implement 32bit pcibios support. Allow one to select adding 32 bit code to 0xf000 or in a separate location. See if it is possible to handle interrupts while in 32bit mode. 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?