Skip to content

Releases: tianocore/edk2

edk2-stable202011

27 Nov 07:45

Choose a tag to compare

Release Date 2020-11-27

New Features

Bugzilla List

Wiki

Update Notes

  1. DEPRECATED functions are removed. New secure version functions are required to be used.
  2. RngLib library instance is required to be specified in [LibraryClasses] section of Platform.dsc file.
  3. VariablePolicyLib and VariablePolicyHelperLib library instances are requried to be specified in [LibraryClasses] section of Platform.dsc file. The detail changes can refer to platform porting wiki.

edk2-stable202008

04 Sep 08:01

Choose a tag to compare

Release Date 2020-09-04

New Features

Bugzilla List

Wiki

Update Notes

  1. Add the below library instances into [LibraryClasses.common.PEIM] section of platform dsc If this platforms depend on Intel FSP
    FspMeasurementLib|IntelFsp2WrapperPkg/Library/BaseFspMeasurementLib/BaseFspMeasurementLib.inf
    TcgEventLogRecordLib|SecurityPkg/Library/TcgEventLogRecordLib/TcgEventLogRecordLib.inf
    TpmMeasurementLib|SecurityPkg/Library/PeiTpmMeasurementLib/PeiTpmMeasurementLib.inf

  2. The SEV-ES feature adds new library dependencies. If your DSC file uses the UefiCpuPkg CpuExceptionHandlerLib library or the UefiCpuPkg MpInitLib library, then you must add an entry for the UefiCpuPkg VmgExitLib library (VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf).

edk2-stable202005

03 Jun 08:34

Choose a tag to compare

Release Date 2020-06-03

New Features

Bugzilla List

Update Notes

  1. The brotli source code is accessed through submodule way. So anybody updates to the latest edk2 should type ‘git submodule update –init’ to checkout submodule brotli.
  2. BaseCryptoLib MD4, ARC4, TDES, AES ECB MODE, HMAC MD5, HMAC SHA1 API have been deprecated. The consumer that use above functions should remove the related code and return unsupported status.
  3. SecurityPkg Tcg2PhysicalPresenceLib library class removes two macros
    TCG2_BIOS_TPM_MANAGEMENT_FLAG_DEFAULT and TCG2_BIOS_STORAGE_MANAGEMENT_FLAG_DEFAULT. The consumer code should use gEfiSecurityPkgTokenSpaceGuid.PcdTcg2PhysicalPresenceFlags to get the default flags.

edk2-stable202002

edk2-stable201911

edk2-stable201908 tag

30 Aug 07:53

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

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

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

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

Choose a tag to compare

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ming Huang <[email protected]>