Hi cb-community,
as everyone who owns a computer can subscribe to the list and there is no coreboot-forum, I presume that I'm allowed to ask a few primitive questions about the topic :)
1. Coreboot+Payload are only used to initialize the hardware and then give the complete control over the system to the OS, right? So once the OS booted no Coreboot or Payload-code is executed anymore? 2. Bios calls were used decades ago (so the OS hadn't to bring all the drivers) but aren't used by modern OS anymore, right? So why does Windows need seaBIOS to work? 3. If [1] is true, does that mean it's not important (for the user) if coreboot supports 100% of the boards hardware? Example: If I install coreboot on a machine and the wiki says "VGA not supported" this means that the monitor won't show anything - until the OS boots which uses it's own driver to address the monitor. Right? To be sure: As long as the OS boots successfully I don't really have to care if all system components work during the boot process? 4. In the traditional BIOS I can adjust lots of settings - overclock my CPU for example or enable Virtualization for KVM. How do I do this in coreboot?
Beside of that: Great work guys, take care.
Greetings
Philipp
1) Some parts of payload(or payload generated tables/code) still exist in a low memory - BDA segment, 0xF000(BIOS interrupt handlers) segment, 0xC000(Videocard bios), ACPI tables, SMM handlers (if your build has it). So, if you using MS-DOS or something like it - you'll need a payload code, even windows 7 loader require some parts of legacy code. 2) Like pt. 1, if you try to use windows 8/10 - you may try to build a UEFI(Tiano Core) payload. 3) Sometimes it is not important(Ethernet controller for example), but sometimes you'll need to enable specific configuration (for example - chose SATA controller mode, or specify UMA memory size for integrated videocard) before any OS driver load, because drivers rely on it. For example if you don't load XHCI firmware or don't configure XHCI controller on AMD Kabini your OS don't find a USB 3.0 controller at all. 4) Look at build options, if you don't see required options - look at kconfig for your board. If wanted settings not found - some additional code may be required.
BTW, try to ask your questions on #coreboot channel in IRC
P.S. Sorry for my awful English.
On Thu, Oct 20, 2016 at 5:50 PM, Philipp Stanner stanner@posteo.de wrote:
Hi cb-community,
as everyone who owns a computer can subscribe to the list and there is no coreboot-forum, I presume that I'm allowed to ask a few primitive questions about the topic :)
- Coreboot+Payload are only used to initialize the hardware and then
give the complete control over the system to the OS, right? So once the OS booted no Coreboot or Payload-code is executed anymore? 2. Bios calls were used decades ago (so the OS hadn't to bring all the drivers) but aren't used by modern OS anymore, right? So why does Windows need seaBIOS to work? 3. If [1] is true, does that mean it's not important (for the user) if coreboot supports 100% of the boards hardware? Example: If I install coreboot on a machine and the wiki says "VGA not supported" this means that the monitor won't show anything - until the OS boots which uses it's own driver to address the monitor. Right? To be sure: As long as the OS boots successfully I don't really have to care if all system components work during the boot process? 4. In the traditional BIOS I can adjust lots of settings - overclock my CPU for example or enable Virtualization for KVM. How do I do this in coreboot?
Beside of that: Great work guys, take care.
Greetings
Philipp
-- coreboot mailing list: coreboot@coreboot.org https://www.coreboot.org/mailman/listinfo/coreboot
Hi Philipp,
On 20.10.2016 16:50, Philipp Stanner wrote:
Hi cb-community,
as everyone who owns a computer can subscribe to the list and there is no coreboot-forum, I presume that I'm allowed to ask a few primitive questions about the topic :)
sure.
- Coreboot+Payload are only used to initialize the hardware and then give the complete control over the system to the OS, right? So once the OS booted no Coreboot or Payload-code is executed anymore?
That depends on the hardware platform and the definition of "code". Many x86 platforms require a few things done in SMM (system management mode), which is a way for the firmware to run code independently from and with- out knowledge of the OS. It's sometimes referred to as Ring -1.
Again for most x86 platforms, there is ACPI code which may or may not be run by the OS in an interpreter. I'd describe this as per device, OS in- dependent drivers.
- Bios calls were used decades ago (so the OS hadn't to bring all the drivers) but aren't used by modern OS anymore, right? So why does Windows need seaBIOS to work?
Windows needs either BIOS or UEFI calls, it's not a modern OS (in your definition).
- If [1] is true, does that mean it's not important (for the user) if coreboot supports 100% of the boards hardware? Example: If I install coreboot on a machine and the wiki says "VGA not supported" this means that the monitor won't show anything - until the OS boots which uses it's own driver to address the monitor. Right? To be sure: As long as the OS boots successfully I don't really have to care if all system components work during the boot process?
Beside firmware for optional features (which Sergej mentioned), this heavily depends on the OS driver. For example Intel and Nvidia graphics drivers are known to work (sometimes limited) without firmware assis- tance. AMD drivers usually don't, AFAIK.
- In the traditional BIOS I can adjust lots of settings - overclock my CPU for example or enable Virtualization for KVM. How do I do this in coreboot?
Some settings can be made at compile time, some through CMOS variables (like legacy BIOSes did it, but from the OS, i.e. no boot time menu). For advanced things like overclocking, you'd have to change the code.
Beside of that: Great work guys, take care.
Thanks ;)
Nico