]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/ChangeLog.txt
Fix incorrect Edk revision number in last commit
[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
f8dddfde 298 source.\r
299\r
300EDK_9384: Non-Compatible: xli24\r
301\r
302 2 default values of status code PCDs updated in MdePkg.dec.\r
303\r
304 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
305 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
306\r
307Possible impacts:\r
308 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
309\r
310EDK_9385: Non-Compatible: xli24\r
311\r
312 Default value of PcdStatusCodeValueSetVirtualAddressMap updated in MdePkg.dec.\r
313 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
314\r
315\r
316Possible impacts:\r
317 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
5bd46269 318\r
319EDK_9394: Non-Compatible: qhuang8\r
320\r
321 GUID value of EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL_GUID and gEfiFirmwareVolumeBlockProtocolGuid has been changed to \r
322 that of EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL_GUID defined in PI 1.2 spec.\r
323 \r
324\r
325Possible impacts:\r
326 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
327\r
328\r
2d368156 329EDK_9817: Non-Compatible: qhuang8\r
c3117889 330 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
331 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
332\r
333Possible impacts:\r
334 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
335 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
336 (There should not be any runtime issues if the build issues have got solved in the source correctly.)\r
337\r