Fact-checked by Grok 2 weeks ago

TianoCore EDK II

TianoCore EDK II, often referred to as EDK II, is an open-source firmware development environment designed to implement the Unified Extensible Firmware Interface (UEFI) and Platform Initialization (PI) specifications. It provides a modern, feature-rich, cross-platform toolkit for building UEFI-based firmware, supporting multiple processor architectures including IA-32, x64, ARM, and RISC-V, as well as various operating systems and toolchains such as GCC and Visual Studio. The project traces its origins to June 2004, when released its EFI Development Kit (EDK) foundation code under an as part of the Tiano initiative, aimed at advancing extensible standards. This evolved into the more comprehensive EDK II framework, managed by the TianoCore community, which includes contributions from major technology companies like , HPE, and . EDK II has become the for , enabling the creation of bootloaders, drivers, and applications that operate in pre-OS environments. Key features of EDK II include modular driver development using C-based programming models, support for secure mechanisms, and integration with standards like for power management and hardware abstraction. It is licensed under the BSD-2-Clause Plus Patent License, promoting widespread adoption, and is actively maintained on with over 1,000 issues and regular releases. Adopted by more than 200 companies, EDK II powers on millions of devices worldwide, from servers and PCs to systems.

Introduction

Overview

TianoCore EDK II, commonly referred to as EDK II, serves as the of the (UEFI) and Platform Initialization (PI) specifications, providing a standardized foundation for development across diverse platforms. It enables the creation of bootable that initializes , loads operating systems, and supports extensible runtime services in compliance with these industry standards. EDK II functions as a cross-platform toolkit designed for developing UEFI drivers, applications, and complete firmware images, supporting a wide range of processor architectures including x86, , and . This environment includes modular components such as libraries, protocols, and build tools that facilitate the construction of production-grade firmware volumes. As an open-source project under the TianoCore community, EDK II is hosted on , allowing global contributors to collaborate on its maintenance and enhancement through a permissive BSD license with patent grants. It evolved from Intel's original Tiano project, which laid the groundwork for open-source EFI implementations.

Purpose and Scope

TianoCore EDK II provides a modern, feature-rich, cross-platform development environment designed to enable the creation of and UEFI Platform Initialization (PI) compliant implementations. Its primary purpose is to offer a modular and extensible framework that supports the development of production-grade , emphasizing to streamline platform initialization and processes across diverse . This environment promotes standardization and interoperability by adhering to established specifications, allowing developers to focus on platform-specific innovations without reinventing core components. Key benefits of EDK II include robust support for multiple processor architectures, such as , x64, , , and , which enables development for a wide range of systems from embedded devices to servers. It achieves improved modularity over earlier frameworks through the use of packages and modules, facilitating , easier maintenance, and scalable development. As an open-source project governed by the TianoCore , EDK II drives ongoing innovation via collaborative contributions, ensuring timely updates and adaptations to evolving hardware needs. The scope of EDK II is limited to pre-operating system , encompassing boot-time initialization, driver execution, and services as defined in the 2.11 and PI 1.9 specifications (as of November 2024). It does not extend to operating system kernel development or full layers outside the standards, thereby concentrating on providing a standardized foundation for secure and efficient . This targeted focus supports innovation in and server environments by enabling customized extensions while maintaining compliance and portability.

History

Origins and Early Development

The Tiano project originated in the early as Intel's initiative to develop an open-source implementation of the Extensible Firmware Interface (EFI), serving as a successor to the traditional 16-bit x86 legacy PC . Announced by in June 2004, the project released its "Foundation Code" under an , positioning Tiano as Intel's preferred EFI implementation and laying the groundwork for extensible development. By around 2005, the project transitioned into the EFI Development Kit (EDK), which provided a structured codebase to address the needs of the EFI 1.10 specification, including support for the EFI Driver Model and broader platform compatibility. This evolution enabled developers to create UEFI drivers, applications, and firmware images more effectively, building directly on Tiano's foundation while incorporating updates to align with industry standards. The launch of EDK II occurred between 2006 and 2007, driven by community feedback highlighting limitations in the original EDK's build processes and version management. Key improvements in EDK II included enhanced build description files (such as .dsc and .inf formats), support for multiple toolchains (e.g., , , and /), and a package-based using XML metadata for modular distribution and interoperability across operating systems like Windows, , and OS X. These changes facilitated better and scalability, making EDK II a more robust, cross-platform environment. Intel spearheaded the formation of the TianoCore community around this time, with early collaboration from HP and Microsoft to foster open-source UEFI development. HP contributed as an early adopter, providing feedback to refine EDK II's features, while Microsoft supported toolchain integration and broader ecosystem adoption. This partnership helped establish TianoCore as a collaborative hub, supporting the UEFI specification as the target standard for firmware interoperability.

Key Milestones and Releases

