coreboot
Cristian Măgheru anș
Budapest, 6 October 2009
A bit of history
● v1 – 1999 - “Keyboard error, press F1 to continue”
on some 500 cluster nodes
– LinuxBIOS
● Used a Linux...
coreboot Operation
● coreboot contains only hardware init code
– No PC BIOS routines
● Runs a so-called payload (static EL...
coreboot Facts
● Modular and versatile stack for system startup
● Fast boot
– About 3 seconds to Linux prompt
– SMP startu...
Internals
● Written in C almost completely
– A tiny fraction is in ASM
● 32bit mode almost from the start
● RAM init is ma...
Use cases
● Anywhere flexibility really matters
● Embedded/custom/hobbyist systems
● Instant-on applications
● HPC Cluster...
Porting to new hardware
● Porting to a new desktop motherboard
– relatively easy to do if the components are already
suppo...
Summary
● coreboot
– PC BIOS replacement (if configured), and not only
● Technical advantages over legacy BIOSes
● More in...
Köszönöm!
Köszönöm!
Upcoming SlideShare
Loading in …5
×

coreboot@Budapest 10.2009 Meetup

698 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

coreboot@Budapest 10.2009 Meetup

  1. 1. coreboot Cristian Măgheru anș Budapest, 6 October 2009
  2. 2. A bit of history ● v1 – 1999 - “Keyboard error, press F1 to continue” on some 500 cluster nodes – LinuxBIOS ● Used a Linux kernel for hardware init & system boot(kexec) ● v2 – redesign/rewrite (the kernel was too big) ● v3 – playground where many goodies were born – Failed due to poor hardware support – Most features were merged back into v2(mainline) ● 2007 – LinuxBIOS is renamed coreboot – No dependence on the Linux kernel
  3. 3. coreboot Operation ● coreboot contains only hardware init code – No PC BIOS routines ● Runs a so-called payload (static ELF binary) – OS kernels: Linux, Plan9 – PC BIOS emulation: SeaBIOS – Bootloaders: FILO, GRUB2, Etherboot, gPXE – Utilities: Memtest, coreinfo – UEFI – Payload selector: Bayou – Games :-) ● May run optional ROMs (like VGA BIOS code)
  4. 4. coreboot Facts ● Modular and versatile stack for system startup ● Fast boot – About 3 seconds to Linux prompt – SMP startup on some systems ● Decent hardware support – About 200 motherboards – many CPUs and chipsets are supported (many of those with public datasheets) – hard to keep up with the hardware vendors ● Free Software (GPL) ● Commercial support is available ● Some big names are involved (AMD, VIA, MSI...)
  5. 5. Internals ● Written in C almost completely – A tiny fraction is in ASM ● 32bit mode almost from the start ● RAM init is maybe the hardest part – needs do be done using SMBUS – only after the Southbridge, SuperIO and the RAM controller were already initialized – Early init (anything that happens before RAM is initialized) is tricky to do in C – The C language needs a stack – How do you make a stack when there's no RAM? ● ROMCC - Compiles C into binary code that only uses the CPU registers ● CAR - uses the CPU cache instead of real RAM, if supported by hardware ● CBFS Filesystem-like layout for the flash image (archive)
  6. 6. Use cases ● Anywhere flexibility really matters ● Embedded/custom/hobbyist systems ● Instant-on applications ● HPC Clusters ● Cool applications (Linux-based) – Xvesa Linux environment payload ● Free-Software-only applications – FSF uses it extensively
  7. 7. Porting to new hardware ● Porting to a new desktop motherboard – relatively easy to do if the components are already supported ● Porting to a new CPU/chipset – low level hardware datasheets are needed – much harder, usually takes more than 6 months ● Laptops are troublesome
  8. 8. Summary ● coreboot – PC BIOS replacement (if configured), and not only ● Technical advantages over legacy BIOSes ● More info – http://coreboot.org
  9. 9. Köszönöm!
  10. 10. Köszönöm!

×