Skip to content
Michael D Kinney edited this page Dec 13, 2019 · 4 revisions

Within the EDK II project, there are various packages (each sub-directory). To discuss an issue with a package, or to contribute a code change, please consult with the package maintainer on the relevant Mailing-Lists email list.

The package maintainers are documented in the Maintainers.txt file in the root of the EDK II tree.

EDK II Packages

The following is the list of EDK II packages and links to pages that provide an overview of each package.

Graphs that show the relationships between EDK II packages from all EDK II repositories are available on the EDK II Package Dependency Graphs page.

EDK II Package Categories

Packages can be grouped into different categories. It is recommended to not mix content from multiple categories into a single package. The only exception to this recommendation are PlatformPackages and Board packages that are allowed to provide content from all categories.

  • Common Packages
  • CPU Packages
  • Chipset/Silicon Packages
  • Feature Packages
  • Driver Packages
  • Platform Packages
  • Board Packages

EDK II Package Dependency Rules

The following package dependency rules must be followed. This maximizes the reuse of packages and also allows packages to be distributed using the format described in the Distribution Package Specification

  • Packages must never be nested.
  • Packages must never form circular dependencies.
  • A package is allowed to depend on itself.
  • Common Packages are not allowed to depend on CPU Packages, Chipset/Silicon Packages, Feature Packages, Driver Packages, Platform Packages, or Board Packages. Common packages are only allowed to depend on other Common Packages.
  • CPU Packages are not allowed to depend on Chipset/Silicon Packages, Feature Packages, Driver Packages, Platform Packages, or Board Packages. CPU Packages are only allowed to depend on Common Packages and other CPU Packages.
  • Chipset/Silicon Packages are not allowed to depend on Feature Packages, Driver Packages, Platform Packages, or Board Packages. Chipset/Silicon Packages are only allowed to depend on Common Packages, CPU Packages, and other Chipset/Silicon Packages.
  • Feature Packages are not allowed to depend on other Feature Packages, Driver Packages, Platform Packages, or Board Packages. Feature Packages are only allowed to depend on Common Packages, CPU Packages, and Chipset/Silicon Packages.
  • Driver Packages are not allowed to depend on CPU Packages, Chipset/Silicon, Feature Packages, Platform Packages, or Board Packages. Diver Packages are only allowed to depend on Common Packages and other Driver Packages.
  • Platform Packages are not allowed to depend on Board Packages.
  • Board Packages have no restrictions and can depend on all types of packages.

The figure below shows a summary of the EDK II Package Dependency rules showing the allowed dependencies.

PackageDependencyRules

EDK II Features

The following is a list of major EDK II features and links to pages that provide an overview of the feature and how to integrate the feature into an EDK II build.