summaryrefslogtreecommitdiff
path: root/Tools/BaseTools/ChangeLog.txt
blob: 752d110ea4ef76c64959a6f41840ebdb2e143c4d (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
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
##########################################################################################
!!!!!!!!!!!!!!!!!               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_4096: Non-Compatible: jwang36

      Class_BuildTool:
        1) Removed the calling of vsvars32.bat in edksetup.bat, unless
				"--nt32" switch is used.
				2) Added MAKE command in tools_def.txt. This is used to locate where
				the nmake.exe or make.exe is because it will not be in PATH any more.
				3) Removed the calling of vsvars32.bat in toolsetup.bat.
				4) Solved the hang issue of build.exe when error occurred or Ctrl+C is
				pressed.
				5) Passed "-v/-d/-q" command line option to GenFds.exe in makefile if
				it's used by build.exe.
 
        Code Change :
        1) BaseTools/Bin/Win32/build.exe
        2) BaseTools/Bin/Win32/GenFds.exe
        3) BaseTools/Conf/tools_def.template
        4) BaseTools/toolsetup.bat
				5) edksetup.bat

        Possible Impacts:
        1) Nt32Pkg build needs to run vsvars32.bat before edksetup.bat or run
				edksetup.bat with "--nt32" option, like

						edksetup.bat --nt32 newbuild

				2) $(WORKSPACE)/Conf/tools_def.txt must be deleted before running
				edksetup.bat because of new tools_def.template. Otherwise the
				build.exe cannot find the nmake.exe to call.

==========================================================================================
EDK_3947: Compatible: jwang36

      Class_BuildTool:
        1) Improved spawn mode (multi-thread) build performance (build -s)
        2) Changed the error/debug/warning message format
        3) Added "--log" command line option to support storing log in file
 
        Code Change :
        1) BaseTools/Bin/Win32/build.exe


==========================================================================================
EDK_3936: Compatible: klu2

      Class_BuildTool:
        1) The first parameter of PEIM's entry point in autogen.c has been changed to 
           EFI_PEI_FILE_HANDLE
 
        Code Change :
        1) BaseTools/Bin/Win32/build.exe

==========================================================================================
EDK_3926: Compatible: jlin16

      Class_BuildTool:
        1) Added support of Capsule generation from FDF file.
 
        Code Change :
        1) BaseTools/Bin/Win32/build.exe
        2) BaseTools/Bin/Win32/GenFds.exe

        Possible Impacts:
        1) To generate capsule, insert [Capsule] section after [FV] sections and specifying
        what FV will be put into capsule, For example:
        [Capsule.Fob]
        CAPSULE_GUID = 3B6686BD-0D76-4030-B70E-B5519E2FC5A0
        CAPSULE_FLAG = PersistAcrossReset
        FV = BiosUpdate

==========================================================================================
EDK_3911: Compatible: jlin16

      Class_BuildTool:
        1) Added support of Apriori file generation from FDF file.
        2) Added support of INF that describes binary files to put binary into FV.
        3) Fixed single FV/FD generation error when specifying -i/-r option in GenFds.
        
 
        Code Change :
        1) BaseTools/Bin/Win32/build.exe
        2) BaseTools/Bin/Win32/GenFds.exe

        Possible Impacts:
        1) To generate Apriori file in FV, insert APRIORI statement just before the INF or
        FILE statement list of the FV, For example:
        APRIORI PEI {
          INF  MdeModulePkg/Universal/PCD/Pei/Pcd.inf
          FILE PEIM = B7A5041A-78BA-49e3-B73B-54C757811FB6 {
                  SECTION PE32 = MyBinPkg\bin\ia32\PeimAfterPcd.efi
          }
          INF  IntelFrameworkModulePkg/Universal/StatusCode/Pei/PeiStatusCode.inf
        }
        2) To add binary file described by INF file into FV, only insert the INF statement
        into the INF statements list of that FV, like this:
        
        INF RuleOverride=Test MdeModulePkg/Logo/Logo.inf
        
        Specifying how to process the binary file by defining corresponding Rule like this:
        [Rule.Common.Base.Test]
         FILE FREEFORM = $(NAMED_GUID) {
           COMPRESS PI_STD {
             GUIDED {
                RAW BIN |.bmp   
             }
           }
         }

==========================================================================================
EDK_3832: Non-Compatible: jwang36

      Class_BuildTool:
        1) Added support of MACRO in tools_def.txt
        2) Merged PATH and NAME attributes in tools_def.txt
        3) Changed DPATH attribute to DLL in tools_def.txt
        4) Removed SPATH attribute in tools_def.txt
        5) Added support for library instance without library class
        6) Fixed the issue in Trim tool which zero file will be generated if the trimmed 
           file has not line directive
 
        Code Change :
        1) BaseTools/Bin/Win32/build.exe
        2) BaseTools/Bin/Win32/GenFds.exe
        3) BaseTools/Bin/Win32/Trim.exe
        4) BaseTools/Conf/tools_def.template

        Possible Impacts:
        1) All platforms and modules build

