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