Edk2 Versions Save

EDK II

edk2-stable201905

4 years ago

Release Date 2019-06-06 (UTC - 8 01:00)

New Features

Bugzilla List

Update Notes

  1. PEIM DebugServicePei and library instance PeiDebugLibDebugPpi are added to save the PEIM Debug Image size. This can be enabled in platform DSC/FDF. Platform DSC is changed to include DebugServicePei and update DebugLib library instance.
[LibraryClasses.Common.PEIM]
  DebugLib|MdeModulePkg/Library/PeiDebugLibDebugPpi/PeiDebugLibDebugPpi.inf

[Components]
  MdeModulePkg/Universal/DebugServicePei/DebugServicePei.inf {
    <LibraryClasses>
      DebugLib|MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
  }

Platform FDF also needs to be changed to include DebugServicePei and place it into apriori list.

[FV.PEIFV]
APRIORI PEI {
  INF  MdeModulePkg/Universal/DebugServicePei/DebugServicePei.inf
  }
INF  MdeModulePkg/Universal/DebugServicePei/DebugServicePei.inf
  1. ShellBinPkg has been removed. Shell binaries can be download from the Assets section in edk2-stable201905 release page. Platform can also use ShellPkg directly, and update platform dsc/fdf file as below. Add shell application in platform fdf file:
INF  ShellPkg/Application/Shell/Shell.inf

Add shell application in platform dsc file:

ShellPkg/Application/Shell/Shell.inf {
    <PcdsFixedAtBuild>
      gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
    <LibraryClasses>
      NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
      NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
      NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
      NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
      NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
      NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
      NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
      NULL|ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf
      ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
      ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
      HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
      BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
      FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
      SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
  }

Note: If platform doesn’t have shell boot option after updating to use ShellPkg, please check platform code logic of registering shell boot option, make sure it use the correct UEFI Shell file GUID as below. Shell file GUID: { 0x7C04A583, 0x9E3E, 0x4f1c, {0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1} }.

  1. Remove IpSec driver and IpSecConfig application from NetworkPkg. Platform DSC/FDF should remove them.
NetworkPkg/Application/IpsecConfig/IpSecConfig.inf
NetworkPkg/IpSecDxe/IpSecDxe.inf
  1. UefiDecompressLib instance IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib has been merged into MdePkg/Library/BaseUefiDecompressLib. If platform still use the one in IntelFrameworkModulePkg, please update it to use the one in MdePkg.
UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
==>
UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiTianoCustomDecompressLib.inf
  1. Removed EDK Compatibility support. If platform still use the PcdFrameworkCompatibilitySupport or framework VFR, please remove or update the related code logic or source file.

  2. Network Module and Libraries are moved from MdeModulePkg to NetworkPkg. The platform DSC/FDF needs to include Network segment files to enable Network features instead of including the group of network modules. Those segment files are included into the different sections in DSC/FDF as below. If the module consumes Network library class, its INF needs to make sure NetworkPkg\NetworkPkg.dec in [Packages] section.

Platform.dsc:
[Defines]
!include NetworkPkg/NetworkDefines.dsc.inc

[PcdsFixedAtBuild]
!include NetworkPkg/NetworkPcds.dsc.inc

[LibraryClasses]
!include NetworkPkg/NetworkLibs.dsc.inc

[Components]
!include NetworkPkg/NetworkComponents.dsc.inc

Platform.fdf:
[FV.DXEFV]
...
!include NetworkPkg/Network.fdf.inc
  1. Openssl has been updated to new 1.1.1b version. Compared to previous version, new version openssl increases the image size for the driver that consumes CryptoLib. Platform FDF file may reserve more space in FV image to contain them.

  2. NT32 has been removed. EmulatorPkg can be used to run in Windows or Linux OS.

edk2-stable201903

5 years ago

Release Date 2019-03-08 (UTC - 8 12PM)

New Features

Bugzilla List

Wiki

Update Notes

  1. Use ShellPkg in Platform DSC/FDF to replace EdkShellBinPkg, because EdkShellBinPkg is removed.
  2. Remove the using of PcdPeiCoreMaxFvSupported, PcdPeiCoreMaxPeimPerFv and PcdPeiCoreMaxPpiSupported in platform code as they have been removed for BZ1405.
  3. Remove the using of EmuVariableRuntimeDxe and use the merged Variable driver instead like below as EmuVariableRuntimeDxe has been removed for BZ1323.
MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
  <PcdsFixedAtBuild>
    gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvModeEnable|TRUE
  <LibraryClasses>
    AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
    TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
    VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf
}
  1. Remove the TCP/iSCSI/PXE drivers in MdeModulePkg for BZ1278. Below components in NetworkPkg should be used to support both IPv4 and IPv6.
[Components]
NetworkPkg/TcpDxe/TcpDxe.inf
NetworkPkg/IScsiDxe/IScsiDxe.inf
NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
  1. New working model BZ1409 has been adopted for the ATA and NVM Express OPAL devices S3 auto-unlock feature. The S3 phase hardware (ATA and NVM Express) initialization codes have been removed from the OpalPassword drivers. The OpalPasswordPei PEIM now will consume the Storage Security Command (SSC) PPI instances to unlock OPAL devices in S3. For the new working model, the following PEIMs:
MdeModulePkg/Bus/Ata/AhciPei/AhciPei.inf
MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPei.inf

