[coreboot] SeaBIOS self relocation code

Kevin O'Connor kevin at koconnor.net
Thu Sep 16 05:21:49 CEST 2010


Hi,

I completed some code that enables SeaBIOS to relocate itself to high
memory.  The technique may be of interest to coreboot.

The full patch series that enables SeaBIOS relocation can be seen at:

http://www.seabios.org/pipermail/seabios/2010-September/000919.html

Most of the patch series does cleanups and seabios specific work.  The
run-time code, which may be of interest to coreboot, is at:

http://www.seabios.org/pipermail/seabios/2010-September/000922.html

The general idea is to have the build store linker "relocation"
information (see _reloc_* symbols) into the final executable, and then
have the run-time code use this information so that it can self-modify
all code that depends on code position.

The SeaBIOS code only relocates part of itself, so the runtime
relocation code is slightly more complex.  A code blob that was fully
relocated would be a little simpler (it would need only one call to
updateRelocs).

-Kevin




More information about the coreboot mailing list