]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/ChangeLog.txt
Fix typo in last check in
[mirror_edk2.git] / MdePkg / ChangeLog.txt
index 669410575a27d60052195684e042d833fdca6daa..11ee2e40c1ccb7b2bc1eceab56222e6c608a3b4b 100644 (file)
@@ -35,6 +35,43 @@ EDK_0000: Compatible: owner
                Code Change :\r
                1) BaseTools\Bin\Win32\build.exe\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
 ==========================================================================================\r
 EDK_3871: Non-Compatible: klu2\r
@@ -50,8 +87,212 @@ EDK_3871: Non-Compatible: klu2
        2) The SecCore module should provide parameters for new entry point defined in \r
           MdePkg\Include\Library\PeiCoreEntryPoint.h\r
 \r
        2) The SecCore module should provide parameters for new entry point defined in \r
           MdePkg\Include\Library\PeiCoreEntryPoint.h\r
 \r
-!!!!!!!!!!!!!!!!!!                     End of Notes                     !!!!!!!!!!!!!!!!!!\r
-##########################################################################################\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
 \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
+\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.
\ No newline at end of file