Skip to content

Releases: tianocore/edk2

edk2-stable201908 tag

30 Aug 07:53
Compare
Choose a tag to compare

Release Date 2019-08-30 (UTC - 8 00:00)

New Features

Bugzilla List

Wiki

Update Notes

  1. Update code to use CPU_FEATURE_THREE_STRIKE_COUNTER instead of CPU_FEATURE_THREE_STRICK_COUNTER from RegisterCpuFeaturesLib.h as BZ1642 fixed the typo.

  2. Removed IntelFrameworkPkg and IntelFrameworkModulePkg. If platforms still use the components in those packages please use the below substitutions:

IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
==>
MdePkg/Library/BaseUefiDecompressLib/BaseUefiTianoCustomDecompressLib.inf

IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
==>
MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf

IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
==>
MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf

IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf
==>
Switch to the MdeModulePkg BDS MdeModulePkg/Universal/BdsDxe/BdsDxe.inf and drop the above library
  1. Removed several legacy framework modules in PcAtChipsetPkg. Platforms can use the below substitutions:
PcAtChipsetPkg/8259InterruptControllerDxe/8259.inf
PcAtChipsetPkg/8254TimerDxe/8254Timer.inf
==>
PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf
(Please note that platform/silicon codes may still need to mask 8259 interrupts to avoid unexpected interrupts being triggered.)

PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi.inf
==>
Platform specific Super IO bus driver
(An example for OVMF platform can be referred at OvmfPkg/SioBusDxe/SioBusDxe.inf)
  1. Removed --nt32 option for edksetup.bat since Nt32Pkg has been removed.
    Added VS2017 VS2015 VS2013 VS2012 tool chain options for edksetup.bat to set up different VS environment.
    For example: when your dev machine has installed VS2017 and VS2015, call edksetup.bat VS2015 can set VS2015 build env.
    Call edksetup.bat without any tool chain option, the highest version of VS tool env will be set.

  2. PiSmmCpuDxeSmm was updated to create 5-level page table for SMM environment when CPU is capable. If the platform uses platform-specific SmmCpuFeatureLib and the library provides custom SMI handler, the SMI handler assembly code needs to be updated to set BIT12 in CR4 before entering to 64bit mode.

edk2-stable201905 tag

06 Jun 09:09
Compare
Choose a tag to compare

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 tag

08 Mar 16:10
Compare
Choose a tag to compare

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 tag

15 Nov 18:39
Compare
Choose a tag to compare

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.

edk2-stable201808: MdePkg Cper.h: Add generic error macros for ARM platform

30 Nov 03:21
Compare
Choose a tag to compare
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ming Huang <[email protected]>

UDK2018

30 Mar 22:21
Compare
Choose a tag to compare

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


UDK2017

23 Jun 22:45
Compare
Choose a tag to compare

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