TianoCore EDK II explained

Developer:Intel
Engines:-->
License:BSD-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. 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 (version 1) project happened in May 2010.[4] Version 2 is in active development.[5]

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".[6] 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.[7] UDK2010 was the first version of EDK II to be widely known.[8] Intel would continue to validate certain snapshots of EDK II as UDK until 2018, when EDK II moved into a "stable tag" format.[9]

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

Projects

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.[10]

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.[11] The code was updated to be compatible with EDK II in 2017.[12]

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

Project Mu

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

EFIDroid

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

LogoFAIL vulnerability

In December 2023 a vulnerability termed "LogoFAIL" was discovered associated with EDK II which enabled an attacker to insert their own code in place of custom boot logo bitmap loader modules.[20]

Notes and References

  1. Web site: What is TianoCore?. 2021-03-26. www.tianocore.org.
  2. Book: 2012.05471 . 2020 Ivannikov Ispras Open Conference (ISPRAS) . Häuser. Marvin. Cheptsov. Vitaly. Securing the EDK II Image Loader . 2020. 16–25 . 10.1109/ISPRAS51486.2020.00010 . 978-1-6654-1291-9 . 228084173 .
  3. Web site: tianocore/edk . tianocore . 9 March 2023.
  4. Web site: Commits · tianocore/edk . GitHub . en.
  5. Web site: Releases · tianocore/edk2 . 2024-02-23 . GitHub . en.
  6. Web site: EDK II / Code / [r29574] /tags/InitialImport ]. sourceforge.net.
  7. Web site: EDK II Project . tianocore . 18 May 2023.
  8. Book: Barry, Peter. Modern embedded computing : designing connected, pervasive, media-rich systems. 2012. Elsevier/Morgan Kaufmann. Patrick Crowley. 978-0-12-394407-8. Amsterdam. 173. 778434967.
  9. Web site: UDK . tianocore documentation (GitHub) . en.
  10. Book: Babar, Yogesh. Hands-on booting learn the boot process of Linux, Windows, and Unix. 2020. Apress L. P. 978-1-4842-5890-3. Berkeley, CA. 119. 1164505064.
  11. Web site: Google Pushes "Project PIANO" Into Coreboot - Phoronix. 2021-03-26. www.phoronix.com.
  12. Web site: Coreboot Now Has Basic UEFI Support Working With TianoCore - Phoronix. 2021-03-26. www.phoronix.com.
  13. Web site: EDK II Project: BuildAndIntegrationInstructions.txt . GitHub . tianocore . 18 May 2023.
  14. Web site: Microsoft releases Mu open-source UEFI firmware bit-tech.net. 2021-03-26. Bit-tech. en.
  15. Web site: Microsoft Announces "Project Mu" For Open-Source UEFI Alternative To TianoCore - Phoronix. 2021-03-26. www.phoronix.com.
  16. https://www.phoronix.com/scan.php?page=news_item&px=Microsoft-Project-Mu-UEFI Microsoft Announces "Project Mu" For Open-Source UEFI Alternative To TianoCore - Phoronix
  17. Web site: Microsoft announces Project Mu, an open-source release of the UEFI core. 20 December 2018.
  18. Web site: Microsoft announces Project Mu to promote Firmware as a Service . 16 June 2023 .
  19. Web site: 2017-03-06. EFIDroid: A Second-Stage Bootloader Using UEFI Firmware to Multiboot [XDA Spotlight]]. 2021-03-26. xda-developers. en-US.
  20. Web site: The Far-Reaching Consequences of LogoFAIL. November 29, 2023. Binarly.