Skip to content

Latest commit

 

History

History
487 lines (387 loc) · 21.5 KB

PITCHME.md

File metadata and controls

487 lines (387 loc) · 21.5 KB

---?image=assets/images/gitpitch-audience.jpg @title[Title-UEFI Overview]




 UEFI & EDK II Training

  Open Source UEFI Platforms


   tianocore.org Note: PITCHME.md for UEFI / EDK II Training EDK II Open Source Platforms

Copyright (c) 2020, Intel Corporation. All rights reserved.

Redistribution and use in source (original document form) and 'compiled' forms (converted to PDF, epub, HTML and other formats) with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code (original document form) must retain the above copyright notice, this list of conditions and the following disclaimer as the first lines of this file unmodified.

  2. Redistributions in compiled form (transformed to other DTDs, converted to PDF, epub, HTML and other formats) must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL TIANOCORE PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


@title[Lesson Objective]

<p align="center"Lesson Objective




@fa[certificate gp-bullet-green]  Chart the organization of the Tianocore.org repositories

@fa[certificate gp-bullet-yellow]  Recognize the various Open Source UEFI Platforms

---?image=/assets/images/slides/Slide3.JPG

@title[Web Tianocore.org]

   Tianocore.org













Platforms on tianocore.org : Emulator, OVMF, ArmVirt, MdePkg, HW Platforms, Max/Turbot, Up2 and Intel® Galileo

Note:

+++?image=/assets/images/slides/Slide4.JPG

@title[Web Tianocore.org 02]

   Tianocore.org













Platforms on tianocore.org : Emulator, OVMF, ArmVirt, MdePkg, HW Platforms, Max/Turbot, Up2 and Intel® Galileo

Note:

---?image=/assets/images/slides/Slide5.JPG @title[github tianocore]

                     @fa[github gp-bullet-white] GitHub
                                         github/tianocore

@snap[north-west span-60 ]



  • Main development -
    @color[yellow](edk2)
  • Online Infor & Help (Wiki) -
    @color[yellow](tianocore.github.io)
  • Other Platforms -
    @color[yellow](edk2-platforms )
  • "C" library for Apps -
    @color[yellow](edk2-libc)


  • To Download use "@color[#A8ff60](git clone)" then
    "@color[#A8ff60](git checkout)"
@snapend

Note:

---?image=/assets/images/slides/Slide6.JPG @title[Platforms github tianocore]

@fa[github gp-bullet-gold] GitHub tianocore.org

edk2 - Platforms on edk2 - CORE

  EmulatorPkg
  OvmfPkg


See Readme.md files

Note:

---?image=/assets/images/slides/Slide7.JPG @title[Emulation Dir ]

@size[1.1em](Emulation Directory Structure )


          EmulatorPkg files


          ✓ EmulatorPkg.dsc

          ✓ EmulatorPkg.dec

          ✓ EmulatorPkg.fdf

Note:

---?image=/assets/images/slides/Slide8.JPG @title[Running Emulation ]

Running Emulator with @fa[windows gp-bullet-cyan]  Windows

Note: Emulation works on top of Windows* environment Disadvantage - Limited (or no) access to actual hardware

---?image=/assets/images/slides/Slide9.JPG @title[Open Virtual Machine Firmware ]

@size[1.1em](   Open Virtual Machine Firmware (OVMF))


@snap[north-west span-60 ]



  • Uses EDK II to support firmware in the OvmfPkg platform package
  • Supports UEFI: Helps develop/ debug drivers & applications
  • QEMU VM; emulates IA32 (x86)/ X64 (x86-64) based system
  • Exit condition → UEFI Shell
  • Tool Chain/OS Support
  • Information OVMF wiki ,
    Tianocore.org
@snapend

Note:

  • Support firmware for VM using EDK II

  • EDK II Package Directory – OvmfPkg

  • Enable support for UEFI within VM to help develop/debug UEFI drivers & applications

  • QEMU1 VM supported to emulate IA32 (x86) or X64 (x86-64) based system

  • OVMF is a sample platform for how VM firmware can be built with EDK II to boot EFI/UEFI Shell & OS in the VM

  • 1 QEMU - Open source processor emulator virtual machine using dynamic translation to achieve good emulation speed

  • Tool chain support

  • Microsoft Visual Studio*, WINDDK*, Intel ‘C’ Compiler (ICC), GCC Linux and GCC Windows (under CYGWIN*)

  • OVMF also requires an ASL compiler to be installed on the system. Intel ASL is available from http://www.acpica.org.

  • More Information available at TianoCore.org

---?image=/assets/images/slides/Slide10.JPG @title[Open Virtual Machine Firmware ]

@size[1.1em](OVMF BIOS w/ QEMU )
Boots to UEFI Shell

---?image=/assets/images/slides/Slide11.JPG @title[EDK II EADK]

EDK II EADK

EDK II Application Development
Kit (EADK) includes the Standard
“C” Libraries in UEFI Shell
Applications

Note:


@title[EDK II EADK Components]

   EDK II EADK Components

EDK II Application Development Kit includes the Standard C Libraries in UEFI Shell Applications

@fa[circle gp-bullet-green]    Components - @color[#87E2A9](Utilities (Python 2.7.2, & 2.7.10 etc.) ) - @color[yellow](C Library) - @color[#87E2A9](BSD Socket Library) - @color[yellow](Network Socket Library – Ipv4 / Ipv6)

@fa[circle gp-bullet-gold]    Packages       @color[#FFC000](/AppPkg)
                                                        @color[#FFFF99](/StdLib)

Note:


@title[EDK II EADK ANSI C]

   EDK II EADK – Standard ANSI C Library

FreBSD Port                    @color[#FFFF99](ANSI/POSIX compliant)

<tr>
	<td><p style="line-height:10%"><span style="font-size:0.65em" ><font color="white"><b>Time/Date</b>  </font></span></p></td>
	<td><p style="line-height:10%"><span style="font-size:0.65em" ><font color="white">- <font face="Consolas">time(), asctime(), ctime(),</font> . . .  </font></span></p></td>
</tr>
<tr>
	<td><p style="line-height:10%"><span style="font-size:0.65em" ><font color="orange"><b>Math</b> </font></span></p></td>
	<td><p style="line-height:10%"><span style="font-size:0.65em" ><font color="orange">- <font face="Consolas">sqrt(), pow(), sin(), log(),</font> . . .  </font></span></p></td>
</tr>

System I/O

- open(), read(), write(), close(), stat()

Standard I/O

- fopen(), printf(), gets(), getchar(),. . .

String/Char

- strcmp(), isascii(), atoi(), . . .

Memory

- malloc(), free(), realloc(),. . .

Note:

---?image=/assets/images/slides/Slide14.JPG @title[Platforms Tianocore.org]


@size[1.1em](Platforms Tianocore.org )

Platforms on branches -
edk2-platforms

  • devel-IntelAtomProcessorE3900
    - Leaf Hill, Up Squared (Apollo Lake)
  • MinnowBoardMax
    - BayTrail-I
  • MinPlatformPkg - (W/ FSP)
        - KabylakeOpenBoardPkg
        - WhiskeylakeOpenBoardPkg

  • How to build
    - See the Readme.md files

    Note:

    ---?image=/assets/images/slides/Slide15.JPG @title[Slim Bootloader SBL]


    @size[1.1em](Slim BootLoader (SBL) Project    )

    Fast & Secure Open source boot solution for IoT Use Cases
    @size[.8em](Github: https://github.com/slimbootloader )

    Supported Hardware

    • QEMU
    • UP2 Board
    • Apollo Lake CRB
    • Whisky Lake Lake CRB
    • Coffee Lake Refresh Lake CRB
    • UP Xtreme Board

    Documentation: Slim Bootloader Project

    ---?image=/assets/images/slides/Slide16-1.JPG @title[Intel® FSP Repository]


    @size[1.1em](Intel® FSP Repository   )

    @snap[north-west span-60 ]



    Intel Developer Zone Overview

    Repository of Intel FSP binaries posted by Intel
    Includes documentation on how to integrate with various platforms
    https://github.com/IntelFsp/FSP

    Wiki: https://github.com/IntelFsp/FSP/wiki
        - current specs

    @snapend

    ---?image=/assets/images/slides/Slide17.JPG @title[Staging Tianocore.org]

    Staging Tianocore.org

    Implementations not yet Ready for
    EDK II Main - edk2-staging

    Projects on branches

    • Host-based FW analysis (HBFA)
    • edk2-host-test
    • FceFmmt (FW Utils)
    • UEFI_PCI_ENHANCE-2
    • EdkRepo
    • Cpu/6-level
    • HTTPS-TLS
    • RICS-V
    • . . .

    See the Readme.md files

    Note:


    @title[Lesson Summary]


    ###

    Summary




    @fa[certificate gp-bullet-green]  Chart the organization of the Tianocore.org repositories

    @fa[certificate gp-bullet-yellow]  Recognize the various Open Source UEFI Platforms

    ---?image=assets/images/gitpitch-audience.jpg @title[Questions]
    ![Questions](/assets/images/questions.JPG =10x)


    @title[return to main]

    @size[1.2em](Return to Main Training Page)






    Return to Training Table of contents for next presentation link

    @snap[north span-30 ]


    trainingLogo @snapend

    ---?image=assets/images/gitpitch-audience.jpg @title[Logo Slide]


    ![Logo Slide](/assets/images/TianocoreLogo.png =10x)


    @title[Acknowledgements]

    <p align="center"Acknowledgements

    /**
    Redistribution and use in source (original document form) and 'compiled' forms (converted
    to PDF, epub, HTML and other formats) with or without modification, are permitted provided
    that the following conditions are met:
    
    Redistributions of source code (original document form) must retain the above copyright 
    notice, this list of conditions and the following disclaimer as the first lines of this 
    file unmodified.
    
    Redistributions in compiled form (transformed to other DTDs, converted to PDF, epub, HTML
    and other formats) must reproduce the above copyright notice, this list of conditions and 
    the following disclaimer in the documentation and/or other materials provided with the 
    distribution.
    
    THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY EXPRESS OR IMPLIED 
    WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
    FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL TIANOCORE PROJECT BE 
    LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
    (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
    WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
    ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY 
    OF SUCH DAMAGE.
    
    Copyright (c) 2020, Intel Corporation. All rights reserved.
    **/

    @title[Backup]




    <p align="center"Backup

    ---?image=/assets/images/slides/Slide23.JPG @title[Intel® Quark]

      Intel® Quark SoC X1000 Platform
      Project EDK II    


    • Uses EDK II to support firmware

    • QuarkPlatformPkg
        -  Intel® Galileo Gen2


    - How to Build:
    Quark Readme.md

    Note: