This is a curated list of links, tools and resources that aid in the development / help one run (free) and open source firmware.
This should get you started
- chipsec – platform security assesment framework
- chrome-ec – The Chromium OS project includes open source software for embedded controllers (EC) used in recent ARM and x86 based Chromebooks. This software includes a lightweight, multitasking OS with modules for power sequencing, keyboard control, thermal control, battery charging, and verified boot.
- flashprog – fork of flashrom that tries to avoid bricking your hardware
- flashrom – flasher+reader utility to write/dump firmware
- fiedka – graphical firmware editor app
- firmware-action – Build system for firmware images for several open source firmware solutions
- UEFITool – UEFI (PI) firmware viewer and editor
- me_fs_rs – This is a work in progress parser for Intel (CS)ME firmware images. Most of this work is based on other implementations and public research. References are within the code.
- romulan – Rust library for parsing a number of firmware images
- vboot – Google’s Verified Boot reference implementation (versions 1.x & 2.x) and helper tools
- libpayload – what coreboot payloads are made with
coreboot – follow the white rabbit
utilities that apply to coreboot mostly/only.
assembled builds of the coreboot project. If you’re hungry but not in a mood to cook you can choose from these meals that should get you going.
- coreboot distributions – hit this one first if you’ve no idea what the matter is
- dasharo – 3mdeb’s distro of coreboot
- libreboot – pre-assembled coreboot distro that eases friction
- MrChromeBox – If your devices says “Chrome” on the outside you’ll probably want to go with this
- gnuboot – if your requirements dictate so and you’re loving OLD hardware go here.
u-boot – bootloader for embedded based boards
- zephyr – a proven RTOS ecosystem by devs for devs
- u-bmc – OpemBMC but with u-boot
- openbmc (FB) – Facebook’s OpenBMC implemenation
- openbmc (LF) – LinuxFoundation’s OpenBMC implemenation
Info about what you should (not) buy
- chrultrabook – supported devices list
- coreboot – (outdated+incomplete) list of supported mainboards
- OpenWRT – Table of Hardware
- Gentoo Wiki – Coreboot Supported Devices
Useful utilities that help you do firmware stuff.
- ch341a – affordable but does its job
- picoprog – Picoprog is a firmware for the Raspberry Pi Pico that provides a USB-to-serial and USB-to-SPI bridge. It allows you to communicate with UART and SPI peripherals via USB.
- pico-serprog – This is a basic flashrom/serprog compatible SPI flash reader/writer for the Raspberry Pi Pico.
Good reads
Get in touch with firmware folks
- OSFC – Open Source Firmware Conference (annually around October)
These companies actively contribute to open source firmware and might help you implement it to your needs.
- 3mdeb (PL) – firmware company doing consulting, research, development and attestation
- 9elements (DE) – firmware company doing consulting, research, development and attestation
- System76 (US) – hardware vendor, supports coreboot devices
- NovaCustom (NL) – Laptop/PC retailer that endorses coreboot-supported hardware
These companies do propietary firmware.