In 2008, TianoCore EDK II achieved a significant milestone with the release of the UEFI Development Kit 2008 (UDK2008), providing stable support for the 2.0 specification and marking the transition to a more modular development environment, enabling broader adoption for -compliant on platforms. By 2010, EDK II aligned with the Platform Initialization (PI) 1.2 specification through the UDK2010 release, incorporating phases such as and PEI to support more robust initialization processes. This update enhanced compatibility with evolving standards, including UEFI 2.3, and facilitated platform innovation by integrating PI-compliant binary image generation. In 2016, the project shifted its primary version control from to , following the EDK II 1.24 updates from 2015, streamlining collaboration and for the open-source community. This migration improved accessibility to the codebase and supported more frequent stable tags like UDK2015. Recent releases up to 2025 have expanded EDK II's capabilities, including integration of RISC-V architecture support starting with refactors in 2022—building on initial porting efforts around 2020—and full MMU and toolchain enhancements by 2024. Enhanced security features, such as TPM 2.0 integration via libraries like Tcg2PhysicalPresenceLib, were solidified in releases around 2016 and refined in subsequent updates for measured boot chains. Build specification updates culminated in EDK2-BuildSpecification version 1.28, released on April 30, 2025, which refined processes for binary image compliance with UEFI 2.5 and PI 1.4. These advancements also tied into build system improvements, such as better support for reproducible builds in stable tags like edk2-stable202505. Community expansions have included the formation of the EDK2-Test , which maintains the test infrastructure and conducts bug meetings to validate and PI compliance. Additionally, efforts toward modularity have been advanced through sub-projects like edk2-platforms, enabling customizable platform configurations and boot-time optimizations.

Architecture

Core Components and Packages

The EDK II project organizes its codebase into packages, which are self-contained directories containing , libraries, and metadata files that define modules and their dependencies. These packages form the foundational structure for developing and PI-compliant , enabling modular development and reuse across platforms. The MdePkg serves as the core package, providing the minimum infrastructure required to build UEFI and PI modules, including base libraries and protocol definitions essential for firmware initialization and operation. It includes foundational libraries such as those for memory allocation and management (e.g., BaseMemoryLib for dynamic memory operations) and I/O handling (e.g., IoLib for port I/O access), which abstract hardware interactions to ensure portability. Additionally, MdePkg defines key protocol interfaces for UEFI services, including the Boot Services Protocol for loading images and managing devices, the Runtime Services Protocol for post-boot operations like time and variable services, and the Device Path Protocol for representing device locations in a tree structure. The MdeModulePkg extends the base functionality with core modules that implement standard UEFI components, such as boot services for image loading and device management, along with drivers for common buses like USB (e.g., UsbBusDxe) and (e.g., PciBusDxe). These modules provide reusable implementations for platform-independent features, allowing developers to integrate them into volumes. The FrameworkPkg offers legacy support for compatibility with earlier EFI specifications, including libraries and modules tailored for platforms that bridge older framework elements to the modern UEFI/PI architecture. It contains protocol definitions and drivers compliant with the Platform Innovation Framework, facilitating transitions from proprietary EFI implementations. Core components in EDK II revolve around the UEFI driver model, which uses the Driver Binding Protocol to manage driver attachment to devices. This protocol enables mechanisms where drivers produce controller s and supported protocols, allowing the to dispatch drivers dynamically during via services like ConnectController(). Dispatching occurs through the handle database, where drivers register their functions (Supported(), Start(), and Stop()) to initialize, configure, or unload based on device needs, ensuring efficient resource management without direct access in the driver . EDK II's package structure supports extensibility by allowing developers to create custom packages or add modules to existing ones, such as hardware-specific drivers, through standard INF, DEC, and files that integrate seamlessly into the for platform adaptations.

Module Types and Firmware Phases

The Platform Initialization (PI) specification defines a structured for , which TianoCore EDK II implements through distinct execution phases and corresponding module types. These phases ensure secure and modular initialization of the platform, starting from the initial and progressing to operating system handoff. EDK II modules are classified by type to align with these phases, enabling developers to create components that execute in specific environments with appropriate services available. The phase is the entry point of the execution, responsible for handling platform restart events, establishing a root of trust, and performing early of the image. In EDK II, this phase operates without permanent , using temporary provided by the , and includes initial CPU and initialization to enable secure measurements. SEC modules in EDK II, such as the SEC core, serve as the and are typically implemented as platform-specific volumes that authenticate and decompress the subsequent PEI phase. The SEC phase transitions to the PEI phase by passing a Hand-Off Block (HOB) list containing platform information, such as the location of the PEI volume. Following SEC, the Pre-EFI Initialization (PEI) phase initializes permanent system memory and basic hardware components, creating a foundation for higher-level execution. PEI modules, known as PEI Modules (PEIMs), are dispatched by the PEI core to perform tasks like memory discovery, temporary-to-permanent RAM migration, and creation of additional HOBs for data handoff. In EDK II, PEI modules are position-independent executables that run in the PEI environment, supporting modular hardware initialization without relying on full UEFI services. The phase concludes with a handover to the DXE phase, where the PEI core locates and transfers control to the DXE firmware volume via a specific handover protocol, ensuring all necessary HOBs are available for subsequent use. The Driver Execution Environment (DXE) phase represents the bulk of platform initialization, where the DXE core provides core UEFI services and a manages the loading and execution of drivers. DXE drivers in EDK II, including both and boot-time variants, enable device enumeration, production, and full hardware configuration, such as bus initialization and . This phase supports modular drivers that can be dynamically loaded, promoting reusability across platforms. UEFI applications, another module type in this phase, execute as user-mode code with access to the full boot services table but unload after completion. The DXE phase transitions to the Boot Device Selection (BDS) phase by invoking the BDS architectural , which signals the completion of driver dispatch. The BDS phase implements platform-specific boot policy, including console initialization, boot option enumeration, and operating system loading attempts. In EDK II, BDS functionality is typically provided by a DXE driver that produces the BDS Architectural Protocol to manage the boot process, such as selecting from UEFI boot variables or falling back to a boot manager. If boot fails, it may reinvoke the DXE dispatcher for additional driver loading. This phase marks the end of firmware execution, handing off control to the loaded operating system loader. Transitions between all phases rely on standardized protocols and HOBs to maintain state and ensure secure, ordered progression without data loss.