==========================================================================================
EDK_3801: Compatible: jwang36

      Class_BuildConfiguration: Added makefile as dependency for "Dynamic-Library-File" to 
        solve the incremental build issue occurred when there's library changes

        Code Change :
        1) BaseTools/Conf/build_rule.template

==========================================================================================
EDK_3800: Compatible: lgao4

      Class_BuildTool: Update EfiRom tool to fix checksum and PCI3.0 data structure

        Code Change :
        1) BaseTools/Bin/Win32/EfiRom.exe

==========================================================================================
EDK_3795: Compatible: htao

      Class_BuildTool: GenVtf tool open/write file with "r+b"/"w+b" attribute, but this cause
                       the RO attribute of the file changed. Fix this issue by changing 
                       "r+b"/"w+b" to "rb"/"wb".

        Code Change :
        1) BaseTools/Bin/Win32/GenVtf.exe

==========================================================================================
EDK_3791: Compatible: jlin16

      Class_BuildTool:
        1) use '#' to indicate flash generation progress.
        2) use -v to switch on detail output messages.

        Code Change :
        1) BaseTools/Bin/Win32/GenFds.exe

==========================================================================================
EDK_3789: Non-Compatible: lgao4

      Class_BuildTool: support new Rules format and PCD format defined in FDF file

        Code Change :
        1) BaseTools/Bin/Win32/build.exe
        2) BaseTools/Bin/Win32/GenFds.exe

        Possible Impacts:
        1) All platform's FDF file, if any, must be changed to new format.
          a) PCD format is changed from old PcdName to new PcdTokenSpaceGuid.PcdName, 
             for example PcdWinNtFdBaseAddress in old FDF file will be replaced 
             by gEfiNt32PkgTokenSpaceGuid.PcdWinNtFdBaseAddres.
          b) Rule format adds binary file type and file postfix name support, 
             and doesn't require the full file path. Examples for Peim and AcpiTable module:
          Old Peim Rule:
          [Rule.Common.PEIM]
          FILE PEIM = $(NAMED_GUID) {
             PEI_DEPEX Optional        $(INF_OUTPUT)/$(MODULE_NAME).Depex
             PE32                      $(INF_OUTPUT)/$(MODULE_NAME).efi
             UI Optional               $(MODULE_NAME)
             VERSION Optional          BUILD_NUM=$(BUILD_NUMBER) $(INF_VERSION)
          }
          New Peim Rule:
          [Rule.Common.PEIM]
            FILE PEIM = $(NAMED_GUID) {
               PEI_DEPEX PEI_DEPEX Optional        |.Depex
               PE32      PE32                      |.efi
               UI       STRING="$(MODULE_NAME)" Optional         
               VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)   
            }

          Old AcpiTable Rule:
          [Rule.Common.DXE_DRIVER.ACPITABLE]
            FILE FREEFORM = $(NAMED_GUID) {
              RAW                    $(INF_OUTPUT)/Madt.acpi
              RAW                    $(INF_OUTPUT)/Fadt.acpi
              RAW                    $(INF_OUTPUT)/Facs.acpi
              RAW                    $(INF_OUTPUT)/Spcr.acpi
              RAW                    $(INF_OUTPUT)/Dsdt.aml
            }
          New AcpiTable Rule:
          [Rule.Common.DXE_DRIVER.ACPITABLE]
            FILE FREEFORM = $(NAMED_GUID) {
              RAW ACPI |.acpi
              RAW ASL  |.aml
            }

==========================================================================================
EDK_3786: Compatible: vjeff

      Class_BuildConfiguration:
        1) Redirect ICC_IA32_*_PATH from C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin 
           to C:\Program Files\Intel\Compiler\C++\9.1\IA32\Bin. 
        2) Add ICC X64 definition to enable ICC X64 build.

        Code Change :
        1) BaseTools/Conf/tools_def.template

==========================================================================================
EDK_3785: Non-Compatible: klu2

      Class_BuildTool: Upgrade the format of EFI_PEIM_ENTRY_POINT to 
                       EFI_PEIM_ENTRY_POINT2 according to PI specification.


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

        Possible Impacts:
        1) All modules build


==========================================================================================
EDK_3780: Non-Compatible: qhuang8

      Class_MigrationTool: Update the syntax of PCD section.
                           Update the syntax of binary INF file
                           The generated Extended INF file should follow Extended INF spec 0.44

        Code Change :
        1) BaseTools/Bin/Win32/MigrationMsa2Inf.exe

        Possible Impacts:
        1) New module migrated from old R9


==========================================================================================
EDK_3766: Non-Compatible: lgao4

      Class_BuildConfiguration: Update Acpi Asl file Build rule to remove trim step.

        Code Change :
        1) Conf/build_rule.template

        Possible Impacts:
        1) Platform with ACPI module. Acpi module needs to set /EP preprocessor compiler option 
        for APP_FLAGS in module inf to override the default /E option defined in tools_def.txt file.