How does pre memory C code work on K8.

Stefan Reinauer stepan at
Fri Mar 12 06:08:01 CET 2004

* maillists at <maillists at> [040312 12:04]:
> Something has been troubling me for some time which is how the code manages
> to run before the memory controllers are configured. The assembler I can see
> has no accesses to memory, but the C code does, is their some magic gcc
> switch that makes it be entirely register based?

The early initialization code of LinuxBIOS v1.1.x (upcoming v2) is
written in C, but it does not use GCC for compilation, but Eric
Biederman's ROMCC. This fine piece of software compiles C code to
Assembler that does not use any RAM at all. All values are kept in
registers. This allows only a certain complexity of the algorithms used,
but it is perfectly fine to get RAM working.


  Stefan Reinauer, SUSE LINUX AG
Head of Architecture Development

More information about the coreboot mailing list