/rust-uefi-runtime-driver

Template for UEFI runtime drivers written in Rust with serial logging and debugging support.

Primary LanguageRustMIT LicenseMIT

Rust UEFI Runtime Driver

GitHub Workflow Status GitHub Twitter Follow

Template for UEFI runtime drivers written in Rust with serial logging and debugging support.

Overview

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.

References

  • UEFI Specification: Unified Extensible Firmware Interface Specification (v2.8).
  • r-efi: UEFI Reference Specification Protocol Constants and Definitions.
  • uefi-rs: Rust wrapper for UEFI.

License

MIT @x1tan