Build System

Tools and Build Processes

The EDK II build system relies on BaseTools, a Python-based suite of utilities that processes module description files (such as INF and formats), generates platform-specific makefiles, performs auto-generation of code, and handles linking to produce UEFI-compliant images. These tools are maintained as a separate repository and can be installed via as the edk2-basetools package or built from source within the EDK II workspace to ensure compatibility with the build environment. BaseTools form the core of the EDK II , enabling developers to focus on logic rather than manual compilation steps. As of 2022, the recommended way to build EDK II projects is using Stuart, a -based build runner that provides cross-platform consistency, improved dependency management, and support for Python 3. To initiate a build with Stuart, developers first clone the EDK II repository from and run stuart_setup to create a workspace.conf file, followed by stuart_update to resolve dependencies, and then stuart_build with options like -p MdeModulePkg/MdeModulePkg.dsc -a X64 -t GCC5 to specify the platform, architecture, toolchain, and build type (e.g., DEBUG or ). The legacy edksetup.sh () or edksetup.bat (Windows) scripts and build command remain available for compatibility but are not the primary method. The process supports multiple operating systems, including Windows, , and macOS, allowing builds in native or virtualized environments. For cross-compilation, the system accommodates targets like x86 (IA32/X64) and architectures by specifying the appropriate architecture flags. Tool chain selection occurs through configuration files in the Conf directory, where developers choose from supported compilers such as (versions 4.5 and later for /macOS) or (e.g., VS2022 for Windows). The TOOL_CHAIN_TAG in target.txt defines the compiler, with predefined options like GCC5 or VS2022x86 that integrate seamlessly with BaseTools for compilation and binary generation. This flexibility enables building for diverse platforms without altering core . BaseTools automates the sequence: parsing inputs, generating dependency makefiles, compiling , and linking into volumes or executables like EFI applications. Outputs are placed in the Build , structured by , , and build type for easy inspection. Post-build validation integrates with EDK2-Test, the official test infrastructure for EDK II , which provides a framework of conformance tests for and PI specifications to verify functionality, security, and compatibility after compilation. Developers run these tests on emulated or physical hardware to ensure the built meets standards, with coverage including services, implementations, and secure mechanisms. This step is essential for maintaining reliability in production deployments.

Configuration and Platform Files

