Open Source Firmware Conference 2019

Oreboot
2019-09-03 , Main

Oreboot = Coreboot without C. Oreboot is a fully open-source power-on-reset and romstage firmware written in Rust. By design, the firmware requires all support packages (such as memory init) to be open-source. Currently, Oreboot can boot an AST2500 ARM BMC to Linux with a u-bmc user-mode.

Oreboot rethinks the firmware driver models. Each driver is distilled to four basic functions: init, pread, pwrite and shutdown. This interface allows us to make convenient higher-level drivers such as a "union driver" which duplicates a single write operation to multiple drivers. This makes consoles which have multiple underlying UART drivers elegant.

By using the Rust programming language, Oreboot has a leg-up in terms of security and reliability compared to contemporary firmware written in C or assembly. Rust's borrow-checker ensures pointers are not used after being freed and proves that coroutines are thread-safe at compile time.

In this talk, we will also present a short overview of the basics of Rust, how our driver model incorporates coroutines and the bootflow of Oreboot.

See also: Slides (1.8 MB)

Ron is the inventor of LinuxBIOS, now known as coreboot; u-root, the Go userland now widely used in linuxboot deployments; linuxboot itself; and oreboot, which is coreboot with out 'C' -- it is written in Rust. He is the co-leader of the Open Systems Firmware effort at Open Compute Platform Foundation; and a founder and member of the Technical Steering Committee of linuxboot at the Linux Foundation.

This speaker also appears in:

Ryan O’Leary is a core developer of LinuxBoot within Google. Ryan contributes significantly to u-root, fiano, oreboot, and was a key researcher of the LinuxBoot project in its early stages at Google. Ryan studied software engineering at the University of Waterloo in Canada. He has a keen interest in firmware, hardware, and embedded systems.

This speaker also appears in: