summaryrefslogtreecommitdiff
path: root/MdeModulePkg/ChangeLog.txt
blob: e50ab47366e7a2747bbdb6f0961bbd385b962294 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
##########################################################################################
!!!!!!!!!!!!!!!!!               Notes for this ChangeLog.txt             !!!!!!!!!!!!!!!!!

This log file is used to record two kinds of important information:
 a) "Non-Compatible Changes": all non-compatible changes should be recorded. These info
    will help the package user to merge this package; and some non-compatible changes
    can also be added into release notes as news features when we release this package.
    Normally Non-Compatible Changes contains the following types:
      1) Package's external services were changed/updated
      2) Package's common .h file is renamed, deleted, or the file path is changed.
      3) The definition of package's common data structure is changed
      ...

 b) "Important Compatible Changes": some important compatible changes can aslo be recorded
    in this file, and we can add these updating into release notes when we release this
    package.

Non-Compatible and Compatible example format:
==========================================================================================
EDK_0010: Non-Compatible: owner

	  Class_HFile: PPI A of MdePkg has been removed.

		Code Change :
		1) Removed the .h file: MdePkg\Include\Ppi\A.h

		Possible Impacts:
		1) All modules that used this PPI A should be updated.

==========================================================================================
EDK_0000: Compatible: owner

	  Class_BuildTool: with the EDK_0000 build.exe, the build performance is enhanced great.

		Code Change :
		1) BaseTools\Bin\Win32\build.exe

!!!!!!!!!!!!!!!!!!                     End of Notes                     !!!!!!!!!!!!!!!!!!
##########################################################################################

==========================================================================================
EDK_4067:  Non-Compatible: qwang12
  Class_PIEnable[6]:  PEI core does not build FV HOB upon notification of a EFI_PEI_FIRMWARE_VOLUME_INFO_PPI automatically.

      Code Change :
      1) MdeModulePkg/Core/Pei/FwVol/FwVol.c 
      
      Impact to platform code:
      1) If platform module want to inform both PEI core and DXE core about the existance of new FV 
         it must both install EFI_PEI_FIRMWARE_VOLUME_INFO_PPI and FV HOB. 

          A example is given belows:
    
            PiLibInstallFvInfoPpi (
              NULL,
              Buffer,
              (UINT32) FvHeader->FvLength,
              NULL,
              NULL
              );
    
            BuildFvHob (
              (EFI_PHYSICAL_ADDRESS) (UINTN) Buffer,
              (UINT32) FvHeader->FvLength
              );

            PEI core does not automatically build FV HOB upon notification of a EFI_PEI_FIRMWARE_VOLUME_INFO_PPI. 
            The description in Item 2 in Section 4.8.1.2 in Vol 1 of PI spec will be updated to remove the 
            "Create a new firmware volume HOB" wording.
      