In the TianoCore EDK II build system, configuration files such as INF, , and FDF play essential roles in defining modules, platforms, and firmware images, enabling precise control over the compilation and assembly of UEFI firmware components. These files use an INI-style format with sections that specify metadata, dependencies, and layouts, processed by the BaseTools suite to generate build artifacts. INF files serve as module descriptors, providing detailed specifications for individual EDK II modules such as drivers, applications, or libraries. The [Defines] section establishes core metadata, including the module type (e.g., UEFI_DRIVER or PEI_MODULE), entry points, and version information like INF_VERSION 0x0001001B. The [Sources] section lists source code files (e.g., .c or .asm files) and their relative paths, which are compiled into the module. Dependencies are declared in [LibraryClasses], identifying required libraries such as BaseLib for basic operations or UefiBootServicesTableLib for boot service access, ensuring the module links against appropriate implementations. Similarly, [Protocols] and [Ppis] sections specify the protocols or PPIs (Platform Initialization Protocols) that the module produces (via PRODUCES) or consumes (via CONSUMES), facilitating inter-module communication in the UEFI driver model. Additional sections like [Packages] reference external packages, while [Guids], [Pcd], and [Depex] handle GUIDs, PCD tokens, and deferred expression dependencies, respectively, to enforce build-time validations. DSC files configure entire platforms by aggregating modules and libraries into build targets, serving as the central descriptor for platform-specific . The [Defines] section sets global parameters, such as PLATFORM_NAME, supported architectures (e.g., , X64), and build targets like DEBUG or RELEASE, which influence optimization levels and macro definitions. The [Components] section instantiates modules by referencing their INF files, specifying library instances and conditional inclusions based on features or values. Libraries are defined in [LibraryClasses], mapping abstract classes to concrete implementations (e.g., associating with a specific debug print library), often filtered by architecture or build target. A key aspect of DSC files is the management of the Platform Configuration Database (PCD) through dedicated [Pcds] sections, which declare and initialize configuration tokens used across the firmware. PCDs provide a centralized mechanism for storing platform settings, with types including PCD_TYPE_UINT32 for integer values or PCD_TYPE_STRING for text data. Static PCDs (e.g., gEfiMdePkgTokenSpaceGuid.PcdSerialBaudRate) are fixed at build time and embedded directly into modules, while dynamic PCDs (e.g., gEfiMdePkgTokenSpaceGuid.PcdSerialRegisterBase) can be modified at runtime via PCD services like Set32() or GetPtr(). This allows flexible runtime configuration, such as adjusting serial port settings for debugging without rebuilding the firmware; values are expressed using C-style syntax, including conditionals and arithmetic. PCDs are scoped by GUID (e.g., gEfiMdePkgTokenSpaceGuid) to avoid namespace conflicts and are validated against declarations in DEC files. FDF files define the flash image layout and firmware volumes (FVs), guiding the final assembly of binaries into deployable firmware devices. The [Defines] section specifies the FDF version (e.g., 0x0001001B) and base addresses for regions. The [FD] section outlines the Device structure, including regions with sizes and attributes (e.g., REFLASH for updatable areas). Firmware volumes are detailed in [FV] sections, each with a unique GUID (FvNameGuid) and base address, containing blocks for file placement. The [Files] section maps built modules (from INF/DSC) or external binaries to specific FVs, using directives like SET to assign addresses or INF for module inclusion, ensuring the firmware image adheres to PI specifications for volume organization and capsule support. Conditional statements and references in FDF allow dynamic layouts based on platform configurations.

Community and Development

Contributing Guidelines

The TianoCore EDK II project is governed by a self-managing open-source , with key roles including project owners, module maintainers, integrators, and stewards who guide development, manage access, and drive consensus on priorities. Specialized working groups, such as the Infosec group for evaluating and resolving vulnerabilities, and regular bug meetings for the edk2-test infrastructure, ensure focused efforts on critical areas like and testing. Contributions to EDK II begin with forking the repository on , creating a topic branch for changes, and committing with a signed-off-by tag to certify the Developer's Certificate of Origin (DCO) 1.1, which affirms that the contributor holds rights to the work and agrees to the project's license terms. Developers then push the branch and submit a to the edk2/master branch, including a description linking to any related GitHub issue (e.g., "Fixes #10626") and adding relevant reviewers from the Maintainers.txt file. Code reviews are conducted by maintainers, who verify adherence to commit message formats, run local checks using the Stuart tool, and ensure changes are modular and individually submittable before approving and merging via the "push" label. Alternatively, for non-GitHub workflows, patches can be posted to the , though GitHub PRs are the preferred modern method. All contributions must adhere to the UEFI and Platform Initialization (PI) specifications, emphasizing modularity through reusable packages and drivers to support cross-platform firmware development. Contributions are made under the TianoCore Contribution Agreement 1.1, affirmed via commit message tags. Code must pass automated checks like PatchCheck.py for formatting and Uncrustify for style compliance, with an emphasis on secure coding practices outlined in the EDK II Secure Coding Guide. As of 2025, recent initiatives include expanded continuous integration and deployment (CI/CD) pipelines via , which automate builds and tests across Windows and environments for multiple architectures such as , x64, , and support for to enhance diversity in platform compatibility. These enhancements, detailed in the edk2-test , focus on broader test coverage and streamlined validation for EDK II-based . As of August 2025, the latest stable release is edk2-stable202508. The edk2-test infrastructure saw updates in early 2025 focusing on expanded test coverage, with security resources updated in August 2025. For detailed setup and tools, contributors can refer to the official documentation resources.

Documentation and Resources

The official documentation for TianoCore EDK II includes several key specifications that define its build processes and file formats. The EDK II Build Specification, currently at version 1.31 released in February 2024, outlines the architecture and requirements for building EDK II firmware, covering topics such as build environments, module types, and file formats like INF, DEC, and FDF. The EDK II DSC Specification, version 1.30 from July 2019, details the Platform Description file format used to configure builds, including sections on defines, PCDs, libraries, and components. Additionally, the EDK II Module Writer's Guide, version 0.7 (March 2010; see also the draft UEFI Driver Writer's Guide for updated guidance), provides instructions for developing and building new modules within the EDK II environment, targeting developers creating drivers and applications. Training materials for beginners include the Getting Started with EDK II guide, which offers step-by-step instructions for downloading the source code from , setting up build environments across operating systems, and compiling initial projects. This guide often references sample platforms such as NT32Pkg, an emulation environment for application development on Windows without hardware, and OVMF, which provides firmware support for the emulator. These samples serve as practical entry points for understanding EDK II's platform integration and testing workflows. Community resources extend beyond official releases, with the TianoCore wiki hosting comprehensive overviews, user guides, and draft specifications for ongoing developments. UEFI Forum publications, such as papers on EDK II testing infrastructure and security features, offer insights into integration with the broader ecosystem. specifications and archives are preserved on , providing historical context for earlier EDK II versions and migration paths from EFI tools. The EDK II Documentation project on centralizes these resources under the tianocore-docs organization, maintaining repositories for specifications in multiple formats (, PDF, ) and facilitating community updates to ensure accessibility for developers.

