How to bring an x86 system out with coreboot, SeaBIOS, GRUB and Linux kernel?

I am new to x86. My recent challenge is porting Linux to the bare metal Intel Atom C2000 platform. I found open source firmware / bios coreboot and seabios, but there are a lot of things I don't understand for me.

(1) What firmware / software sequence is called from the x86 system boot?

x86 power on reset -> coreboot -> SeaBIOS-> GRUB-> Linux kernel?

(2) If we use minisats as non-volatile storage, how should the config binary and config file be stored on mSATA, MBR or whatever?

(3) How do I keep the original initrd kernel on the filesystem or on a raw disk? I recall from PowerPC development that there is no limit to where the kernel and ramdisk are stored in flash, u-boot just needs an address to reset the kernel.

+4


source to share


1 answer


It depends.

Your suggested thread with seabios and grub is certainly possible, but grub2 can also work as a payload on Coreboot - in this case it's coreboot-> grub-> Linux.

Or if you are not appreciating changing the kernel all the time, or if you go to kexec () you can do coreboot-> Linux and Linux is in flash mode.



Assuming you are going to download a stream that includes grub2, let's look at other questions: with seabios, grub2 will be stored in the MBR and some spare sectors, such as PCBIOS. With grub2 as the payload, it is stored in flash.

Regardless of where grub2 is located, its configuration file, Linux kernel, and initrd are best kept in the filesystem. grub2 provides drivers for almost every modern filesystem, and this is the easiest way to maintain them internally.

+1


source







All Articles