Platform Initialization (PI) Specification definitions and support code in rust.
This repository is part of Project Mu.
- rustc >= 1.68.0
cargo build
These instructions are derived from those in r-efi.
Starting with rust-version 1.68, rustup distributes pre-compiled toolchains for many UEFI targets. You can enumerate
and install them via rustup
. This example shows how to enumerate all available targets for your stable toolchain
and then install the UEFI target for the x86_64
architecture:
rustup target list --toolchain=stable
rustup target add --toolchain=stable x86_64-unknown-uefi
This project can then be compiled directly for the selected target:
cargo +stable build --lib --target x86_64-unknown-uefi
The project can be built for non-UEFI targets via the standard rust toolchains. This allows non-UEFI targets to interact with UEFI systems or otherwise host UEFI operations. Furthermore, this allows running the foreign test-suite of this project as long as the target supports the full standard library:
cargo +stable build --all-targets
cargo +stable test --all-targets
cargo test
Contributions are always welcome and encouraged!
Please run the following commands before creating a pull request:
- >
cargo fmt
- >
cargo test --all
- Verify tests pass.
- >
cargo doc --open
- Verify documentation appearance.
Guidance and requirements:
Please open any issues in the issues section.
This project has adopted the Microsoft Open Source Code of Conduct.
For more information see the Code of Conduct FAQ or contact [email protected]. with any additional questions or comments.
- Copyright (c) Microsoft Corporation
- SPDX-License-Identifier: BSD-2-Clause-Patent