1 ##########################################################################################
2 !!!!!!!!!!!!!!!!! Notes for this ChangeLog.txt !!!!!!!!!!!!!!!!!
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
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
18 Non-Compatible and Compatible example format:
19 ==========================================================================================
20 EDK_0010: Non-Compatible: owner
22 Class_HFile: PPI A of MdePkg has been removed.
25 1) Removed the .h file: MdePkg\Include\Ppi\A.h
28 1) All modules that used this PPI A should be updated.
30 ==========================================================================================
31 EDK_0000: Compatible: owner
33 Class_BuildTool: with the EDK_0000 build.exe, the build performance is enhanced great.
36 1) BaseTools\Bin\Win32\build.exe
38 !!!!!!!!!!!!!!!!!! End of Notes !!!!!!!!!!!!!!!!!!
40 ##########################################################################################
42 ##########################################################################################
43 ########## Revision number of tools source code ##########
44 BaseTools/Bin/Win32/build.exe
45 r1400 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/Autogen
46 r1400 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/build
47 r1400 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/Common
48 r1400 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/CommonDataClass
49 r1400 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/GenFds
50 r1400 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/Workspace
52 BaseTools/Bin/Win32/GenFds.exe
53 r1396 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/Common
54 r1396 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/CommonDataClass
55 r1396 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/GenFds
56 r1396 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/Workspace
58 BaseTools/Bin/Win32/GenDepex.exe
59 r1383 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/AutoGen
60 r1383 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/Common
62 BaseTools/Bin/Win32/Trim.exe
63 r1383 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/Trim
64 r1383 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/Common
66 BaseTools/Bin/Win32/MigrationMsa2Inf.exe
67 r843 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/MigrationMsa2Inf
68 r843 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/Common
70 BaseTools/Bin/Win32/TargetTool.exe
71 r843 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/TargetTool
72 r843 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/Common
74 BaseTools/Bin/Win32/Spd2Dec.exe
75 r777 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/spd2dec
77 BaseTools/Bin/Win32/Fpd2Dsc.exe
78 r767 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/fpd2dsc
80 ==========================================================================================
81 basetools_7009: Non-Compatible: jwang36
84 1) Search value of Guid/Protocol/PPI in inf file only in the same category in dec file.
85 2) Pass all files in a module's directory to StrGather for R8 modules.
88 1) /trunk/edk2/BaseTools/Bin/Win32/build.exe
91 1) Those inf files in which the PPI/Protocol/Guid are put in incorrect
92 section will encounter build break.
94 ==========================================================================================
95 EDK_6930: Non-Compatible: jwang36
98 1) Separate the AutoGen code for PCDs between module and its library instances.
99 Only macros for module's PCDs will be put in AutoGen.h. Others will be put
100 in AutoGen.c. This is intended to catch missed PCDs in inf file more easily.
101 2) For better compatibile between C standards or C compiler, add type cast for
102 PCD constants in AutoGen.h according to the PCD datum type.
103 3) Add incremental generation capability for FV in GenFds tool.
106 1) /trunk/edk2/BaseTools/Bin/Win32/build.exe
107 2) /trunk/edk2/BaseTools/Bin/Win32/GenFds.exe
110 1) If there're PCDs used in a module but not declared in the module's inf file,
111 and occasionally they are declared in the library instances, there must be
112 a build break. Adding necessary PCDs declarations in the module's inf file
115 ==========================================================================================
116 EDK_6828: Compatible: jwang36
119 1) Add a feature to allow override tools option via "==" in metafile.
120 2) Remove the AutoGen.c generation for R8 module without unicode file.
124 1) /trunk/edk2/BaseTools/Bin/Win32/build.exe
126 ==========================================================================================
127 EDK_6772: Non-Compatible: jwang36
130 1) Add /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT) in EBC_CC_FLAGS to ensure
131 correct R8's module entry point for EBC arch.
134 1) /trunk/edk2/BaseTools/Conf/tools_def.template
137 The local version of tools_def.txt must be updated with the change in
140 ==========================================================================================
141 EDK_6762: Non-Compatible: lgao4
144 1) Declare entry point, constructor into AutoGen.h
145 2) Create <ModuleName>StrDefs.h to contain uni code string ID.
149 1) /trunk/edk2/BaseTools/Bin/Win32/build.exe
150 2) /trunk/edk2/BaseTools/Conf/tools_def.template
153 The local version of tools_def.txt must be updated with change in
156 ==========================================================================================
157 EDK_6671: Compatible: qwang12
160 1) StrGather (Build.exe) in compatible mode add a Framework Package Header
161 to replace the original ¡°ArrayLength¡± generated in the output.
162 2) VfrCompiler in compatible mode add a Framework Package Header to replace
163 the original ¡°ArrayLength¡± generated in the output.
166 1) /trunk/edk2/BaseTools/Bin/Win32/VfrCompile.exe
167 2) /trunk/edk2/BaseTools/Bin/Win32/build.exe
170 ==========================================================================================
171 EDK_6666: Compatible: lgao4
174 1) Enhance GenFv WriteFvMap function to print basic debug information
175 (entrypoint, baseaddress, .text, .data section base address) when no
177 2) Enhance GenFv tool to create the non PI file system firmware volume.
179 - Set the first framework var store name to ¡°Setup¡±
180 - Support DEFAULT and MANUFACTURING for framework CheckBox flags value
183 /trunk/edk2/BaseTools/Bin/Win32/GenFv.exe
184 /trunk/edk2/BaseTools/Bin/Win32/VfrCompile.exe
186 ==========================================================================================
187 EDK_6640: Compatible: jwang36
190 1) Change file line format of AutoGen files to native style.
193 1) /trunk/edk2/BaseTools/Bin/Win32/build.exe
195 ==========================================================================================
196 EDK_6613: Non-Compatible: qwang12
199 1) Generate data for ConfigAccess.ExtractConfig() impl
202 1) /trunk/edk2/BaseTools/Bin/Win32/VfrCompile.exe
204 ==========================================================================================
205 EDK_6490: Compatible: jwang36
208 1) Add ImportTool.bat script
209 2) Add more error check for Trim.exe
213 1) /trunk/edk2/BaseTools/Bin/Win32/ImportTool.bat
214 2) /trunk/edk2/BaseTools/Bin/Win32/Trim.exe
216 ==========================================================================================
217 EDK_6452: Compatible: jwang36
220 1) Allow the flags of tools not defined tools_def.txt
221 2) Add BUILD as internal tool to pass compatible mode of unicode to build tool.
222 3) Add support of [Depex.common.<ModuleType>] in inf file
223 4) Add more optimization, especially for architecture protocols, in GeDepex tool
224 5) Fix the generation of _gPeimRevision and _gDxeRevision global variables in
225 AutoGen.c according to new MdePkg spec.
226 6) Change the header file of DxeSmmeEntryPoint.h to UefiDriverEntryPoint.h
227 in AutoGen.c since it's no longer exist.
228 7) Fix $(PROCESSOR) macro replacement issue in [nmake] section
231 /trunk/edk2/BaseTools/Bin/Win32/GenDepex.exe
232 /trunk/edk2/BaseTools/Bin/Win32/GenFds.exe
233 /trunk/edk2/BaseTools/Bin/Win32/build.exe
235 ==========================================================================================
236 EDK_6289: Compatible: jwang36
239 1) Performance improvement on startup of build.exe
242 1) /trunk/edk2/BaseTools/Bin/Win32/GenFds.exe
243 2) /trunk/edk2/BaseTools/Bin/Win32/build.exe
245 ==========================================================================================
246 EDK_6269: Compatible: jwang36
250 2) Improve the screen output when in quiet build mode
251 3) Add "tbuild" target in makefile in order to not created directories in
252 makefile. Instead, they will be created in build tool. This will give
253 better build performance, especially in incremental build.
254 4) Add space check in WORKSPACE and OUTPUT_DIRECTORY (in dsc file) directory
255 name and give error message if found.
258 1) /trunk/edk2/BaseTools/Bin/Win32/build.exe
260 ==========================================================================================
261 EDK_5762: Compatible: jlin16
264 1) Enhance the tool to build R8 module via ECP.
267 1) /trunk/edk2/BaseTools/Bin/Win32/GenFds.exe
268 2) /trunk/edk2/BaseTools/Bin/Win32/build.exe
270 ==========================================================================================
271 EDK_5635: Compatible: lgao4
274 1) Enhance GenFv tool to print Fv Size and Length, and Get module map by
275 module pdb pointer and get module guid by module FFS guid.
276 2) And Enhance VfrCompiler to handle framework vfr file, and print more
277 debug information into .lst file.
280 1) /trunk/edk2/BaseTools/Bin/Win32/GenFv.exe
281 2) /trunk/edk2/BaseTools/Bin/Win32/VfrCompile.exe
283 ==========================================================================================
284 EDK_5634: Non-Compatible: jwang36
287 1) Enhance the format of build_rule.txt to allow module type and arch information.
288 2) Enhance Trim to convert ASL style of include to C style of include
289 3) Enhance Trim to convert some EDK coding convention to EDK2 ECP convention
290 4) Add warning message when encountering unrecognized content in DSC/DEC/INF File
291 5) Enhance the GenDepex to ignore everything outside DEPENDENCY_STANT and DEPENDENCY_END in dxs file
294 /trunk/edk2/BaseTools/Bin/Win32/GenDepex.exe
295 /trunk/edk2/BaseTools/Bin/Win32/Trim.exe
296 /trunk/edk2/BaseTools/Bin/Win32/build.exe
297 /trunk/edk2/BaseTools/Conf/build_rule.template
298 /trunk/edk2/BaseTools/Conf/tools_def.template
301 The local version tools_def.txt and build_rule.txt must be updated with
302 the changes in tools_def.template and build_rule.template respectively.
304 ==========================================================================================
305 EDK_5193: Compatible: jwang36
308 1) Add incremental support in GenFds
311 /trunk/edk2/BaseTools/Bin/Win32/GenFds.exe
312 /trunk/edk2/BaseTools/Bin/Win32/build.exe
314 ==========================================================================================
315 EDK_5186: Compatible: jwang36
318 1) Add explicit banner for pass/fail indication of build
319 2) Fix the issue which cause error message from FDF parser won't be printed out.
320 3) Fix the error message format of FDF parser
321 4) Change the exit code of build tool from always 1 to error code, if error occurred
324 /trunk/edk2/BaseTools/Bin/Win32/GenFds.exe
325 /trunk/edk2/BaseTools/Bin/Win32/build.exe
327 ==========================================================================================
328 EDK_4971: Compatible: lgao4
331 1) Enhance GenFw tool to always zero .pdata section for PE32 and PE32+ image in
332 order to improve compression ratio for them.
335 /trunk/edk2/BaseTools/Bin/Win32/GenFw.exe
337 ==========================================================================================
338 EDK_4918: Compatible: lgao4
341 1) Correct Error Message format for these C tools according to the Tool Design Spec.
344 /trunk/edk2/BaseTools/Bin/Win32/EfiLdrImage.exe
345 /trunk/edk2/BaseTools/Bin/Win32/GenFv.exe
346 /trunk/edk2/BaseTools/Bin/Win32/TianoCompress.exe
347 /trunk/edk2/BaseTools/Bin/Win32/VfrCompile.exe
348 /trunk/edk2/BaseTools/Bin/Win32/VolInfo.exe
350 ==========================================================================================
351 EDK_4859: Non-Compatible: jwang36
354 1) Changed VfrCompile.exe to be UEFI HII compatible
355 2) Improved R8 module build
356 3) Added binary file build
357 4) Removed "extern int __make_me_compile_correctly" in AutoGen code for
358 R9 modules, but kept for R8 modules
359 5) Enfored more error check and introduced a optimization for GenDepex
360 6) Added BUILD_RULE_CONF in target.txt to specify build rules file
361 7) Rebuilt all Python tools with Python2.5.2
372 1) All EFI code needs to be UEFI HII compatible.
373 2) Conf/target.txt needs to be replaced by new target.template
375 ==========================================================================================
376 EDK_4251: Non-Compatible: jwang36
379 1) Changed MYTOOLS to use Visual Studio Team Suite for IA32 and X64. IPF is still use WINDKK.
380 2) Re-generated build.exe and GenFds.exe to incorporate new changes of build tools
381 3) Enabled multi-thread build mode by default (can be disabled by using "-n 0" option or changing
382 MULTIPLE_THREAD in target.txt to Disabled)
383 4) Fixed an incorrect command (no leading tab/space) generated in top level Makefile.
386 1) BaseTools/Bin/Win32/GenFds.exe
387 2) BaseTools/Bin/Win32/build.exe
388 3) BaseTools/Conf/target.template
389 4) BaseTools/Conf/tools_def.template
392 1) Install Visual Studio 2005 Team Suite Edition.
394 ==========================================================================================
395 EDK_4190: Non-Compatible: jwang36
398 1) Added support of using PCD default value from DEC/INF file if one
399 PCD is declared in INF file but not found in DSC file.
400 2) Added support of breaking build if no library instance is found for
404 1) BaseTools/Bin/Win32/build.exe
405 2) BaseTools/Bin/Win32/GenFds.exe
408 1) All packages/platforms/modules, which have wrong library classes
409 declared or have no library instance for some library classes, must be
410 changed to make sure each library class declared in INF file has
411 corresponding library instance.
413 ==========================================================================================
414 EDK_4096: Non-Compatible: jwang36
417 1) Removed the calling of vsvars32.bat in edksetup.bat, unless
418 "--nt32" switch is used.
419 2) Added MAKE command in tools_def.txt. This is used to locate where
420 the nmake.exe or make.exe is because it will not be in PATH any more.
421 3) Removed the calling of vsvars32.bat in toolsetup.bat.
422 4) Solved the hang issue of build.exe when error occurred or Ctrl+C is
424 5) Passed "-v/-d/-q" command line option to GenFds.exe in makefile if
425 it's used by build.exe.
428 1) BaseTools/Bin/Win32/build.exe
429 2) BaseTools/Bin/Win32/GenFds.exe
430 3) BaseTools/Conf/tools_def.template
431 4) BaseTools/toolsetup.bat
435 1) Nt32Pkg build needs to run vsvars32.bat before edksetup.bat or run
436 edksetup.bat with "--nt32" option, like
438 edksetup.bat --nt32 newbuild
440 2) $(WORKSPACE)/Conf/tools_def.txt must be deleted before running
441 edksetup.bat because of new tools_def.template. Otherwise the
442 build.exe cannot find the nmake.exe to call.
444 ==========================================================================================
445 EDK_3947: Compatible: jwang36
448 1) Improved spawn mode (multi-thread) build performance (build -s)
449 2) Changed the error/debug/warning message format
450 3) Added "--log" command line option to support storing log in file
453 1) BaseTools/Bin/Win32/build.exe
456 ==========================================================================================
457 EDK_3936: Compatible: klu2
460 1) The first parameter of PEIM's entry point in autogen.c has been changed to
464 1) BaseTools/Bin/Win32/build.exe
466 ==========================================================================================
467 EDK_3926: Compatible: jlin16
470 1) Added support of Capsule generation from FDF file.
473 1) BaseTools/Bin/Win32/build.exe
474 2) BaseTools/Bin/Win32/GenFds.exe
477 1) To generate capsule, insert [Capsule] section after [FV] sections and specifying
478 what FV will be put into capsule, For example:
480 CAPSULE_GUID = 3B6686BD-0D76-4030-B70E-B5519E2FC5A0
481 CAPSULE_FLAG = PersistAcrossReset
484 ==========================================================================================
485 EDK_3911: Compatible: jlin16
488 1) Added support of Apriori file generation from FDF file.
489 2) Added support of INF that describes binary files to put binary into FV.
490 3) Fixed single FV/FD generation error when specifying -i/-r option in GenFds.
494 1) BaseTools/Bin/Win32/build.exe
495 2) BaseTools/Bin/Win32/GenFds.exe
498 1) To generate Apriori file in FV, insert APRIORI statement just before the INF or
499 FILE statement list of the FV, For example:
501 INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
502 FILE PEIM = B7A5041A-78BA-49e3-B73B-54C757811FB6 {
503 SECTION PE32 = MyBinPkg\bin\ia32\PeimAfterPcd.efi
505 INF IntelFrameworkModulePkg/Universal/StatusCode/Pei/PeiStatusCode.inf
507 2) To add binary file described by INF file into FV, only insert the INF statement
508 into the INF statements list of that FV, like this:
510 INF RuleOverride=Test MdeModulePkg/Logo/Logo.inf
512 Specifying how to process the binary file by defining corresponding Rule like this:
513 [Rule.Common.Base.Test]
514 FILE FREEFORM = $(NAMED_GUID) {
522 ==========================================================================================
523 EDK_3832: Non-Compatible: jwang36
526 1) Added support of MACRO in tools_def.txt
527 2) Merged PATH and NAME attributes in tools_def.txt
528 3) Changed DPATH attribute to DLL in tools_def.txt
529 4) Removed SPATH attribute in tools_def.txt
530 5) Added support for library instance without library class
531 6) Fixed the issue in Trim tool which zero file will be generated if the trimmed
532 file has not line directive
535 1) BaseTools/Bin/Win32/build.exe
536 2) BaseTools/Bin/Win32/GenFds.exe
537 3) BaseTools/Bin/Win32/Trim.exe
538 4) BaseTools/Conf/tools_def.template
541 1) All platforms and modules build
543 ==========================================================================================
544 EDK_3801: Compatible: jwang36
546 Class_BuildConfiguration: Added makefile as dependency for "Dynamic-Library-File" to
547 solve the incremental build issue occurred when there's library changes
550 1) BaseTools/Conf/build_rule.template
552 ==========================================================================================
553 EDK_3800: Compatible: lgao4
555 Class_BuildTool: Update EfiRom tool to fix checksum and PCI3.0 data structure
558 1) BaseTools/Bin/Win32/EfiRom.exe
560 ==========================================================================================
561 EDK_3795: Compatible: htao
563 Class_BuildTool: GenVtf tool open/write file with "r+b"/"w+b" attribute, but this cause
564 the RO attribute of the file changed. Fix this issue by changing
565 "r+b"/"w+b" to "rb"/"wb".
568 1) BaseTools/Bin/Win32/GenVtf.exe
570 ==========================================================================================
571 EDK_3791: Compatible: jlin16
574 1) use '#' to indicate flash generation progress.
575 2) use -v to switch on detail output messages.
578 1) BaseTools/Bin/Win32/GenFds.exe
580 ==========================================================================================
581 EDK_3789: Non-Compatible: lgao4
583 Class_BuildTool: support new Rules format and PCD format defined in FDF file
586 1) BaseTools/Bin/Win32/build.exe
587 2) BaseTools/Bin/Win32/GenFds.exe
590 1) All platform's FDF file, if any, must be changed to new format.
591 a) PCD format is changed from old PcdName to new PcdTokenSpaceGuid.PcdName,
592 for example PcdWinNtFdBaseAddress in old FDF file will be replaced
593 by gEfiNt32PkgTokenSpaceGuid.PcdWinNtFdBaseAddres.
594 b) Rule format adds binary file type and file postfix name support,
595 and doesn't require the full file path. Examples for Peim and AcpiTable module:
598 FILE PEIM = $(NAMED_GUID) {
599 PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).Depex
600 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
601 UI Optional $(MODULE_NAME)
602 VERSION Optional BUILD_NUM=$(BUILD_NUMBER) $(INF_VERSION)
606 FILE PEIM = $(NAMED_GUID) {
607 PEI_DEPEX PEI_DEPEX Optional |.Depex
609 UI STRING="$(MODULE_NAME)" Optional
610 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
614 [Rule.Common.DXE_DRIVER.ACPITABLE]
615 FILE FREEFORM = $(NAMED_GUID) {
616 RAW $(INF_OUTPUT)/Madt.acpi
617 RAW $(INF_OUTPUT)/Fadt.acpi
618 RAW $(INF_OUTPUT)/Facs.acpi
619 RAW $(INF_OUTPUT)/Spcr.acpi
620 RAW $(INF_OUTPUT)/Dsdt.aml
623 [Rule.Common.DXE_DRIVER.ACPITABLE]
624 FILE FREEFORM = $(NAMED_GUID) {
629 ==========================================================================================
630 EDK_3786: Compatible: vjeff
632 Class_BuildConfiguration:
633 1) Redirect ICC_IA32_*_PATH from C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin
634 to C:\Program Files\Intel\Compiler\C++\9.1\IA32\Bin.
635 2) Add ICC X64 definition to enable ICC X64 build.
638 1) BaseTools/Conf/tools_def.template
640 ==========================================================================================
641 EDK_3785: Non-Compatible: klu2
643 Class_BuildTool: Upgrade the format of EFI_PEIM_ENTRY_POINT to
644 EFI_PEIM_ENTRY_POINT2 according to PI specification.
648 1) BaseTools/Bin/Win32/build.exe
654 ==========================================================================================
655 EDK_3780: Non-Compatible: qhuang8
657 Class_MigrationTool: Update the syntax of PCD section.
658 Update the syntax of binary INF file
659 The generated Extended INF file should follow Extended INF spec 0.44
662 1) BaseTools/Bin/Win32/MigrationMsa2Inf.exe
665 1) New module migrated from old R9
668 ==========================================================================================
669 EDK_3766: Non-Compatible: lgao4
671 Class_BuildConfiguration: Update Acpi Asl file Build rule to remove trim step.
674 1) Conf/build_rule.template
677 1) Platform with ACPI module. Acpi module needs to set /EP preprocessor compiler option
678 for APP_FLAGS in module inf to override the default /E option defined in tools_def.txt file.