[coreboot] Original bios as payload

Luc Verhaegen libv at skynet.be
Wed Jul 29 16:09:37 CEST 2009

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.

More information about the coreboot mailing list