[coreboot] Request for Help/Information - Booting Linux Kernel (Embedded x86)

Graeme Russ graeme.russ at gmail.com
Thu Jan 28 22:24:57 CET 2010

Hi All,

I am undertaking a little project at home to get Linux running on a custom
x86 (AMD SC520) based board. The board is pretty simple, just the CPU some
RAM and Flash, a couple of Ethernet (Realtek 8100B) ports and some other
miscellaneous custom hardware (don't need to worry about this for now).
This board is in no way shape or form a mini-PC

The whole point of doing the Linux port is a kind of 'because its there'
thing. I had some (very little as it turns out) free time, so I decided to
give it a go.

After having a good look around, I ended up choosing U-Boot as a boot loader
(in which case you would assume my question is really for the U-Boot list
and not coreboot - please read on). Unfortunately, U-Boot's x86 support at
the time was very stagnant. No work had been done on the x86 port since
about mid 2003 and several non-x86 patches had pretty much completely
clobbered it to the point it would not even compile. I've been working on
U-Boot now since July 2008 and have been pushing patches back in to the
point where U-Boot has a good, stable, x86 implementation.

I have now arrived at my next hurdle - Getting a Linux Kernel running.

I'm having difficulty finding any real information on the sequence of
events that need to be gone through in the x86 embedded environment to get
the kernel up and running. Even coreboot seems a little light-on (I have
seen mention of the Linux Kernel being a legitimate payload, but no
obvious instruction on how this is configured and how it works). But so
far, the coreboot community appears to be the closest thing to an x86
embedded Linux community that I can find.

I suppose I have a couple of questions to start of with that I hope
someone here can answer:

  0) Is there a good repository of information regarding embedded Linux
     in the x86 (not PC!!!!) architecture
  1) The boot-loader (both U-Boot and coreboot) put the x86 staight into
     Protected Mode - Does the CPU need to be put back into Real Mode
     before entering the Linux Kernel (in order to allow the Kernel to put
     the CPU into Protected Mode)
  2) Which Kernel image should I use (vmlinux, vmlinux.bin, bzImage etc)
  3) Can I copy the compiled Kernel image directly into RAM simply perform
     a 'Jump' into it
  5) Can I run x86 Linux without needed any kind of BIOS emulation?
  4) Are these the right questions to ask? Are there 'better' questions I
     should be asking?

Hopefully someone can answer some of these and/or point me towards some
good technical information.



More information about the coreboot mailing list