A demo for pure rust based firmware.
rust-rust-ipl/ResetVector is derived from EDKII
rust-uefi-payload is derived from rust-hypervisor-firmware
Note: If your build host is behind company’s firewall, it is important to set up proxy correctly.
Note: Build QemuFsp need VS2015 toolchain and make sure nasm
curl
can be found in your environment.
cargo run -p build-fsp --bin build_qemu_fsp_release
cargo xbuild --target x86_64-unknown-uefi --release
cargo run -p rust-firmware-tool -- target/x86_64-unknown-uefi/release/ResetVector.bin target/x86_64-unknown-uefi/release/rust_ipl.efi target/x86_64-unknown-uefi/release/rust-uefi-payload.efi target/x86_64-unknown-uefi/release/final.bin
qemu-system-x86_64 -m 4G -machine q35 -drive if=pflash,format=raw,unit=0,file=target/x86_64-unknown-uefi/release/final.bin -serial mon:stdio -nographic -vga none -nic none
This package is only the sample code to show the concept. It does not have a full validation such as robustness functional test and fuzzing test. It does not meet the production quality yet. Any codes including the API definition, the libary and the drivers are subject to change.