About tianocore/edk2
EDK II is a modern, feature-rich, cross-platform firmware development environment for the UEFI and PI specifications from www.uefi.org. Developed by the TianoCore community as an open-source project on GitHub, it provides a comprehensive set of tools, libraries, and packages to build UEFI-compliant firmware for a wide range of architectures including x86, ARM, and RISC-V. The repository includes over 36,000 commits, extensive CI/CD pipeline support across multiple toolchains (VS, GCC, CLANG), and a BSD-2-Clause Plus Patent License for the majority of its content.
Key Features
Cross-platform firmware development for UEFI and PI specifications
Supports multiple toolchains: Visual Studio, GCC, CLANGPDB, CLANGDWARF
Includes packages for ARM, x86, RISC-V, and other architectures
Active CI/CD integration with Azure Pipelines and GitHub Actions
BSD-2-Clause Plus Patent License (open source)
Large community with 6.1k stars and 3.2k forks on GitHub
Pros & Cons
Pros
- Free and open-source under permissive BSD license
- Cross-platform support (Windows, Linux, macOS via toolchains)
- Comprehensive package set covering many hardware platforms
- Well-maintained with active community and regular commits
- Standardized environment aligned with UEFI Forum specifications
Cons
- Steep learning curve for newcomers unfamiliar with UEFI and firmware development
- Large codebase (36k+ commits) can be daunting to navigate
- Setup requires specific toolchains and Python dependencies
- Limited documentation for advanced use cases beyond basic build instructions
Best For
Building UEFI firmware for PCs, servers, and embedded devicesDeveloping bootloaders and system firmwareResearch and education in firmware engineeringPlatform initialization and hardware abstraction layer development
FAQ
What is the EDK II project?
EDK II is a modern, feature-rich, cross-platform firmware development environment for the UEFI and PI specifications, hosted on GitHub by the TianoCore community.
Is EDK II free to use?
Yes, EDK II is open-source and free. The majority of the content uses a BSD-2-Clause Plus Patent License.
What toolchains are supported?
EDK II supports multiple toolchains including Visual Studio (VS), GCC, CLANGPDB, and CLANGDWARF across Windows and Ubuntu environments.
Can I use EDK II for ARM firmware development?
Yes, EDK II includes ArmPkg, ArmPlatformPkg, and ArmVirtPkg specifically for ARM and AArch64 architectures.