mirror of https://github.com/acidanthera/audk.git
298 lines
15 KiB
Plaintext
298 lines
15 KiB
Plaintext
##########################################################################################
|
|
!!!!!!!!!!!!!!!!! Notes for this ChangeLog.txt !!!!!!!!!!!!!!!!!
|
|
|
|
This log file is used to record two kinds of important information:
|
|
a) "Non-Compatible Changes": all non-compatible changes should be recorded. These info
|
|
will help the package user to merge this package; and some non-compatible changes
|
|
can also be added into release notes as news features when we release this package.
|
|
Normally Non-Compatible Changes contains the following types:
|
|
1) Package's external services were changed/updated
|
|
2) Package's common .h file is renamed, deleted, or the file path is changed.
|
|
3) The definition of package's common data structure is changed
|
|
...
|
|
|
|
b) "Important Compatible Changes": some important compatible changes can aslo be recorded
|
|
in this file, and we can add these updating into release notes when we release this
|
|
package.
|
|
|
|
Non-Compatible and Compatible example format:
|
|
==========================================================================================
|
|
EDK_0010: Non-Compatible: owner
|
|
|
|
Class_HFile: PPI A of MdePkg has been removed.
|
|
|
|
Code Change :
|
|
1) Removed the .h file: MdePkg\Include\Ppi\A.h
|
|
|
|
Possible Impacts:
|
|
1) All modules that used this PPI A should be updated.
|
|
|
|
==========================================================================================
|
|
EDK_0000: Compatible: owner
|
|
|
|
Class_BuildTool: with the EDK_0000 build.exe, the build performance is enhanced great.
|
|
|
|
Code Change :
|
|
1) BaseTools\Bin\Win32\build.exe
|
|
|
|
!!!!!!!!!!!!!!!!!! End of Notes !!!!!!!!!!!!!!!!!!
|
|
##########################################################################################
|
|
|
|
==========================================================================================
|
|
EDK_3983: Non-Compatible: lgao4
|
|
|
|
Class_Library: Remove CustomDecompressLib library class.
|
|
|
|
Code Change:
|
|
1) Remove the definition MdePkg\Include\Library\CustomDecompressLib.h and
|
|
library instance MdePkg\Library\BaseCustomDecompressLibNull for CustomDecompressLib.
|
|
|
|
Possible Impacts:
|
|
1) Drivers don't use this library class any longer. But they can use new ExtractGuidedSectionLib
|
|
library class to extract the compressed guided section data.
|
|
2) The instance of CustomDecompressLib should be changed to register the decode function
|
|
into ExtractGuidedSectionHandler list, and not to produce CustomDecompressLib class.
|
|
3) Platform.dsc file doesn't use this library instance any longer.
|
|
|
|
==========================================================================================
|
|
EDK_3980: Non-Compatible: lgao4
|
|
|
|
Class_Library: Add ExtractGuidedSectionLib library class to replace CustomDecompressLib.
|
|
|
|
Code Change:
|
|
1) Add the definition MdePkg\Include\Library\ExtractGuidedSectionLib.h and
|
|
library instance MdePkg\Library\PeiDxeExtractGuidedSectionLib for new ExtractGuidedSectionLib.
|
|
2) Add gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler in MdePkg, which is used by
|
|
PeiDxeExtractGuidedSectionLib library instance.
|
|
3) Update DxeIpl and DxeMain modules of MdeModulePkg to use new ExtractGuidedSectionLib library class.
|
|
4) Update BaseUefiTianoCustomDecompressLib of IntelFrameworkModulePkg not to produce CustomDecompressLib,
|
|
and to register TianoDecomress handler into ExtractGuidedSectionHandler list.
|
|
|
|
Possible Impacts:
|
|
1) Platform.dsc file should update library instance and PCD if it contains DxeIpl and DxeMain modules.
|
|
It should use MdePkg\Library\PeiDxeExtractGuidedSectionLib library instance and
|
|
set gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler PCD value.
|
|
|
|
==========================================================================================
|
|
EDK_3871: Non-Compatible: klu2
|
|
|
|
Class_PIEnable[1]: Use new entry point for PeiCore defined in PI specification.
|
|
|
|
Code Change:
|
|
1) Remove the definition and library instance for OldPeiCoreEntryPoinLib
|
|
|
|
Possible Impacts:
|
|
1) Platform should select MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf for
|
|
PeiMain module.
|
|
2) The SecCore module should provide parameters for new entry point defined in
|
|
MdePkg\Include\Library\PeiCoreEntryPoint.h
|
|
|
|
|
|
EDK_3922: Non-Compatible: qwang12, klu2
|
|
Class_PIEnable[0]: Update PeiServicesLib based on new features defined in PI spec.
|
|
|
|
Code Change :
|
|
1) Add the following services:PeiServicesRegisterForShadow, PeiServicesFfsGetFileInfo, PeiServicesFfsFindFileByName and PeiServicesFfsGetVolumeInfo
|
|
2) The paramter list of these functiuon has also been updated to replace EFI_FIRMWARE_VOLUME_HEADER to EFI_PEI_FV_HANDLE and EFI_FFS_FILE_HEADER
|
|
to EFI_PEI_FILE_HANDLE.
|
|
3) Add CONST to parameter of PeiServices EFI_PEI_SERVICES.EFI_PEI_RESET_SYSTEM
|
|
|
|
Possible Impacts:
|
|
|
|
1) Platform code should be updated to make use of these new PI features. The functions in MdePkg/Include/Library/PeiServicesLib.h are
|
|
recommended as PeiServices is saved for every PEI Services API invokation.
|
|
2) Now PEIM entry point is upadted to pass in PeiServices in type of (CONST EFI_PEI_SERVICS **). Platform code should be updated to
|
|
add (EFI_PEI_SERVICS **) cast to PeiServices before passing it to the previously defined PPI interface which needs a (EFI_PEI_SERVICS **)
|
|
type for PeiServices parameter.
|
|
3) The newly defined PPI should not inlcude PeiSevices in the paramter list as PI spec has standard way to retrive PeiServices (check VOL 1
|
|
Section 4.4 PEI Sevices Table Retrieval) for details. Beside, GetPeiServicesTablePointer() in MdePkg\Include\Library\PeiServicesTablePointerLib.h
|
|
also provide convinient way to retrieve the pointer to Pei Service Table.
|
|
|
|
|
|
EDK_4067: Non-Compatible: qwang12
|
|
Class_PIEnable[1]: Add PeiPiLib library class and replace PiLib with DxePiLib library class.
|
|
|
|
Code Change :
|
|
1) Change MdePkg/Include/Library/PiLib.h to MdePkg/Include/Library/DxePiLib.h. DxePiLib is mainly used
|
|
for modules in DXE phase. Add a DxePiLib.h library instance at MdePkg/Library/DxePiLib/DxePiLib.inf.
|
|
2) Add MdePkg/Include/Library/PeiPiLib.h. PeiPiLib is mainly used by modules in PEI phase.
|
|
Add a DxePiLib.h library instance at MdePkg/Library/PeiPiLib/PeiPiLib.inf.
|
|
3) Rename API in PeiPiLib.h from PeiPiLibBuildPiFvInfoPpi to PiLibInstallFvInfoPpi.
|
|
4) Rename APIs originally in PiLib.h with new names defined in DxePiLib.h:
|
|
4.1) GetSectionFrom*Fv functions are changed to PiLibGetSectionFrom*Fv to reduce possibility of name collision.
|
|
4.2) Remove API named ImageHandleToFvHandle and GetSectionFromFvFile
|
|
|
|
|
|
Possible Impacts:
|
|
|
|
1) Platform modules that reference PeiPiLibBuildPiFvInfoPpi and GetSectionFrom*Fv should reference the new
|
|
names defined.
|
|
2) Platform DSC file that specifying library instance for PiLib should be updated to add one line (a example
|
|
is given below):
|
|
[LibraryClasses.common.DXE_DRIVER]
|
|
...
|
|
DxePiLib|MdePkg/Library/DxePiLib/DxePiLib.inf
|
|
...
|
|
3) Platform DSC file including modules that make use of API from PeiPiLib.h should add the following line (a example
|
|
is given below):
|
|
[LibraryClasses.common.PEIM]
|
|
...
|
|
PeiPiLib|MdePkg/Library/PeiPiLib/PeiPiLib.inf
|
|
...
|
|
|
|
|
|
EDK_5835: Non-Compatible: qwang12
|
|
Class General Definitions: NULL_HANDLE definition is removed from UefiBaseType.h. If any modules referencs NULL_HANDLE, they should be updated to use NULL.
|
|
|
|
EDK_5869: Non-Compatible: qhuang8
|
|
Class General Definitions: Update the macro ALIGN_VARIALBE to drop the second parameter.
|
|
|
|
Code Change:
|
|
The macro ALIGN_VARIABLE in base.h is changed to keep the first paramter
|
|
|
|
Possible Impacts:
|
|
Modules using this macro, it needs to adapt to new interface.
|
|
|
|
EDK_5939: Non-Compatible: qwang12
|
|
Library API moved from HiiLib to UefiLib.
|
|
|
|
Code Change:
|
|
Change HiiLibGetCurrentLanguage to GetCurrentLanguage and moved it from HiiLib to UefiLib.
|
|
|
|
Possible Impacts:
|
|
All module that reference HiiLibGetCurrentLanguage should be updated in the following step:
|
|
0) Change HiiLibGetCurrentLanguage to GetCurrentLanguage.
|
|
1) Add UefiLib to [LibraryClass] in INF if it is not included before.
|
|
2) Remove HiiLib from [LibraryClass] if HiiLibGetCurrentLanguage is the only API from original HiiLib referenced by this module.
|
|
3) Add UefiLib to [LibraryClasses.common.Module Type] for the affected module if UefiLib is not in the list.
|
|
|
|
EDK_5989: Non-Compatible: qwang12
|
|
Library API name changed:
|
|
In IfrSupportLib,
|
|
Rename BufToHexString to BufInReverseOrderToHexString
|
|
Rename HexStringToBuf to HexStringToBufInReverseOrder
|
|
|
|
Possible Impacts:
|
|
All module that reference BufToHexString or HexStringToBuf should be updated in the following step:
|
|
0) Change HiiLibGetCurrentLanguage to GetCurrentLanguage.
|
|
1) Change BufToHexString to BufInReverseOrderToHexString
|
|
2) Change HexStringToBuf to HexStringToBufInReverseOrder
|
|
|
|
EDK_6111: Non-Compatible: qwang12
|
|
Module type Include file is not included on default.
|
|
In Protocol/PPI/GUID/Libary header file, the "#include" of the module type header file such as <Base.h>, <PiPei.h>, <PiDxe.h> and
|
|
<Uefi.h> are removed. The module (DXE driver, UEFI Driver, PEIM) should include these files if required.
|
|
|
|
Possible Impacts:
|
|
Customer's module (DXE driver, UEFI Driver, PEIM) may failed to build as module type header file such as <Base.h>, <PiPei.h>, <PiDxe.h>
|
|
<Uefi.h> is removed from the Protocol/PPI/GUID/Libary header file. If the module can build before the update but failed after the update
|
|
because of some undefined basic data type such as "EFI_GUID", module developer should include the module type header file accordingly.
|
|
|
|
EDK_6131: Non-Compatible: qwang12
|
|
|
|
Base on PI spec, GetPeiServicesTablePointer in PeiServicesTablePointer library is updated to return CONST EFI_PEI_SERVICES**. This is a incompatible changes. All file that reference this must be updated.
|
|
|
|
Possible Impacts:
|
|
Customer's module that reference GetPeiServicesTablePointer in PeiServicesTablePointer library may need to updated. Otherwise
|
|
a build break (mismatch of data type) may occur.
|
|
|
|
EDK_6307: Non-Compatible: qwang12
|
|
|
|
Remove SafeFreePool from MemoryAllocationLib as this API's name is misleading. Its implementation only check if a pointer is NULL. If a garbage pointer is passed in, the gBS->FreePool will still ASSERT in debug build and return error code.
|
|
|
|
It is recommended that module writer should keep track how a pointer is allocated and free it after use.
|
|
|
|
Possible Impacts:
|
|
Customer's module that reference SafeFreePool need to updated. Otherwise
|
|
a build break may occur.
|
|
|
|
EDK_6455-6460: Non-Compatible: klu2
|
|
1. Clean up device path protocol header file, move device path utility macros to MdePkg\Include\DevicePathLib.h.
|
|
2. I remove "Efi" prefix for this utility function macro name.
|
|
3. The upacked device path type is removed. Should use device path utility macro to access structure's member.
|
|
|
|
Possible Impacts:
|
|
1. Customer's module that access device path node's structure need use DevicePathLib
|
|
2. Should not use unpacked type device path node, this type is retired.
|
|
3. If want to access private member in device path node, customer module need DuplicateDevicePath() at first to
|
|
make sure node is in alignment.
|
|
|
|
EDK_6496-6519: Non-Compatible: qhuang8
|
|
|
|
A bundle of library class/instance renames, moves and merges:
|
|
1. Rename library class UsbLib to UefiUsbLib
|
|
2. Rename library class ScsiLib to UefiScsiLib
|
|
3. Rename library class PalCallLib to PalLib
|
|
4. Rename library class DxePiLib to DxeSerivcesLib and drop the prefix "PiLib" to all its APIs.
|
|
5. Merge library class PiPeiLib to PeiServicesLib and rename the PiLibInstallFvInfoPpi() to PeiServicesInstallFvInfoPpi()
|
|
6. Move library class HiiLib to MdeModulePkg
|
|
7. Move library class IfrSupportLib to MdeModulePkg
|
|
8. Move library class FvbServiceLib to MdeModulePkg
|
|
9. Rename library instance of BasePalCallLibNull to BasePalLibNull
|
|
10. Move library instance UefiHiiLib to MdeModulePkg
|
|
11. Move library instance UefiIfrSupportLib to MdeModulePkg
|
|
|
|
Possible Impacts:
|
|
Every change listed above is non-backward compatible for MdePkg and other packages. It is required to update module
|
|
sources (*.c;*.h), module meta data files (*.inf) and update the platform DSC files to fix the build break.
|
|
However, it is less likely to bring about functional issue for these updates.
|
|
|
|
|
|
EDK_6565: Non-Compatible: qhuang8
|
|
|
|
Remove some macro in UefiScsiLib:
|
|
EFI_SCSI_STALL_1_MICROSECOND, EFI_SCSI_STALL_1_MILLISECOND, EFI_SCSI_STALL_1_SECOND & EFI_SCSI_STALL_SECONDS(a)
|
|
|
|
Possible Impacts:
|
|
Modules depending on UefiScsiLib for these macros should update the source to use new UefiLib macros
|
|
EFI_TIMER_PERIOD_MICROSECONDS(X), EFI_TIMER_PERIOD_MILLISECONDS(X) and EFI_TIMER_PERIOD_SECONDS(X) for managing Timer Events.
|
|
Especailly, EFI_SCSI_STALL_SECONDS(a) is simply replaced by EFI_TIMER_PERIOD_SECONDS(a)
|
|
|
|
EDK_6886: Non-Compatible: mdkinney
|
|
|
|
Rename _CR macro defined in MdePkg/Include/Base.h to BASE_CR macro aligned to MdeLib spec.
|
|
|
|
Possible Impacts:
|
|
All source codes that depends on _CR macro must be changed to use BASE_CR.
|
|
|
|
EDK_6935: Non-Compatible: lgao4
|
|
|
|
In MdePkg/Include/Guid/FileSystemVolumeLabelInfo.h file, to follow UEFI specification.
|
|
Rename EFI_FILE_SYSTEM_VOLUME_LABEL_INFO_ID_GUID to EFI_FILE_SYSTEM_VOLUME_LABEL_ID
|
|
Rename EFI_FILE_SYSTEM_VOLUME_LABEL_INFO to EFI_FILE_SYSTEM_VOLUME_LABEL.
|
|
|
|
Possible Impacts:
|
|
All source codes that refer to EFI_FILE_SYSTEM_VOLUME_LABEL_INFO_ID_GUID or EFI_FILE_SYSTEM_VOLUME_LABEL_INFO
|
|
must be changed to use their definitions from UEFI specification.
|
|
|
|
EDK_6974: Non-Compatible: lgao4
|
|
|
|
In MdePkg/Include/Uefi/UefiSpec.h file, to follow UEFI2.1 specification.
|
|
Rename struct EFI_KEY_OPTION.KeyOptions to EFI_KEY_OPTION.KeyData
|
|
|
|
Possible Impacts:
|
|
All source codes that refer to EFI_KEY_OPTION.KeyOptions
|
|
must be changed to use EFI_KEY_OPTION.KeyData from UEFI specification.
|
|
|
|
EDK_7057: Non-Compatible: qhuang8
|
|
Retired the following macros defined in MdePkg/Include/Uefi/UefiBaseType.h:
|
|
EFI_SIGNATURE_16, EFI_SIGNATURE_32, EFI_SIGNATURE_64, EFI_FIELD_OFFSET, EFI_MAX_BIT & EFI_MAX_ADDRESS
|
|
|
|
Possible impacts:
|
|
All EDKII native source code needs to update to use the equivelent macros (without "EFI_" prefix except for
|
|
EFI_FIELD_OFFSET) defined in MdePkg\Include\Base.h and MdePkg\Include\$(ARCH)\ProcessorBinding.h:
|
|
EFI_SIGNATURE_16 -> SIGNATURE_16
|
|
EFI_SIGNATURE_32 -> SIGNATURE_32
|
|
EFI_SIGNATURE_64 -> SIGNATURE_64
|
|
EFI_FIELD_OFFSET -> OFFSET_OF
|
|
EFI_MAX_BIT -> MAX_BIT
|
|
EFI_MAX_ADDRESS -> MAX_ADDRESS
|
|
|
|
EDK_7467: Non-Compatible: qhuang8
|
|
Remove the macro value TIME_OUT defined in MdePkg/Include/Uefi/UefiUsbLib.h and replace it with a new PCD entry:
|
|
gEfiMdePkgTokenSpaceGuid.PcdUsbTransferTimeoutValue
|
|
|
|
Possible impacts:
|
|
All modules depending on macro TIME_OUT in MdePkg/Include/Uefi/UefiUsbLib.h should use PcdGet32 (PcdUsbTransferTimeoutValue)
|
|
for the USB transaction, include "PcdLib" in INF [LibraryClasses] section and add "#include <Library/PcdLib.h>" in module
|
|
source. |