Skip to content

Latest commit

 

History

History
217 lines (168 loc) · 13.7 KB

README.md

File metadata and controls

217 lines (168 loc) · 13.7 KB

UDK2018-Minnowboard / CdePkg

pci1

https://minnowboard.org/

Introduction UDK2018-Minnowboard

This UDK2018-Minnowboard introduces the CdePkg and the CdeValidationPkg to the UEFI/Tianocore open source community.

UDK2018-Minnowboard is the Git-Super-Project in the UDK2018-MinnowBoard project to build the MinnowBoard UEFI BIOS. It contains the edk2-vUDK2018 as a Git-Sub-Project. edk2-vUDK2018 can also be used stand alone in Emulation Mode (Nt32Pkg) (NOTE: In emulation mode timing calulation assumes to run a 1GHz platform).

The MinnowBoard familiy is an open source Personal Computer hardware originally created by a company called ADI Engineering, that now belongs to Silicom

Intel provides binary modules and maintains the build environment to get the MinnowBoard running with the open source UEFI BIOS Tianocore\EDK2

The MinnowBoard is the only free available hardware/PC platform to get UEFI Tianocore BIOS running.

UDK2018-MinnowBoard is the Git-Super-Project to build the MinnowBoard UEFI BIOS and demonstrates CdePkg and CdeValidationPkg on real hardware.

Goal

  1. The main aspect is, to introduce the CdePkg and the CdeValidationPkg to the UEFI/Tianocore open source community.

  2. get the MinnowBoard and the EDK2 Emulation (Nt32Pkg) running with the latest released UDK2018 and the latest Visual Studio VS2019 build environment

  3. use OpenSSL_1_1_0-stable in the component CryptoPkg\Library\OpensslLib

CdePkg is considered an improvement over traditional UEFI BIOS development, since it introduces

  • stable, precise, chipset (ACPI timer) independent C library conform clock() for POST and UEFI Shell in millisecond resolution
  • unlimited (buffer less) printf()-family and scanf()-family implementation
  • Standard C conform format specifiers for printf()-family and scanf()-family
  • a library, which satisfies all the Microsoft C compiler intrinsic requirements with one and the same library (C++ not supported)
  • Hosted Environment instead of Freestanding Environment for POST driver

This improvements shall enable UEFI and modernFW to provide a Standard C interface for any "C"-(open)source-based extention.

NOTE: Visual Studio is here only used for editing the project. The build process is still pure EDK! (the startup error message of VS2017/VS2019 can be ignored)

HowTo install/build/Edit

Installation

  1. install a build machine according to https://github.com/KilianKegel/HowTo-setup-an-UEFI-Development-PC#howto-setup-an-uefi-development-pc

  2. clone the UDK2018-MinnowBoard project --recursive
    i. git.exe clone --progress --recursive -v "https://github.com/KilianKegel/UDK2018-MinnowBoard.git" "A:\UDK2018-MinnowBoard"
    or
    ii. right click to open the context menu -> Git clone
    cloneimage2

Directory structure

The given MinnowBoard SourceCode tree is extended by files and directories shown below:

dirarch

root subdir subsubdir annotation
  <DIR>  UDK2018-MinnowBoard ..                 @link
bldDBG.bat batch to build the MinnowBoard BIOS in DEBUG mode @link
bldREL.bat batch to build the MinnowBoard BIOS in RELEASE mode @link
launch2019.bat start the VS2019 MinnowBoard build environment@link
launch2017.bat start the VS2019 MinnowBoard build environment@link
UDK2018-MinnowBoard.sln Visual Studio Solution to edit only the entire source tree @link
  <DIR>  edk2 .. GIT-subproject @link
bldDBG.bat batch to build the EDK2 emulation (Nt32Pkg) BIOS in DEBUG mode @link
CdePkg.sln Visual Studio solution to edit/build CdePkg @link
CdeValidationPkg.sln Visual Studio solution to edit/build CdeValidationPkg @link
edk2-vUDK2018.sln Visual Studio solution to edit/only CdeValidationPkg @link
launch2019.bat start the VS2019 EDK2 emulation (Nt32Pkg) build environment@link
launch2017.bat start the VS2017 EDK2 emulation (Nt32Pkg) build environment@link
  <DIR>  CdePkg CdePkg C Development Environment Package@link
  <DIR>  CdeValidationPkg CdeValidationPkg C Development Environment Package@link

