Software:TianoCore EDK II

From HandWiki
Short description: Reference software implementation for UEFI
TianoCore EDK II
TianoCore EDK II splash screenshot.png
TianoCore EDK II splash screen
Developer(s)Intel
Repositorygithub.com/tianocore/edk2
LicenseBSD-2-Clause-Patent

TianoCore EDK II (formerly Tiano) is the reference implementation of UEFI by Intel. EDK is the abbreviation for EFI Development Kit and is developed by the TianoCore community.[1] TianoCore EDK II is the de facto standard generic UEFI services implementation.[2]

History

In 2004, Intel released their "Foundation Code" of their EFI implementation using a free license.[1] The resulting code formed the basis of the community-run EDK project on SourceForge, started in 2004. The name "Tiano" was present in the initial Intel code.[3] The last update to the EDK project happened in May 2010.[4]

An "edk2" project was imported into SourceForge in April 2006, with a package-oriented code base again written by Intel. The initial "DeveloperManual" referred to this project as "Tiano R9".[5] In 2008, a stable, validated version of EDK II was tagged as "UEFI Development Kit 2008" (UDK2008). The tag includes a BuildNotes.txt dating to November 2006 describing the code found in the initial import, and a BuildNotes2.txt describing modules added in May 2008.[6] UDK2010 was the first version of EDK II to be widely known.[7] Intel would continue to validate certain snapshots of EDK II as UDK until 2018, when EDK II moved into a "stable tag" format.[8]

Although EDK II implements the UEFI specification, it is not endorsed by the UEFI Forum.[1]

Projects

UEFI shell 2.2, a part of TianoCore EDK II

EDK II code has been integrated into other projects.

A part of TianoCore is the UEFI shell. When a specific UEFI vendor does not provide a UEFI shell, the one from TianoCore can be used.[9]

Coreboot

Google uses a version of coreboot modified to launch Tiano. This feature is called PIANO (payload into Tiano) or tianocoreboot. PIANO code was merged into coreboot in 2013.[10] The code was updated to be compatible with EDK II in 2017.[11]

EDK2 source code includes instructions for building as a payload for coreboot or Intel's "slim bootloader".[12]

Project Mu

Project Mu is a fork of EDK-II by Microsoft.[13][14] It is an open source release of the UEFI core used in Microsoft Surface and Hyper-V products initiated by Microsoft in December 2018.[15] The project promotes the idea of Firmware as a Service.[16] The project was started to replace TianoCore's edk2 implementation to improve quality tests of the competing open source UEFI core.[17]

EFIDroid

EFIDroid is a bootloader for Android devices based on Snapdragon processors that is based on EDK-II.[18]

References

  1. 1.0 1.1 1.2 "What is TianoCore?". https://www.tianocore.org/. 
  2. Häuser, Marvin; Cheptsov, Vitaly (2020). "Securing the EDK II Image Loader". 2020 Ivannikov Ispras Open Conference (ISPRAS). pp. 16–25. doi:10.1109/ISPRAS51486.2020.00010. ISBN 978-1-6654-1291-9. 
  3. "tianocore/edk". tianocore. 9 March 2023. https://github.com/tianocore/edk/blob/3e21a6a20a5114958409c7f05b017f179b2cccac/Foundation/Include/Tiano.h. 
  4. "Commits · tianocore/edk" (in en). https://github.com/tianocore/edk/commits/master. 
  5. "EDK II / Code / [r29574 /tags/InitialImport"]. https://sourceforge.net/p/edk2/code/HEAD/tree/tags/InitialImport/. 
  6. "EDK II Project". tianocore. 18 May 2023. https://github.com/tianocore/edk2/blob/UDK2008/BuildNotes2.txt. 
  7. Barry, Peter (2012). Modern embedded computing : designing connected, pervasive, media-rich systems. Patrick Crowley. Amsterdam: Elsevier/Morgan Kaufmann. pp. 173. ISBN 978-0-12-394407-8. OCLC 778434967. https://www.worldcat.org/oclc/778434967. 
  8. "UDK" (in en). https://github.com/tianocore/tianocore.github.io/wiki/UDK. 
  9. Babar, Yogesh (2020). Hands-on booting learn the boot process of Linux, Windows, and Unix. Berkeley, CA: Apress L. P. pp. 119. ISBN 978-1-4842-5890-3. OCLC 1164505064. https://www.worldcat.org/oclc/1164505064. 
  10. "Google Pushes "Project PIANO" Into Coreboot - Phoronix". https://www.phoronix.com/scan.php?page=news_item&px=MTI4ODU. 
  11. "Coreboot Now Has Basic UEFI Support Working With TianoCore - Phoronix". https://www.phoronix.com/scan.php?page=news_item&px=Coreboot-UEFI-Support. 
  12. "EDK II Project: BuildAndIntegrationInstructions.txt". tianocore. 18 May 2023. https://github.com/tianocore/edk2/blob/edk2-stable202302/UefiPayloadPkg/BuildAndIntegrationInstructions.txt. 
  13. "Microsoft releases Mu open-source UEFI firmware | bit-tech.net" (in en). https://bit-tech.net/news/tech/software/microsoft-releases-mu-open-source-uefi-firmware/1/. 
  14. "Microsoft Announces "Project Mu" For Open-Source UEFI Alternative To TianoCore - Phoronix". https://www.phoronix.com/scan.php?page=news_item&px=Microsoft-Project-Mu-UEFI. 
  15. Microsoft Announces "Project Mu" For Open-Source UEFI Alternative To TianoCore - Phoronix
  16. "Microsoft announces Project Mu, an open-source release of the UEFI core". 20 December 2018. https://betanews.com/2018/12/20/microsoft-project-mu/. 
  17. "Microsoft announces Project Mu to promote Firmware as a Service". 16 June 2023. https://www.neowin.net/news/microsoft-announces-project-mu-to-promote-firmware-as-a-service/. 
  18. "EFIDroid: A Second-Stage Bootloader Using UEFI Firmware to Multiboot [XDA Spotlight"] (in en-US). 2017-03-06. https://www.xda-developers.com/efidroid-is-a-second-stage-bootloader/. 

External links