How big is your BIOS part? Were it me, I would just go for the lazy approach, put Linux in FLASH, and use the Linux suspend/resume/kexec support to implement all this stuff. ron