Build

  1. To build the EDK emulation:
    edk2\launch2019.bat to setup EDK2 / emulation (Nt32Pkg) build environment
    rd /s /q build in the edk2directory to clean previous EDK2 / emulation build
    bldDBG.BAT (Debug) or bldREL.BAT (Release) to start the build process in the EDK2 directory
    start DBG to start the UEFI BIOS EMULATION

  2. To build the MinnowBoard:
    .\launch2019.bat to setup MinnowBoard (Vlv2TbltDevicePkg) build environment
    rd /s /q build in the .\directory to clean previous Vlv2TbltDevicePkg build
    bldREL.BAT (Release) or bldDBG.BAT (Debug) to start the build process in the .\directory
    If a DediProg is connected to the system, the BIOS is automatically updated in the target system MinnowBoard

NOTE: EDKEmulation build and MinnowBoard build CAN NOT be used alternating in the same command box.

Edit

UDK2018-MinnowBoard is the Git-Superproject UDK2018-MinnowBoard to build the MinnowBoard UEFI BIOS.

It includes the edk2 which is the Git-Subproject edk2-vUDK2018, that in turn includes the Cde-directories as GIT-Subproject CdePkg and GIT-Subproject CdeValidationPkg.

Related Projects

 related project annotation
Torito C Library C Library for UEFI Shell only. All projects below are built on or derived from Torito C Library
Visual ANSI C for UEFI Shell Visual Studio for UEFI Shell for beginners.
Visual DOS Tools for UEFI Shell more command implementation
Visual HWTools for UEFI Shell HWTools: PCI- and GPIOSpy for Baytrail. MemSpy for all.
UDK2018-Minnowboard Gets the MinnowBoard running with the latest released EDK sourcecode and demonstrates CdePkg on real hardware
edk2-UDK2018 Gets the Emulation (Nt32Pkg) running with the latest released EDK sourcecode and demonstrates CdePkg on the Windows Desktop
CdePkg Torito C Library redone for UEFI POST usage
CdeValidationPkg Unit tests for CdePkg
MinnowBoard Official MinnowBoard web presence

Known Bugs

  1. fixed 20190830: Capsule doesn't work.
  2. before BIOS build previous CdePkg build and FV files has to be deleted manually (clrCdePkgBuild.bat)

Revision History

20190906/improve tool chain check

  • add IASL version check
  • add PYTHON version check
  • add NASM version check

20190901

20190830

  • CdeValPkg branch merge

20190830\OpenSSL

  • add OpenSSL_1_1_0-stable to CryptoPkg\Library\OpensslLib

20190830

20190829

20190822

  • place CDE*.SLN solution files into EDK2 directory, to be able to use Visual Studio solutions EDK2 directory without MinnowBoard build environment
  • improve CdeValidationPkg

20190811

  • add validation driver/executables for all ctype.h- and wctype.h-related functions: (ctypeALLPei, ctypeALLDxe, wctypeALLPei, wctypeALLDxe)
  • remove previously used single function test drivers

20190802/1

  • WinNTx86-64 (Microsoft C Library)
  • WinNTx86-64 (Torito C Library)

20190730

  • add all CTYPE.H() -functions to PEI post phase

20190728

  • add all CTYPE.H-functions for DXE

20190727/2

  • add clockPei()

20190726

  • initial version of branch CdeValPkg
  • add MFNBAR as bare/naked parameter for CDEMOFINE macro
  • add clockDxe commandline to CdeLoadOptions.h
  • update CdeSrcPkg/b81394c620206ebbc300216652cd43d7f4ac94e3

20190709

  • add initial PEI Support, rudimentary functional range
  • BIOS binary

20190626

  • add VS2019 support (for both MinnowBoard- and Emulationbuild)

20190605

  • removed CdePkg from main tree
  • add submodules CdePkg and CdeSrcPkg
  • BIOS binary

20190513

  • CdePkg: initial revision - standard C Library and standard headerfile usage

20190225

  • enable emulation build and debug
  • improve MinnowBoard build

20190224

  • added missing files from UDK2017 to build MinnowBoard in UDK2018
  • fixed: build MinnowBoard

20190222 - initial checkin

  • downloaded the entire source code (see HowTo)
  • configured as a VS2017 solution - just for editing the source
  • not able to build