On Wed, Jul 29, 2009 at 09:36:20AM -0400, Ivan Barrera A. wrote:
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 ?
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.