Releases: tianocore/edk2
edk2-stable201908 tag
Release Date 2019-08-30 (UTC - 8 00:00)
New Features
- Remove IntelFrameworkPkg
- Remove IntelFrameworkModulePkg
- Standardize EDK II PI root-of-trust verification implementation
- Remove IntelFsp[Wrapper]Pkg
- Move IntelSiliconPkg from edk2 repo to edk2-platforms repo
- Remove framework modules within PcAtChipsetPkg
- [NvmExpressPei] Update the driver to produce NVM Express PassThru PPI
- Enable new MM MP Protocol
- Change PiSmmCpu driver to enable 5-level paging when CPU supports it
- Support Capsule On Disk
- BaseTools Enable multiple-thread autogen
- Enable 5-level paging in DXE long mode
- Update FmpDxe to support service drivers that manage more than one device at a time
- RegularExpressionDxe: Update Oniguruma to the latest Release 6.9.3 (security fix release)
- Add EDKII_UFS_HC_PLATFORM_PROTOCOL to support platform specific programming of UFS host controllers
- Enable SM3 digest algorithm for measured boot and TCG2 EVENT protocol
- Add a new MODULE_TYPE HOST_APPLICATION in BaseTool
- Add support for KDF function
- [SD/MMC] Allow platform to tweak device working parameters during SD card/eMMC initialization
- port TLS_ENABLE from OvmfPkg to ArmVirtPkg
- IntelFsp2Pkg: add TempRamExitPpi.h per FSP 2.1 spec
- IntelFsp2Pkg: Add support for FSP 1.x binaries to SplitFspBin.py
- New OvmfXen platform with Xen PVH support
- Tool to generate a Windows Firmware Update Drivers
- BaseTools/Scripts: Add GetUtcDateTime script
- Adding a new TSC library by using CPUID(0x15) TSC leaf
- Build Cache very easily miss because of monolithic platform hash
Bugzilla List
Wiki
Update Notes
-
Update code to use
CPU_FEATURE_THREE_STRIKE_COUNTER
instead ofCPU_FEATURE_THREE_STRICK_COUNTER
from RegisterCpuFeaturesLib.h as BZ1642 fixed the typo. -
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
- 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)
-
Removed --nt32 option for edksetup.bat since Nt32Pkg has been removed.
AddedVS2017 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, calledksetup.bat VS2015
can set VS2015 build env.
Calledksetup.bat
without any tool chain option, the highest version of VS tool env will be set. -
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
Release Date 2019-06-06 (UTC - 8 01:00)
New Features
- Update OpenSSL version to upcoming 1.1.1
- Delete EdkCompatibilityPkg from edk2/master
- Remove .S assembly code for IA32 and X64 arch
- Replace BSD 2-Clause License with BSD + Patent Licence
- Recovery PEI BlockIO support for ATA device
- Add PCD to Enabled/Disabled IPv4/IPv6 PXE Support in NetworkPkg
- Remove NetworkPkg/IpSecDxe
- Add api to DebubLib to expose a print routine with VaList parameter
- Introduce DebugPpi to save the image size with the debug message
- ResetSystemLib Adds a new API ResetSystem
- ResetUtilityLib Add a new API ResetSystemWithSubtype
- Add support for get organization name to x509 in BaseCryptLib
- Add support for checking x509 EKUs in BaseCryptLib
- Add support for PKCS 1v2 RSAES-OAEP PKI encryption in BaseCryptLib
- Remove ShellBinPkg from edk2/master
- Enable multiple thread /MP option for MSVC compiler
- Upstream the EnrollDefaultKeys application to OvmfPkg
- Share code for BaseUefiDecompressLib in MdePkg and MdeModulePkg
- Move network related components from MdeModulePkg to NetworkPkg
- Move BeagleBoardPkg and Omap35xxPkg from edk2 to edk2-platforms repo
- Move MinnowMax and Quark platform to edk2-platforms repo
- Move OptionRomPkg into new Drivers directory edk2-platforms repo
- Add ACPI6.3 definition
- Remove Nt32Pkg from edk2/master
- update ArmSoftFloatLib to latest upstream version (= 3e)
Bugzilla List
Update Notes
- 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
- 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} }.
- Remove IpSec driver and IpSecConfig application from NetworkPkg. Platform DSC/FDF should remove them.
NetworkPkg/Application/IpsecConfig/IpSecConfig.inf
NetworkPkg/IpSecDxe/IpSecDxe.inf
- UefiDecompressLib instance
IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib
has been merged intoMdePkg/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
-
Removed EDK Compatibility support. If platform still use the
PcdFrameworkCompatibilitySupport
or framework VFR, please remove or update the related code logic or source file. -
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
-
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.
-
NT32 has been removed. EmulatorPkg can be used to run in Windows or Linux OS.
edk2-stable201903 tag
Release Date 2019-03-08 (UTC - 8 12PM)
New Features
- Python 3 migration
- BaseTool Suggestions for improving building performance
- Delete IPv4 only TCP/iSCSI/PXE drivers in MdeModulePkg
- Remove EdkShellPkg from edk2/master
- Remove EdkShellBinPkg from edk2/master
- BaseTools: Support Array and C code style initialization in Structure PCD
- Merge EmuVariable and Real variable driver
- Remove DuetPkg
- Upgrade OpenSSL to 1.1.0j
- Split the S3 phase device initialization codes from the OpalPassword PEI driver
- Remove PcdPeiCoreMaxXXX PCDs
- Remove unused tool logic in BaseTools C\Python
- BaseTools: Enable component override functionality
- Support PI1.7 EFI_PEI_CORE_FV_LOCATION_PPI
- Remove unused tool chain configuration in tools_def.template
- Add Security feature set support for ATA devices
- SMM CET support
- Add Wi-Fi Connection Manager to NetworkPkg
- Standalone MM build of authenticated variable stack
Bugzilla List
Wiki
Update Notes
- Use ShellPkg in Platform DSC/FDF to replace EdkShellBinPkg, because EdkShellBinPkg is removed.
- Remove the using of PcdPeiCoreMaxFvSupported, PcdPeiCoreMaxPeimPerFv and PcdPeiCoreMaxPpiSupported
in platform code as they have been removed for BZ1405. - 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
}
- 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
- 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.
- 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. - 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. - 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
Release Date 2018-11-15
New Features
- SMBIOS 3.2.0 support
- New APIs in UefiLib to locate ACPI table by signature
- 32bit subnet mask support for IP4 PXE
- TFTP windowsize option support (RFC7440)
- Non-stop mode for Heap Guard and Null Pointer Detection
- PEI Stack Guard
- Support MSRs define in SDM 2018-05
- Add Use-After-Free heap detection in DXE core
- Remove FatBinPkg from edk2/master
- Add support for Pyrite 2.0 to Opal BIOS Password management
- Add support for TCG PTP Spec Revision 1.03
- Improvement capsule feature support
- Add PCI NVMe PEI BlockIO support
- Performance measurement with new macros and control functionality
- Optimize CPU feature initialization and microcode loading performance
- Add SHA384/512 support in TPM2 device driver
- Support SpinUp and DevSlp functionality in AtaAtapiPassThru
- Support PUIS enabling/disabling in AtaAtapiPassThru
- Expose interface to enable or disable signaling SERR from xHCI
- Support short-form USB device path in ConPlatform.
- Remove all IPF only modules from edk2/master
- DSC/FDF Support for a !error Conditional Directive
- Display Integers in the Build Report in Hexadecimal Format
- Add BuildOptionPcd support to GenCfgOpt.py
Bugzilla List
Wiki
Update Notes
- Core driver(
BootGraphicsResourceTableDxe)/library(DxeCapsuleLibFmp
) are updated
to consumeBmpSupportLib/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
- 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
-
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. -
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 interfacePerformFlashWriteWithProgress()
. -
Remove DxeSmmPerformanceLib from platform DSC, because it has been removed.
-
Use FatPkg in Platform DSC/FDF to replace FatBinPkg, because FatBinPkg is removed.
-
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. -
BaseTools adds the check for VOID* PCD max size. Max size is UINT16.
-
BaseTools adds the checker that the datum type of a FeatureFlag PCD must be BOOLEAN.
-
BaseTools drops the support to freeze python tools as the windows executable files.
BaseTools only supports python tools run from source in Windows OS. -
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. -
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.
-
PlatformBootManagerLib
adds a new API calledPlatformBootManagerUnableToBoot()
. 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
Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ming Huang <[email protected]>
UDK2018
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
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