Applications

Supported Platforms

TianoCore EDK II supports a range of architectures, enabling the development of firmware for diverse hardware environments. The primary architectures include and x64 for Intel-compatible systems, (both 32-bit and 64-bit variants), specifically for 64-bit ARM implementations, and (with initial support added around 2020 via the RiscVPkg and further enhancements in the edk2-platforms repository, including MMU support in 2025 releases). For emulation and testing, EDK II provides dedicated packages like OVMF, which delivers UEFI firmware for QEMU and KVM virtual machines supporting , x64, and mixed architectures, and NT32Pkg for developing and testing UEFI applications in a Windows . EDK II firmware is utilized in embedded systems, servers, and virtualized setups, including platforms like those based on processors, ARM-based devices such as Juno development boards, and virtual machines via . Deployment on these platforms requires compatible toolchains, such as for and or for x64, and is designed for /PI specifications rather than legacy BIOS-only systems. As of November 2025, recent developments include ports to additional ARM64 platforms like the Odroid M2 (RK3588-based), expanding embedded and development board support.

Notable Projects and Implementations

One prominent implementation of EDK II is the Open Virtual Machine Firmware (OVMF), which provides firmware for virtual machines hosted on hypervisors such as and KVM. OVMF leverages the EDK II framework to enable booting in virtualized environments, supporting both -native operating systems and legacy modes via integration with for Compatibility Support Module () functionality. This project facilitates development and testing of applications in simulated hardware settings without physical machines. EDK II serves as a payload for , an open-source firmware alternative to proprietary / implementations on x86 and hardware. Through packages like CorebootPayloadPkg and UefiPayloadPkg, EDK II parses Coreboot tables to report memory and I/O resources, installs and SMBIOS tables, and provides services atop Coreboot's hardware initialization. This integration allows Coreboot users to boot UEFI-aware operating systems while benefiting from Coreboot's lightweight initialization, with build instructions specifying the required modules for payload image creation. Recent enhancements include Capsule Update support for over-the-air firmware updates in Coreboot environments using EDK II. Hybrid boot approaches combine EDK II with LinuxBoot to accelerate system startup by offloading post-initialization tasks to the Linux kernel. In the Ampere Mt. Jade platform, EDK II handles Pre-EFI Initialization (PEI) and minimal Driver Execution Environment (DXE) phases for hardware setup, after which control passes to a LinuxBoot flashkernel for boot device selection and OS loading, bypassing traditional UEFI shell or UI applications. This architecture aligns with LinuxBoot's adoption model by integrating EDK II firmware builds with custom GUIDs for the LinuxBoot binary, enabling faster boots on ARM-based servers. Commercially, EDK II underpins firmware in enterprise servers from vendors like and HPE. Intel integrates EDK II with its Firmware Support Package (FSP) to create platform BIOS images that support 2.3+ and Platform Initialization (PI) 1.2+ specifications, enabling multi-OS booting on Intel processors such as Scalable series. HPE employs EDK II in its server implementations, including features like (SMM) for secure image handling and advanced boot options in Gen11 models. Community-driven projects further demonstrate EDK II's versatility, such as ArmVirtPkg for virtualization and . This package supports architecture in virtual environments, allowing firmware builds for ARM processors without dedicated hardware, with pipelines ensuring compatibility across DEBUG, RELEASE, and NOOPT configurations. Complementing this, EDK2-Test provides a comprehensive test infrastructure for validating EDK II-based against and PI specifications, including coverage for runtime properties and boot event logs as defined in specifications (e.g., via TCG protocols). It encompasses sequence-based tests and schema validation for ensuring firmware reliability in diverse platforms. As of November 2025, EDK II continues to receive updates addressing multi-vendor vulnerabilities, enhancing its reliability in production deployments.

