I've always been very annoyed by the firmware initialize -> kernel reinitialize delay. If only we had open source standardized firmware on x86 there could be a common data structure to pass through validated firmware and its associated memory ranges to the payload. Maybe even an OS could write its device initialization library to ROM so the firmware could do diagnostic checks on all the present hardware before trying to do dangerous disk reads (hey coreboot).