should be included by platforms so that SSC PPI instances will be produced for ATA and NVM Express devices respectively. Platforms also need to provide Host Controller PEIMs for ATA and NVM Express controllers. These PEIMs should respectively produce EDKII_ATA_AHCI_HOST_CONTROLLER_PPI and EDKII_NVM_EXPRESS_HOST_CONTROLLER_PPI in order to support the new working scheme. Lastly, please note that the PEIMs involved here will be executed during S3 resume. As a result, they may not be compressed, so there will be an impact to the image size.

  1. Unused tool chain VS2003/VS2015, GCC44/GCC45/GCC46/GCC47, ELFGCC/UNIXGCC/CYGGCC, DDK3790, MYTOOLS are removed. Please use the latest VS2015 or GCC5 as the default tool chain.
  2. In case that a C function body contains the string of L'', L'\"', L"\"", L''' or L""", ECC tool running under python3 interpreter will report error with code 5005. Please ignore it for this error is false reported. For example, in ShellPkg\Application\Shell\Shell.c, line 212 contains L"\"". FirstQuote = FindNextInstance (CmdLine, L"\"", TRUE) That line will cause ECC tool under python3 report error “The close brace should be at the very beginning of a line for the function [ContainsSplit].”, this error is a false report. ECC tool under python2 interpreter has no such issue.
  3. MdeModulePkg FaultTolerantWriteSmm consumes new library class MmServicesTableLib. Platform DSC file need to specify MmServicesTableLib library instance in LibraryClasses section. Below is one example.
[LibraryClasses.common.DXE_SMM_DRIVER]
  ...
  MmServicesTableLib|MdePkg/Library/MmServicesTableLib/MmServicesTableLib.inf

edk2-stable201811

5 years ago

Release Date 2018-11-15

New Features

Bugzilla List

Wiki

Update Notes

  1. Core driver(BootGraphicsResourceTableDxe)/library(DxeCapsuleLibFmp) are updated to consume BmpSupportLib/SafeIntLib/DisplayUpdateProgressLib. Below library instances are required to be added into platform DSC [LibraryClasses] section.
   BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf
   SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf
   DisplayUpdateProgressLib|MdeModulePkg/Library/DisplayUpdateProgressLibText/XXXXXX.inf
  1. According to the Intelligent Platform Management Interface Specification Second Generation v2.0 Document Revision 1.1 (October 1, 2013), a couple of definitions get updated within below IPMI header files. 'union' types are used in structure definitions that have bitmap fields. This will provide the users with both bit-level and byte/word-level accesses to those structures.
    MdePkg\Include\IndustryStandard\IpmiNetFnApp.h
    MdePkg\Include\IndustryStandard\IpmiNetFnChassis.h
    MdePkg\Include\IndustryStandard\IpmiNetFnStorage.h
    MdePkg\Include\IndustryStandard\IpmiNetFnTransport.h
  1. UefiCpuPkg MpInitLib improved the performance by shadowing microcode to memory before doing microcode update. The enhancement may cause S3 resume failure because the shadow uses lots of S3 resume memory if the microcode file is large and the S3 resume memory is small. Platform needs to increase the S3 resume memory size in this case.

  2. Core driver(SystemFirmwareUpdateDxe) is updated to consume new interface PerformFlashWriteWithProgress() of PlatformFlashAccessLib. Platform's PlatformFlashAccessLib library instance is required to be updated to implement the new interface PerformFlashWriteWithProgress().

  3. Remove DxeSmmPerformanceLib from platform DSC, because it has been removed.

  4. Use FatPkg in Platform DSC/FDF to replace FatBinPkg, because FatBinPkg is removed.

  5. BaseTools adds the checker of the guid format defined in Package.dec file. It requires (<CName> = <GuidValueInCFormat:{8,4,4,{2,2,2,2,2,2,2,2}}>). Otherwise, BaseTools reports the error for the invalid GUID format.

  6. BaseTools adds the check for VOID* PCD max size. Max size is UINT16.

  7. BaseTools adds the checker that the datum type of a FeatureFlag PCD must be BOOLEAN.

  8. BaseTools drops the support to freeze python tools as the windows executable files. BaseTools only supports python tools run from source in Windows OS.

  9. If PcdMaxPeiPerformanceLogEntries16 is configured in DSC file to set the maximum number of performance log entries during PEI phase, its value suggests to be less than 880. If its value is bigger, such as 1000, it will cause PEI performance HOB data exceed HOB size limit.

  10. UefiCpuPkg MpInitLib is enhanced to forbidden AP calls PEI services (following PI spec). Exception or hang may occur when AP procedure contains code to use PEI services.

  11. PlatformBootManagerLib adds a new API called PlatformBootManagerUnableToBoot(). BdsDxe driver calls this new API when unable to boot. PlatformBootManagerLib library instance needs to implement this API to avoid build failure. OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c contains an implementation to pop up UI; EmulatorPkg/Library/PlatformBmLib/PlatformBm.c contains an implementation to do nothing.

vUDK2018

6 years ago

UDK2018 Release Page

How to build

See wiki page UDK2018 How to Build on the UDK2018 Release wiki page

UDK2018 Features / Updates / Changes

See the wiki page UDK2018 Features Updates Changes for list of Features, Updates and Changes to the UDK2018 Release from the previous UDK release

UDK2018 Package Notes

See wiki page UDK2018 Package notes for list of Package's Notes details on changes & updates

Downloads - File Descriptions (Below files)

Source Code

These source code downloads are the from the tag vUDK2018 for the official UDK2018 release.
UDK2018 edk-vUDK2018 Workspace Source code (zip file) UDK2018 edk-vUDK2018 Workspace Source code (tar.gz file)

Documentation

This download contains all .chm and .html documents for UDK2018. Each package includes details on the definitions (including PPIs/PROTOCOLs/GUIDs and library classes) and libraries instances associated with each package.
UDK2018 Documents (ZIP File)


More Information about this release

Note: For a detailed list of Changes and updates See the UDK2018 Release wiki page


vUDK2017

6 years ago

UDK2017 Release Page

How to build

See wiki page UDK2017 How to Build on the UDK2017 Release wiki page

UDK2017 Features / Updates / Changes

See the wiki page UDK2017 Features Updates Changes for list of Features, Updates and Changes to the UDK2017 Release from the previous UDK release

UDK2017 Package Notes

See wiki page UDK2017 Package notes for list of Package's Notes details on changes & updates

Downloads - File Descriptions (Below files)

Source Code

These source code downloads are the from the tag vUDK2017 for the official UDK2017 release.
UDK2017 edk-vUDK2017 Workspace Source code (zip file) UDK2017 edk-vUDK2017 Workspace Source code (tar.gz file)

Documentation

This download contains all .chm and .html documents for UDK2017. Each package includes details on the definitions (including PPIs/PROTOCOLs/GUIDs and library classes) and libraries instances associated with each package.
UDK2017 Documents (ZIP File)


More Information about this release

Note: For a detailed list of Changes and updates See the UDK2017 Release wiki page