References

  1. [1]
    What is TianoCore?
    EDK II is a modern, feature-rich, cross-platform firmware ... This evolved into EDK, EDK II, and other open source projects under the TianoCore community.Getting Started · Documentation · Latest News · How to Contribute
  2. [2]
    tianocore/edk2: EDK II - GitHub
    A modern, feature-rich, cross-platform firmware development environment for the UEFI and PI specifications from www.uefi.org. CI Minimum Python Version.Releases 32 · Issues 1.1k · Pull requests 110 · Discussions
  3. [3]
    EDK II UEFI - Arm Developer
    EDK II is a modern, feature-rich, cross-platform firmware development environment for the UEFI and UEFI Platform Initialization (PI) specifications. We hope ...
  4. [4]
    About - TianoCore.org
    Welcome to TianoCore, the community supporting an open source implementation of UEFI. EDK II is a modern, feature-rich, cross-platform firmware development ...
  5. [5]
    [PDF] edk2-BuildSpecification-release-1.28.pdf - Tianocore-Docs
    Apr 30, 2025 · The EDK II Build infrastructure supports building UEFI 2.5 and PI 1.4 ... The EDK II build system is a reference implementation. Its ...
  6. [6]
    Appendix C Module Types · GitBook - Tianocore-Docs
    Table 11 EDK II Module Types. MODULE_TYPE, Supported Architecture Types ... This module type is only available for IPF processor types. DXE_SMM_DRIVER, IA32 ...
  7. [7]
    Differences between EDK and EDK II - GitHub
    Nov 19, 2018 · There are also build tool differences: EDK II supports a larger number of operating systems and tool chains. EDK II has richer libraries (MDELIB ...
  8. [8]
    EDK II Build Specification · GitBook - Tianocore-Docs
    Apr 30, 2025 · Updated to support UEFI 2.5 and PI 1.4 specifications. Add BUILDRULEORDER attribute to tools_def.txt in chapter 5.2.3. Updated 7.1.5 to ...
  9. [9]
    [PDF] Extensible Firmware Interface Specification - Intel
    Dec 1, 2002 · The EFI 1.10 Specification includes extensions to the EFI 1.02 Specification that describe the EFI Driver Model along with additional ...
  10. [10]
    Introduction to UEFI - x86asm.net
    Oct 24, 2008 · From this, in 2005 Intel released core part dubbed TianoCore , or EFI Development Kit (EDK) . ... In 2005 ASUS announced it will use Aptio ...
  11. [11]
    EDK II download | SourceForge.net
    Rating 5.0 (6) · FreeDownload EDK II for free. EDK II is a development code base for creating UEFI drivers, applications and firmware images.
  12. [12]
    [PDF] Intel® Technology Journal Volume 15, Issue 1, 2011
    To launch a configuration utility, the user must load the EFI shell, then ... EDK II also has superior package support. After careful preparation, HP ...
  13. [13]
    EDK2 - OSDev Wiki
    EDK2 is the official development environment for UEFI applications. It is developed by the open-source Tianocore project, of which Intel, HP, and Microsoft ...Structure of EDK2 · Building EDK2's base · Building without edk2-platforms
  14. [14]
    Navigating EDK Releases | Basic Input/Output
    Jul 2, 2019 · This article explores how we got to where we are today; specifically, what we now call EDK II Stable Tags.
  15. [15]
    [PDF] UEFI Ecosystem Enabling Update - UEFI Summer Plugfest 2011
    Jul 6, 2011 · EDK II*: UEFI. 2.1+. PI 1.0. * EDK II is same code base as UDK2010. 2006. 2007. 2008. 2009. 2010. 2011. SCT UEFI. 2.1. UEFI 2.3.1. UDK2010. SRx.
  16. [16]
    [PDF] Introducing the New Intel® UEFI Development Kit
    Sep 13, 2010 · EDK II Enables HP Platform Innovation and Execution Excellence. Integrity† Leads HP EDK II Transition. Integrity Server Blades. Integrity 2s ...Missing: Tiano | Show results with:Tiano
  17. [17]
    News Archive - TianoCore.org
    New On This site!: The official release of the EDK II Core Stable Release (Version 0.90). This release represents the latest milestone in the current EDK II ...
  18. [18]
    UDK2015 - GitHub
    UDK2015. UDK2015 is a stable release of portions of EDK II project. Current UDK2015 Release (2015-09-29). UDK2015 Support Specifications. Support Unified ...Missing: migration | Show results with:migration
  19. [19]
    [RFC PATCH 00/17] Refactor and add RISC-V support in edk2 repo
    Sep 6, 2022 · RISC-V ProcessorPkg and PlatformPkg were added in edk2-platforms repo. But the recommendation was they should be added in edk2 repoMissing: EDK | Show results with:EDK
  20. [20]
    [PDF] White Paper A Tour Beyond BIOS with the UEFI TPM2 Support ... - Intel
    So all TPM1.2 and TPM2.0 code are integrated, but at most one of them will run. Worst case is that no TPM module detected, so ...
  21. [21]
    EDK II Build Specification · GitBook - Tianocore-Docs
    EDK II Build Specification. Revision 1.28. 04/30/2025 09:38:38. Acknowledgements. Redistribution and use in source (original document form) and 'compiled' ...
  22. [22]
    Releases · tianocore/edk2 - GitHub
    Release Date 2025-08-22. New Features & Bug Fixes. update to openssl 3.5.1 · MdeModule: Update oniguruma to v6.9.10 · Support Standalone MM on ...Missing: 2006 | Show results with:2006
  23. [23]
    1.1 Overview · GitBook - Tianocore-Docs
    EDK II Module Writer's Guide ... EDK II core packages, which include MdePkg ,. 4BThe Basics of EDK II. MdeModulePkg , IntelFrameworkPkg and ...Missing: components | Show results with:components
  24. [24]
    MdePkg - GitHub
    The Module Development Environment Package (MdePkg) is a special package as it is the minimum infrastructure required to build a module.Missing: components | Show results with:components
  25. [25]
    edk2/MdeModulePkg at master · tianocore/edk2
    Insufficient relevant content. The provided text is a GitHub navigation page snippet with no specific details about the MdeModulePkg directories or files. It lacks information on core modules for boot services, USB, PCI, etc.
  26. [26]
    IntelFrameworkPkg - GitHub
    Intel Framework Package provides definitions and libraries that comply to the Intel® Platform Innovation Framework for UEFI and EFI Specifications found at ...Missing: legacy | Show results with:legacy
  27. [27]
    7.2 UEFI Driver Model · GitBook - Tianocore-Docs
    All UEFI drivers following the UEFI driver model must install one or more instances of the Driver Binding Protocol onto handles in the handle database.Missing: dispatching | Show results with:dispatching
  28. [28]
    9 Driver Binding Protocol · GitBook - Tianocore-Docs
    The implementation of the Driver Binding Protocol varies depending upon the driver's category. Chapter 6 of this guide describes the various driver categories.
  29. [29]
    3.2 Creating a Module · GitBook - Tianocore-Docs
    A module is released and distributed within a package, so creating or selecting the appropriate package for the new module is the first step.
  30. [30]
  31. [31]
    PI Boot Flow - GitHub
    Feb 25, 2017 · The DXE phase and Boot Device Selection (BDS) phases work together to establish consoles and attempt the booting of operating systems. The ...
  32. [32]
    tianocore/edk2-basetools: EDK II BaseTools Python tools ... - GitHub
    This package's intent is to provide an easy way to organize and share python code to facilitate reuse across environments, tools, and scripts.
  33. [33]
    4.1 EDK II Build System · GitBook - Tianocore-Docs
    EDK II build system produces binary images that conform to UEFI and PI specification file formats. In some cases, the tools have been extended.
  34. [34]
    Common EDK II Build Instructions for Linux - GitHub
    Dec 12, 2022 · These instructions assume you have installed Linux packages required for an EDK II build environment, including git (example: 16.04/16.10).Common Edk Ii Build... · Modify Conf Files · Set Build Target InformationMissing: migration | Show results with:migration
  35. [35]
    Getting Started with EDK II - GitHub
    Dec 12, 2022 · This page shows the steps for downloading EDK II from GitHub and compiling projects under various OS/compiler environments.
  36. [36]
    Common instructions for Unix - GitHub
    Dec 12, 2022 · Build the EDK II BaseTools. bash$ make -C edk2/BaseTools. Build gcc x64 UEFI cross compiler. In order to build UEFI images for x64, you will ...Get The Edk2 Source Tree... · Enabling Other Tools · Build Gcc Ia32 Uefi Cross...<|control11|><|separator|>
  37. [37]
    Windows systems - GitHub
    Dec 12, 2022 · This page provides step-by-step instructions or setting up a EDK II build environment on Windows systems. ... Compile Tools Build EDK II BaseTools ...
  38. [38]
    tianocore/edk2-test: Test infrastructure and test cases for EDK II ...
    EDK II Test Project. A modern, feature-rich, cross-platform firmware test environment for the UEFI and PI specifications from www.uefi ...Missing: group | Show results with:group
  39. [39]
    EDK II Module Information (INF) File Specification - Tianocore-Docs
    Apr 30, 2025 · Updated to support UEFI 2.3 and PI 1.2 specifications, March 2010. Added new element, UEFI_HII_RESOURCE_SECTION to [Defines] section. Added new ...
  40. [40]
    EDK II Platform Description (DSC) File Specification · GitBook
    ### Summary of EDK II Platform Description (DSC) File Specification (Release 1.28)
  41. [41]
    EDK II Flash Description (FDF) File Specification - Tianocore-Docs
    1.25, Updates: June 2015 ; Updated to support UEFI 2.5 and PI 1.4 ; Added clarificaiton regarding use of .. and . in path names ; Add support to generate an FMP ...
  42. [42]
    [PDF] EDK II Platform Configuration Database Infrastructure Description ...
    Feb 6, 2006 · THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY EXPRESS OR IMPLIED ... Retrieve a pointer to a value from the PCD service ...
  43. [43]
    Administration · tianocore/tianocore.github.io Wiki · GitHub
    Like any successful open source site, the most effective structure for governance is to have the member community self-govern. While this is also Intel's goal ...
  44. [44]
    Reporting Security Issues - GitHub
    May 7, 2025 · When a Tianocore Security Issue is entered, the issue is evaluated by the Infosec group to determine if the issue is a security issue or not ...
  45. [45]
    Topics - devel@edk2.groups.io
    Now: TianoCore edk2-test Bug Triage Meeting - Thursday, October 2, 2025 #cal-notice. Oct 2 Thu TianoCore edk2-test Bug Triage Meeting By Edhaya Chandran Edhaya.
  46. [46]
    EDK II Development Process - GitHub
    May 21, 2025 · First check out Getting Started with EDK II for downloading the latest EDK II development project with your build environment.
  47. [47]
    How To Contribute - GitHub
    Dec 6, 2021 · Do not post a patch to an unmitigated security issue. Instead follow guidelines at https://github.com/tianocore/tianocore.github.io/wiki/ ...
  48. [48]
    Tianocore-Docs Project Web Pages | Tianocore-Docs
    Tianocore-Docs contains documentation for Tianocore and EDK II. EDK II is a modern, feature-rich, cross-platform firmware development environment.<|control11|><|separator|>
  49. [49]
    EDK II Security Coding Guide · GitBook - Tianocore-Docs
    This document checklist is collected based upon the security experience and previous security issue report. We would like to thank Sugumar Govindarajan, John ...
  50. [50]
    EDK II Continuous Integration - GitHub
    Feb 27, 2025 · TianoCore EDK II Maintainers Team permissions reduced from 'Write" to "Triage"; EDK II Maintainers must use GitHub pull request with 'push ...Edk Ii Continuous... · Phase 1 (edk2 Repository... · Possible Platform Testing...<|control11|><|separator|>
  51. [51]
    tianocore-docs/edk2-BuildSpecification: EDK II Build Specification
    Added Module types appendix. May 2010. 1.22 w/, Updated to match the ... section in EDK II Meta-data files. Updated to remove path restriction on ...Repository Files Navigation · (( Book. Title )) · Acknowledgements
  52. [52]
    tianocore-docs/edk2-DscSpecification: EDK II DSC Specification
    DSC spec: Update version to 1.28. 7 years ago. appendix_c_module_types.md ... © 2025 GitHub, Inc. Footer navigation. Terms · Privacy · Security · Status · Docs ...
  53. [53]
    EDK II Documentation - GitHub
    Jan 20, 2023 · This document describes the EDK II Build Architecture. This specification was designed to support new build requirements for building EDK II ...
  54. [54]
    EDK II Platforms - GitHub
    Dec 2, 2020 · Kaby Lake MinPlatform - EDK II platform firmware on 7th Generation Intel® Core™ Processors and chipsets (formerly Kaby Lake platforms). Whiskey ...
  55. [55]
    Tianocore-Docs - GitHub
    This document introduces how to implement a secure boot chain in UEFI using the TianoCore EDK II project.
  56. [56]
    tianocore/edk2-platforms: EDK II sample platform branches and tags
    The EDK II Platforms open source project contains the following components that are covered by additional licenses: Silicon/RISC-V/ProcessorPkg/Library/ ...Missing: processor | Show results with:processor
  57. [57]
    RiscVPkg · tianocore/tianocore.github.io Wiki · GitHub
    The RISC-V edk2 project is to create a new processor binding in UEFI spec and have the RISC-V edk2 implementation. The goal is to have RISC-V edk2 port as the ...
  58. [58]
    OVMF - GitHub
    OVMF is an EDK II based project to enable UEFI support for Virtual Machines. OVMF contains sample UEFI firmware for QEMU and KVM.How to run OVMF · How to build OVMF · OVMF FAQ · OVMF Boot Overview
  59. [59]
    Coreboot_UEFI_payload · tianocore/tianocore.github.io Wiki
    Source code package of Coreboot Payload Modules, Provides definitions of payload image's layout and lists the modules required in DSC file.
  60. [60]
    UEFI Capsule Update for coreboot with EDK II - Dasharo Universe
    The code implementing UEFI Capsule Update for coreboot with EDK II will be upstreamed to the official EDK II repository at github.com/tianocore/edk2.
  61. [61]
    Ampere study - LinuxBoot
    The Mt. Jade platform embraces a hybrid firmware architecture, combining UEFI/EDK2 for hardware initialization and LinuxBoot for advanced boot functionalities.Missing: EDK | Show results with:EDK
  62. [62]
    [PDF] a-tour-beyond-bios-using-the-intel-firmware-support-package-with ...
    This document will introduce how to use EDKII as an FSP consumer module to build a platform BIOS. This section provided an overview of Intel FSP and EDKII.
  63. [63]
    [PDF] UEFI Development in HP
    EDK II Enables HP Platform Innovation and Execution Excellence. Integrity. †. Leads HP EDK II Transition. Integrity Server Blades. Integrity 2s Rack Server. 8 ...
  64. [64]
    Major tech firms at risk of attacks leveraging TianoCore EDK II bugs
    Jan 18, 2024 · Organizations leveraging the impacted UEFI software have been urged to immediately upgrade their firmware and enable Secure Boot, while ...
  65. [65]