==========================================================================================
EDK_4000-4006: Compatible: qhuang8

           Class_UefiEnable[0]: Uefi feature -Add component name 2 protocol support for
                                all drivers that support component name protocol
	

    Code Change :
    1) Update MdeModulePkg/Bus/Pci/*
    2) Update MdeModulePkg/Bus/Scsi/*
    3) Update MdeModulePkg/Bus/Usb/*
    4) Update MdeModulePkg/Universal/Disk/*
    5) Update MdeModulePkg/Universal/DebugPortDxe/*
    6) Update MdeModulePkg/Universal/Console/*
    7) Update MdeModulePkg/Universal/Network/*
   
    possible impact:
    1) To produce the component name 2 protocol, platform DSC file needs to set feature
       flag 'PcdComponentName2Disable' to 'FALSE'

==========================================================================================
EDK_3967:  Non-Compatible: lgao4

	  Class_Library:  Remove PeCoffLoader library class and its instances.

		Code Change :
		1) Remove MdeModulePkg/Include/Library/PeCoffLoaderLib.h
		2) Remove MdeModulePkg/Library/DxePeCoffLoaderFromHobLib and PeiDxePeCoffLoaderLib instance
		3) Modify PeiCore, DxeIpl and DxeCore to use PeCoffLib in place of PeCoffLoaderLib.

		Possible Impacts:
		1) All modules don't use PeCoffloader library class any longer to load PeImage. 
		   If necessary, they should use PeCoffLib of MdePkg to load PeImage.

==========================================================================================
EDK_3931: Non-Compatible: klu2
	
	Class_PIEnable[5]: New library class for S3Resume and Recovery for DxeIpl PEIM.
	
	Code Change:
	1) Add new library class 
	   a) MdeModulePkg/Include/Library/S3Lib.h
	   b) MdeModulePkg/Include/Library/RecoveryLib.h
	2) Add NULL library instances for MdeModulePkg:
	   a) MdeModulePkg/Library/PeiS3LibNull/PeiS3LibNull.inf.
	   b) MdeModulePkg/Library/PeiRecoveryLibNull/PeiRecoveryLibNull.inf
	3) Add framework implement library instances:
	   a) IntelFrameworkModulePkg/Library/PeiS3Lib/PeiS3Lib.inf
	   b) IntelFrameworkModulePkg/Library/PeiRecovery/PeiRecovery.inf
	
	Possible Impacts:
	1) In DSC file, real platform should select:
	   S3Lib library class       -> IntelFrameworkModulePkg/Library/PeiS3Lib/PeiS3Lib.inf
	   RecoveryLib library class -> IntelFrameworkModulePkg/Library/PeiRecovery/PeiRecovery.inf
	   
	   Nt32 platform should select:
	   S3Lib library class       -> MdeModulePkg/Library/PeiS3LibNull/PeiS3LibNull.inf.
	   RecoveryLib library class -> MdeModulePkg/Library/PeiRecoveryLibNull/PeiRecoveryLibNull.inf
	   
==========================================================================================
EDK_3922:  Non-Compatible: qwang12, klu2
  Class_PIEnable[2]:  Update PEI core to only consume EFI_PEI_FIRMWARE_VOLUME_INFO_PPI

  Code Change :
  1) Update PEI core to consume EFI_PEI_FIRMWARE_VOLUME_INFO_PPI to get the location of new FVs other than BFV
     reported by PEIMs . 

  Possible Impacts:
  1) Platform code that is going to inform PEI core about the new FVs other than BFV should install 
     EFI_PEI_FIRMWARE_VOLUME_INFO_PPI. A library function named PeiPiLibBuildPiFvInfoPpi() defined in 
     MdePkg\Include\Library\PeiPiLib.h can be used to install the PPI. 
     There are two notes worth mentioning:
     1) Platform PEIMs should report at least FVs containing DXE_CORE and all other PEIM to PEI Core if they
        are not in the BFV. 
     2) PEI core will dispatch PEIMs in the FV reported by PeiPiLibBuildPiFvInfoPpi() and invoke BuildFvHob () to build the 
        FV HOB for this FV (see Section 4.8.1.2 of Vol 1 named Multiple Firmware Volume Support for details). 
        If PEIM only want to inform DXE core about the existance of the new FV, it should call BuildFvHob instead.
  
  
  Class_PIEnable[3]:  Update PEI core to support RegisterForShadow feature introduced by PI spec

     Code Change :
     1) DXEIPL no longer produce EFI_PEI_FV_FILE_LOADER_PPI defined in Framework PEI CIS.

     Possible Impacts:

     1)All PEIMs that need to shadow itself into memory and rerun the entry point should be updated to call RegisterForShadow
     (PeiServicesLibRegisterForShadow () is a helper function).
     2)The depex of PEIMs that including EFI_PEI_FV_FILE_LOADER_PPI (or gEfiPeiFvFileLoaderPpiGuid) should be removed.
 

  Class_PIEnable[4]:  Update PEI core to produce other new features defined in PI spec

      Code Change :
      1) Add the following services: FfsGetFileInfo, FfsFindFileByName and FfsGetVolumeInfo

      Possible Impacts:

      1) Platform code is recommended to make use of these new PI features. The functions in MdePkg/Include/Library/PeiServicesLib.h are 
         recommended as PeiServices is saved for every PEI Services API invokation.

==========================================================================================
EDK_3871: Non-Compatible: klu2
	
	Class_PIEnable[1]: Use new entry point for PeiCore defined in PI specification.
	
	Code Change:
	1) PeiMain module use PeiCoreEntryPoint library class but *not* original OldPeiCoreEntryPoint.
	2) The memory service in PeiMain module get CAR base and size from parameter of PeiCore's
	   Entry point directly but *not* computed from stack's base.
	
	Possible Impacts:
	1) Platform should select MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf for 
	   PeiMain module.
	2) The SecCore module should provide parameters for new entry point defined in 
	   MdePkg\Include\Library\PeiCoreEntryPoint.h
	   
==========================================================================================
EDK_3866:  Compatible: qhuang8

	  Class_UefiEnable[0]:  Uefi2.1 feature - Add Hardware Error Record Persistence Support 
		Code Change :
		1) Modify MdeModulePkg/Universal/Variable/RuntimeDxe
                2) Modify MdeModulePkg/Universal/Variable/EmuRuntimeDxe

==========================================================================================
EDK_3773:  Non-Compatible: qwang12

	  Class_PIEnable[0]:  Enable DXE Core to produce EFI_FIRMWARE_VOLUME2_PROTOCOL only.

		Code Change :
		1) Modify MdeModulePkg/Core/Dxe/DxeMain.inf module to produce only
		   EFI_FIRMWARE_VOLUME2_PROTOCOL.	Previously, EFI_FIRMWARE_VOLUME_PROTOCOL
		   is produced by Dxe Core.

		Possible Impacts:
		1) All modules that references EFI_FIRMWARE_VOLUME_PROTOCOL must be updated to use
	 	   EFI_FIRMWARE_VOLUME2_PROTOCOL.
		2) All modules that references gEfiFirmwareVolumeProtocolGuid must be updated to
		   use gEfiFirmwareVolume2ProtocolGuid.
		3) The gEfiFirmwareVolumeProtocolGuid in [Depex] section of INF file should updated.
		   And the package dependency should also be changed if needed due to this protocol
		   GUID change.