Hello to everybody,
Finally, after some time (I was patiently waiting until my brain reconciles regarding this topic, it took quite of time), I got the good idea about this email, and meaning of it.
Here is the interesting part (I think I'll gonna go other way around, different bird view):
Let say, I would like to have under BIOS (on the preposition/condition that I am gonna replace part of BIOS with Coreboot, payload being SeaBIOS) dual boot system: WIN10 64 and some F24 distro (my favorites) on SSD/HDD.
So, I place CSM ON in BIOS (I am, after all, doing legacy, since SeaBIOS is nothing more then legacy), and step 1-> install WIN10 64... Step 2 -> install F24 (GRUB2 included in the distro).
If I did it correctly, after passing via BIOS, I'll be ending in GRUB2 booting monitor, which will ask me what to boot (several versions of F24 kernels), or WIN10 GRUB2 entry? All Cool till now? :-)
Now, I implant Coreboot on the top of BIOS. Having SeaBIOS as payload, it should behave EXACTLY as BIOS set in legacy mode. _______
What does it mean (please, here is my Best BET, from what I'd seen in The Past): *SeaBIOS will do the same, what CSM=ON BIOS does: it'll copy MBR into the low memory (exactly at the location: 0000:7C00), and jump there, to execute (first 446 Bytes of .exe code) Phase 1.0 of GRUB2 boot-loader (two more phases will follow: 1,5 and 2, NOT subjects of this email thread).*
The whole thing will finish again in GRUB2 booting monitor.
I am talking about classical/generic MBR here: https://en.wikipedia.org/wiki/Master_boot_record .
And crucial question from me: how Coreboot will work if instead SeaBIOS GRUB2 is the payload chosen (I have very good understanding/idea for payload: minimal Linux kernel distro)?
Any addendums? Comments? Looking forward to them.
Thank you, Zoran
On Mon, Feb 6, 2017 at 2:40 AM, Peter Stuge peter@stuge.se wrote:
Haleigh Novak wrote:
I was wondering if anyone could take a few minutes and explain the proccess of how coreboots SeaBIOS payload (or even how coreboot itself) transitions into a Linux boot sequence to me?
SeaBIOS does nothing coreboot-specific, but uses the de-facto standard BIOS method: Master Boot Record
In the MBR there is code installed by the bootloader in use (LILO/NTLDR/GRUB/SYSLINUX/etc)
See wikipedia.org and osdev.org for all MBR details you may want.
Writing a small assembly program to run out of the MBR is a great exercise.
When coreboot instead starts a Linux kernel directly (with Linux as payload) then the key word is: SELF
SELF is Simple ELF, and when cbfstool adds a kernel payload to coreboot.rom it also adds a small stub code at the entry point, which sets up the data structure in memory which Linux requirs to boot on x86, before jumping to the kernel entry point.
//Peter
-- coreboot mailing list: coreboot@coreboot.org https://www.coreboot.org/mailman/listinfo/coreboot