Repolode
tianocore

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