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