[coreboot] Device mapping problem

Peter Stuge peter at stuge.se
Tue Mar 25 16:41:19 CET 2008


On Tue, Mar 25, 2008 at 03:50:28PM +0100, Klaus Stammermann wrote:
>> But the IDE controller and CF card is not found by the kernel. It
>> does not even look for them. Please make sure you use a kernel which
>> has built-in support for whatever hardware you need in order to boot
>> your system, unless you also specify a ramdisk that FILO should load.
> Starting my systems with original BIOS installed OS (zenwalk)
> starts without any problems. But just changing BIOS to coreboot
> posted problems raise. So I don't think this could be a problem on
> used kernel.

I think it is, sort of.

> Because of changing BIOS I think something in coreboot is different
> to original BIOS.

You are quite right.

> But I don't know what this could be. So I hope some here could
> give me a hint.

The difference is in the boot loader step.

A BIOS will load code in the boot sector on the first hard drive, and
execute it. This is typically GRUB or LILO code as installed into the
boot sector when the operating system was installed or when the
kernel was last upgraded. This first piece of code can only be a few
hundred bytes and must use the BIOS in order to read from hard
drives, and because of the space constraints anything but a very
simplistic interface to the hardware is impossible.

The early code needs to know where on the disk a kernel and possibly
a ramdisk can be found, so that it can load them. Where and how this
is stored depends on which bootloader is installed.

Coreboot is much more flexible. It does not load an operating system
from disk, but rather it starts a "payload" that is flashed into the
boot flash memory. You are using FILO as payload.

FILO has an IDE driver and knows about various filesystems. FILO will
load a kernel and a ramdisk from a hard drive but the location needs
to be specified, just as for the other boot loaders GRUB or LILO.

It is common for mainstream Linux distributions to always install
a ramdisk as part of the boot process in order to more easily have a
single package that works on every single PC. I do not like this
approach at all, it is too error prone, but I digress.

It seems that the SuSE kernel that FILO is booting does not even have
built-in IDE drivers and my guess is that these drivers are modules
stored in the ramdisk and only loaded on systems which actually have
an IDE controller.

But you did not specify the path of the ramdisk to FILO, so now the
kernel is trying to start without the ramdisk, and since the SuSE
kernel isn't designed to work like that, booting fails.

Try to find out what your previous bootloader was configured to do.
Look for /etc/lilo.conf or /boot/grub/grub.conf or some other
config file that will list all neccessary parameters.

Hope this helps.


More information about the coreboot mailing list