Template for UEFI runtime drivers written in Rust with serial logging and debugging support.
This projects serves as a foundation for UEFI runtime driver development in Rust. Its equipped with various features to help you get started:
- Up-to-date Cargo configuration to built a
x86_64-unknown-uefi
target on Rust nightly and link it as a runtime driver - Logging to serial output
- Debugging support (wait loop until debugger is attached as well as a Python GDB script to locate the PE file in memory)
- Continuous integration with GitHub Actions, minimal dependencies, custom panic handler and more
For more details regarding the implementation and debugging the driver have a look at my blog post. If you are interested in creating a Rust UEFI application e.g. as your bootloader instead of a runtime driver, I recommend reading "An EFI App a bit rusty" for more information about uefi-rs.
- UEFI Specification: Unified Extensible Firmware Interface Specification (v2.8).
- r-efi: UEFI Reference Specification Protocol Constants and Definitions.
- uefi-rs: Rust wrapper for UEFI.