Roll back changes to apply GetBestLanguage() in HiiDataBase. Exact language match...
[mirror_edk2.git] / MdeModulePkg / ChangeLog.txt
1 ##########################################################################################
2 !!!!!!!!!!!!!!!!! Notes for this ChangeLog.txt !!!!!!!!!!!!!!!!!
3
4 This log file is used to record two kinds of important information:
5 a) "Non-Compatible Changes": all non-compatible changes should be recorded. These info
6 will help the package user to merge this package; and some non-compatible changes
7 can also be added into release notes as news features when we release this package.
8 Normally Non-Compatible Changes contains the following types:
9 1) Package's external services were changed/updated
10 2) Package's common .h file is renamed, deleted, or the file path is changed.
11 3) The definition of package's common data structure is changed
12 ...
13
14 b) "Important Compatible Changes": some important compatible changes can aslo be recorded
15 in this file, and we can add these updating into release notes when we release this
16 package.
17
18 Non-Compatible and Compatible example format:
19 ==========================================================================================
20 EDK_0010: Non-Compatible: owner
21
22 Class_HFile: PPI A of MdePkg has been removed.
23
24 Code Change :
25 1) Removed the .h file: MdePkg\Include\Ppi\A.h
26
27 Possible Impacts:
28 1) All modules that used this PPI A should be updated.
29
30 ==========================================================================================
31 EDK_0000: Compatible: owner
32
33 Class_BuildTool: with the EDK_0000 build.exe, the build performance is enhanced great.
34
35 Code Change :
36 1) BaseTools\Bin\Win32\build.exe
37
38 !!!!!!!!!!!!!!!!!! End of Notes !!!!!!!!!!!!!!!!!!
39 ##########################################################################################
40
41 ==========================================================================================
42 EDK_4310: Non-Compatible: qhuang8
43 Class_ModuleRemove[0]: Remove AtapiPassThru module from MdeModulePkg. AtapiPassThru
44 module is only used for testing. We already have a driver in OptionRomPkg to
45 produce ScsiPassThru and ExtScsiPassThru based on PCD setting. We can remove it
46 from MdeModulePkg.
47
48 Code Change :
49 1) Remove module MdeModulePkg/Bus/Pci/AtapiPassThruDxe/AtapiPassThru.inf
50
51 Impact to platform code:
52 If a platform happens to refer to this module in their dsc file, please use the
53 counterpart module in OptionRomPkg.
54
55 ==========================================================================================
56 EDK_4067: Non-Compatible: qwang12
57 Class_PIEnable[6]: PEI core does not build FV HOB upon notification of a EFI_PEI_FIRMWARE_VOLUME_INFO_PPI automatically.
58
59 Code Change :
60 1) MdeModulePkg/Core/Pei/FwVol/FwVol.c
61
62 Impact to platform code:
63 1) If platform module want to inform both PEI core and DXE core about the existance of new FV
64 it must both install EFI_PEI_FIRMWARE_VOLUME_INFO_PPI and FV HOB.
65
66 A example is given belows:
67
68 PiLibInstallFvInfoPpi (
69 NULL,
70 Buffer,
71 (UINT32) FvHeader->FvLength,
72 NULL,
73 NULL
74 );
75
76 BuildFvHob (
77 (EFI_PHYSICAL_ADDRESS) (UINTN) Buffer,
78 (UINT32) FvHeader->FvLength
79 );
80
81 PEI core does not automatically build FV HOB upon notification of a EFI_PEI_FIRMWARE_VOLUME_INFO_PPI.
82 The description in Item 2 in Section 4.8.1.2 in Vol 1 of PI spec will be updated to remove the
83 "Create a new firmware volume HOB" wording.
84
85
86 ==========================================================================================
87 EDK_4000-4006: Compatible: qhuang8
88
89 Class_UefiEnable[0]: Uefi feature -Add component name 2 protocol support for
90 all drivers that support component name protocol
91
92
93 Code Change :
94 1) Update MdeModulePkg/Bus/Pci/*
95 2) Update MdeModulePkg/Bus/Scsi/*
96 3) Update MdeModulePkg/Bus/Usb/*
97 4) Update MdeModulePkg/Universal/Disk/*
98 5) Update MdeModulePkg/Universal/DebugPortDxe/*
99 6) Update MdeModulePkg/Universal/Console/*
100 7) Update MdeModulePkg/Universal/Network/*
101
102 possible impact:
103 1) To produce the component name 2 protocol, platform DSC file needs to set feature
104 flag 'PcdComponentName2Disable' to 'FALSE'
105
106 ==========================================================================================
107 EDK_3967: Non-Compatible: lgao4
108
109 Class_Library: Remove PeCoffLoader library class and its instances.
110
111 Code Change :
112 1) Remove MdeModulePkg/Include/Library/PeCoffLoaderLib.h
113 2) Remove MdeModulePkg/Library/DxePeCoffLoaderFromHobLib and PeiDxePeCoffLoaderLib instance
114 3) Modify PeiCore, DxeIpl and DxeCore to use PeCoffLib in place of PeCoffLoaderLib.
115
116 Possible Impacts:
117 1) All modules don't use PeCoffloader library class any longer to load PeImage.
118 If necessary, they should use PeCoffLib of MdePkg to load PeImage.
119
120 ==========================================================================================
121 EDK_3931: Non-Compatible: klu2
122
123 Class_PIEnable[5]: New library class for S3Resume and Recovery for DxeIpl PEIM.
124
125 Code Change:
126 1) Add new library class
127 a) MdeModulePkg/Include/Library/S3Lib.h
128 b) MdeModulePkg/Include/Library/RecoveryLib.h
129 2) Add NULL library instances for MdeModulePkg:
130 a) MdeModulePkg/Library/PeiS3LibNull/PeiS3LibNull.inf.
131 b) MdeModulePkg/Library/PeiRecoveryLibNull/PeiRecoveryLibNull.inf
132 3) Add framework implement library instances:
133 a) IntelFrameworkModulePkg/Library/PeiS3Lib/PeiS3Lib.inf
134 b) IntelFrameworkModulePkg/Library/PeiRecovery/PeiRecovery.inf
135
136 Possible Impacts:
137 1) In DSC file, real platform should select:
138 S3Lib library class -> IntelFrameworkModulePkg/Library/PeiS3Lib/PeiS3Lib.inf
139 RecoveryLib library class -> IntelFrameworkModulePkg/Library/PeiRecovery/PeiRecovery.inf
140
141 Nt32 platform should select:
142 S3Lib library class -> MdeModulePkg/Library/PeiS3LibNull/PeiS3LibNull.inf.
143 RecoveryLib library class -> MdeModulePkg/Library/PeiRecoveryLibNull/PeiRecoveryLibNull.inf
144
145 ==========================================================================================
146 EDK_3922: Non-Compatible: qwang12, klu2
147 Class_PIEnable[2]: Update PEI core to only consume EFI_PEI_FIRMWARE_VOLUME_INFO_PPI
148
149 Code Change :
150 1) Update PEI core to consume EFI_PEI_FIRMWARE_VOLUME_INFO_PPI to get the location of new FVs other than BFV
151 reported by PEIMs .
152
153 Possible Impacts:
154 1) Platform code that is going to inform PEI core about the new FVs other than BFV should install
155 EFI_PEI_FIRMWARE_VOLUME_INFO_PPI. A library function named PeiPiLibBuildPiFvInfoPpi() defined in
156 MdePkg\Include\Library\PeiPiLib.h can be used to install the PPI.
157 There are two notes worth mentioning:
158 1) Platform PEIMs should report at least FVs containing DXE_CORE and all other PEIM to PEI Core if they
159 are not in the BFV.
160 2) PEI core will dispatch PEIMs in the FV reported by PeiPiLibBuildPiFvInfoPpi() and invoke BuildFvHob () to build the
161 FV HOB for this FV (see Section 4.8.1.2 of Vol 1 named Multiple Firmware Volume Support for details).
162 If PEIM only want to inform DXE core about the existance of the new FV, it should call BuildFvHob instead.
163
164
165 Class_PIEnable[3]: Update PEI core to support RegisterForShadow feature introduced by PI spec
166
167 Code Change :
168 1) DXEIPL no longer produce EFI_PEI_FV_FILE_LOADER_PPI defined in Framework PEI CIS.
169
170 Possible Impacts:
171
172 1)All PEIMs that need to shadow itself into memory and rerun the entry point should be updated to call RegisterForShadow
173 (PeiServicesLibRegisterForShadow () is a helper function).
174 2)The depex of PEIMs that including EFI_PEI_FV_FILE_LOADER_PPI (or gEfiPeiFvFileLoaderPpiGuid) should be removed.
175
176
177 Class_PIEnable[4]: Update PEI core to produce other new features defined in PI spec
178
179 Code Change :
180 1) Add the following services: FfsGetFileInfo, FfsFindFileByName and FfsGetVolumeInfo
181
182 Possible Impacts:
183
184 1) Platform code is recommended to make use of these new PI features. The functions in MdePkg/Include/Library/PeiServicesLib.h are
185 recommended as PeiServices is saved for every PEI Services API invokation.
186
187 ==========================================================================================
188 EDK_3871: Non-Compatible: klu2
189
190 Class_PIEnable[1]: Use new entry point for PeiCore defined in PI specification.
191
192 Code Change:
193 1) PeiMain module use PeiCoreEntryPoint library class but *not* original OldPeiCoreEntryPoint.
194 2) The memory service in PeiMain module get temporary memory base and size from parameter of PeiCore's
195 Entry point directly but *not* computed from stack's base.
196
197 Possible Impacts:
198 1) Platform should select MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf for
199 PeiMain module.
200 2) The SecCore module should provide parameters for new entry point defined in
201 MdePkg\Include\Library\PeiCoreEntryPoint.h
202
203 ==========================================================================================
204 EDK_3866: Compatible: qhuang8
205
206 Class_UefiEnable[0]: Uefi2.1 feature - Add Hardware Error Record Persistence Support
207 Code Change :
208 1) Modify MdeModulePkg/Universal/Variable/RuntimeDxe
209 2) Modify MdeModulePkg/Universal/Variable/EmuRuntimeDxe
210
211 ==========================================================================================
212 EDK_3773: Non-Compatible: qwang12
213
214 Class_PIEnable[0]: Enable DXE Core to produce EFI_FIRMWARE_VOLUME2_PROTOCOL only.
215
216 Code Change :
217 1) Modify MdeModulePkg/Core/Dxe/DxeMain.inf module to produce only
218 EFI_FIRMWARE_VOLUME2_PROTOCOL. Previously, EFI_FIRMWARE_VOLUME_PROTOCOL
219 is produced by Dxe Core.
220
221 Possible Impacts:
222 1) All modules that references EFI_FIRMWARE_VOLUME_PROTOCOL must be updated to use
223 EFI_FIRMWARE_VOLUME2_PROTOCOL.
224 2) All modules that references gEfiFirmwareVolumeProtocolGuid must be updated to
225 use gEfiFirmwareVolume2ProtocolGuid.
226 3) The gEfiFirmwareVolumeProtocolGuid in [Depex] section of INF file should updated.
227 And the package dependency should also be changed if needed due to this protocol
228 GUID change.