-
Notifications
You must be signed in to change notification settings - Fork 0
UDK2018 Core Update Notes
-
GCC tool chain adds
--whole-archive
link option to detect the duplicated function or variable name. If the source code has such issue, the code needs to be fixed first. Or, platform can set link option to disable this checker in DSC file like below:[BuildOptions]
GCC:*_*_*_DLINK_FLAGS = -Wl,--no-whole-archive
-
MdePkg BaseLib
add new APICalculateCrc32()
to calculate CRC32 value. If the source code has the same function name, it needs to be updated to use BaseLib one. -
Define
GLOBAL_REMOVE_IF_UNREFERENCED
as empty inBase.h
for VS2013 or above compiler. If platform defines this MACRO as the different value, platform needs to update their code to remove this macro definition, and use it from Base.h. If platform has the duplicated global variable name from the different libraries, it may be exposed by this change. Platform needs to update the code to avoid the duplicated global variable name. -
To follow UEFI 2.7, variable driver is updated to do more check and expose an issue in
ShellPkg DmpStore.c
. Then,DmpStore
command in old SHELL will not work. New SHELL binary or source needs to be used. -
The code to provide "TFTP" and "DP" shell commands is moved from ShellPkg/Library directory to ShellPkg/DynamicCommand directory. Platforms which use Shell source code needs to:
a. Remove below two libraries' INF files reference from platform DSC file;
NULL|ShellPkg/Library/UefiShellTftpCommandLib/UefiShellTftpCommandLib.inf
,
NULL|ShellPkg/Library/UefiDpLib/UefiDpLib.inf
b. Add dynamic commands for the two shell commands in DSC and FDF files;
ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf
ShellPkg/DynamicCommand/DpDynamicCommand/DpDynamicCommand.inf
c. Set
gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize
asFALSE
for Shell.inf and these two command INF in platform DSC. -
SmbiosMeasurement
has been updated to skip measurement for OEM type. Platform code should measure OEM type by itself if required. -
Microcode update module has been moved from
UefiCpuPkg
toIntelSiliconPkg
. Platform needs to update MicrocodeUpdate INF path in DSC/FDF like below.
UefiCpuPkg/Feature/Capsule/MicrocodeUpdateDxe/MicrocodeUpdateDxe.inf
->
IntelSiliconPkg/Feature/Capsule/MicrocodeUpdateDxe/MicrocodeUpdateDxe.inf
-
PerformancePkg
is removed. Platform should use the "DP" command produced byShellPkg/DynamicCommand/DpDynamicCommand. PcAtchipsetPkg/Library/
AcpiTimerLib
is recommended to be used instead ofPerformancePkg/Library/
TscTimerLib
. If theoverrided TscTimerLib
is still used, the definitions inPerformancePkg TscFrequency.h
andGenericIch.h
need to be copied to platform package. -
A new interface is introduced to
CpuExceptionHandlerLib
.
It must be implemented for any existing instance of this library otherwise the build will fail. This method can just call originalInitializeCpuExceptionHandlers
if there's no stack switch to setup for Stack Guard feature.
EFI_STATUS
EFIAPI
InitializeCpuExceptionHandlersEx (
IN EFI_VECTOR_HANDOFF_INFO *VectorInfo OPTIONAL,
IN CPU_EXCEPTION_INIT_DATA *InitData OPTIONAL
);
-
DxeIpl
is updated to set all memory blocks used for page table as read-only. For those platforms providing their own implementation ofEFI_CPU_ARCH_PROTOCOL
, theSetMemoryAttributes
method must be updated to clearCR0.WP
before changing page attributes and re-set it afterwards. -
PEI
SectionExtraction
PPI removes the hardcode alignment adjustment in GUIDED and Compression section. If the leaf section in GUIDED and Compression section has the alignment requirement, it needs to obviously specify its align in FDF file. -
New performance library and DP application depends on ACPI50 FPDT table. Platform needs to include
MdeModulePkg FirmwarePerformanceDataTablePei/FirmwarePerformanceDataTableDxe
/FirmwarePerformanceDataTableSmm
drivers. And, ifPcAtChipsetPkg BaseAcpiTimerLib
is used to catch the performance log in PEI phase, it needs to be changed toPeiAcpiTimerLib
. -
New
OpalPassword
solution removeOpalPasswordSmm
and addsOpalPasswordPei
.
Platform needs to exclude below lines in platform dsc and fdf.
OpalPasswordSupportLib|SecurityPkg/Library/OpalPasswordSupportLib/OpalPasswordSupportLib.inf
SecurityPkg/Tcg/Opal/OpalPasswordSmm/OpalPasswordSmm.inf
Platform needs to update below line in platform dsc and fdf.
SecurityPkg/Tcg/Opal/OpalPasswordDxe/OpalPasswordDxe.inf
->
SecurityPkg/Tcg/Opal/OpalPassword/OpalPasswordDxe.inf
Platform needs to add below line in platform dsc and fdf.
SecurityPkg/Tcg/Opal/OpalPassword/OpalPasswordPei.inf
And platform needs to connect trusted storage and console to enable the newOpalPassword
solution. S3 reserved memory size (for example,PcdS3AcpiReservedMemorySize
) needs to be enlarged as newOpalPasswordPei
needs to allocate DMA buffer for DMA operation to unlock OPAL device. -
New field Translation is added to
PCI_ROOT_BRIDGE_APERTURE
structure inMdeModulePkg/
Include/Library/PciHostBridgeLib.h
. Platform whose HOST address equals to DEVICE address needs to initialize this field to 0. -
All
TrEE
libraries and drivers are removed. A platform should useTcg2
libraries and drivers.
Left guid/header file/library/drivers are removed. They are required to be replaced by right ones.
gTrEEConfigFormSetGuid <== gTcg2ConfigFormSetGuid
gEfiTrEEPhysicalPresenceGuid <== gEfiTcg2PhysicalPresenceGuid
Include/Guid/TrEEConfigHii.h <== Include/Guid/Tcg2ConfigHii.h
Include/Guid/TrEEPhysicalPresenceData.h <== Include/Guid/Tcg2PhysicalPresenceData.h
Include/Library/TrEEPhysicalPresenceLib.h <== Include/Library/Tcg2PhysicalPresenceLib.h
Include/Library/TrEEPpVendorLib.h <== Include/Library/Tcg2PpVendorLib.h
Library/TrEEPpVendorLibNull <== Library/Tcg2PpVendorLibNull
Library/DxeTrEEPhysicalPresenceLib <== Library/DxeTcg2PhysicalPresenceLib
Library/Tpm2DeviceLibTrEE <== Library/Tpm2DeviceLibTcg2
Tcg/TrEEConfig <== Tcg/Tcg2Config
Tcg/TrEEPei <== Tcg/Tcg2Pei
Tcg/TrEEDxe <== Tcg/Tcg2Dxe
Tcg/TrEESmm <== Tcg/Tcg2Smm
Note: This page describes the Core package differences based on UEFI Development Kit (UDK) UDK2017 Release. For a detailed list of Changes and updates See UDK2018 Release wiki page