# oreboot

> replace proprietary firmware as BIOS or UEFI

**Wikidata**: [Q131935553](https://www.wikidata.org/wiki/Q131935553)  
**Source**: https://4ort.xyz/entity/oreboot

## Summary
Oreboot is a free and open-source firmware designed to replace proprietary firmware such as BIOS or UEFI, providing a libre boot process for computers. It is written in the Rust programming language and supports platforms like ARM and RISC-V. Oreboot prioritizes hardware freedom and security through open-source development.

## Key Facts
- Oreboot is a firmware, bootloader, and free/open-source software (FOSS) that replaces proprietary firmware.
- It is written in the Rust programming language (Q575650).
- Licensed under the GNU General Public License, version 2.0 (GPLv2), as stated in its GitHub repository.
- Supports ARM architecture, RISC-V, and other platforms (Q272629).
- Utilizes RustSBI, a RISC-V SBI implementation in Rust, for low-level hardware interaction.
- Source code is hosted on GitHub at https://github.com/oreboot/oreboot.
- Aims to eliminate vendor lock-in and promote hardware transparency through open firmware.

## FAQs
### Q: What is the primary goal of oreboot?
A: Oreboot aims to replace proprietary firmware (e.g., BIOS/UEFI) with a free and open-source alternative, ensuring user control over hardware boot processes.

### Q: Why does oreboot use the Rust programming language?
A: Rust is chosen for its memory safety features, which help mitigate common vulnerabilities found in low-level system software like firmware.

### Q: Which hardware platforms does oreboot support?
A: Oreboot supports ARM architecture, RISC-V, and other platforms, focusing on open hardware standards.

## Why It Matters
Oreboot addresses critical issues in computing freedom and security by replacing closed-source firmware with auditable, open-source code. Proprietary firmware like UEFI often contains undisclosed binaries ("blobs") that can harbor security risks or restrict user control. By leveraging Rust’s safety guarantees and targeting platforms like RISC-V, oreboot promotes transparency and trust in the boot process. This project is significant for activists, developers, and organizations prioritizing hardware sovereignty, as it reduces reliance on proprietary vendors and enables customization for specific use cases, from embedded systems to laptops.

## Notable For
- First firmware/bootloader to extensively use Rust for memory-safe low-level programming.
- Licensed under GPLv2, ensuring copyleft compliance and community-driven development.
- Integrates RustSBI for RISC-V support, aligning with modern open ISA standards.
- Actively maintained on GitHub with a focus on open hardware compatibility.

## Body
### Overview
Oreboot is a libre firmware project that replaces proprietary boot firmware (e.g., BIOS, UEFI) with a free and open-source alternative. It functions as both firmware and a bootloader, initializing hardware and loading operating systems without relying on closed-source binaries.

### Technical Details
- **Programming Language**: Primarily written in Rust (Q575650) for memory safety and performance.
- **Platforms**: Targets ARM architecture, RISC-V, and other systems (Q272629), emphasizing open hardware compatibility.
- **RustSBI Integration**: Uses RustSBI for RISC-V SBI implementation, enabling standardized low-level hardware interactions.
- **Toolchain**: Leverages open-source development tools and build systems for reproducibility.

### Licensing
Oreboot is licensed under the GNU General Public License, version 2.0 (GPLv2), as specified in its COPYING file. This ensures that derivative works remain open-source, promoting collaborative development and preventing proprietary forks.

### Related Projects
- **RustSBI**: A critical dependency for RISC-V support, providing a Rust-based interface for hardware-software interactions.
- **Open Hardware**: Aligns with initiatives like RISC-V and ARM-based open systems, reducing reliance on x86 architectures dominated by proprietary firmware.

## References

1. [Source](https://github.com/oreboot/oreboot/blob/main/COPYING)