Reviewed the description in the FatBinPkg .dec file.
[mirror_edk2.git] / MdePkg / ChangeLog.txt
CommitLineData
1b7f7985 1##########################################################################################\r
2!!!!!!!!!!!!!!!!! Notes for this ChangeLog.txt !!!!!!!!!!!!!!!!!\r
3\r
4This log file is used to record two kinds of important information:\r
5 a) "Non-Compatible Changes": all non-compatible changes should be recorded. These info\r
6 will help the package user to merge this package; and some non-compatible changes\r
7 can also be added into release notes as news features when we release this package.\r
8 Normally Non-Compatible Changes contains the following types:\r
9 1) Package's external services were changed/updated\r
10 2) Package's common .h file is renamed, deleted, or the file path is changed.\r
11 3) The definition of package's common data structure is changed\r
12 ...\r
13\r
14 b) "Important Compatible Changes": some important compatible changes can aslo be recorded\r
15 in this file, and we can add these updating into release notes when we release this\r
16 package.\r
17\r
18Non-Compatible and Compatible example format:\r
19==========================================================================================\r
20EDK_0010: Non-Compatible: owner\r
21\r
22 Class_HFile: PPI A of MdePkg has been removed.\r
23\r
24 Code Change :\r
25 1) Removed the .h file: MdePkg\Include\Ppi\A.h\r
26\r
27 Possible Impacts:\r
28 1) All modules that used this PPI A should be updated.\r
29\r
30==========================================================================================\r
31EDK_0000: Compatible: owner\r
32\r
33 Class_BuildTool: with the EDK_0000 build.exe, the build performance is enhanced great.\r
34\r
35 Code Change :\r
36 1) BaseTools\Bin\Win32\build.exe\r
37\r
ba7c1a50 38!!!!!!!!!!!!!!!!!! End of Notes !!!!!!!!!!!!!!!!!!\r
39##########################################################################################\r
40\r
63e4bea4
LG
41==========================================================================================\r
42EDK_3983: Non-Compatible: lgao4\r
43 \r
44 Class_Library: Remove CustomDecompressLib library class.\r
45 \r
46 Code Change:\r
47 1) Remove the definition MdePkg\Include\Library\CustomDecompressLib.h and \r
48 library instance MdePkg\Library\BaseCustomDecompressLibNull for CustomDecompressLib.\r
49 \r
50 Possible Impacts:\r
51 1) Drivers don't use this library class any longer. But they can use new ExtractGuidedSectionLib\r
52 library class to extract the compressed guided section data.\r
53 2) The instance of CustomDecompressLib should be changed to register the decode function \r
54 into ExtractGuidedSectionHandler list, and not to produce CustomDecompressLib class.\r
55 3) Platform.dsc file doesn't use this library instance any longer.\r
ba7c1a50 56\r
63e4bea4
LG
57==========================================================================================\r
58EDK_3980: Non-Compatible: lgao4\r
59 \r
60 Class_Library: Add ExtractGuidedSectionLib library class to replace CustomDecompressLib.\r
61 \r
62 Code Change:\r
63 1) Add the definition MdePkg\Include\Library\ExtractGuidedSectionLib.h and \r
64 library instance MdePkg\Library\PeiDxeExtractGuidedSectionLib for new ExtractGuidedSectionLib.\r
65 2) Add gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler in MdePkg, which is used by \r
66 PeiDxeExtractGuidedSectionLib library instance.\r
67 3) Update DxeIpl and DxeMain modules of MdeModulePkg to use new ExtractGuidedSectionLib library class.\r
68 4) Update BaseUefiTianoCustomDecompressLib of IntelFrameworkModulePkg not to produce CustomDecompressLib,\r
69 and to register TianoDecomress handler into ExtractGuidedSectionHandler list.\r
70 \r
71 Possible Impacts:\r
72 1) Platform.dsc file should update library instance and PCD if it contains DxeIpl and DxeMain modules.\r
73 It should use MdePkg\Library\PeiDxeExtractGuidedSectionLib library instance and \r
74 set gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler PCD value.\r
6a9d345a 75\r
76==========================================================================================\r
77EDK_3871: Non-Compatible: klu2\r
78 \r
79 Class_PIEnable[1]: Use new entry point for PeiCore defined in PI specification.\r
80 \r
81 Code Change:\r
82 1) Remove the definition and library instance for OldPeiCoreEntryPoinLib\r
83 \r
84 Possible Impacts:\r
85 1) Platform should select MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf for \r
86 PeiMain module.\r
87 2) The SecCore module should provide parameters for new entry point defined in \r
88 MdePkg\Include\Library\PeiCoreEntryPoint.h\r
89\r
1b7f7985 90\r
ba7c1a50 91EDK_3922: Non-Compatible: qwang12, klu2\r
92 Class_PIEnable[0]: Update PeiServicesLib based on new features defined in PI spec.\r
93\r
94 Code Change :\r
95 1) Add the following services:PeiServicesRegisterForShadow, PeiServicesFfsGetFileInfo, PeiServicesFfsFindFileByName and PeiServicesFfsGetVolumeInfo\r
96 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
97 to EFI_PEI_FILE_HANDLE.\r
98 3) Add CONST to parameter of PeiServices EFI_PEI_SERVICES.EFI_PEI_RESET_SYSTEM\r
99\r
100 Possible Impacts:\r
1b7f7985 101\r
ba7c1a50 102 1) Platform code should be updated to make use of these new PI features. The functions in MdePkg/Include/Library/PeiServicesLib.h are \r
103 recommended as PeiServices is saved for every PEI Services API invokation.\r
104 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
105 add (EFI_PEI_SERVICS **) cast to PeiServices before passing it to the previously defined PPI interface which needs a (EFI_PEI_SERVICS **)\r
106 type for PeiServices parameter.\r
107 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
108 Section 4.4 PEI Sevices Table Retrieval) for details. Beside, GetPeiServicesTablePointer() in MdePkg\Include\Library\PeiServicesTablePointerLib.h\r
109 also provide convinient way to retrieve the pointer to Pei Service Table.\r
110 \r
1b7f7985 111\r
5b65d604 112EDK_4067: Non-Compatible: qwang12\r
113 Class_PIEnable[1]: Add PeiPiLib library class and replace PiLib with DxePiLib library class.\r
114\r
115 Code Change :\r
116 1) Change MdePkg/Include/Library/PiLib.h to MdePkg/Include/Library/DxePiLib.h. DxePiLib is mainly used\r
117 for modules in DXE phase. Add a DxePiLib.h library instance at MdePkg/Library/DxePiLib/DxePiLib.inf.\r
118 2) Add MdePkg/Include/Library/PeiPiLib.h. PeiPiLib is mainly used by modules in PEI phase. \r
119 Add a DxePiLib.h library instance at MdePkg/Library/PeiPiLib/PeiPiLib.inf.\r
120 3) Rename API in PeiPiLib.h from PeiPiLibBuildPiFvInfoPpi to PiLibInstallFvInfoPpi.\r
121 4) Rename APIs originally in PiLib.h with new names defined in DxePiLib.h:\r
122 4.1) GetSectionFrom*Fv functions are changed to PiLibGetSectionFrom*Fv to reduce possibility of name collision.\r
123 4.2) Remove API named ImageHandleToFvHandle and GetSectionFromFvFile \r
124\r
125\r
126 Possible Impacts:\r
127\r
128 1) Platform modules that reference PeiPiLibBuildPiFvInfoPpi and GetSectionFrom*Fv should reference the new\r
129 names defined.\r
130 2) Platform DSC file that specifying library instance for PiLib should be updated to add one line (a example \r
131 is given below):\r
132 [LibraryClasses.common.DXE_DRIVER]\r
133 ...\r
134 DxePiLib|MdePkg/Library/DxePiLib/DxePiLib.inf\r
135 ...\r
136 3) Platform DSC file including modules that make use of API from PeiPiLib.h should add the following line (a example \r
137 is given below):\r
138 [LibraryClasses.common.PEIM]\r
139 ...\r
140 PeiPiLib|MdePkg/Library/PeiPiLib/PeiPiLib.inf\r
141 ...\r
142 \r
143\r
fe21b1a6 144EDK_5835: Non-Compatible: qwang12\r
43d25020 145 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
146 \r
147EDK_5869: Non-Compatible: qhuang8\r
148 Class General Definitions: Update the macro ALIGN_VARIALBE to drop the second parameter.\r
149 \r
150 Code Change:\r
151 The macro ALIGN_VARIABLE in base.h is changed to keep the first paramter\r
152\r
153 Possible Impacts:\r
36c9465c 154 Modules using this macro, it needs to adapt to new interface.\r
155 \r
156EDK_5939: Non-Compatible: qwang12\r
e349ab9a 157 Library API moved from HiiLib to UefiLib.\r
36c9465c 158 \r
159 Code Change:\r
160 Change HiiLibGetCurrentLanguage to GetCurrentLanguage and moved it from HiiLib to UefiLib.\r
161\r
162 Possible Impacts:\r
163 All module that reference HiiLibGetCurrentLanguage should be updated in the following step:\r
164 0) Change HiiLibGetCurrentLanguage to GetCurrentLanguage.\r
165 1) Add UefiLib to [LibraryClass] in INF if it is not included before.\r
166 2) Remove HiiLib from [LibraryClass] if HiiLibGetCurrentLanguage is the only API from original HiiLib referenced by this module.\r
167 3) Add UefiLib to [LibraryClasses.common.Module Type] for the affected module if UefiLib is not in the list.\r
274e80df 168 \r
169EDK_5989: Non-Compatible: qwang12\r
170 Library API name changed:\r
171 In IfrSupportLib,\r
172 Rename BufToHexString to BufInReverseOrderToHexString \r
173 Rename HexStringToBuf to HexStringToBufInReverseOrder\r
174\r
175Possible Impacts:\r
176 All module that reference BufToHexString or HexStringToBuf should be updated in the following step:\r
177 0) Change HiiLibGetCurrentLanguage to GetCurrentLanguage.\r
178 1) Change BufToHexString to BufInReverseOrderToHexString \r
179 2) Change HexStringToBuf to HexStringToBufInReverseOrder\r
b5793f46 180\r
181EDK_6111: Non-Compatible: qwang12\r
182 Module type Include file is not included on default.\r
183 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
184 <Uefi.h> are removed. The module (DXE driver, UEFI Driver, PEIM) should include these files if required.\r
185\r
186Possible Impacts:\r
187 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
188 <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
189 because of some undefined basic data type such as "EFI_GUID", module developer should include the module type header file accordingly.\r
190 \r
8d237963 191EDK_6131: Non-Compatible: qwang12\r
1abe8b51 192\r
193Base 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
194\r
195Possible Impacts:\r
196 Customer's module that reference GetPeiServicesTablePointer in PeiServicesTablePointer library may need to updated. Otherwise\r
197 a build break (mismatch of data type) may occur.\r
198 \r
c59f6dce 199EDK_6307: Non-Compatible: qwang12\r
200\r
201Remove 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
202\r
203It is recommended that module writer should keep track how a pointer is allocated and free it after use.\r
204\r
205Possible Impacts:\r
206 Customer's module that reference SafeFreePool need to updated. Otherwise\r
207 a build break may occur.\r
208 \r
5384e3d4 209EDK_6455-6460: Non-Compatible: klu2\r
210 1. Clean up device path protocol header file, move device path utility macros to MdePkg\Include\DevicePathLib.h.\r
211 2. I remove "Efi" prefix for this utility function macro name. \r
212 3. The upacked device path type is removed. Should use device path utility macro to access structure's member.\r
213\r
214Possible Impacts:\r
215 1. Customer's module that access device path node's structure need use DevicePathLib\r
216 2. Should not use unpacked type device path node, this type is retired.\r
217 3. If want to access private member in device path node, customer module need DuplicateDevicePath() at first to \r
218 make sure node is in alignment.\r
219 \r
b33bc017 220EDK_6496-6519: Non-Compatible: qhuang8\r
221\r
222 A bundle of library class/instance renames, moves and merges:\r
223 1. Rename library class UsbLib to UefiUsbLib\r
224 2. Rename library class ScsiLib to UefiScsiLib\r
225 3. Rename library class PalCallLib to PalLib\r
226 4. Rename library class DxePiLib to DxeSerivcesLib and drop the prefix "PiLib" to all its APIs.\r
227 5. Merge library class PiPeiLib to PeiServicesLib and rename the PiLibInstallFvInfoPpi() to PeiServicesInstallFvInfoPpi()\r
228 6. Move library class HiiLib to MdeModulePkg\r
229 7. Move library class IfrSupportLib to MdeModulePkg\r
230 8. Move library class FvbServiceLib to MdeModulePkg\r
231 9. Rename library instance of BasePalCallLibNull to BasePalLibNull\r
232 10. Move library instance UefiHiiLib to MdeModulePkg\r
233 11. Move library instance UefiIfrSupportLib to MdeModulePkg\r
234\r
235Possible Impacts:\r
d9304888 236 Every change listed above is non-backward compatible for MdePkg and other packages. It is required to update module\r
b33bc017 237 sources (*.c;*.h), module meta data files (*.inf) and update the platform DSC files to fix the build break.\r
238 However, it is less likely to bring about functional issue for these updates.\r
d9304888 239\r
240\r
241EDK_6565: Non-Compatible: qhuang8\r
242 \r
243 Remove some macro in UefiScsiLib:\r
244 EFI_SCSI_STALL_1_MICROSECOND, EFI_SCSI_STALL_1_MILLISECOND, EFI_SCSI_STALL_1_SECOND & EFI_SCSI_STALL_SECONDS(a) \r
245 \r
246Possible Impacts:\r
247 Modules depending on UefiScsiLib for these macros should update the source to use new UefiLib macros\r
248 EFI_TIMER_PERIOD_MICROSECONDS(X), EFI_TIMER_PERIOD_MILLISECONDS(X) and EFI_TIMER_PERIOD_SECONDS(X) for managing Timer Events.\r
08105cf7 249 Especailly, EFI_SCSI_STALL_SECONDS(a) is simply replaced by EFI_TIMER_PERIOD_SECONDS(a)\r
250\r
c3d4e543
LG
251EDK_6886: Non-Compatible: mdkinney\r
252 \r
99164922 253 Rename _CR macro defined in MdePkg/Include/Base.h to BASE_CR macro aligned to MdeLib spec.\r
c3d4e543
LG
254\r
255Possible Impacts:\r
256 All source codes that depends on _CR macro must be changed to use BASE_CR. \r
99164922
LG
257\r
258EDK_6935: Non-Compatible: lgao4\r
259 \r
260 In MdePkg/Include/Guid/FileSystemVolumeLabelInfo.h file, to follow UEFI specification.\r
261 Rename EFI_FILE_SYSTEM_VOLUME_LABEL_INFO_ID_GUID to EFI_FILE_SYSTEM_VOLUME_LABEL_ID\r
262 Rename EFI_FILE_SYSTEM_VOLUME_LABEL_INFO to EFI_FILE_SYSTEM_VOLUME_LABEL.\r
263\r
264Possible Impacts:\r
265 All source codes that refer to EFI_FILE_SYSTEM_VOLUME_LABEL_INFO_ID_GUID or EFI_FILE_SYSTEM_VOLUME_LABEL_INFO\r
266 must be changed to use their definitions from UEFI specification. \r
267\r
268EDK_6974: Non-Compatible: lgao4\r
269 \r
270 In MdePkg/Include/Uefi/UefiSpec.h file, to follow UEFI2.1 specification.\r
271 Rename struct EFI_KEY_OPTION.KeyOptions to EFI_KEY_OPTION.KeyData\r
272\r
273Possible Impacts:\r
274 All source codes that refer to EFI_KEY_OPTION.KeyOptions\r
275 must be changed to use EFI_KEY_OPTION.KeyData from UEFI specification. \r
5384e3d4 276\r
8cc267eb 277EDK_7057: Non-Compatible: qhuang8\r
278 Retired the following macros defined in MdePkg/Include/Uefi/UefiBaseType.h:\r
279 EFI_SIGNATURE_16, EFI_SIGNATURE_32, EFI_SIGNATURE_64, EFI_FIELD_OFFSET, EFI_MAX_BIT & EFI_MAX_ADDRESS\r
280 \r
281Possible impacts:\r
282 All EDKII native source code needs to update to use the equivelent macros (without "EFI_" prefix except for\r
283 EFI_FIELD_OFFSET) defined in MdePkg\Include\Base.h and MdePkg\Include\$(ARCH)\ProcessorBinding.h:\r
284 EFI_SIGNATURE_16 -> SIGNATURE_16\r
285 EFI_SIGNATURE_32 -> SIGNATURE_32\r
286 EFI_SIGNATURE_64 -> SIGNATURE_64\r
287 EFI_FIELD_OFFSET -> OFFSET_OF\r
288 EFI_MAX_BIT -> MAX_BIT\r
289 EFI_MAX_ADDRESS -> MAX_ADDRESS\r
56c0008b 290\r
291EDK_7467: Non-Compatible: qhuang8\r
292 Remove the macro value TIME_OUT defined in MdePkg/Include/Uefi/UefiUsbLib.h and replace it with a new PCD entry:\r
293 gEfiMdePkgTokenSpaceGuid.PcdUsbTransferTimeoutValue \r
294 \r
295Possible impacts:\r
296 All modules depending on macro TIME_OUT in MdePkg/Include/Uefi/UefiUsbLib.h should use PcdGet32 (PcdUsbTransferTimeoutValue)\r
297 for the USB transaction, include "PcdLib" in INF [LibraryClasses] section and add "#include <Library/PcdLib.h>" in module\r
298 source.