Jump to content

TianoCore EDK II

From Wikipedia, the free encyclopedia
(Redirected from Firmware as a service)
Developer(s)Intel
Repositorygithub.com/tianocore/edk2
LicenseBSD-2-Clause-Patent
Websitewww.tianocore.org Edit this on Wikidata
Logo of Tianocore, the umbrella project of which EDK II is part of

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

[edit]

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 (version 1) project happened in May 2010.[4] Version 2 is in active development.[5][non-primary source needed]

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

Projects

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

Coreboot

[edit]

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

[edit]

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 build on TianoCore's EDK II implementation to improve modularity and increase the quality of tests when building UEFI firmware.[18]

EFIDroid

[edit]

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

LogoFAIL vulnerability

[edit]

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]

References

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