On Wed, Jul 29, 2009 at 09:36:20AM -0400, Ivan Barrera A. wrote:
Hi !
My previous attemps to put coreboot on my laptop (Asus G1, with vgarom on bios) have failed. I want to keep trying to get something to work but it is a real pain in the behind to keep taking out the flash chip and reprogramming it. I think it could be easier to have coreboot booting the original bios , and run any other payload on some key press (or something like that). That way, i could keep flashing new code to try, and in case it doesnt work just boot the orig. bios and reflash. (this is asuming coreboot gets to run)
Is it possible ? Or, do you have any other sugestions to keep trying ?
Thanks
Ok, here is a thought...
Every x86 cpu starts in real mode, at address 0xF000:0xFFF0. The last 16 bytes of your address space, and the last 16 bytes of your rom.
You will find a jump there, and some extra space to put in a longer jump if needs be.
Have the original image sit at the top of a bigger flash chip, replace the jump to jump somewhere in the bottom halve of the flash (if that's still addressable by real mode).
This code then checks some RTC value while remaining in realmode. If the rtc content is valid, and this fixed location byte is telling it to boot the original image, then just jump to the vector of the original jump. If not, go to the coreboot location and run coreboot.
The question is: is the change in the original image (the different reset vector) going to hit a checksum check somewhere? After some discussion on irc, it is not there on phoenix trusted core (for the initial bios code and the decompression bios) so then it will most likely not be there for less paranoid bioses.
Luc Verhaegen.