1. Summary
  2. Report Spam
  3. Create account
  4. Log in

EDK2

From tianocore

Jump to: navigation, search

Project home

Summary EFI Development Kit II
Category development-platform, foundation-code, sample-driver, development-platform
License BSD
Owner(s) pgao2, Michael Krau
Docs and files http://sourceforge.net/projects/edk2/files/
Developer Page http://sourceforge.net/projects/edk2/develop

Welcome to the home of EDK II Development!

If you are new to the project, welcome! We are still in heavy development, but we wish to invite you to take a look at what we have done so far.

NEW on this project is the MdePkg version 1.01 and Core Stable version 0.90 release. (here)

This is a further extension of the EDK II, from the MdePkg 1.00 Package released June 14, 2009. This Package can be found in the EDK II SVN repository as r9029. This version represents the next major milestone in the EDK II development.

Also with this release, the online help system for the MdePkg version 1.01 is now working and available, here, for use directly from the Open Source Community Website.(using http://doxygen.sourceforge.net)

The release contains the following components:

  • MdePkg version 1.01 - updates to the MdePkg 1.00
  • MdeModulePkg 0.90
  • IntelFrameworkPkg 0.90
  • IntelFrameworkModulePkg 0.90
  • EdkCompatibilityPkg 0.90
  • Basetools - most recent Basetools since the MdePkg 1.00 release

Each package comes with the sources, the documentation in CHM format, and the documentation in HTML format. The release also includes release notes providing more technical content regarding the entire EDKII Core Stable Release and its components.

NOTE: There have been issues reported when attempting to use the CHM package after download from the website. There is now a document "Notice on Downloading CHM format Files" available to explain the issues and solutions in detail.

Your feedback is critical to making EDK II a success! Please submit any enhancements, defects, or requests through the Project Tracker tool.

Notes on the MdePkg version 1.00 release

This package contains the following significant features:

  • PROTOCOLs/PPIs/GUIDs and related data declarations in MdePkg/Include directory. They correspond to UEFI2.0, UEFI 2.1 and/or PI1.0 specifications published by the UEFI Forum and the EFI1.10 specification published by Intel.
  • Data declarations in MdePkg/Include/IndustryStandard directory support applicable industry standards.
  • Public library classes definitions in MdePkg/Include/Library support module development.
  • Library instances in MdePkg/Library directory implement library classes for module build and platform integration of different CPU architectures and module types.
  • Data structure declarations conform to the specification of "PCD Infrastructure". .
  • Build validation file of MdePkg/MdePkg.dsc lists the library instances under their supported CPU architectures and module types.

The MdePkg provides developers working on UEFI Applications, UEFI Drivers, UEFI Operating System Loaders, UEFI diagnostics, and UEFI Platform Initialization (PI) compliant silicon modules with a solid UEFI and PI compliant foundation from which to develop their modules under EDK II.

The MdePkg 1.00 also features the following quality metrics:

  • The MdePkg source code follows EDK II Coding Standard, which inludes the use of Doxygen style file and function headers. The documentation generated from the MdePkg is available in both CHM and HTML formats. *The MdePkg source code passed static code analysis and zero potential security violation is reported.
  • All the library source code can build without errors across several operating systems and tool chains
  • All MDE library interfaces and PCD entries are covered and verified by MDE library test cases at API level for functionality and conformance.

Of particular note to developers: the r8508 of the entire EDK II project contains the complete set of EDK II components used to test and validate this release.

Also available are the Base Tools used to verify this package and documentation of the MdePkg. The BaseTools package provides both binaries build tools and source code files with configuration files to build the MdePkg. It facilitates the most common development under multiple operating systems. The help documentation is available both as linked HTML and as comress HTML in CHM file format.

The EDK II Project

The EDK II project is the response to the EFI community’s request for a better build and version tracking environment for UEFI and PI development. The main difference between the EDK II to the original EDK is the Enhanced Build Environment of the EDK II. The advantages of the Enhanced Build Environment include:

  • XML based build definition tools
  • Operating System independence
  • Flexibility in choosing the compiler and assembler tools
  • The ability to generate working code using open source build tools and applications
  • Enhanced development and build capability of modules and module packages
  • Use of build configuration tools and data sets to provide flexible process
  • Online source control allows users to contribute code and become participants\

The EDK II enhanced build environment is a significant departure from the build environment of the original EDK. There are many new concepts and features in the EDK II, which have altered the environment. If you are familiar with the original EDK these changes will be obvious, while the benefits of them will be apparent to everyone.

It is important to note, that the compiled results of the EDK II are equivalent to the original EDK, the changes are in the build environment and only affect the sources at that level. In other words, any differences in the code files are only to support the changes in the build environment, once the modules are created, they are functionally identical.

In point of fact, the EDK II is classified at a development level project and the EDK is an official level project. The EDK is still intended to be used for volume production and shipments while the EDK II is being further refined through additional development. As the EDK II project matures and the active participation of the EFI open source community members expand the project’s scope (features, functionality, and support) the EDK II project will grow into an official level project. In the mean time, we are pleased in your interest in the EDK II project and encourage your participation and feedback.

Getting Started

You will need to install some external tools that are necessary to build the code.

To get the code please follow this document. It will walk you through the installation of the Subversion Software Configuration management Client, TortoiseSVN, and show you how to pull the latest copy of the tree.

Further instructions for using the EDK II are provided in the BuildNotes2.txt at the top of the edk2 directory tree. This file can be displayed using the Subversion web interface.

Additionally, we have provided some step-by-step instructions for helping new developers set up their build environment and build their first EDK II package. These instructions also cover setting up builds for Unix-like platforms, including building a GCC UEFI cross compiler for EDK II development.


Help! If you have questions about the code or run into obstacles getting things to work for you, please post a note on the dev@edk2.tianocore.org mailing list. One of the friendly developers will be happy to help you.

You are not signed up to the project mailing lists by default. We encourage you to subscribe to the mailing lists of the edk2 project here. If you were registered and logged in, you could join these lists.

Notes on FAT II Driver Project

FAT Driver Projects are projects for the FAT32 File System Driver, which is based on Microsoft's FAT32 File System Driver Specification. The Fat Drivers are separate from the EDK projects only because the terms of use of the code are unique, requiring us to keep them in a separate code repository (the terms are basically that code developed using the FAT32 Specification must be associated with EFI).

Since the EDK II involved making changes to the source files to support the enhanced build environment, FAT file system driver sources required changes to be compatible with the EDK II build environment. The FAT II sub-project provides those compatible sources without impacting the original FAT driver sub project of the current EDK.

The FAT II Driver Project is a subproject of the EDK II project, and is only used to house the FAT32 code repository. All development tools in the EDK II project are integrated with this sub-project. This project is to be used only to update the repository or to get access to the latest code snapshots. Use the EDK II project to post issues, join mailing lists, participate in discussion forums, etc. In short, consider them one project with two code repositories.

Subprojects
Name Summary
fat-driver2 Edk II Fat Driver Package
Personal tools