A lightweight Windows utility for opening BIOS/UEFI or recovery settings, restarting, and viewing system and firmware information.
tianocore/edk2
A cross-platform firmware development environment for building UEFI and PI specification-based firmware, including platforms like OVMF and EmulatorPkg.
- Stars
- 6,398
- Forks
- 3,360
- Open issues
- 1,461
- Last commit
- yesterday
What is it?
EDK II is the firmware development environment maintained by the TianoCore project for the UEFI and PI specifications published at uefi.org. It provides a build system, shared libraries and packages from which firmware for x86, ARM and other platforms can be assembled and tested.
The repository is organized into packages such as MdePkg, MdeModulePkg, OvmfPkg (virtual machine firmware), ArmVirtPkg and EmulatorPkg. Continuous integration runs across Windows with Visual Studio and Ubuntu with GCC, Clang PDB and Clang DWARF toolchains, with build, test and coverage status shown per configuration.
Contributors submit patches by email under a Developer Certificate of Origin sign-off, and the project uses git submodules for upstream components such as OpenSSL, Brotli and libspdm.
Key features
- 01Implements UEFI and PI firmware building blocks in modular packages.
- 02Provides platform packages such as OvmfPkg for virtual machine firmware and ArmVirtPkg for AArch64 targets.
- 03Includes EmulatorPkg for running firmware in a host-based emulated environment.
- 04Supports builds with Visual Studio, GCC, and Clang (PDB and DWARF) toolchains.
- 05Uses Python-based tooling and CI scripts to validate builds and tests.
Use cases
- Building virtual machine firmware such as OVMF for QEMU-based environments.
- Developing or porting UEFI firmware for ARM or x86 platforms.
- Testing firmware changes in an emulated environment before hardware bring-up.
- Contributing to or studying the reference open-source UEFI implementation.
Things to know
- The license is not cleanly identified, since the majority is BSD-2-Clause Plus Patent but several components and submodules carry additional licenses.
- Building requires a specific Python version and a list of build tools that the README links to an external wiki for setup.
In collections
Topics
FAQ
- What is edk2?
- A cross-platform firmware development environment for building UEFI and PI specification-based firmware, including platforms like OVMF and EmulatorPkg. EDK II is the firmware development environment maintained by the TianoCore project for the UEFI and PI specifications published at uefi.org. It provides a build system, shared libraries and packages from which firmware for x86, ARM and other platforms can be assembled and tested.
- Is edk2 free to use? What license does it have?
- edk2 is open source under the Other license. Check the license terms before using it in commercial products.
- Is edk2 still maintained?
- Actively maintained. The last commit to edk2 was on Nov 6, 2026.
- What can I use edk2 for?
- Building virtual machine firmware such as OVMF for QEMU-based environments. Developing or porting UEFI firmware for ARM or x86 platforms. Testing firmware changes in an emulated environment before hardware bring-up. Contributing to or studying the reference open-source UEFI implementation.
- Where can I get edk2?
- The source code and installation instructions are on GitHub: https://github.com/tianocore/edk2
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Windows utility for formatting USB drives and creating bootable USB media from ISO and disk images.
A macOS app that runs Intel macOS versions from Tiger 10.4 to Big Sur 11 on Apple silicon Macs, with graphics acceleration.
Runs Windows inside a Docker container with automatic download and unattended installation, accessed through a browser or RDP.
A QEMU wrapper that automatically downloads operating system images and launches optimised Windows, macOS and Linux virtual machines.
A Mac app that runs the stock Omarchy Linux desktop in a virtual machine tightly integrated with macOS on Apple Silicon.