[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