]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Sync EDKII BaseTools to BaseTools project r1971
authorlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 18 May 2010 05:04:32 +0000 (05:04 +0000)
committerlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 18 May 2010 05:04:32 +0000 (05:04 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10502 6f19259b-4bc3-4df7-8a09-765794883524

417 files changed:
BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py
BaseTools/Bin/Win32/BootSectImage.exe
BaseTools/Bin/Win32/EfiLdrImage.exe
BaseTools/Bin/Win32/EfiRom.exe
BaseTools/Bin/Win32/Fpd2Dsc.exe
BaseTools/Bin/Win32/GenBootSector.exe
BaseTools/Bin/Win32/GenCrc32.exe
BaseTools/Bin/Win32/GenDepex.exe
BaseTools/Bin/Win32/GenFds.exe
BaseTools/Bin/Win32/GenFfs.exe
BaseTools/Bin/Win32/GenFv.exe
BaseTools/Bin/Win32/GenFw.exe
BaseTools/Bin/Win32/GenPage.exe
BaseTools/Bin/Win32/GenPatchPcdTable.exe
BaseTools/Bin/Win32/GenSec.exe
BaseTools/Bin/Win32/GenVtf.exe
BaseTools/Bin/Win32/LzmaCompress.exe
BaseTools/Bin/Win32/MigrationMsa2Inf.exe
BaseTools/Bin/Win32/PatchPcdValue.exe
BaseTools/Bin/Win32/Spd2Dec.exe
BaseTools/Bin/Win32/Split.exe
BaseTools/Bin/Win32/TargetTool.exe
BaseTools/Bin/Win32/TianoCompress.exe
BaseTools/Bin/Win32/Trim.exe
BaseTools/Bin/Win32/VfrCompile.exe
BaseTools/Bin/Win32/VolInfo.exe
BaseTools/Bin/Win32/build.exe
BaseTools/BuildEnv
BaseTools/BuildNotes.txt
BaseTools/Conf/FrameworkDatabase.template
BaseTools/Conf/XMLSchema/DistributionPackage.xsd
BaseTools/Conf/XMLSchema/FarManifest.xsd
BaseTools/Conf/XMLSchema/FrameworkDataAttributes.xsd
BaseTools/Conf/XMLSchema/FrameworkDataElements.xsd
BaseTools/Conf/XMLSchema/FrameworkDataTypes.xsd
BaseTools/Conf/XMLSchema/FrameworkHeaders.xsd
BaseTools/Conf/XMLSchema/NamingConvention.xsd
BaseTools/Conf/XMLSchema/SurfaceArea.xsd
BaseTools/Conf/XMLSchema/SurfaceArea.xsdconfig
BaseTools/Conf/XMLSchema/WorkspaceContent.xsd
BaseTools/Conf/build_rule.template
BaseTools/Conf/target.template
BaseTools/Conf/tools_def.template
BaseTools/GNUmakefile
BaseTools/Makefile
BaseTools/Scripts/gcc4.4-ld-script [new file with mode: 0644]
BaseTools/Source/C/BootSectImage/GNUmakefile
BaseTools/Source/C/BootSectImage/Makefile
BaseTools/Source/C/BootSectImage/bootsectimage.c
BaseTools/Source/C/BootSectImage/fat.h
BaseTools/Source/C/BootSectImage/mbr.h
BaseTools/Source/C/Common/BasePeCoff.c
BaseTools/Source/C/Common/BinderFuncs.c
BaseTools/Source/C/Common/BinderFuncs.h
BaseTools/Source/C/Common/CommonLib.c
BaseTools/Source/C/Common/CommonLib.h
BaseTools/Source/C/Common/Compress.h
BaseTools/Source/C/Common/Crc32.c
BaseTools/Source/C/Common/Crc32.h
BaseTools/Source/C/Common/Decompress.c
BaseTools/Source/C/Common/Decompress.h
BaseTools/Source/C/Common/EfiCompress.c
BaseTools/Source/C/Common/EfiUtilityMsgs.c
BaseTools/Source/C/Common/EfiUtilityMsgs.h
BaseTools/Source/C/Common/FirmwareVolumeBuffer.c
BaseTools/Source/C/Common/FirmwareVolumeBufferLib.h
BaseTools/Source/C/Common/FvLib.c
BaseTools/Source/C/Common/FvLib.h
BaseTools/Source/C/Common/GNUmakefile
BaseTools/Source/C/Common/Makefile
BaseTools/Source/C/Common/MemoryFile.c
BaseTools/Source/C/Common/MemoryFile.h
BaseTools/Source/C/Common/MyAlloc.c
BaseTools/Source/C/Common/MyAlloc.h
BaseTools/Source/C/Common/OsPath.c
BaseTools/Source/C/Common/OsPath.h
BaseTools/Source/C/Common/ParseGuidedSectionTools.c
BaseTools/Source/C/Common/ParseGuidedSectionTools.h
BaseTools/Source/C/Common/ParseInf.c
BaseTools/Source/C/Common/ParseInf.h
BaseTools/Source/C/Common/PeCoffLib.h
BaseTools/Source/C/Common/PeCoffLoaderEx.c
BaseTools/Source/C/Common/SimpleFileParsing.c
BaseTools/Source/C/Common/SimpleFileParsing.h
BaseTools/Source/C/Common/StringFuncs.c
BaseTools/Source/C/Common/StringFuncs.h
BaseTools/Source/C/Common/TianoCompress.c
BaseTools/Source/C/Common/WinNtInclude.h
BaseTools/Source/C/EfiLdrImage/EfiLdrImage.c
BaseTools/Source/C/EfiLdrImage/GNUmakefile
BaseTools/Source/C/EfiLdrImage/Makefile
BaseTools/Source/C/EfiRom/EfiRom.c
BaseTools/Source/C/EfiRom/EfiRom.h
BaseTools/Source/C/EfiRom/GNUmakefile
BaseTools/Source/C/EfiRom/Makefile
BaseTools/Source/C/GNUmakefile
BaseTools/Source/C/GenBootSector/FatFormat.h
BaseTools/Source/C/GenBootSector/GenBootSector.c
BaseTools/Source/C/GenBootSector/GetDrvNumOffset.c
BaseTools/Source/C/GenBootSector/Makefile
BaseTools/Source/C/GenCrc32/GNUmakefile
BaseTools/Source/C/GenCrc32/GenCrc32.c
BaseTools/Source/C/GenCrc32/Makefile
BaseTools/Source/C/GenFfs/GNUmakefile
BaseTools/Source/C/GenFfs/GenFfs.c
BaseTools/Source/C/GenFfs/Makefile
BaseTools/Source/C/GenFv/GNUmakefile
BaseTools/Source/C/GenFv/GenFv.c
BaseTools/Source/C/GenFv/GenFvInternalLib.c
BaseTools/Source/C/GenFv/GenFvInternalLib.h
BaseTools/Source/C/GenFv/Makefile
BaseTools/Source/C/GenFw/Elf32Convert.c [new file with mode: 0644]
BaseTools/Source/C/GenFw/Elf32Convert.h [new file with mode: 0644]
BaseTools/Source/C/GenFw/Elf64Convert.c [new file with mode: 0644]
BaseTools/Source/C/GenFw/Elf64Convert.h [new file with mode: 0644]
BaseTools/Source/C/GenFw/ElfConvert.c [new file with mode: 0644]
BaseTools/Source/C/GenFw/ElfConvert.h [new file with mode: 0644]
BaseTools/Source/C/GenFw/GNUmakefile
BaseTools/Source/C/GenFw/GenFw.c
BaseTools/Source/C/GenFw/GenFw.h [new file with mode: 0644]
BaseTools/Source/C/GenFw/Makefile
BaseTools/Source/C/GenFw/elf32.h
BaseTools/Source/C/GenFw/elf64.h
BaseTools/Source/C/GenFw/elf_common.h
BaseTools/Source/C/GenPage/GNUmakefile
BaseTools/Source/C/GenPage/GenPage.c
BaseTools/Source/C/GenPage/Makefile
BaseTools/Source/C/GenPage/VirtualMemory.h
BaseTools/Source/C/GenSec/GNUmakefile
BaseTools/Source/C/GenSec/GenSec.c
BaseTools/Source/C/GenSec/Makefile
BaseTools/Source/C/GenVtf/GNUmakefile
BaseTools/Source/C/GenVtf/GenVtf.c
BaseTools/Source/C/GenVtf/GenVtf.h
BaseTools/Source/C/GenVtf/Makefile
BaseTools/Source/C/GnuGenBootSector/FatFormat.h
BaseTools/Source/C/GnuGenBootSector/GNUmakefile
BaseTools/Source/C/GnuGenBootSector/GnuGenBootSector.c
BaseTools/Source/C/Include/Common/BaseTypes.h
BaseTools/Source/C/Include/Common/MdeModuleHii.h
BaseTools/Source/C/Include/Common/PiFirmwareFile.h
BaseTools/Source/C/Include/Common/PiFirmwareVolume.h
BaseTools/Source/C/Include/Common/UefiBaseTypes.h
BaseTools/Source/C/Include/Common/UefiCapsule.h
BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h
BaseTools/Source/C/Include/Common/UefiMultiPhase.h
BaseTools/Source/C/Include/Common/VariableFormat.h
BaseTools/Source/C/Include/Common/WorkingBlockHeader.h
BaseTools/Source/C/Include/Guid/PcAnsi.h
BaseTools/Source/C/Include/Guid/PiFirmwareFileSystem.h
BaseTools/Source/C/Include/Ia32/ProcessorBind.h
BaseTools/Source/C/Include/IndustryStandard/Acpi.h
BaseTools/Source/C/Include/IndustryStandard/Acpi1_0.h
BaseTools/Source/C/Include/IndustryStandard/Acpi2_0.h
BaseTools/Source/C/Include/IndustryStandard/Acpi3_0.h
BaseTools/Source/C/Include/IndustryStandard/EfiPci.h
BaseTools/Source/C/Include/IndustryStandard/MemoryMappedConfigurationSpaceAccessTable.h
BaseTools/Source/C/Include/IndustryStandard/PeImage.h
BaseTools/Source/C/Include/IndustryStandard/pci22.h
BaseTools/Source/C/Include/IndustryStandard/pci23.h
BaseTools/Source/C/Include/IndustryStandard/pci30.h
BaseTools/Source/C/Include/Protocol/DevicePath.h
BaseTools/Source/C/Include/Protocol/GraphicsOutput.h
BaseTools/Source/C/Include/Protocol/GuidedSectionExtraction.h
BaseTools/Source/C/Include/Protocol/HiiFramework.h
BaseTools/Source/C/Include/Protocol/UgaDraw.h
BaseTools/Source/C/Include/X64/ProcessorBind.h
BaseTools/Source/C/LzmaCompress/GNUmakefile
BaseTools/Source/C/LzmaCompress/LzmaCompress.c
BaseTools/Source/C/LzmaCompress/Makefile
BaseTools/Source/C/Makefile
BaseTools/Source/C/Makefiles/NmakeSubdirs.bat
BaseTools/Source/C/Makefiles/app.makefile
BaseTools/Source/C/Makefiles/footer.makefile
BaseTools/Source/C/Makefiles/header.makefile
BaseTools/Source/C/Makefiles/lib.makefile
BaseTools/Source/C/Makefiles/ms.app
BaseTools/Source/C/Makefiles/ms.common
BaseTools/Source/C/Makefiles/ms.lib
BaseTools/Source/C/Makefiles/ms.rule
BaseTools/Source/C/PyEfiCompressor/EfiCompressor.c
BaseTools/Source/C/PyEfiCompressor/Makefile
BaseTools/Source/C/PyEfiCompressor/setup.py
BaseTools/Source/C/PyUtility/Makefile
BaseTools/Source/C/PyUtility/PyUtility.c
BaseTools/Source/C/PyUtility/setup.py
BaseTools/Source/C/Split/GNUmakefile
BaseTools/Source/C/Split/Makefile
BaseTools/Source/C/Split/Split.c
BaseTools/Source/C/TianoCompress/GNUmakefile
BaseTools/Source/C/TianoCompress/Makefile
BaseTools/Source/C/TianoCompress/TianoCompress.c
BaseTools/Source/C/TianoCompress/TianoCompress.h
BaseTools/Source/C/VfrCompile/EfiVfr.h
BaseTools/Source/C/VfrCompile/GNUmakefile
BaseTools/Source/C/VfrCompile/Makefile
BaseTools/Source/C/VfrCompile/VfrCompiler.cpp
BaseTools/Source/C/VfrCompile/VfrCompiler.h
BaseTools/Source/C/VfrCompile/VfrError.cpp
BaseTools/Source/C/VfrCompile/VfrError.h
BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp
BaseTools/Source/C/VfrCompile/VfrFormPkg.h
BaseTools/Source/C/VfrCompile/VfrSyntax.g
BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
BaseTools/Source/C/VfrCompile/VfrUtilityLib.h
BaseTools/Source/C/VolInfo/GNUmakefile
BaseTools/Source/C/VolInfo/Makefile
BaseTools/Source/C/VolInfo/VolInfo.c
BaseTools/Source/C/VolInfo/VolInfo.h
BaseTools/Source/Python/AutoGen/AutoGen.py
BaseTools/Source/Python/AutoGen/BuildEngine.py
BaseTools/Source/Python/AutoGen/GenC.py
BaseTools/Source/Python/AutoGen/GenDepex.py
BaseTools/Source/Python/AutoGen/GenMake.py
BaseTools/Source/Python/AutoGen/StrGather.py
BaseTools/Source/Python/AutoGen/UniClassObject.py
BaseTools/Source/Python/AutoGen/__init__.py
BaseTools/Source/Python/Common/BuildToolError.py
BaseTools/Source/Python/Common/DataType.py
BaseTools/Source/Python/Common/Database.py
BaseTools/Source/Python/Common/DecClassObject.py
BaseTools/Source/Python/Common/DecClassObjectLight.py
BaseTools/Source/Python/Common/Dictionary.py
BaseTools/Source/Python/Common/DscClassObject.py
BaseTools/Source/Python/Common/EdkIIWorkspace.py
BaseTools/Source/Python/Common/EdkIIWorkspaceBuild.py
BaseTools/Source/Python/Common/EdkLogger.py
BaseTools/Source/Python/Common/FdfClassObject.py
BaseTools/Source/Python/Common/FdfParserLite.py
BaseTools/Source/Python/Common/GlobalData.py
BaseTools/Source/Python/Common/Identification.py
BaseTools/Source/Python/Common/InfClassObject.py
BaseTools/Source/Python/Common/InfClassObjectLight.py
BaseTools/Source/Python/Common/MigrationUtilities.py
BaseTools/Source/Python/Common/Misc.py
BaseTools/Source/Python/Common/Parsing.py
BaseTools/Source/Python/Common/String.py
BaseTools/Source/Python/Common/TargetTxtClassObject.py
BaseTools/Source/Python/Common/ToolDefClassObject.py
BaseTools/Source/Python/Common/XmlParser.py
BaseTools/Source/Python/Common/XmlRoutines.py
BaseTools/Source/Python/Common/__init__.py
BaseTools/Source/Python/CommonDataClass/CommonClass.py
BaseTools/Source/Python/CommonDataClass/DataClass.py
BaseTools/Source/Python/CommonDataClass/DistributionPackageClass.py
BaseTools/Source/Python/CommonDataClass/FdfClass.py
BaseTools/Source/Python/CommonDataClass/ModuleClass.py
BaseTools/Source/Python/CommonDataClass/PackageClass.py
BaseTools/Source/Python/CommonDataClass/PlatformClass.py
BaseTools/Source/Python/CommonDataClass/__init__.py
BaseTools/Source/Python/Ecc/C.g
BaseTools/Source/Python/Ecc/CLexer.py
BaseTools/Source/Python/Ecc/CParser.py
BaseTools/Source/Python/Ecc/Check.py
BaseTools/Source/Python/Ecc/CodeFragment.py
BaseTools/Source/Python/Ecc/CodeFragmentCollector.py
BaseTools/Source/Python/Ecc/Configuration.py
BaseTools/Source/Python/Ecc/Database.py
BaseTools/Source/Python/Ecc/Ecc.py
BaseTools/Source/Python/Ecc/EccGlobalData.py
BaseTools/Source/Python/Ecc/EccToolError.py
BaseTools/Source/Python/Ecc/Exception.py
BaseTools/Source/Python/Ecc/FileProfile.py
BaseTools/Source/Python/Ecc/MetaDataParser.py
BaseTools/Source/Python/Ecc/ParserWarning.py
BaseTools/Source/Python/Ecc/__init__.py
BaseTools/Source/Python/Ecc/c.py
BaseTools/Source/Python/Ecc/config.ini
BaseTools/Source/Python/Ecc/exception.xml
BaseTools/Source/Python/Eot/CLexer.py
BaseTools/Source/Python/Eot/CParser.py
BaseTools/Source/Python/Eot/CodeFragment.py
BaseTools/Source/Python/Eot/CodeFragmentCollector.py
BaseTools/Source/Python/Eot/Database.py
BaseTools/Source/Python/Eot/Eot.py
BaseTools/Source/Python/Eot/EotGlobalData.py
BaseTools/Source/Python/Eot/EotToolError.py
BaseTools/Source/Python/Eot/FileProfile.py
BaseTools/Source/Python/Eot/FvImage.py
BaseTools/Source/Python/Eot/InfParserLite.py
BaseTools/Source/Python/Eot/Parser.py
BaseTools/Source/Python/Eot/ParserWarning.py
BaseTools/Source/Python/Eot/Report.py
BaseTools/Source/Python/Eot/__init__.py
BaseTools/Source/Python/Eot/c.py
BaseTools/Source/Python/Fdb/__init__.py
BaseTools/Source/Python/FixFlash/__init__.py
BaseTools/Source/Python/GNUmakefile
BaseTools/Source/Python/GenFds/AprioriSection.py
BaseTools/Source/Python/GenFds/Attribute.py
BaseTools/Source/Python/GenFds/Capsule.py
BaseTools/Source/Python/GenFds/CapsuleData.py
BaseTools/Source/Python/GenFds/ComponentStatement.py
BaseTools/Source/Python/GenFds/CompressSection.py
BaseTools/Source/Python/GenFds/DataSection.py
BaseTools/Source/Python/GenFds/DepexSection.py
BaseTools/Source/Python/GenFds/EfiSection.py
BaseTools/Source/Python/GenFds/Fd.py
BaseTools/Source/Python/GenFds/FdfParser.py
BaseTools/Source/Python/GenFds/Ffs.py
BaseTools/Source/Python/GenFds/FfsFileStatement.py
BaseTools/Source/Python/GenFds/FfsInfStatement.py
BaseTools/Source/Python/GenFds/Fv.py
BaseTools/Source/Python/GenFds/FvImageSection.py
BaseTools/Source/Python/GenFds/GenFds.py
BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
BaseTools/Source/Python/GenFds/GuidSection.py
BaseTools/Source/Python/GenFds/OptRomFileStatement.py
BaseTools/Source/Python/GenFds/OptRomInfStatement.py
BaseTools/Source/Python/GenFds/OptionRom.py
BaseTools/Source/Python/GenFds/Region.py
BaseTools/Source/Python/GenFds/Rule.py
BaseTools/Source/Python/GenFds/RuleComplexFile.py
BaseTools/Source/Python/GenFds/RuleSimpleFile.py
BaseTools/Source/Python/GenFds/Section.py
BaseTools/Source/Python/GenFds/UiSection.py
BaseTools/Source/Python/GenFds/VerSection.py
BaseTools/Source/Python/GenFds/Vtf.py
BaseTools/Source/Python/GenFds/__init__.py
BaseTools/Source/Python/GenPatchPcdTable/GenPatchPcdTable.py
BaseTools/Source/Python/GenPatchPcdTable/__init__.py
BaseTools/Source/Python/Makefile
BaseTools/Source/Python/MigrationMsa2Inf/AutoGenExterns.py
BaseTools/Source/Python/MigrationMsa2Inf/MigrationMsa2Inf.py
BaseTools/Source/Python/MigrationMsa2Inf/__init__.py
BaseTools/Source/Python/MkBOM/__init__.py
BaseTools/Source/Python/PackagingTool/DependencyRules.py
BaseTools/Source/Python/PackagingTool/InstallPkg.py
BaseTools/Source/Python/PackagingTool/IpiDb.py
BaseTools/Source/Python/PackagingTool/MkPkg.py
BaseTools/Source/Python/PackagingTool/PackageFile.py
BaseTools/Source/Python/PackagingTool/RmPkg.py
BaseTools/Source/Python/PatchPcdValue/PatchPcdValue.py
BaseTools/Source/Python/PatchPcdValue/__init__.py
BaseTools/Source/Python/Table/Table.py
BaseTools/Source/Python/Table/TableDataModel.py
BaseTools/Source/Python/Table/TableDec.py
BaseTools/Source/Python/Table/TableDsc.py
BaseTools/Source/Python/Table/TableEotReport.py
BaseTools/Source/Python/Table/TableFdf.py
BaseTools/Source/Python/Table/TableFile.py
BaseTools/Source/Python/Table/TableFunction.py
BaseTools/Source/Python/Table/TableIdentifier.py
BaseTools/Source/Python/Table/TableInf.py
BaseTools/Source/Python/Table/TablePcd.py
BaseTools/Source/Python/Table/TableQuery.py
BaseTools/Source/Python/Table/TableReport.py
BaseTools/Source/Python/Table/__init__.py
BaseTools/Source/Python/TargetTool/TargetTool.py
BaseTools/Source/Python/TargetTool/__init__.py
BaseTools/Source/Python/Trim/Trim.py
BaseTools/Source/Python/Workspace/BuildClassObject.py
BaseTools/Source/Python/Workspace/MetaDataTable.py
BaseTools/Source/Python/Workspace/MetaFileParser.py
BaseTools/Source/Python/Workspace/MetaFileTable.py
BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
BaseTools/Source/Python/Workspace/__init__.py
BaseTools/Source/Python/build/BuildReport.py
BaseTools/Source/Python/build/__init__.py
BaseTools/Source/Python/build/build.py
BaseTools/Source/Python/fpd2dsc/EdkIIWorkspaceGuidsInfo.py
BaseTools/Source/Python/fpd2dsc/LoadFpd.py
BaseTools/Source/Python/fpd2dsc/MigrationUtilities.py
BaseTools/Source/Python/fpd2dsc/StoreDsc.py
BaseTools/Source/Python/fpd2dsc/__init__.py
BaseTools/Source/Python/fpd2dsc/fpd2dsc.py
BaseTools/Source/Python/msa2inf/ConvertModule.py
BaseTools/Source/Python/msa2inf/EdkIIWorkspaceGuidsInfo.py
BaseTools/Source/Python/msa2inf/LoadMsa.py
BaseTools/Source/Python/msa2inf/Msa2Inf.py
BaseTools/Source/Python/msa2inf/StoreInf.py
BaseTools/Source/Python/msa2inf/__init__.py
BaseTools/Source/Python/sitecustomize.py
BaseTools/Source/Python/spd2dec/ConvertPackage.py
BaseTools/Source/Python/spd2dec/LoadSpd.py
BaseTools/Source/Python/spd2dec/Spd2Dec.py
BaseTools/Source/Python/spd2dec/StoreDec.py
BaseTools/Source/Python/spd2dec/__init__.py
BaseTools/Tests/CToolsTests.py
BaseTools/Tests/CheckPythonSyntax.py
BaseTools/Tests/GNUmakefile
BaseTools/Tests/PythonToolsTests.py
BaseTools/Tests/RunTests.py
BaseTools/Tests/TestTools.py
BaseTools/Tests/TianoCompress.py
BaseTools/UserManuals/BootSectImage_Utility_Man_Page.rtf
BaseTools/UserManuals/Build_Utility_Man_Page.rtf
BaseTools/UserManuals/EfiLdrImage_Utility_Man_Page.rtf
BaseTools/UserManuals/EfiRom_Utility_Man_Page.rtf
BaseTools/UserManuals/Fpd2Dsc_Utility_Man_Page.rtf
BaseTools/UserManuals/GenBootSector_Utility_Man_Page.rtf
BaseTools/UserManuals/GenCrc32_Utility_Man_Page.rtf
BaseTools/UserManuals/GenDepex_Utility_Man_Page.rtf
BaseTools/UserManuals/GenFds_Utility_Man_Page.rtf
BaseTools/UserManuals/GenFfs_Utility_Man_Page.rtf
BaseTools/UserManuals/GenFv_Utility_Man_Page.rtf
BaseTools/UserManuals/GenFw_Utility_Man_Page.rtf
BaseTools/UserManuals/GenPage_Utility_Man_Page.rtf
BaseTools/UserManuals/GenPatchPcdTable_Utility_Man_Page.rtf
BaseTools/UserManuals/GenSec_Utility_Man_Page.rtf
BaseTools/UserManuals/GenVtf_Utility_Man_Page.rtf
BaseTools/UserManuals/InstallPkg_Utility_Man_Page.rtf
BaseTools/UserManuals/LzmaCompress_Utility_Man_Page.rtf
BaseTools/UserManuals/MkPkg_Utility_Man_Page.rtf
BaseTools/UserManuals/Msa2Inf_Utility_Man_Page.rtf
BaseTools/UserManuals/PatchPcdValue_Utility_Man_Page.rtf
BaseTools/UserManuals/RmPkg_Utility_Man_Page.rtf
BaseTools/UserManuals/Spd2Dec_Utility_Man_Page.rtf
BaseTools/UserManuals/SplitFile_Utility_Man_Page.rtf
BaseTools/UserManuals/TargetTool_Utility_Man_Page.rtf
BaseTools/UserManuals/TianoCompress_Utility_Man_Page.rtf
BaseTools/UserManuals/Trim_Utility_Man_Page.rtf
BaseTools/UserManuals/UtilityManPage_template.rtf
BaseTools/UserManuals/VfrCompiler_Utility_Man_Page.rtf
BaseTools/UserManuals/VolInfo_Utility_Man_Page.rtf
BaseTools/gcc/mingw-gcc-build.py
BaseTools/toolsetup.bat

index 6d7aa00c4d371bc25e4635015b690e763872fb4f..69fd2d54413e975352b54f026fe8c7f102051d3d 100755 (executable)
@@ -1,8 +1,8 @@
 #!/usr/bin/env python
 #
-# Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
+# Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
 #
-# All rights reserved. This program and the accompanying materials
+# This program and the accompanying materials
 # are licensed and made available under the terms and conditions of the BSD License
 # which accompanies this distribution.  The full text of the license may be found at
 #
index 535a8dc23903fc59db8de834208310394b4bcf39..026311074d233dfd3f6cce256cb7ff15803b418f 100755 (executable)
Binary files a/BaseTools/Bin/Win32/BootSectImage.exe and b/BaseTools/Bin/Win32/BootSectImage.exe differ
index 9eee3ff62f90f6ff258510ec7236aab3bcf60334..90fdec6504fd9aa1ad5049021151fce01b95150e 100755 (executable)
Binary files a/BaseTools/Bin/Win32/EfiLdrImage.exe and b/BaseTools/Bin/Win32/EfiLdrImage.exe differ
index aa9790df50e715bc7edd9ef4c53d21911a3fb893..68793bc9f089cb1bc15b5e33b7df5b8e0c6eea65 100755 (executable)
Binary files a/BaseTools/Bin/Win32/EfiRom.exe and b/BaseTools/Bin/Win32/EfiRom.exe differ
index 55f1a6943eec9b91883349b14eb717c5db3a1ca0..78f3b6dfcf2e6ffaad0784b4022a42c25f886f1d 100755 (executable)
Binary files a/BaseTools/Bin/Win32/Fpd2Dsc.exe and b/BaseTools/Bin/Win32/Fpd2Dsc.exe differ
index f5553b429b57a18385f79fabdd51d733e2d20a07..91e94da36cbf7dcb8e45d2541b5a38c908fe2d6b 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenBootSector.exe and b/BaseTools/Bin/Win32/GenBootSector.exe differ
index 6729a108c65f046ffe3007763fef2bc4c1823d25..be7ec780851d756fb9a694d5908b0aa05a02a946 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenCrc32.exe and b/BaseTools/Bin/Win32/GenCrc32.exe differ
index 04c6e719aa448a18f437866ff2e1492dd5f5d653..18914264758a8bb333eaeee93c933770e9e0f20c 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenDepex.exe and b/BaseTools/Bin/Win32/GenDepex.exe differ
index a9577b2ec8d479a207904cdf02b4e42ac9678e5a..e9b9b3c08aec067e4db9090c3ce02f633cd38522 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenFds.exe and b/BaseTools/Bin/Win32/GenFds.exe differ
index 9411bdc50c843b321af6a56daddce3b56a29a6f5..723154c8c3712053e310f547240a613e97fcef75 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenFfs.exe and b/BaseTools/Bin/Win32/GenFfs.exe differ
index e5882cb33964879711ded41cc51833ac0f0adbd6..bd50be227fd634bfc6e7eb09ac9a55cfe2f027e2 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenFv.exe and b/BaseTools/Bin/Win32/GenFv.exe differ
index 072d0fe2727bc7ff34ed2c717946733c613f2c18..d79ae77f7e87a7c5e5c752d9f061a4afde9ba591 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenFw.exe and b/BaseTools/Bin/Win32/GenFw.exe differ
index 5af9a323e64c711d00d6d0ce8b75be261c29a720..d6221d85f84b808fd943870c49617bed45250d33 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenPage.exe and b/BaseTools/Bin/Win32/GenPage.exe differ
index 437ee129a085de6a82a4e27075b04f2f90b23c03..7faf806b7ca45c6b2a778611c67435276c566871 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenPatchPcdTable.exe and b/BaseTools/Bin/Win32/GenPatchPcdTable.exe differ
index deda7866e15bd86dc599fcd4cb1d885828d12385..637b05382be65ebceb17b721338337b3add85191 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenSec.exe and b/BaseTools/Bin/Win32/GenSec.exe differ
index 82e1a1b23dfe6dd670585e3dc90843eca0cb7122..bc7583b325a89792c53792b5a5cb78a25cdb4018 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenVtf.exe and b/BaseTools/Bin/Win32/GenVtf.exe differ
index 8c611f382bc8a1cfc6a15fa1e509a4c7e522a0d4..397e669418234f7f8d141ed2d5d2e1719aff5ede 100755 (executable)
Binary files a/BaseTools/Bin/Win32/LzmaCompress.exe and b/BaseTools/Bin/Win32/LzmaCompress.exe differ
index bb3be942fd5e46b38d3ef0578edd01a54fffd5c2..2942d13891f939d6bee28fbfde18fb9dc680a590 100755 (executable)
Binary files a/BaseTools/Bin/Win32/MigrationMsa2Inf.exe and b/BaseTools/Bin/Win32/MigrationMsa2Inf.exe differ
index 27a4f1f9081cfd92d8d34c99e76fe82d0a9ee0d9..32733b77ccf5db3ae0325378be24c0a3c13d9d3a 100755 (executable)
Binary files a/BaseTools/Bin/Win32/PatchPcdValue.exe and b/BaseTools/Bin/Win32/PatchPcdValue.exe differ
index 7c16177bbab2ed26c3009fd18b17d31f8bccf0c1..450bca41c301c62973f97dad1feb6ddc425db5be 100755 (executable)
Binary files a/BaseTools/Bin/Win32/Spd2Dec.exe and b/BaseTools/Bin/Win32/Spd2Dec.exe differ
index 2f58827858c4ded5b8b0b84ad7292cd195cb13b1..c7b9a9864f4ee277ff4160da2fc5815b547c70b8 100755 (executable)
Binary files a/BaseTools/Bin/Win32/Split.exe and b/BaseTools/Bin/Win32/Split.exe differ
index ba065328f44cb242381024e12551b981de4a974d..3fe721182e9f55a29c801efd563ed4339a492e00 100755 (executable)
Binary files a/BaseTools/Bin/Win32/TargetTool.exe and b/BaseTools/Bin/Win32/TargetTool.exe differ
index ec43802ab8714a11b0ca112668e71cfa0d2f0d06..d006b1e910fe49ee4ecaa6b3d0d1a795c89ad77c 100755 (executable)
Binary files a/BaseTools/Bin/Win32/TianoCompress.exe and b/BaseTools/Bin/Win32/TianoCompress.exe differ
index 8bfdbb3ab439df447053c873ad3f572fba63025e..5a90ab4f7fb79ba4989e6f0dc493a3676ba9a855 100755 (executable)
Binary files a/BaseTools/Bin/Win32/Trim.exe and b/BaseTools/Bin/Win32/Trim.exe differ
index 990c2ebe9f02fb63e250093d1d4eed1eb5fbe37e..96b31d949c99424d426aaf5d8894796fc115d1ca 100755 (executable)
Binary files a/BaseTools/Bin/Win32/VfrCompile.exe and b/BaseTools/Bin/Win32/VfrCompile.exe differ
index 1700ff2f7c000465c0bea78b3f0ca63bfb04866a..8f406d05ef20129300a67d5336518924ac749b50 100755 (executable)
Binary files a/BaseTools/Bin/Win32/VolInfo.exe and b/BaseTools/Bin/Win32/VolInfo.exe differ
index d6ae790c92a1151cb9ee0ddd6ce9741adea18650..b6ad904ac2f3c0cfd864a54a8ee46f0aefa676a6 100755 (executable)
Binary files a/BaseTools/Bin/Win32/build.exe and b/BaseTools/Bin/Win32/build.exe differ
index 768e2d5603ecea4c9f52c464f247a535147484e6..144be280da5154edb6f7d30ba2c69683df2872d4 100755 (executable)
@@ -1,6 +1,6 @@
 #
-# Copyright (c) 2006 - 2007, Intel Corporation
-# All rights reserved. This program and the accompanying materials
+# Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.<BR>
+# This program and the accompanying materials
 # are licensed and made available under the terms and conditions of the BSD License
 # which accompanies this distribution.  The full text of the license may be found at
 # http://opensource.org/licenses/bsd-license.php
index 4d9608400d782211e33aefa80eb847e6cdad1229..05bbd7ca9f19f61a6d558666edf71d9c7584d542 100644 (file)
@@ -6,7 +6,7 @@ Root Package 1.00
 Intel is a trademark or registered trademark of Intel Corporation or its\r
 subsidiaries in the United States and other countries.\r
 * Other names and brands may be claimed as the property of others.\r
-Copyright (c) 2007, Intel Corporation\r
+Copyright (c) 2007, Intel Corporation. All rights reserved.\r
 \r
 -------------------------------------------------------------------------------\r
 Quick Start\r
index eb9bdbcf95baf8388f40fc8023bfa291b41eee35..6d88349d26cb68198d29fa4aa35ed68a22b077f9 100644 (file)
@@ -8,7 +8,7 @@
     <Description>\r
       This Database tracks all packages and archives installed in this workspace.\r
     </Description>\r
-    <Copyright>Copyright (c) 2007 - 2009,  Intel Corporation    All rights reserved.</Copyright>\r
+    <Copyright>Copyright (c) 2007 - 2009, Intel Corporation. All rights reserved.</Copyright>\r
     <License>\r
       This program and the accompanying materials are licensed and made available\r
       under the terms and conditions of the BSD License which accompanies this\r
index 23cce9555b90effadebeb65d9d05eefb69bc0d21..b7cda67cda4de6e8297b2ba24e050542a5576515 100644 (file)
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
 Filename: DistributionPackage.xsd
 
-Copyright (c) 2008, Intel Corp All rights reserved.
+Copyright (c) 2008, Intel Corporation. All rights reserved.
 
 This program and the accompanying materials are licensed and made available 
 under the terms and conditions of the BSD License which may be found at 
@@ -230,7 +230,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
                                                        code provided in the distribution file. Alternatively, this may
                                                        point to a filename that contains the License. The file (included
                                                        in the content zip file) will be stored in the same location as
-                                                       the distribution package’s .pkg file. </xs:documentation>
+                                                       the distribution package's .pkg file. </xs:documentation>
                                        </xs:annotation>
                                </xs:element>
                                <xs:element minOccurs="1" maxOccurs="1" name="Abstract"
index 6e7573464ac2909148b19515eaaaa6e27284cc51..6e8c34ae9a14f4b399d3d62729b16038091ca307 100644 (file)
@@ -2,8 +2,8 @@
 <!--\r
 Filename: FarManifest.xsd\r
 \r
-Copyright (c) 2007, Intel Corp.\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 2007, Intel Corporation. All rights reserved.\r
+This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which may be found at http://opensource.org/licenses/bsd-license.php\r
 \r
index d40561e4f7ce52fc8ada99ebe306319f97a6a037..eeb48d9a8a2be4a1851bb6609199bd1ae6a60d7b 100644 (file)
@@ -3,8 +3,8 @@
   <!--\r
     Filename: FrameworkDataAttributes.xsd\r
     \r
-    Copyright (c) 2007, Intel Corp.\r
-    All rights reserved. This program and the accompanying materials\r
+    Copyright (c) 2007, Intel Corporation. All rights reserved.\r
+    This program and the accompanying materials\r
     are licensed and made available under the terms and conditions of the BSD License\r
     which may be found at http://opensource.org/licenses/bsd-license.php\r
     \r
index 12bba93d4058152f281aa9e3c7bb3664febd3828..e094c1b6261ac59463fc252d4bde65e03e23526f 100644 (file)
@@ -3,8 +3,8 @@
   <!--\r
     Filename: FrameworkDataElements.xsd\r
     \r
-    Copyright (c) 2007, Intel Corp.\r
-    All rights reserved. This program and the accompanying materials\r
+    Copyright (c) 2007, Intel Corporation. All rights reserved.\r
+    This program and the accompanying materials\r
     are licensed and made available under the terms and conditions of the BSD License\r
     which may be found at http://opensource.org/licenses/bsd-license.php\r
     \r
index 18db60888a1f3534b92add8b4b48ac35efc4e740..9a46a02a2e5d0dba0f3d3576d07e37e062336d8d 100644 (file)
@@ -3,8 +3,8 @@
   <!--\r
     Filename: FrameworkDataTypes.xsd\r
     \r
-    Copyright (c) 2007, Intel Corp.\r
-    All rights reserved. This program and the accompanying materials\r
+    Copyright (c) 2007, Intel Corporation. All rights reserved.\r
+    This program and the accompanying materials\r
     are licensed and made available under the terms and conditions of the BSD License\r
     which may be found at http://opensource.org/licenses/bsd-license.php\r
     \r
index 6927c7bccae55f49a90c404979640ec94d436925..e2745af3782a414d5daa8f5d91704867b3a91bad 100644 (file)
@@ -3,9 +3,9 @@
   <!--\r
     Filename: FrameworkHeaders.xsd\r
     \r
-    Copyright (c) 2007, Intel Corp.\r
+    Copyright (c) 2007, Intel Corporation. All rights reserved.\r
 \r
-    All rights reserved. This program and the accompanying materials\r
+    This program and the accompanying materials\r
     are licensed and made available under the terms and conditions of the BSD License\r
     which may be found at http://opensource.org/licenses/bsd-license.php\r
     \r
index 809f1a8485c79a7b3b25c470c26cc21a5014362c..8a766397779e951e889842a6353f614075bace8a 100644 (file)
@@ -3,8 +3,8 @@
   <!--\r
     Filename: NamingConvention.xsd\r
     \r
-    Copyright (c) 2007, Intel Corp.\r
-    All rights reserved. This program and the accompanying materials\r
+    Copyright (c) 2007, Intel Corporation. All rights reserved.\r
+    This program and the accompanying materials\r
     are licensed and made available under the terms and conditions of the BSD License\r
     which may be found at http://opensource.org/licenses/bsd-license.php\r
     \r
index f95de26b1a9aff4fe6a5f3b30889a9e91f560267..c941be81e7684cc9c63b15d4f78c9b4b0ce86fb4 100644 (file)
@@ -3,8 +3,8 @@
   <!--\r
     Filename: SurfaceArea.xsd\r
     \r
-    Copyright (c) 2007, Intel Corp.\r
-    All rights reserved. This program and the accompanying materials\r
+    Copyright (c) 2007, Intel Corporation. All rights reserved.\r
+    This program and the accompanying materials\r
     are licensed and made available under the terms and conditions of the BSD License\r
     which may be found at http://opensource.org/licenses/bsd-license.php\r
     \r
index c2fdaf82939a4dc57a9979d3c5cdc0406af00258..5d86b98fe7475f29d2eb1469576ed6cf8437d218 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <!--\r
-Copyright (c) 2007, Intel Corp.\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 2007, Intel Corporation. All rights reserved.\r
+This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which may be found at http://opensource.org/licenses/bsd-license.php\r
 \r
index 8809792ac48e432059d324fa53cb18bbcb47dc92..1c9491a5e65bdf4c8fc2b3054a2dd325543a19e7 100644 (file)
@@ -2,7 +2,7 @@
 <!--\r
     Filename: WorkspaceContent.xsd\r
     \r
-    Copyright (c) 2008, Intel Corp All rights reserved.\r
+    Copyright (c) 2008, Intel Corporation. All rights reserved.\r
     \r
     This program and the accompanying materials are licensed and made available \r
     under the terms and conditions of the BSD License which may be found at \r
index 95bb5edc28feceb3dab239865b88d95bff1bb324..c2b7dfa846730f4c285281fc0612046f4daeb2d0 100644 (file)
@@ -1,7 +1,7 @@
 #\r
-#  Copyright (c) 2007-2010, Intel Corporation\r
-#  Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.\r
-#  All rights reserved. This program and the accompanying materials\r
+#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+#  Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 75eba36a2ef8fbf41ed13a0728c734f7a81a5fbd..7f0771ec551ccf9dff0a347eb915ffc6e909a9e8 100644 (file)
@@ -1,7 +1,7 @@
 #\r
-#  Copyright (c) 2006-2007, Intel Corporation\r
+#  Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index b53826ba05fc94886a250b3a9ed2bb26c2767071..c5a4bd723eea37843bb2f2237065f52a88fd73b3 100644 (file)
@@ -1,8 +1,8 @@
 #\r
-#  Copyright (c) 2006-2010, Intel Corporation\r
-#  Portions copyright (c) 2008-2009 Apple Inc. All rights reserved.\r
+#  Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+#  Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
@@ -109,6 +109,8 @@ DEFINE CYGWIN_BINIPF           = c:/cygwin/opt/tiano/gcc/ipf/bin/ia64-pc-elf-
 \r
 DEFINE GCC44_IA32_PREFIX       = /usr/bin/\r
 #DEFINE GCC44_IA32_PREFIX       = ENV(HOME)/programs/gcc/4.4/ia32/\r
+DEFINE GCC44_X64_PREFIX        = /usr/bin/\r
+#DEFINE GCC44_X64_PREFIX       = ENV(HOME)/programs/gcc/4.4/x64/\r
 \r
 DEFINE UNIX_IASL_BIN           = /usr/bin/iasl\r
 #DEFINE UNIX_IASL_BIN           = $(HOME)/programs/iasl\r
@@ -1571,10 +1573,11 @@ DEFINE GCC_IPF_RC_FLAGS            = -I binary -O elf64-ia64-little -B ia64 --re
 \r
 DEFINE GCC44_ALL_CC_FLAGS            = -g -fshort-wchar -fno-stack-protector -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-array-bounds -ffunction-sections -fdata-sections -c -include AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings\r
 DEFINE GCC44_IA32_CC_FLAGS           = DEF(GCC44_ALL_CC_FLAGS) -m32 -malign-double -D EFI32\r
-DEFINE GCC44_X64_CC_FLAGS            = DEF(GCC44_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -Wno-address\r
+DEFINE GCC44_X64_CC_FLAGS            = DEF(GCC44_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -DNO_BUILTIN_VA_FUNCS -mno-red-zone -Wno-address\r
 DEFINE GCC44_IA32_X64_DLINK_COMMON   = -nostdlib -n -q --gc-sections\r
 DEFINE GCC44_IA32_X64_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_COMMON) --entry ReferenceAcpiTable -u ReferenceAcpiTable\r
 DEFINE GCC44_IA32_X64_DLINK_FLAGS    = DEF(GCC44_IA32_X64_DLINK_COMMON) --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
+DEFINE GCC44_X64_DLINK_FLAGS         = DEF(GCC44_IA32_X64_DLINK_FLAGS)  -melf_x86_64 --oformat=elf64-x86-64 --script=$(EDK_TOOLS_PATH)/Scripts/gcc4.4-ld-script\r
 DEFINE GCC44_ASM_FLAGS               = DEF(GCC_ASM_FLAGS)\r
 \r
 ####################################################################################\r
@@ -1703,6 +1706,27 @@ DEFINE GCC44_ASM_FLAGS               = DEF(GCC_ASM_FLAGS)
 *_GCC44_IA32_DLINK_FLAGS          = DEF(GCC44_IA32_X64_DLINK_FLAGS) -m elf_i386 --oformat=elf32-i386\r
 *_GCC44_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)\r
 \r
+##################\r
+# GCC44 X64 definitions\r
+##################\r
+*_GCC44_X64_CC_PATH              = DEF(GCC44_X64_PREFIX)gcc\r
+*_GCC44_X64_SLINK_PATH           = DEF(GCC44_X64_PREFIX)ar\r
+*_GCC44_X64_DLINK_PATH           = DEF(GCC44_X64_PREFIX)ld\r
+*_GCC44_X64_ASLDLINK_PATH        = DEF(GCC44_X64_PREFIX)ld\r
+*_GCC44_X64_ASM_PATH             = DEF(GCC44_X64_PREFIX)gcc\r
+*_GCC44_X64_PP_PATH              = DEF(GCC44_X64_PREFIX)gcc\r
+*_GCC44_X64_VFRPP_PATH           = DEF(GCC44_X64_PREFIX)gcc\r
+*_GCC44_X64_ASLCC_PATH           = DEF(GCC44_X64_PREFIX)gcc\r
+*_GCC44_X64_ASLPP_PATH           = DEF(GCC44_X64_PREFIX)gcc\r
+*_GCC44_X64_RC_PATH              = DEF(GCC44_X64_PREFIX)objcopy\r
+\r
+*_GCC44_X64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m64\r
+*_GCC44_X64_ASLDLINK_FLAGS       = DEF(GCC44_IA32_X64_ASLDLINK_FLAGS) -m elf_x86_64\r
+*_GCC44_X64_ASM_FLAGS            = DEF(GCC44_ASM_FLAGS) -m64 --64 -melf_x86_64\r
+*_GCC44_X64_CC_FLAGS             = DEF(GCC44_X64_CC_FLAGS) -Os\r
+*_GCC44_X64_DLINK_FLAGS          = DEF(GCC44_X64_DLINK_FLAGS)\r
+*_GCC44_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)\r
+\r
 \r
 ####################################################################################\r
 #\r
index 881b65b4c1ac02714e26027eeed71db6e21cc5f3..a3fa905c907420892e557ccd776b6a444657e78e 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for Base Tools project build.\r
 #\r
-# Copyright (c) 2009 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index f6efb7b6a73c6363380059d30cabc3a3ae4c8d3e..294c532732de6481089f141ff80e0b4ea5094723 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for Base Tools project build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
diff --git a/BaseTools/Scripts/gcc4.4-ld-script b/BaseTools/Scripts/gcc4.4-ld-script
new file mode 100644 (file)
index 0000000..bb5b7d1
--- /dev/null
@@ -0,0 +1,43 @@
+/* OUTPUT_FORMAT(efi-bsdrv-x86_64) */\r
+SECTIONS\r
+{\r
+  /* . = 0 + SIZEOF_HEADERS; */\r
+  . = 0x280;\r
+  .text ALIGN(0x20) :\r
+  {\r
+    *(.text .stub .text.* .gnu.linkonce.t.*)\r
+    . = ALIGN(0x20);\r
+  } =0x90909090\r
+  .data ALIGN(0x20) :\r
+  {\r
+    *(\r
+      .rodata .rodata.* .gnu.linkonce.r.*\r
+      .data .data.* .gnu.linkonce.d.*\r
+    )\r
+    . = ALIGN(0x20);\r
+  }\r
+  .bss ALIGN(0x20) :\r
+  {\r
+    *(.bss .bss.*)\r
+    . = ALIGN(0x20);\r
+  }\r
+  .got ALIGN(0x20) :\r
+  {\r
+    *(.got .got.*)\r
+    . = ALIGN(0x20);\r
+  }\r
+  .rela ALIGN(0x20) :\r
+  {\r
+    *(.rela .rela.*)\r
+  }\r
+  /DISCARD/ : {\r
+    *(.note.GNU-stack) *(.gnu_debuglink)\r
+    *(.interp)\r
+    *(.dynsym)\r
+    *(.dynstr)\r
+    *(.dynamic)\r
+    *(.hash)\r
+    *(.comment)\r
+  }\r
+}\r
+\r
index adf9ce5d6f59e2a5c30a8e09785d04d502058a0a..7703928dfc5581c77374e745873698392fbf860e 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'BootSectImage' module build.\r
 #\r
-# Copyright (c) 2009 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 1c9e5fa19e73f98c9c3b718d0eb0e57a809a4589..5e27af5a87f8feab16f6bced775bac086eb33e7a 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'BootSectImage' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 7386bcf2e22529796df70b1e3e0d1c11b86e8e1c..a907e214f45a5be6c7360239a3a8b56c4cf06d72 100644 (file)
@@ -4,8 +4,8 @@ Abstract:
   Patch the BPB information in boot sector image file.\r
   Patch the MBR code in MBR image file.\r
 \r
-Copyright 2006 - 2010, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index fac03e683b1e822492adb969b64d12a42c0dcfad..5827d18bb27e8532726fae768122052a09f93bfb 100644 (file)
@@ -2,8 +2,8 @@
 \r
   Fat file system structure and definition.\r
 \r
-Copyright 2006 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 9103585cddb76efb960a3eaa58a37a58aabe46ff..36d157da247a6310ad0ef08621549f5cdaa38975 100644 (file)
@@ -2,8 +2,8 @@
 \r
   MBR Partition Entry and Table structure defintions.\r
 \r
-Copyright 2006 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 5ffb5d45032468dffdcfa96c73e928d5784bd6c5..878c1c611b8d11b00cc0d6d7fbc5c28a397c0dd4 100644 (file)
@@ -2,8 +2,8 @@
 \r
   Functions to get info and load PE/COFF image.\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
@@ -71,6 +71,14 @@ PeCoffLoaderRelocateIpfImage (
   IN UINT64      Adjust\r
   );\r
 \r
+RETURN_STATUS\r
+PeCoffLoaderRelocateArmImage (\r
+  IN UINT16      **Reloc,\r
+  IN OUT CHAR8   *Fixup,\r
+  IN OUT CHAR8   **FixupData,\r
+  IN UINT64      Adjust\r
+  );\r
+\r
 STATIC\r
 RETURN_STATUS\r
 PeCoffLoaderGetPeHeader (\r
@@ -777,9 +785,11 @@ Returns:
       default:\r
         switch (MachineType) {\r
         case EFI_IMAGE_MACHINE_IA32:\r
-        case EFI_IMAGE_MACHINE_ARMT:\r
           Status = PeCoffLoaderRelocateIa32Image (Reloc, Fixup, &FixupData, Adjust);\r
           break;\r
+        case EFI_IMAGE_MACHINE_ARMT:\r
+          Status = PeCoffLoaderRelocateArmImage (&Reloc, Fixup, &FixupData, Adjust);\r
+          break;\r
         case EFI_IMAGE_MACHINE_X64:\r
           Status = PeCoffLoaderRelocateX64Image (Reloc, Fixup, &FixupData, Adjust);\r
           break;\r
index 89e75efa3dd97e35af71a005894740f0c2469dd8..5ee55480bdcd6386a7d5dfb5d04c25c42685ea2c 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 1999 - 2008, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 1999 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
 http://opensource.org/licenses/bsd-license.php\r
index 779c5a2e06649f659138633d47590af4dbbee4ec..48dc82eb70c66d8005e890d18749b9ab1b9ee28b 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 1999 - 2008, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 1999 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
 http://opensource.org/licenses/bsd-license.php\r
index a0c6603a85ae2bb002f2a72aa241d4081970246c..cb72e2723f3a65dc745930bda6f0776a1e0dabfc 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 7e4af036e5d60875bbd798f6fd37fdd5918ede8e..f407e6d1e917b0e0ef6ac3806d4db13b999f4051 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
 http://opensource.org/licenses/bsd-license.php\r
index 10d0c72a1600bd1aff5819ff870d27753677f86e..11245b11788a53dcea4771bfae917f9b3c86f752 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                              \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index f52b51453a741767d33029dc26990fdbb72dae18..8e5915dd0e53150262a5eaa5d3d6d7798d4faa77 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index e598a916a01d77c82c630282d22707ce381faed7..760327f99c30cb38de0e26a0baf45baf9599e00d 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 8ccb21f211c935b27a2a4e09008bd01baaf5596b..a12fc595a7da5e17328def298debee32c46ed803 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
 http://opensource.org/licenses/bsd-license.php\r
index 3d5c0cd54d19ec87c2974fffb75fd0935a7c32b4..b5c978855c9e38914a9b7d18a229bff965b58af4 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2006 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index aafa9c6e24b6f4c16923869a1bcdafcad42e6cd6..ed491ae36d6b7b796a7301e73f0a2d17a96d9bf1 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2006 - 2008, Intel Corporation                                              \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 0e7608d1cfbd2d5218442b4b23521153e0d4c73b..dc9b0ffaa26bf2154ddbd7979d9575299405c360 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
 http://opensource.org/licenses/bsd-license.php\r
index 8986a592d76a4acef239c47c3c5d31893d01bf40..35cb1802feffcbfe38c6ba8dcd9427acc3bc9ec7 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 2d3b1353cb1e541204506803f572c9b2fa76d057..c8586b407829c44c718b2cdda4a6ff7b5d4f0566 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 1999 - 2008, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 1999 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
 http://opensource.org/licenses/bsd-license.php\r
index 5a52695a7f94aee1f77d05607c73206c5b9de1d5..12c64f61724c2daac3ab59cc6ff05540b8a10de5 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 1999 - 2008, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 1999 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
 http://opensource.org/licenses/bsd-license.php\r
index a6f17e17a89b21a1af4ed8ac9017d057a30cdd5a..1b289d83cd62a921497968abd10f713201399689 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 43d3737f682f36d8c4521bedddb1b63c61bb6801..7815baae3ffa7513cffbfe0d5bbfefe404389762 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 172802d7edc6e63fca02d8dd47d0d6a53028d0d6..1aade7f7b8f3f2cb8068c84439ba725170b228d3 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'Common' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 017c5a63d7f4048ea5eb121a33a35142df0e404e..41119b11ab73243e95dd6b5f60331f7fc862e65e 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'Common' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index cace6282acfece9e3b7390fe1f0b40c05b9a839c..a93a50578843edfaabca839d9489c35b1c4674b6 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 9148d9d06c08b0d2d5a3bf5e1cd11bbd0096e70c..baab40baa2c6442aea2ad62615127f8030a58f8b 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 64c5ff783e4e8af2c2c5790721725d197f0519ef..7b0493aaa00969dbf0fe66cf119f1c8298477231 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 9dbe91cd415bc63e19c9e6056d9c331a602a0a8f..217beb14842e7add48c36660ca8a3df9524f89c2 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 088730689da456139271d44bd57aed350a0d03b5..419c8f8b8c4611016aab61db268baa5d1d2567e6 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2007 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 0386dfa50dbd846ec673e34985acbb12a8cae11c..9e7df070c5948224dded76ec670abacafb72ab01 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2007 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index b643cdeb4fef2d32c5d17dd1b741cabdbe3d6072..8ddfd00b7e85d8ddea143bc0c9b772ca8effb22a 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2007 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index d30afff1ccbf4eb5d5e401e4992acd926044d4fb..b4c55974e32dd1e6a2714ab561a5ec8c89733c47 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2007 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 2ce25be86f365e95d8ce056cb8dfb81360ad16b9..eb01d305275c097b61dc847b13ae768f087879f4 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2010, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index af532b8a18bcd3446586de0c54861dbade957208..88ded8760e88d9232cbfcaba057cb0f1af2b7e65 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 077a66c5d7713c060fa6b26bcad7804836d51d92..31c6f0fca136103e394c20e3a9c9610208572fa7 100644 (file)
@@ -1,8 +1,8 @@
 /** @file\r
        Function prototypes and defines on Memory Only PE COFF loader\r
 \r
-       Copyright (c) 2006, Intel Corporation                                                         \r
-       All rights reserved. This program and the accompanying materials                          \r
+       Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
+  This program and the accompanying materials                          \r
        are licensed and made available under the terms and conditions of the BSD License         \r
        which accompanies this distribution.  The full text of the license may be found at        \r
        http://opensource.org/licenses/bsd-license.php                                            \r
@@ -144,4 +144,38 @@ PeCoffLoaderGetEntryPoint (
   )\r
 ;\r
 \r
+//\r
+// These functions are used by the ARM PE/COFF relocation code and by\r
+// the ELF to PE/COFF converter so that is why they are public\r
+//\r
+\r
+/**\r
+  Pass in a pointer to an ARM MOVT or MOVW immediate instruciton and \r
+  return the immediate data encoded in the instruction\r
+\r
+  @param  Instruction   Pointer to ARM MOVT or MOVW immediate instruction\r
+\r
+  @return Immediate address encoded in the instruction\r
+\r
+**/\r
+UINT16\r
+ThumbMovtImmediateAddress (\r
+  IN UINT16 *Instruction\r
+  );\r
+\r
+/**\r
+  Update an ARM MOVT or MOVW immediate instruction immediate data.\r
+\r
+  @param  Instruction   Pointer to ARM MOVT or MOVW immediate instruction\r
+  @param  Address       New addres to patch into the instruction\r
+\r
+**/\r
+VOID\r
+ThumbMovtImmediatePatch (\r
+  IN OUT UINT16 *Instruction,\r
+  IN     UINT16 Address\r
+  );\r
+\r
+\r
+\r
 #endif\r
index fedc0941cb68699ee2ad685480da40d347473174..5d827cefe42d32727a08f3af645949d6def2572c 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
@@ -315,3 +315,121 @@ PeCoffLoaderRelocateX64Image (
   return RETURN_SUCCESS;\r
 }\r
 \r
+/**\r
+  Pass in a pointer to an ARM MOVT or MOVW immediate instruciton and \r
+  return the immediate data encoded in the instruction\r
+\r
+  @param  Instruction   Pointer to ARM MOVT or MOVW immediate instruction\r
+\r
+  @return Immediate address encoded in the instruction\r
+\r
+**/\r
+UINT16\r
+ThumbMovtImmediateAddress (\r
+  IN UINT16 *Instruction\r
+  )\r
+{\r
+  UINT32  Movt;\r
+  UINT16  Address;\r
+\r
+  // Thumb2 is two 16-bit instructions working together. Not a single 32-bit instruction\r
+  // Example MOVT R0, #0 is 0x0000f2c0 or 0xf2c0 0x0000\r
+  Movt = (*Instruction << 16) | (*(Instruction + 1)); \r
+\r
+  // imm16 = imm4:i:imm3:imm8\r
+  //         imm4 -> Bit19:Bit16\r
+  //         i    -> Bit26\r
+  //         imm3 -> Bit14:Bit12\r
+  //         imm8 -> Bit7:Bit0\r
+  Address  = (UINT16)(Movt & 0x000000ff);          // imm8\r
+  Address |= (UINT16)((Movt >> 4) &  0x0000f700);  // imm4 imm3\r
+  Address |= (((Movt & BIT26) != 0) ? BIT11 : 0);  // i\r
+  return Address;\r
+}\r
+\r
+\r
+/**\r
+  Update an ARM MOVT or MOVW immediate instruction immediate data.\r
+\r
+  @param  Instruction   Pointer to ARM MOVT or MOVW immediate instruction\r
+  @param  Address       New addres to patch into the instruction\r
+**/\r
+VOID\r
+ThumbMovtImmediatePatch (\r
+  IN OUT UINT16 *Instruction,\r
+  IN     UINT16 Address\r
+  )\r
+{\r
+  UINT16  Patch;\r
+\r
+  // First 16-bit chunk of instruciton\r
+  Patch  = ((Address >> 12) & 0x000f);             // imm4 \r
+  Patch |= (((Address & BIT11) != 0) ? BIT10 : 0); // i\r
+  *Instruction = (*Instruction & ~0x040f) | Patch;\r
+\r
+  // Second 16-bit chunk of instruction\r
+  Patch  =  Address & 0x000000ff;          // imm8\r
+  Patch |=  ((Address << 4) & 0x00007000); // imm3\r
+  Instruction++;\r
+  *Instruction = (*Instruction & ~0x70ff) | Patch;\r
+}\r
+\r
+/**\r
+  Performs an ARM-based specific relocation fixup and is a no-op on other\r
+  instruction sets.\r
+\r
+  @param  Reloc       Pointer to the relocation record.\r
+  @param  Fixup       Pointer to the address to fix up.\r
+  @param  FixupData   Pointer to a buffer to log the fixups.\r
+  @param  Adjust      The offset to adjust the fixup.\r
+\r
+  @return Status code.\r
+\r
+**/\r
+RETURN_STATUS\r
+PeCoffLoaderRelocateArmImage (\r
+  IN UINT16      **Reloc,\r
+  IN OUT CHAR8   *Fixup,\r
+  IN OUT CHAR8   **FixupData,\r
+  IN UINT64      Adjust\r
+  )\r
+{\r
+  UINT16      *Fixup16;\r
+  UINT16      FixupVal;\r
+  UINT16      *Addend;\r
+\r
+  Fixup16    = (UINT16 *) Fixup;\r
+\r
+  switch ((**Reloc) >> 12) {\r
+  case EFI_IMAGE_REL_BASED_ARM_THUMB_MOVW:\r
+    FixupVal = ThumbMovtImmediateAddress (Fixup16) + (UINT16)Adjust;\r
+    ThumbMovtImmediatePatch (Fixup16, FixupVal);\r
+\r
+    if (*FixupData != NULL) {\r
+      *FixupData             = ALIGN_POINTER (*FixupData, sizeof (UINT16));\r
+      *(UINT16 *)*FixupData  = *Fixup16;\r
+      *FixupData             = *FixupData + sizeof (UINT16);\r
+    }\r
+    break;\r
+\r
+  case EFI_IMAGE_REL_BASED_ARM_THUMB_MOVT:\r
+    // For MOVT you need to know the lower 16-bits do do the math\r
+    // So this relocation entry is really two entries.\r
+    *Reloc = *Reloc + 1;\r
+    Addend = *Reloc; \r
+    FixupVal = (UINT16)(((ThumbMovtImmediateAddress (Fixup16) << 16) + Adjust + *Addend) >> 16);\r
+    ThumbMovtImmediatePatch (Fixup16, FixupVal);\r
+\r
+    if (*FixupData != NULL) {\r
+      *FixupData             = ALIGN_POINTER (*FixupData, sizeof (UINT16));\r
+      *(UINT16 *)*FixupData  = *Fixup16;\r
+      *FixupData             = *FixupData + sizeof (UINT16);\r
+    }\r
+    break;\r
+  \r
+  default:\r
+    return RETURN_UNSUPPORTED;\r
+  }\r
+\r
+  return RETURN_SUCCESS;\r
+}\r
index 68cdc630c153e05ad747e01242a66389258021c9..0f6151819c2c792c9e2350bab78970770b3e7378 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 7b33727d6883a76cd08c76cb45c2f7b0b9f247c4..d871eb7fe3dbbffa145a8a09236acca33a97bcb7 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index f65ba96661c1152f9ceefe3cdcc572099d914dfc..bccb0b2d3423e51eda45a333c288899cd047297e 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2007 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index cf18460c4c7812c5bcb1fdaa382f0fae7151f21e..2c764115e537c1c828ced1b53859717a4320c458 100644 (file)
@@ -1,7 +1,7 @@
 /**\r
 \r
-Copyright (c) 2007 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 625f99eaca2583d5a9886ea6613f508b38e6cb53..a34f1d2a7d5b68f228176641a1c4e466a1b7c34a 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2006 - 2008, Intel Corporation                                              \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 96c17993a1795e7759d922dac2e1948e9ba02120..bd33e3dd2a9439778721a69e783eb5310c548e2b 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2006 - 2008, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
 http://opensource.org/licenses/bsd-license.php\r
index 7a3b4a2234cf17912c304bb128d0591b54a84e75..a92f76dbb05b4ec96e6fb62a3360ba9736dd3279 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright 2006 - 2010, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 3c3acdb08a6ecfe64cd96779ac5c40df18aa1313..e33b97866c173822fd837216e6a67655c1f8d361 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'EfiLdrImage' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 8652a9e9bf3a5aed53b2da42da6633a6effc00b3..a3c9ef1f0a5b4aab40aafea56d524ef34b77ddfa 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'EfiLdrImage' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 981786c705b9b85f46e8dff300b796c164d0562e..4642f441b487e8ccfce6ee84d7c0f8b628a25596 100644 (file)
@@ -1,6 +1,6 @@
 /** @file\r
 \r
-Copyright (c)  1999-2010 Intel Corporation. All rights reserved\r
+Copyright (c) 1999 - 2010, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials are licensed and made available \r
 under the terms and conditions of the BSD License which accompanies this \r
 distribution.  The full text of the license may be found at\r
index 65c77c4034804a45101b594c9a7934666c0ee7ca..d87c4c61b7c5760b4d77322e6a8303ea2ab040ee 100644 (file)
@@ -1,6 +1,6 @@
 /** @file\r
 \r
-Copyright (c)  1999-2008 Intel Corporation. All rights reserved\r
+Copyright (c) 1999 - 2008, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials are licensed and made available \r
 under the terms and conditions of the BSD License which accompanies this \r
 distribution.  The full text of the license may be found at\r
index f94880cf58fa30d7e79f945b5817ef75080a4ae6..eb76913713dccbfa16581b3b6d7fef182a8ef09c 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'EfiRom' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index c31f47ba5b286173a80ea924c09f6e59df3395a2..67a9f2521b8a914cabb128c482377e49366f3874 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'EfiRom' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 263b7c520da3455365ccb323c6da29bab8ed736e..acd9dc623fb8bbc9e29a5ac6e10760fddd5e16d6 100644 (file)
@@ -1,9 +1,9 @@
 ## @file
 #  GNU Make makefile for C tools build.
 #
-#  Copyright (c) 2007 - 2010, Intel Corporation
+#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
 #
-#  All rights reserved. This program and the accompanying materials
+#  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD License
 #  which accompanies this distribution.  The full text of the license may be found at
 #  http://opensource.org/licenses/bsd-license.php
index f24b4ee9accf5451625d6c813fce1affbb93952e..1f77e879b313907c40ba42144e1c6325893807a9 100644 (file)
@@ -2,8 +2,8 @@
 \r
   Fat file system structure and definition.\r
 \r
-Copyright 2006 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index e4a79be69c516e46f2766f0edd71d3f9a77b7436..4a9a0e1b57d472f3f7dfa7fbcb20766ab8549868 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright 2006 - 2010, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index a55137b557a22bc94bb5cc9d5b22e6808996ca05..065833b79fe64f0c0b7860451f59610492b9d7a1 100644 (file)
@@ -2,8 +2,8 @@
 \r
   Get Drv Num offset from Fat file system.\r
 \r
-Copyright 2006 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index ce6bb50b0f257208bca54d7fed77a82957079b8e..6ba39db16671525f6cc29b94fa535489aec0fcc5 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'GenBootSector' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 42118dbeb5d42f408a14f5cae8a5ecca894a4f44..4f055c9b4eef36926d9bf9cbb68633b482e38cd8 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'GenCrc32' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 34d1a7a3446a6bb1d96f522eeebddbfac4831e52..0a31f54890e842e95fbbbb5a356fd407ba4d4fdb 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2007 - 2010, Intel Corporation                                              \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index c2d71f0d7768a3d35571bbc9b066f504af0ab656..e0049a4abd53359858556282bc1adc97d0495498 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'GenCrc32' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 855ceade38286c78a857db1b3771b40ab875360a..2dc4159744365de816f0e3951b1d5bb8303fba49 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'GenFfs' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index cdaba0c8d107d4a7196e6541fd6d0f2cf7fd61f9..2796c86bf5a8bfa75c41b0b588cae76f6989e834 100644 (file)
@@ -1,7 +1,7 @@
 /**\r
 \r
-Copyright (c) 2004-2010, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 9af3b8fe0f698457bd4f2e9c72926ac1dceb659d..d063278c19e2eba3d958557da500918f10da6475 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'GenFfs' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 00e0e56917285593f8c63c264c4413d8a0094373..6ecf4bcca6de90b26737df765d52e441c4a57b2a 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'GenFv' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 5b7f72e19e082d7d788839542f7c1c3823b44497..2cb8771b31b5f9762f3bacb43d4639dc40dc8904 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2007 - 2010, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 7368bbbf9c2dca06517c0ff0280100e699fda662..4ec8b72234cfa1e1adaee444bc17d6ea6af5097a 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2010, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
@@ -809,6 +809,10 @@ Returns:
   }\r
 \r
   if (FfsFile->Type != EFI_FV_FILETYPE_SECURITY_CORE && pImageContext->Machine == EFI_IMAGE_MACHINE_IA64) {\r
+    //\r
+    // Process IPF PLABEL to get the real address after the image has been rebased. \r
+    // PLABEL structure is got by AddressOfEntryPoint offset to ImageBuffer stored in pImageContext->Handle.\r
+    //\r
     fprintf (FvMapFile, "EntryPoint=0x%010llx", (unsigned long long) (*(UINT64 *)((UINTN) pImageContext->Handle + (UINTN) AddressOfEntryPoint)));\r
   } else {\r
     fprintf (FvMapFile, "EntryPoint=0x%010llx", (unsigned long long) (ImageBaseAddress + AddressOfEntryPoint));\r
index b82fac8837cb347a64b4e4790581f98425da4be4..bc25ea8358263ec30084f21d05fbacfa8a696ad5 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2010, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index b4cb6fc708b21a8ec800af9feb0f79021b6d9a2d..54421748937026d1991cf594ac1f89f8b2ca3896 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'GenFv' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
diff --git a/BaseTools/Source/C/GenFw/Elf32Convert.c b/BaseTools/Source/C/GenFw/Elf32Convert.c
new file mode 100644 (file)
index 0000000..9e4a9a2
--- /dev/null
@@ -0,0 +1,964 @@
+/** @file
+
+Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+
+This program and the accompanying materials are licensed and made available
+under the terms and conditions of the BSD License which accompanies this
+distribution.  The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#include "WinNtInclude.h"
+
+#ifndef __GNUC__
+#include <windows.h>
+#include <io.h>
+#endif
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <ctype.h>
+
+#include <Common/UefiBaseTypes.h>
+#include <IndustryStandard/PeImage.h>
+
+#include "PeCoffLib.h"
+#include "EfiUtilityMsgs.h"
+
+#include "GenFw.h"
+#include "ElfConvert.h"
+#include "Elf32Convert.h"
+
+STATIC
+VOID
+ScanSections32 (
+  VOID
+  );
+
+STATIC
+BOOLEAN
+WriteSections32 (
+  SECTION_FILTER_TYPES  FilterType
+  );
+
+STATIC
+VOID
+WriteRelocations32 (
+  VOID
+  );
+
+STATIC
+VOID
+WriteDebug32 (
+  VOID
+  );
+
+STATIC
+VOID
+SetImageSize32 (
+  VOID
+  );
+
+STATIC
+VOID
+CleanUp32 (
+  VOID
+  );
+
+//
+// Rename ELF32 strucutres to common names to help when porting to ELF64.
+//
+typedef Elf32_Shdr Elf_Shdr;
+typedef Elf32_Ehdr Elf_Ehdr;
+typedef Elf32_Rel Elf_Rel;
+typedef Elf32_Sym Elf_Sym;
+typedef Elf32_Phdr Elf_Phdr;
+typedef Elf32_Dyn Elf_Dyn;
+#define ELFCLASS ELFCLASS32
+#define ELF_R_TYPE(r) ELF32_R_TYPE(r)
+#define ELF_R_SYM(r) ELF32_R_SYM(r)
+
+//
+// Well known ELF structures.
+//
+STATIC Elf_Ehdr *mEhdr;
+STATIC Elf_Shdr *mShdrBase;
+STATIC Elf_Phdr *mPhdrBase;
+
+//
+// Coff information
+//
+STATIC const UINT32 mCoffAlignment = 0x20;
+
+//
+// PE section alignment.
+//
+STATIC const UINT16 mCoffNbrSections = 5;
+
+//
+// ELF sections to offset in Coff file.
+//
+STATIC UINT32 *mCoffSectionsOffset = NULL;
+
+//
+// Offsets in COFF file
+//
+STATIC UINT32 mNtHdrOffset;
+STATIC UINT32 mTextOffset;
+STATIC UINT32 mDataOffset;
+STATIC UINT32 mHiiRsrcOffset;
+STATIC UINT32 mRelocOffset;
+
+//
+// Initialization Function
+//
+BOOLEAN
+InitializeElf32 (
+  UINT8               *FileBuffer,
+  ELF_FUNCTION_TABLE  *ElfFunctions
+  )
+{
+  //
+  // Initialize data pointer and structures.
+  //
+  mEhdr = (Elf_Ehdr*) FileBuffer;  
+
+  //
+  // Check the ELF32 specific header information.
+  //
+  if (mEhdr->e_ident[EI_CLASS] != ELFCLASS32) {
+    Error (NULL, 0, 3000, "Unsupported", "ELF EI_DATA not ELFCLASS32");
+    return FALSE;
+  }
+  if (mEhdr->e_ident[EI_DATA] != ELFDATA2LSB) {
+    Error (NULL, 0, 3000, "Unsupported", "ELF EI_DATA not ELFDATA2LSB");
+    return FALSE;
+  }  
+  if ((mEhdr->e_type != ET_EXEC) && (mEhdr->e_type != ET_DYN)) {
+    Error (NULL, 0, 3000, "Unsupported", "ELF e_type not ET_EXEC or ET_DYN");
+    return FALSE;
+  }
+  if (!((mEhdr->e_machine == EM_386) || (mEhdr->e_machine == EM_ARM))) { 
+    Error (NULL, 0, 3000, "Unsupported", "ELF e_machine not EM_386 or EM_ARM");
+    return FALSE;
+  }
+  if (mEhdr->e_version != EV_CURRENT) {
+    Error (NULL, 0, 3000, "Unsupported", "ELF e_version (%u) not EV_CURRENT (%d)", (unsigned) mEhdr->e_version, EV_CURRENT);
+    return FALSE;
+  }
+  
+  //
+  // Update section header pointers
+  //
+  mShdrBase  = (Elf_Shdr *)((UINT8 *)mEhdr + mEhdr->e_shoff);
+  mPhdrBase = (Elf_Phdr *)((UINT8 *)mEhdr + mEhdr->e_phoff);
+  
+  //
+  // Create COFF Section offset buffer and zero.
+  //
+  mCoffSectionsOffset = (UINT32 *)malloc(mEhdr->e_shnum * sizeof (UINT32));
+  memset(mCoffSectionsOffset, 0, mEhdr->e_shnum * sizeof(UINT32));
+
+  //
+  // Fill in function pointers.
+  //
+  ElfFunctions->ScanSections = ScanSections32;
+  ElfFunctions->WriteSections = WriteSections32;
+  ElfFunctions->WriteRelocations = WriteRelocations32;
+  ElfFunctions->WriteDebug = WriteDebug32;
+  ElfFunctions->SetImageSize = SetImageSize32;
+  ElfFunctions->CleanUp = CleanUp32;
+
+  return TRUE;
+}
+
+
+//
+// Header by Index functions
+//
+STATIC
+Elf_Shdr*
+GetShdrByIndex (
+  UINT32 Num
+  )
+{
+  if (Num >= mEhdr->e_shnum)
+    return NULL;
+  return (Elf_Shdr*)((UINT8*)mShdrBase + Num * mEhdr->e_shentsize);
+}
+
+STATIC
+Elf_Phdr*
+GetPhdrByIndex (
+  UINT32 num
+  )
+{
+  if (num >= mEhdr->e_phnum) {
+    return NULL;
+  }
+
+  return (Elf_Phdr *)((UINT8*)mPhdrBase + num * mEhdr->e_phentsize);
+}
+
+STATIC
+UINT32
+CoffAlign (
+  UINT32 Offset
+  )
+{
+  return (Offset + mCoffAlignment - 1) & ~(mCoffAlignment - 1);
+}
+
+//
+// filter functions
+//
+STATIC
+BOOLEAN
+IsTextShdr (
+  Elf_Shdr *Shdr
+  )
+{
+  return (BOOLEAN) ((Shdr->sh_flags & (SHF_WRITE | SHF_ALLOC)) == SHF_ALLOC);
+}
+
+STATIC
+BOOLEAN
+IsHiiRsrcShdr (
+  Elf_Shdr *Shdr
+  )
+{
+  Elf_Shdr *Namedr = GetShdrByIndex(mEhdr->e_shstrndx);
+
+  return (BOOLEAN) (strcmp((CHAR8*)mEhdr + Namedr->sh_offset + Shdr->sh_name, ELF_HII_SECTION_NAME) == 0);
+}
+
+STATIC
+BOOLEAN
+IsDataShdr (
+  Elf_Shdr *Shdr
+  )
+{
+  if (IsHiiRsrcShdr(Shdr)) {
+    return FALSE;
+  }
+  return (BOOLEAN) (Shdr->sh_flags & (SHF_WRITE | SHF_ALLOC)) == (SHF_ALLOC | SHF_WRITE);
+}
+
+//
+// Elf functions interface implementation
+//
+
+STATIC
+VOID
+ScanSections32 (
+  VOID
+  )
+{
+  UINT32                          i;
+  EFI_IMAGE_DOS_HEADER            *DosHdr;
+  EFI_IMAGE_OPTIONAL_HEADER_UNION *NtHdr;
+  UINT32                          CoffEntry;
+
+  CoffEntry = 0;
+  mCoffOffset = 0;
+
+  //
+  // Coff file start with a DOS header.
+  //
+  mCoffOffset = sizeof(EFI_IMAGE_DOS_HEADER) + 0x40;
+  mNtHdrOffset = mCoffOffset;
+  switch (mEhdr->e_machine) {
+  case EM_386:
+  case EM_ARM:
+    mCoffOffset += sizeof (EFI_IMAGE_NT_HEADERS32);
+  break;
+  default:
+    VerboseMsg ("%s unknown e_machine type. Assume IA-32", (UINTN)mEhdr->e_machine);
+    mCoffOffset += sizeof (EFI_IMAGE_NT_HEADERS32);
+  break;
+  }
+
+  mTableOffset = mCoffOffset;
+  mCoffOffset += mCoffNbrSections * sizeof(EFI_IMAGE_SECTION_HEADER);
+
+  //
+  // First text sections.
+  //
+  mCoffOffset = CoffAlign(mCoffOffset);
+  mTextOffset = mCoffOffset;
+  for (i = 0; i < mEhdr->e_shnum; i++) {
+    Elf_Shdr *shdr = GetShdrByIndex(i);
+    if (IsTextShdr(shdr)) {
+      if ((shdr->sh_addralign != 0) && (shdr->sh_addralign != 1)) {
+        // the alignment field is valid
+        if ((shdr->sh_addr & (shdr->sh_addralign - 1)) == 0) {
+          // if the section address is aligned we must align PE/COFF
+          mCoffOffset = (mCoffOffset + shdr->sh_addralign - 1) & ~(shdr->sh_addralign - 1);
+        } else if ((shdr->sh_addr % shdr->sh_addralign) != (mCoffOffset % shdr->sh_addralign)) {
+          // ARM RVCT tools have behavior outside of the ELF specification to try
+          // and make images smaller.  If sh_addr is not aligned to sh_addralign
+          // then the section needs to preserve sh_addr MOD sh_addralign.
+          // Normally doing nothing here works great.
+          Error (NULL, 0, 3000, "Invalid", "Unsupported section alignment.");
+        }
+      }
+
+      /* Relocate entry.  */
+      if ((mEhdr->e_entry >= shdr->sh_addr) &&
+          (mEhdr->e_entry < shdr->sh_addr + shdr->sh_size)) {
+        CoffEntry = mCoffOffset + mEhdr->e_entry - shdr->sh_addr;
+      }
+      mCoffSectionsOffset[i] = mCoffOffset;
+      mCoffOffset += shdr->sh_size;
+    }
+  }
+
+  if (mEhdr->e_machine != EM_ARM) {
+    mCoffOffset = CoffAlign(mCoffOffset);
+  }
+
+  //
+  //  Then data sections.
+  //
+  mDataOffset = mCoffOffset;
+  for (i = 0; i < mEhdr->e_shnum; i++) {
+    Elf_Shdr *shdr = GetShdrByIndex(i);
+    if (IsDataShdr(shdr)) {
+      if ((shdr->sh_addralign != 0) && (shdr->sh_addralign != 1)) {
+        // the alignment field is valid
+        if ((shdr->sh_addr & (shdr->sh_addralign - 1)) == 0) {
+          // if the section address is aligned we must align PE/COFF
+          mCoffOffset = (mCoffOffset + shdr->sh_addralign - 1) & ~(shdr->sh_addralign - 1);
+        } else if ((shdr->sh_addr % shdr->sh_addralign) != (mCoffOffset % shdr->sh_addralign)) {
+          // ARM RVCT tools have behavior outside of the ELF specification to try
+          // and make images smaller.  If sh_addr is not aligned to sh_addralign
+          // then the section needs to preserve sh_addr MOD sh_addralign.
+          // Normally doing nothing here works great.
+          Error (NULL, 0, 3000, "Invalid", "Unsupported section alignment.");
+        }
+      }
+      mCoffSectionsOffset[i] = mCoffOffset;
+      mCoffOffset += shdr->sh_size;
+    }
+  }
+  mCoffOffset = CoffAlign(mCoffOffset);
+
+  //
+  //  The HII resource sections.
+  //
+  mHiiRsrcOffset = mCoffOffset;
+  for (i = 0; i < mEhdr->e_shnum; i++) {
+    Elf_Shdr *shdr = GetShdrByIndex(i);
+    if (IsHiiRsrcShdr(shdr)) {
+      if ((shdr->sh_addralign != 0) && (shdr->sh_addralign != 1)) {
+        // the alignment field is valid
+        if ((shdr->sh_addr & (shdr->sh_addralign - 1)) == 0) {
+          // if the section address is aligned we must align PE/COFF
+          mCoffOffset = (mCoffOffset + shdr->sh_addralign - 1) & ~(shdr->sh_addralign - 1);
+        } else if ((shdr->sh_addr % shdr->sh_addralign) != (mCoffOffset % shdr->sh_addralign)) {
+          // ARM RVCT tools have behavior outside of the ELF specification to try
+          // and make images smaller.  If sh_addr is not aligned to sh_addralign
+          // then the section needs to preserve sh_addr MOD sh_addralign.
+          // Normally doing nothing here works great.
+          Error (NULL, 0, 3000, "Invalid", "Unsupported section alignment.");
+        }
+      }
+      if (shdr->sh_size != 0) {
+        mCoffSectionsOffset[i] = mCoffOffset;
+        mCoffOffset += shdr->sh_size;
+        mCoffOffset = CoffAlign(mCoffOffset);
+        SetHiiResourceHeader ((UINT8*) mEhdr + shdr->sh_offset, mHiiRsrcOffset);
+      }
+      break;
+    }
+  }
+
+  mRelocOffset = mCoffOffset;
+
+  //
+  // Allocate base Coff file.  Will be expanded later for relocations.
+  //
+  mCoffFile = (UINT8 *)malloc(mCoffOffset);
+  memset(mCoffFile, 0, mCoffOffset);
+
+  //
+  // Fill headers.
+  //
+  DosHdr = (EFI_IMAGE_DOS_HEADER *)mCoffFile;
+  DosHdr->e_magic = EFI_IMAGE_DOS_SIGNATURE;
+  DosHdr->e_lfanew = mNtHdrOffset;
+
+  NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION*)(mCoffFile + mNtHdrOffset);
+
+  NtHdr->Pe32.Signature = EFI_IMAGE_NT_SIGNATURE;
+
+  switch (mEhdr->e_machine) {
+  case EM_386:
+    NtHdr->Pe32.FileHeader.Machine = EFI_IMAGE_MACHINE_IA32;
+    NtHdr->Pe32.OptionalHeader.Magic = EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC;
+    break;
+  case EM_ARM:
+    NtHdr->Pe32.FileHeader.Machine = EFI_IMAGE_MACHINE_ARMT;
+    NtHdr->Pe32.OptionalHeader.Magic = EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC;
+    break;
+  default:
+    VerboseMsg ("%s unknown e_machine type. Assume IA-32", (UINTN)mEhdr->e_machine);
+    NtHdr->Pe32.FileHeader.Machine = EFI_IMAGE_MACHINE_IA32;
+    NtHdr->Pe32.OptionalHeader.Magic = EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC;
+  }
+
+  NtHdr->Pe32.FileHeader.NumberOfSections = mCoffNbrSections;
+  NtHdr->Pe32.FileHeader.TimeDateStamp = (UINT32) time(NULL);
+  mImageTimeStamp = NtHdr->Pe32.FileHeader.TimeDateStamp;
+  NtHdr->Pe32.FileHeader.PointerToSymbolTable = 0;
+  NtHdr->Pe32.FileHeader.NumberOfSymbols = 0;
+  NtHdr->Pe32.FileHeader.SizeOfOptionalHeader = sizeof(NtHdr->Pe32.OptionalHeader);
+  NtHdr->Pe32.FileHeader.Characteristics = EFI_IMAGE_FILE_EXECUTABLE_IMAGE
+    | EFI_IMAGE_FILE_LINE_NUMS_STRIPPED
+    | EFI_IMAGE_FILE_LOCAL_SYMS_STRIPPED
+    | EFI_IMAGE_FILE_32BIT_MACHINE;
+
+  NtHdr->Pe32.OptionalHeader.SizeOfCode = mDataOffset - mTextOffset;
+  NtHdr->Pe32.OptionalHeader.SizeOfInitializedData = mRelocOffset - mDataOffset;
+  NtHdr->Pe32.OptionalHeader.SizeOfUninitializedData = 0;
+  NtHdr->Pe32.OptionalHeader.AddressOfEntryPoint = CoffEntry;
+
+  NtHdr->Pe32.OptionalHeader.BaseOfCode = mTextOffset;
+
+  NtHdr->Pe32.OptionalHeader.BaseOfData = mDataOffset;
+  NtHdr->Pe32.OptionalHeader.ImageBase = 0;
+  NtHdr->Pe32.OptionalHeader.SectionAlignment = mCoffAlignment;
+  NtHdr->Pe32.OptionalHeader.FileAlignment = mCoffAlignment;
+  NtHdr->Pe32.OptionalHeader.SizeOfImage = 0;
+
+  NtHdr->Pe32.OptionalHeader.SizeOfHeaders = mTextOffset;
+  NtHdr->Pe32.OptionalHeader.NumberOfRvaAndSizes = EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES;
+
+  //
+  // Section headers.
+  //
+  if ((mDataOffset - mTextOffset) > 0) {
+    CreateSectionHeader (".text", mTextOffset, mDataOffset - mTextOffset,
+            EFI_IMAGE_SCN_CNT_CODE
+            | EFI_IMAGE_SCN_MEM_EXECUTE
+            | EFI_IMAGE_SCN_MEM_READ);
+  } else {
+    // Don't make a section of size 0.
+    NtHdr->Pe32.FileHeader.NumberOfSections--;
+  }
+
+  if ((mHiiRsrcOffset - mDataOffset) > 0) {
+    CreateSectionHeader (".data", mDataOffset, mHiiRsrcOffset - mDataOffset,
+            EFI_IMAGE_SCN_CNT_INITIALIZED_DATA
+            | EFI_IMAGE_SCN_MEM_WRITE
+            | EFI_IMAGE_SCN_MEM_READ);
+  } else {
+    // Don't make a section of size 0.
+    NtHdr->Pe32.FileHeader.NumberOfSections--;
+  }
+
+  if ((mRelocOffset - mHiiRsrcOffset) > 0) {
+    CreateSectionHeader (".rsrc", mHiiRsrcOffset, mRelocOffset - mHiiRsrcOffset,
+            EFI_IMAGE_SCN_CNT_INITIALIZED_DATA
+            | EFI_IMAGE_SCN_MEM_READ);
+
+    NtHdr->Pe32.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_RESOURCE].Size = mRelocOffset - mHiiRsrcOffset;
+    NtHdr->Pe32.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_RESOURCE].VirtualAddress = mHiiRsrcOffset;
+  } else {
+    // Don't make a section of size 0.
+    NtHdr->Pe32.FileHeader.NumberOfSections--;
+  }
+
+}
+
+STATIC
+BOOLEAN
+WriteSections32 (
+  SECTION_FILTER_TYPES  FilterType
+  )
+{
+  UINT32      Idx;
+  Elf_Shdr    *SecShdr;
+  UINT32      SecOffset;
+  BOOLEAN     (*Filter)(Elf_Shdr *);
+
+  //
+  // Initialize filter pointer
+  //
+  switch (FilterType) {
+    case SECTION_TEXT:
+      Filter = IsTextShdr;
+      break;
+    case SECTION_HII:
+      Filter = IsHiiRsrcShdr;
+      break;
+    case SECTION_DATA:
+      Filter = IsDataShdr;
+      break;
+    default:
+      return FALSE;
+  }
+
+  //
+  // First: copy sections.
+  //
+  for (Idx = 0; Idx < mEhdr->e_shnum; Idx++) {
+    Elf_Shdr *Shdr = GetShdrByIndex(Idx);
+    if ((*Filter)(Shdr)) {
+      switch (Shdr->sh_type) {
+      case SHT_PROGBITS:
+        /* Copy.  */
+        memcpy(mCoffFile + mCoffSectionsOffset[Idx],
+              (UINT8*)mEhdr + Shdr->sh_offset,
+              Shdr->sh_size);
+        break;
+
+      case SHT_NOBITS:
+        memset(mCoffFile + mCoffSectionsOffset[Idx], 0, Shdr->sh_size);
+        break;
+
+      default:
+        //
+        //  Ignore for unkown section type.
+        //
+        VerboseMsg ("%s unknown section type %x. We directly copy this section into Coff file", mInImageName, (unsigned)Shdr->sh_type);
+        break;
+      }
+    }
+  }
+
+  //
+  // Second: apply relocations.
+  //
+  for (Idx = 0; Idx < mEhdr->e_shnum; Idx++) {
+    //
+    // Determine if this is a relocation section.
+    //
+    Elf_Shdr *RelShdr = GetShdrByIndex(Idx);
+    if ((RelShdr->sh_type != SHT_REL) && (RelShdr->sh_type != SHT_RELA)) {
+      continue;
+    }
+    
+    //
+    // Relocation section found.  Now extract section information that the relocations
+    // apply to in the ELF data and the new COFF data.
+    //
+    SecShdr = GetShdrByIndex(RelShdr->sh_info);
+    SecOffset = mCoffSectionsOffset[RelShdr->sh_info];
+    
+    //
+    // Only process relocations for the current filter type.
+    //
+    if (RelShdr->sh_type == SHT_REL && (*Filter)(SecShdr)) {
+      UINT32 RelOffset;
+      
+      //
+      // Determine the symbol table referenced by the relocation data.
+      //
+      Elf_Shdr *SymtabShdr = GetShdrByIndex(RelShdr->sh_link);
+      UINT8 *Symtab = (UINT8*)mEhdr + SymtabShdr->sh_offset;
+
+      //
+      // Process all relocation entries for this section.
+      //
+      for (RelOffset = 0; RelOffset < RelShdr->sh_size; RelOffset += RelShdr->sh_entsize) {
+        //
+        // Set pointer to relocation entry
+        //
+        Elf_Rel *Rel = (Elf_Rel *)((UINT8*)mEhdr + RelShdr->sh_offset + RelOffset);
+        
+        //
+        // Set pointer to symbol table entry associated with the relocation entry.
+        //
+        Elf_Sym *Sym = (Elf_Sym *)(Symtab + ELF_R_SYM(Rel->r_info) * SymtabShdr->sh_entsize);
+        
+        Elf_Shdr *SymShdr;
+        UINT8 *Targ;
+        UINT16 Address;
+
+        //
+        // Check section header index found in symbol table and get the section 
+        // header location.
+        //
+        if (Sym->st_shndx == SHN_UNDEF
+            || Sym->st_shndx == SHN_ABS
+            || Sym->st_shndx > mEhdr->e_shnum) {
+          Error (NULL, 0, 3000, "Invalid", "%s bad symbol definition.", mInImageName);
+        }
+        SymShdr = GetShdrByIndex(Sym->st_shndx);
+
+        //
+        // Convert the relocation data to a pointer into the coff file.
+        //
+        // Note: 
+        //   r_offset is the virtual address of the storage unit to be relocated.
+        //   sh_addr is the virtual address for the base of the section.
+        //
+        Targ = mCoffFile + SecOffset + (Rel->r_offset - SecShdr->sh_addr);
+
+        //
+        // Determine how to handle each relocation type based on the machine type.
+        //
+        if (mEhdr->e_machine == EM_386) {
+          switch (ELF_R_TYPE(Rel->r_info)) {
+          case R_386_NONE:
+            break;
+          case R_386_32:
+            //
+            // Absolute relocation.
+            //  Converts Targ from a absolute virtual address to the absolute
+            //  COFF address.
+            //
+            *(UINT32 *)Targ = *(UINT32 *)Targ - SymShdr->sh_addr
+              + mCoffSectionsOffset[Sym->st_shndx];
+            break;
+          case R_386_PC32:
+            //
+            // Relative relocation: Symbol - Ip + Addend
+            //
+            *(UINT32 *)Targ = *(UINT32 *)Targ
+              + (mCoffSectionsOffset[Sym->st_shndx] - SymShdr->sh_addr)
+              - (SecOffset - SecShdr->sh_addr);
+            break;
+          default:
+            Error (NULL, 0, 3000, "Invalid", "%s unsupported ELF EM_386 relocation 0x%x.", mInImageName, (unsigned) ELF_R_TYPE(Rel->r_info));
+          }
+        } else if (mEhdr->e_machine == EM_ARM) {
+          switch (ELF32_R_TYPE(Rel->r_info)) {
+          case R_ARM_RBASE:
+            // No relocation - no action required
+
+          case R_ARM_PC24:
+          case R_ARM_XPC25:
+          case R_ARM_THM_PC22:
+          case R_ARM_THM_JUMP19:
+          case R_ARM_CALL:
+          case R_ARM_JMP24:
+            // Thease are all PC-relative relocations and don't require modification
+            // GCC does not seem to have the concept of a application that just needs to get relocated.
+            break;
+
+          case R_ARM_THM_MOVW_ABS_NC:
+            // MOVW is only lower 16-bits of the addres
+            Address = (UINT16)(Sym->st_value - SymShdr->sh_addr + mCoffSectionsOffset[Sym->st_shndx]);
+            ThumbMovtImmediatePatch ((UINT16 *)Targ, Address);
+            break;
+
+          case R_ARM_THM_MOVT_ABS:
+            // MOVT is only upper 16-bits of the addres
+            Address = (UINT16)((Sym->st_value - SymShdr->sh_addr + mCoffSectionsOffset[Sym->st_shndx]) >> 16);
+            ThumbMovtImmediatePatch ((UINT16 *)Targ, Address);
+            break;
+
+          case R_ARM_ABS32:
+          case R_ARM_RABS32:
+            //
+            // Absolute relocation.
+            //
+            *(UINT32 *)Targ = *(UINT32 *)Targ - SymShdr->sh_addr + mCoffSectionsOffset[Sym->st_shndx];
+            break;
+
+          default:
+            Error (NULL, 0, 3000, "Invalid", "WriteSections (): %s unsupported ELF EM_ARM relocation 0x%x.", mInImageName, (unsigned) ELF32_R_TYPE(Rel->r_info));
+          }
+        }
+      }
+    }
+  }
+
+  return TRUE;
+}
+
+STATIC
+VOID
+WriteRelocations32 (
+  VOID
+  )
+{
+  UINT32                           Index;
+  EFI_IMAGE_OPTIONAL_HEADER_UNION  *NtHdr;
+  EFI_IMAGE_DATA_DIRECTORY         *Dir;
+  BOOLEAN                          FoundRelocations;
+  Elf_Dyn                          *Dyn;
+  Elf_Rel                          *Rel;
+  UINTN                            RelElementSize;
+  UINTN                            RelSize;
+  UINTN                            RelOffset;
+  UINTN                            K;
+  UINT8                            *Targ;
+  Elf32_Phdr                       *DynamicSegment;
+  Elf32_Phdr                       *TargetSegment;
+  Elf_Sym                          *Sym;
+  Elf_Shdr                         *SymtabShdr;
+  UINT8                            *Symtab;
+  
+
+  for (Index = 0, FoundRelocations = FALSE; Index < mEhdr->e_shnum; Index++) {
+    Elf_Shdr *RelShdr = GetShdrByIndex(Index);
+    if ((RelShdr->sh_type == SHT_REL) || (RelShdr->sh_type == SHT_RELA)) {
+      Elf_Shdr *SecShdr = GetShdrByIndex (RelShdr->sh_info);
+      if (IsTextShdr(SecShdr) || IsDataShdr(SecShdr)) {
+        UINT32 RelIdx;
+
+        SymtabShdr = GetShdrByIndex (RelShdr->sh_link);
+        Symtab = (UINT8*)mEhdr + SymtabShdr->sh_offset;
+        FoundRelocations = TRUE;
+        for (RelIdx = 0; RelIdx < RelShdr->sh_size; RelIdx += RelShdr->sh_entsize) {
+          Elf_Rel  *Rel = (Elf_Rel *)((UINT8*)mEhdr + RelShdr->sh_offset + RelIdx);
+          Elf_Shdr *SymShdr;
+
+          Sym = (Elf_Sym *)(Symtab + ELF_R_SYM(Rel->r_info) * SymtabShdr->sh_entsize);
+          SymShdr = GetShdrByIndex (Sym->st_shndx);
+          
+          if (mEhdr->e_machine == EM_386) { 
+            switch (ELF_R_TYPE(Rel->r_info)) {
+            case R_386_NONE:
+            case R_386_PC32:
+              //
+              // No fixup entry required.
+              //
+              break;
+            case R_386_32:
+              //
+              // Creates a relative relocation entry from the absolute entry.
+              //
+              CoffAddFixup(mCoffSectionsOffset[RelShdr->sh_info]
+              + (Rel->r_offset - SecShdr->sh_addr),
+              EFI_IMAGE_REL_BASED_HIGHLOW);
+              break;
+            default:
+              Error (NULL, 0, 3000, "Invalid", "%s unsupported ELF EM_386 relocation 0x%x.", mInImageName, (unsigned) ELF_R_TYPE(Rel->r_info));
+            }
+          } else if (mEhdr->e_machine == EM_ARM) {
+            switch (ELF32_R_TYPE(Rel->r_info)) {
+            case R_ARM_RBASE: 
+              // No relocation - no action required
+            case R_ARM_PC24:
+            case R_ARM_XPC25:
+            case R_ARM_THM_PC22:
+            case R_ARM_THM_JUMP19:
+            case R_ARM_CALL:
+            case R_ARM_JMP24:
+              // Thease are all PC-relative relocations and don't require modification
+              break;
+
+            case R_ARM_THM_MOVW_ABS_NC:
+              CoffAddFixup (
+                mCoffSectionsOffset[RelShdr->sh_info]
+                + (Rel->r_offset - SecShdr->sh_addr),
+                EFI_IMAGE_REL_BASED_ARM_THUMB_MOVW
+                );
+              break;
+
+            case R_ARM_THM_MOVT_ABS:
+              CoffAddFixup (
+                mCoffSectionsOffset[RelShdr->sh_info]
+                + (Rel->r_offset - SecShdr->sh_addr),
+                EFI_IMAGE_REL_BASED_ARM_THUMB_MOVT
+                );
+
+              // The relocation entry needs to contain the lower 16-bits so we can do math
+              CoffAddFixupEntry ((UINT16)(Sym->st_value - SymShdr->sh_addr + mCoffSectionsOffset[Sym->st_shndx]));
+              break;
+
+            case R_ARM_ABS32:
+            case R_ARM_RABS32:
+              CoffAddFixup (
+                mCoffSectionsOffset[RelShdr->sh_info]
+                + (Rel->r_offset - SecShdr->sh_addr),
+                EFI_IMAGE_REL_BASED_HIGHLOW
+                );
+              break;
+
+           default:
+              Error (NULL, 0, 3000, "Invalid", "WriteRelocations(): %s unsupported ELF EM_ARM relocation 0x%x.", mInImageName, (unsigned) ELF32_R_TYPE(Rel->r_info));
+            }
+          } else {
+            Error (NULL, 0, 3000, "Not Supported", "This tool does not support relocations for ELF with e_machine %u (processor type).", (unsigned) mEhdr->e_machine);
+          }
+        }
+      }
+    }
+  }
+
+  if (!FoundRelocations && (mEhdr->e_machine == EM_ARM)) {
+    /* Try again, but look for PT_DYNAMIC instead of SHT_REL */
+
+    for (Index = 0; Index < mEhdr->e_phnum; Index++) {
+      RelElementSize = 0;
+      RelSize = 0;
+      RelOffset = 0;
+
+      DynamicSegment = GetPhdrByIndex (Index);
+
+      if (DynamicSegment->p_type == PT_DYNAMIC) {
+        Dyn = (Elf32_Dyn *) ((UINT8 *)mEhdr + DynamicSegment->p_offset);
+
+        while (Dyn->d_tag != DT_NULL) {
+          switch (Dyn->d_tag) {
+            case  DT_REL:
+              RelOffset = Dyn->d_un.d_val;
+              break;
+
+            case  DT_RELSZ:
+              RelSize = Dyn->d_un.d_val;
+              break;
+
+            case  DT_RELENT:
+              RelElementSize = Dyn->d_un.d_val;
+              break;
+
+            default:
+              break;
+          }
+          Dyn++;
+        }
+        if (( RelOffset == 0 ) || ( RelSize == 0 ) || ( RelElementSize == 0 )) {
+          Error (NULL, 0, 3000, "Invalid", "%s bad ARM dynamic relocations.", mInImageName);
+        }
+
+        for (K = 0; K < RelSize; K += RelElementSize) {
+
+          if (DynamicSegment->p_paddr == 0) {
+            // Older versions of the ARM ELF (SWS ESPC 0003 B-02) specification define DT_REL
+            // as an offset in the dynamic segment. p_paddr is defined to be zero for ARM tools
+            Rel = (Elf32_Rel *) ((UINT8 *) mEhdr + DynamicSegment->p_offset + RelOffset + K);
+          } else {
+            // This is how it reads in the generic ELF specification
+            Rel = (Elf32_Rel *) ((UINT8 *) mEhdr + RelOffset + K);
+          }
+
+          switch (ELF32_R_TYPE (Rel->r_info)) {
+          case  R_ARM_RBASE:
+            break;
+
+          case  R_ARM_RABS32:
+            TargetSegment = GetPhdrByIndex (ELF32_R_SYM (Rel->r_info) - 1);
+
+            // Note: r_offset in a memory address.  Convert it to a pointer in the coff file.
+            Targ = mCoffFile + mCoffSectionsOffset[ ELF32_R_SYM( Rel->r_info ) ] + Rel->r_offset - TargetSegment->p_vaddr;
+
+            *(UINT32 *)Targ = *(UINT32 *)Targ + mCoffSectionsOffset [ELF32_R_SYM( Rel->r_info )];
+
+            CoffAddFixup (mCoffSectionsOffset[ELF32_R_SYM (Rel->r_info)] + (Rel->r_offset - TargetSegment->p_vaddr), EFI_IMAGE_REL_BASED_HIGHLOW);
+            break;
+          
+          default:
+            Error (NULL, 0, 3000, "Invalid", "%s bad ARM dynamic relocations, unkown type %d.", mInImageName, ELF32_R_TYPE (Rel->r_info));
+            break;
+          }
+        }
+        break;
+      }
+    }
+  }
+
+  //
+  // Pad by adding empty entries.
+  //
+  while (mCoffOffset & (mCoffAlignment - 1)) {
+    CoffAddFixupEntry(0);
+  }
+
+  NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(mCoffFile + mNtHdrOffset);
+  Dir = &NtHdr->Pe32.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_BASERELOC];
+  Dir->Size = mCoffOffset - mRelocOffset;
+  if (Dir->Size == 0) {
+    // If no relocations, null out the directory entry and don't add the .reloc section
+    Dir->VirtualAddress = 0;
+    NtHdr->Pe32.FileHeader.NumberOfSections--;
+  } else {
+    Dir->VirtualAddress = mRelocOffset;
+    CreateSectionHeader (".reloc", mRelocOffset, mCoffOffset - mRelocOffset,
+            EFI_IMAGE_SCN_CNT_INITIALIZED_DATA
+            | EFI_IMAGE_SCN_MEM_DISCARDABLE
+            | EFI_IMAGE_SCN_MEM_READ);
+  }
+
+}
+
+STATIC
+VOID
+WriteDebug32 (
+  VOID
+  )
+{
+  UINT32                              Len;
+  UINT32                              DebugOffset;
+  EFI_IMAGE_OPTIONAL_HEADER_UNION     *NtHdr;
+  EFI_IMAGE_DATA_DIRECTORY            *DataDir;
+  EFI_IMAGE_DEBUG_DIRECTORY_ENTRY     *Dir;
+  EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY *Nb10;
+
+  Len = strlen(mInImageName) + 1;
+  DebugOffset = mCoffOffset;
+
+  mCoffOffset += sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY)
+    + sizeof(EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY)
+    + Len;
+  mCoffOffset = CoffAlign(mCoffOffset);
+
+  mCoffFile = realloc(mCoffFile, mCoffOffset);
+  memset(mCoffFile + DebugOffset, 0, mCoffOffset - DebugOffset);
+
+  Dir = (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY*)(mCoffFile + DebugOffset);
+  Dir->Type = EFI_IMAGE_DEBUG_TYPE_CODEVIEW;
+  Dir->SizeOfData = sizeof(EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY) + Len;
+  Dir->RVA = DebugOffset + sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY);
+  Dir->FileOffset = DebugOffset + sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY);
+
+  Nb10 = (EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY*)(Dir + 1);
+  Nb10->Signature = CODEVIEW_SIGNATURE_NB10;
+  strcpy ((char *)(Nb10 + 1), mInImageName);
+
+
+  NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(mCoffFile + mNtHdrOffset);
+  DataDir = &NtHdr->Pe32.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_DEBUG];
+  DataDir->VirtualAddress = DebugOffset;
+  DataDir->Size = mCoffOffset - DebugOffset;
+  if (DataDir->Size == 0) {
+    // If no debug, null out the directory entry and don't add the .debug section
+    DataDir->VirtualAddress = 0;
+    NtHdr->Pe32.FileHeader.NumberOfSections--;
+  } else {
+    DataDir->VirtualAddress = DebugOffset;
+    CreateSectionHeader (".debug", DebugOffset, mCoffOffset - DebugOffset,
+            EFI_IMAGE_SCN_CNT_INITIALIZED_DATA
+            | EFI_IMAGE_SCN_MEM_DISCARDABLE
+            | EFI_IMAGE_SCN_MEM_READ);
+
+  }
+}
+
+STATIC
+VOID
+SetImageSize32 (
+  VOID
+  )
+{
+  EFI_IMAGE_OPTIONAL_HEADER_UNION *NtHdr;
+  
+  //
+  // Set image size
+  //
+  NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(mCoffFile + mNtHdrOffset);
+  NtHdr->Pe32.OptionalHeader.SizeOfImage = mCoffOffset;
+}
+
+STATIC
+VOID
+CleanUp32 (
+  VOID
+  )
+{
+  if (mCoffSectionsOffset != NULL) {
+    free (mCoffSectionsOffset);
+  }
+}
+
+
diff --git a/BaseTools/Source/C/GenFw/Elf32Convert.h b/BaseTools/Source/C/GenFw/Elf32Convert.h
new file mode 100644 (file)
index 0000000..2eafbec
--- /dev/null
@@ -0,0 +1,24 @@
+/** @file
+
+Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+
+This program and the accompanying materials are licensed and made available 
+under the terms and conditions of the BSD License which accompanies this 
+distribution.  The full text of the license may be found at 
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#ifndef _ELF_32_CONVERT_
+#define _ELF_32_CONVERT_
+
+BOOLEAN
+InitializeElf32 (
+  UINT8               *FileBuffer,
+  ELF_FUNCTION_TABLE  *ElfFunctions
+  );
+
+#endif
diff --git a/BaseTools/Source/C/GenFw/Elf64Convert.c b/BaseTools/Source/C/GenFw/Elf64Convert.c
new file mode 100644 (file)
index 0000000..7c2e87e
--- /dev/null
@@ -0,0 +1,785 @@
+/** @file
+
+Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+
+This program and the accompanying materials are licensed and made available
+under the terms and conditions of the BSD License which accompanies this
+distribution.  The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#include "WinNtInclude.h"
+
+#ifndef __GNUC__
+#include <windows.h>
+#include <io.h>
+#endif
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <ctype.h>
+
+#include <Common/UefiBaseTypes.h>
+#include <IndustryStandard/PeImage.h>
+
+#include "PeCoffLib.h"
+#include "EfiUtilityMsgs.h"
+
+#include "GenFw.h"
+#include "ElfConvert.h"
+#include "Elf64Convert.h"
+
+STATIC
+VOID
+ScanSections64 (
+  VOID
+  );
+
+STATIC
+BOOLEAN
+WriteSections64 (
+  SECTION_FILTER_TYPES  FilterType
+  );
+
+STATIC
+VOID
+WriteRelocations64 (
+  VOID
+  );
+
+STATIC
+VOID
+WriteDebug64 (
+  VOID
+  );
+
+STATIC
+VOID
+SetImageSize64 (
+  VOID
+  );
+
+STATIC
+VOID
+CleanUp64 (
+  VOID
+  );
+
+//
+// Rename ELF32 strucutres to common names to help when porting to ELF64.
+//
+typedef Elf64_Shdr Elf_Shdr;
+typedef Elf64_Ehdr Elf_Ehdr;
+typedef Elf64_Rel Elf_Rel;
+typedef Elf64_Rela Elf_Rela;
+typedef Elf64_Sym Elf_Sym;
+typedef Elf64_Phdr Elf_Phdr;
+typedef Elf64_Dyn Elf_Dyn;
+#define ELFCLASS ELFCLASS64
+#define ELF_R_TYPE(r) ELF64_R_TYPE(r)
+#define ELF_R_SYM(r) ELF64_R_SYM(r)
+
+//
+// Well known ELF structures.
+//
+STATIC Elf_Ehdr *mEhdr;
+STATIC Elf_Shdr *mShdrBase;
+STATIC Elf_Phdr *mPhdrBase;
+
+//
+// Coff information
+//
+STATIC const UINT32 mCoffAlignment = 0x20;
+
+//
+// PE section alignment.
+//
+STATIC const UINT16 mCoffNbrSections = 5;
+
+//
+// ELF sections to offset in Coff file.
+//
+STATIC UINT32 *mCoffSectionsOffset = NULL;
+
+//
+// Offsets in COFF file
+//
+STATIC UINT32 mNtHdrOffset;
+STATIC UINT32 mTextOffset;
+STATIC UINT32 mDataOffset;
+STATIC UINT32 mHiiRsrcOffset;
+STATIC UINT32 mRelocOffset;
+
+//
+// Initialization Function
+//
+BOOLEAN
+InitializeElf64 (
+  UINT8               *FileBuffer,
+  ELF_FUNCTION_TABLE  *ElfFunctions
+  )
+{
+  //
+  // Initialize data pointer and structures.
+  //
+  VerboseMsg ("Set EHDR");
+  mEhdr = (Elf_Ehdr*) FileBuffer;
+
+  //
+  // Check the ELF64 specific header information.
+  //
+  VerboseMsg ("Check ELF64 Header Information");
+  if (mEhdr->e_ident[EI_CLASS] != ELFCLASS64) {
+    Error (NULL, 0, 3000, "Unsupported", "ELF EI_DATA not ELFCLASS64");
+    return FALSE;
+  }
+  if (mEhdr->e_ident[EI_DATA] != ELFDATA2LSB) {
+    Error (NULL, 0, 3000, "Unsupported", "ELF EI_DATA not ELFDATA2LSB");
+    return FALSE;
+  }
+  if ((mEhdr->e_type != ET_EXEC) && (mEhdr->e_type != ET_DYN)) {
+    Error (NULL, 0, 3000, "Unsupported", "ELF e_type not ET_EXEC or ET_DYN");
+    return FALSE;
+  }
+  if (!((mEhdr->e_machine == EM_X86_64))) {
+    Error (NULL, 0, 3000, "Unsupported", "ELF e_machine not EM_X86_64");
+    return FALSE;
+  }
+  if (mEhdr->e_version != EV_CURRENT) {
+    Error (NULL, 0, 3000, "Unsupported", "ELF e_version (%u) not EV_CURRENT (%d)", (unsigned) mEhdr->e_version, EV_CURRENT);
+    return FALSE;
+  }
+
+  //
+  // Update section header pointers
+  //
+  VerboseMsg ("Update Header Pointers");
+  mShdrBase  = (Elf_Shdr *)((UINT8 *)mEhdr + mEhdr->e_shoff);
+  mPhdrBase = (Elf_Phdr *)((UINT8 *)mEhdr + mEhdr->e_phoff);
+
+  //
+  // Create COFF Section offset buffer and zero.
+  //
+  VerboseMsg ("Create COFF Section Offset Buffer");
+  mCoffSectionsOffset = (UINT32 *)malloc(mEhdr->e_shnum * sizeof (UINT32));
+  memset(mCoffSectionsOffset, 0, mEhdr->e_shnum * sizeof(UINT32));
+
+  //
+  // Fill in function pointers.
+  //
+  VerboseMsg ("Fill in Function Pointers");
+  ElfFunctions->ScanSections = ScanSections64;
+  ElfFunctions->WriteSections = WriteSections64;
+  ElfFunctions->WriteRelocations = WriteRelocations64;
+  ElfFunctions->WriteDebug = WriteDebug64;
+  ElfFunctions->SetImageSize = SetImageSize64;
+  ElfFunctions->CleanUp = CleanUp64;
+
+  return TRUE;
+}
+
+
+//
+// Header by Index functions
+//
+STATIC
+Elf_Shdr*
+GetShdrByIndex (
+  UINT32 Num
+  )
+{
+  if (Num >= mEhdr->e_shnum)
+    return NULL;
+  return (Elf_Shdr*)((UINT8*)mShdrBase + Num * mEhdr->e_shentsize);
+}
+
+STATIC
+UINT32
+CoffAlign (
+  UINT32 Offset
+  )
+{
+  return (Offset + mCoffAlignment - 1) & ~(mCoffAlignment - 1);
+}
+
+//
+// filter functions
+//
+STATIC
+BOOLEAN
+IsTextShdr (
+  Elf_Shdr *Shdr
+  )
+{
+  return (BOOLEAN) ((Shdr->sh_flags & (SHF_WRITE | SHF_ALLOC)) == SHF_ALLOC);
+}
+
+STATIC
+BOOLEAN
+IsHiiRsrcShdr (
+  Elf_Shdr *Shdr
+  )
+{
+  Elf_Shdr *Namedr = GetShdrByIndex(mEhdr->e_shstrndx);
+
+  return (BOOLEAN) (strcmp((CHAR8*)mEhdr + Namedr->sh_offset + Shdr->sh_name, ELF_HII_SECTION_NAME) == 0);
+}
+
+STATIC
+BOOLEAN
+IsDataShdr (
+  Elf_Shdr *Shdr
+  )
+{
+  if (IsHiiRsrcShdr(Shdr)) {
+    return FALSE;
+  }
+  return (BOOLEAN) (Shdr->sh_flags & (SHF_WRITE | SHF_ALLOC)) == (SHF_ALLOC | SHF_WRITE);
+}
+
+//
+// Elf functions interface implementation
+//
+
+STATIC
+VOID
+ScanSections64 (
+  VOID
+  )
+{
+  UINT32                          i;
+  EFI_IMAGE_DOS_HEADER            *DosHdr;
+  EFI_IMAGE_OPTIONAL_HEADER_UNION *NtHdr;
+  UINT32                          CoffEntry;
+
+  CoffEntry = 0;
+  mCoffOffset = 0;
+
+  //
+  // Coff file start with a DOS header.
+  //
+  mCoffOffset = sizeof(EFI_IMAGE_DOS_HEADER) + 0x40;
+  mNtHdrOffset = mCoffOffset;
+  switch (mEhdr->e_machine) {
+  case EM_X86_64:
+  case EM_IA_64:
+    mCoffOffset += sizeof (EFI_IMAGE_NT_HEADERS64);
+  break;
+  default:
+    VerboseMsg ("%s unknown e_machine type. Assume X64", (UINTN)mEhdr->e_machine);
+    mCoffOffset += sizeof (EFI_IMAGE_NT_HEADERS64);
+  break;
+  }
+
+  mTableOffset = mCoffOffset;
+  mCoffOffset += mCoffNbrSections * sizeof(EFI_IMAGE_SECTION_HEADER);
+
+  //
+  // First text sections.
+  //
+  mCoffOffset = CoffAlign(mCoffOffset);
+  mTextOffset = mCoffOffset;
+  for (i = 0; i < mEhdr->e_shnum; i++) {
+    Elf_Shdr *shdr = GetShdrByIndex(i);
+    if (IsTextShdr(shdr)) {
+      if ((shdr->sh_addralign != 0) && (shdr->sh_addralign != 1)) {
+        // the alignment field is valid
+        if ((shdr->sh_addr & (shdr->sh_addralign - 1)) == 0) {
+          // if the section address is aligned we must align PE/COFF
+          mCoffOffset = (UINT32) ((mCoffOffset + shdr->sh_addralign - 1) & ~(shdr->sh_addralign - 1));
+        } else if ((shdr->sh_addr % shdr->sh_addralign) != (mCoffOffset % shdr->sh_addralign)) {
+          // ARM RVCT tools have behavior outside of the ELF specification to try
+          // and make images smaller.  If sh_addr is not aligned to sh_addralign
+          // then the section needs to preserve sh_addr MOD sh_addralign.
+          // Normally doing nothing here works great.
+          Error (NULL, 0, 3000, "Invalid", "Unsupported section alignment.");
+        }
+      }
+
+      /* Relocate entry.  */
+      if ((mEhdr->e_entry >= shdr->sh_addr) &&
+          (mEhdr->e_entry < shdr->sh_addr + shdr->sh_size)) {
+        CoffEntry = (UINT32) (mCoffOffset + mEhdr->e_entry - shdr->sh_addr);
+      }
+      mCoffSectionsOffset[i] = mCoffOffset;
+      mCoffOffset += (UINT32) shdr->sh_size;
+    }
+  }
+
+  if (mEhdr->e_machine != EM_ARM) {
+    mCoffOffset = CoffAlign(mCoffOffset);
+  }
+
+  //
+  //  Then data sections.
+  //
+  mDataOffset = mCoffOffset;
+  for (i = 0; i < mEhdr->e_shnum; i++) {
+    Elf_Shdr *shdr = GetShdrByIndex(i);
+    if (IsDataShdr(shdr)) {
+      if ((shdr->sh_addralign != 0) && (shdr->sh_addralign != 1)) {
+        // the alignment field is valid
+        if ((shdr->sh_addr & (shdr->sh_addralign - 1)) == 0) {
+          // if the section address is aligned we must align PE/COFF
+          mCoffOffset = (UINT32) ((mCoffOffset + shdr->sh_addralign - 1) & ~(shdr->sh_addralign - 1));
+        } else if ((shdr->sh_addr % shdr->sh_addralign) != (mCoffOffset % shdr->sh_addralign)) {
+          // ARM RVCT tools have behavior outside of the ELF specification to try
+          // and make images smaller.  If sh_addr is not aligned to sh_addralign
+          // then the section needs to preserve sh_addr MOD sh_addralign.
+          // Normally doing nothing here works great.
+          Error (NULL, 0, 3000, "Invalid", "Unsupported section alignment.");
+        }
+      }
+      mCoffSectionsOffset[i] = mCoffOffset;
+      mCoffOffset += (UINT32) shdr->sh_size;
+    }
+  }
+  mCoffOffset = CoffAlign(mCoffOffset);
+
+  //
+  //  The HII resource sections.
+  //
+  mHiiRsrcOffset = mCoffOffset;
+  for (i = 0; i < mEhdr->e_shnum; i++) {
+    Elf_Shdr *shdr = GetShdrByIndex(i);
+    if (IsHiiRsrcShdr(shdr)) {
+      if ((shdr->sh_addralign != 0) && (shdr->sh_addralign != 1)) {
+        // the alignment field is valid
+        if ((shdr->sh_addr & (shdr->sh_addralign - 1)) == 0) {
+          // if the section address is aligned we must align PE/COFF
+          mCoffOffset = (UINT32) ((mCoffOffset + shdr->sh_addralign - 1) & ~(shdr->sh_addralign - 1));
+        } else if ((shdr->sh_addr % shdr->sh_addralign) != (mCoffOffset % shdr->sh_addralign)) {
+          // ARM RVCT tools have behavior outside of the ELF specification to try
+          // and make images smaller.  If sh_addr is not aligned to sh_addralign
+          // then the section needs to preserve sh_addr MOD sh_addralign.
+          // Normally doing nothing here works great.
+          Error (NULL, 0, 3000, "Invalid", "Unsupported section alignment.");
+        }
+      }
+      if (shdr->sh_size != 0) {
+        mCoffSectionsOffset[i] = mCoffOffset;
+        mCoffOffset += (UINT32) shdr->sh_size;
+        mCoffOffset = CoffAlign(mCoffOffset);
+        SetHiiResourceHeader ((UINT8*) mEhdr + shdr->sh_offset, mHiiRsrcOffset);
+      }
+      break;
+    }
+  }
+
+  mRelocOffset = mCoffOffset;
+
+  //
+  // Allocate base Coff file.  Will be expanded later for relocations.
+  //
+  mCoffFile = (UINT8 *)malloc(mCoffOffset);
+  memset(mCoffFile, 0, mCoffOffset);
+
+  //
+  // Fill headers.
+  //
+  DosHdr = (EFI_IMAGE_DOS_HEADER *)mCoffFile;
+  DosHdr->e_magic = EFI_IMAGE_DOS_SIGNATURE;
+  DosHdr->e_lfanew = mNtHdrOffset;
+
+  NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION*)(mCoffFile + mNtHdrOffset);
+
+  NtHdr->Pe32Plus.Signature = EFI_IMAGE_NT_SIGNATURE;
+
+  switch (mEhdr->e_machine) {
+  case EM_X86_64:
+    NtHdr->Pe32Plus.FileHeader.Machine = EFI_IMAGE_MACHINE_X64;
+    NtHdr->Pe32Plus.OptionalHeader.Magic = EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC;
+    break;
+  case EM_IA_64:
+    NtHdr->Pe32Plus.FileHeader.Machine = EFI_IMAGE_MACHINE_IPF;
+    NtHdr->Pe32Plus.OptionalHeader.Magic = EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC;
+    break;
+  default:
+    VerboseMsg ("%s unknown e_machine type. Assume X64", (UINTN)mEhdr->e_machine);
+    NtHdr->Pe32Plus.FileHeader.Machine = EFI_IMAGE_MACHINE_X64;
+    NtHdr->Pe32Plus.OptionalHeader.Magic = EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC;
+  }
+
+  NtHdr->Pe32Plus.FileHeader.NumberOfSections = mCoffNbrSections;
+  NtHdr->Pe32Plus.FileHeader.TimeDateStamp = (UINT32) time(NULL);
+  mImageTimeStamp = NtHdr->Pe32Plus.FileHeader.TimeDateStamp;
+  NtHdr->Pe32Plus.FileHeader.PointerToSymbolTable = 0;
+  NtHdr->Pe32Plus.FileHeader.NumberOfSymbols = 0;
+  NtHdr->Pe32Plus.FileHeader.SizeOfOptionalHeader = sizeof(NtHdr->Pe32Plus.OptionalHeader);
+  NtHdr->Pe32Plus.FileHeader.Characteristics = EFI_IMAGE_FILE_EXECUTABLE_IMAGE
+    | EFI_IMAGE_FILE_LINE_NUMS_STRIPPED
+    | EFI_IMAGE_FILE_LOCAL_SYMS_STRIPPED
+    | EFI_IMAGE_FILE_LARGE_ADDRESS_AWARE;
+
+  NtHdr->Pe32Plus.OptionalHeader.SizeOfCode = mDataOffset - mTextOffset;
+  NtHdr->Pe32Plus.OptionalHeader.SizeOfInitializedData = mRelocOffset - mDataOffset;
+  NtHdr->Pe32Plus.OptionalHeader.SizeOfUninitializedData = 0;
+  NtHdr->Pe32Plus.OptionalHeader.AddressOfEntryPoint = CoffEntry;
+
+  NtHdr->Pe32Plus.OptionalHeader.BaseOfCode = mTextOffset;
+
+  NtHdr->Pe32Plus.OptionalHeader.ImageBase = 0;
+  NtHdr->Pe32Plus.OptionalHeader.SectionAlignment = mCoffAlignment;
+  NtHdr->Pe32Plus.OptionalHeader.FileAlignment = mCoffAlignment;
+  NtHdr->Pe32Plus.OptionalHeader.SizeOfImage = 0;
+
+  NtHdr->Pe32Plus.OptionalHeader.SizeOfHeaders = mTextOffset;
+  NtHdr->Pe32Plus.OptionalHeader.NumberOfRvaAndSizes = EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES;
+
+  //
+  // Section headers.
+  //
+  if ((mDataOffset - mTextOffset) > 0) {
+    CreateSectionHeader (".text", mTextOffset, mDataOffset - mTextOffset,
+            EFI_IMAGE_SCN_CNT_CODE
+            | EFI_IMAGE_SCN_MEM_EXECUTE
+            | EFI_IMAGE_SCN_MEM_READ);
+  } else {
+    // Don't make a section of size 0.
+    NtHdr->Pe32Plus.FileHeader.NumberOfSections--;
+  }
+
+  if ((mHiiRsrcOffset - mDataOffset) > 0) {
+    CreateSectionHeader (".data", mDataOffset, mHiiRsrcOffset - mDataOffset,
+            EFI_IMAGE_SCN_CNT_INITIALIZED_DATA
+            | EFI_IMAGE_SCN_MEM_WRITE
+            | EFI_IMAGE_SCN_MEM_READ);
+  } else {
+    // Don't make a section of size 0.
+    NtHdr->Pe32Plus.FileHeader.NumberOfSections--;
+  }
+
+  if ((mRelocOffset - mHiiRsrcOffset) > 0) {
+    CreateSectionHeader (".rsrc", mHiiRsrcOffset, mRelocOffset - mHiiRsrcOffset,
+            EFI_IMAGE_SCN_CNT_INITIALIZED_DATA
+            | EFI_IMAGE_SCN_MEM_READ);
+
+    NtHdr->Pe32Plus.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_RESOURCE].Size = mRelocOffset - mHiiRsrcOffset;
+    NtHdr->Pe32Plus.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_RESOURCE].VirtualAddress = mHiiRsrcOffset;
+  } else {
+    // Don't make a section of size 0.
+    NtHdr->Pe32Plus.FileHeader.NumberOfSections--;
+  }
+
+}
+
+STATIC
+BOOLEAN
+WriteSections64 (
+  SECTION_FILTER_TYPES  FilterType
+  )
+{
+  UINT32      Idx;
+  Elf_Shdr    *SecShdr;
+  UINT32      SecOffset;
+  BOOLEAN     (*Filter)(Elf_Shdr *);
+
+  //
+  // Initialize filter pointer
+  //
+  switch (FilterType) {
+    case SECTION_TEXT:
+      Filter = IsTextShdr;
+      break;
+    case SECTION_HII:
+      Filter = IsHiiRsrcShdr;
+      break;
+    case SECTION_DATA:
+      Filter = IsDataShdr;
+      break;
+    default:
+      return FALSE;
+  }
+
+  //
+  // First: copy sections.
+  //
+  for (Idx = 0; Idx < mEhdr->e_shnum; Idx++) {
+    Elf_Shdr *Shdr = GetShdrByIndex(Idx);
+    if ((*Filter)(Shdr)) {
+      switch (Shdr->sh_type) {
+      case SHT_PROGBITS:
+        /* Copy.  */
+        memcpy(mCoffFile + mCoffSectionsOffset[Idx],
+              (UINT8*)mEhdr + Shdr->sh_offset,
+              (size_t) Shdr->sh_size);
+        break;
+
+      case SHT_NOBITS:
+        memset(mCoffFile + mCoffSectionsOffset[Idx], 0, (size_t) Shdr->sh_size);
+        break;
+
+      default:
+        //
+        //  Ignore for unkown section type.
+        //
+        VerboseMsg ("%s unknown section type %x. We directly copy this section into Coff file", mInImageName, (unsigned)Shdr->sh_type);
+        break;
+      }
+    }
+  }
+
+  //
+  // Second: apply relocations.
+  //
+  VerboseMsg ("Applying Relocations...");
+  for (Idx = 0; Idx < mEhdr->e_shnum; Idx++) {
+    Elf_Shdr *RelShdr = GetShdrByIndex(Idx);
+    if ((RelShdr->sh_type != SHT_REL) && (RelShdr->sh_type != SHT_RELA)) {
+      continue;
+    }
+    SecShdr = GetShdrByIndex(RelShdr->sh_info);
+    SecOffset = mCoffSectionsOffset[RelShdr->sh_info];
+    if (RelShdr->sh_type == SHT_RELA && (*Filter)(SecShdr)) {
+      UINT64 RelIdx;
+      Elf_Shdr *SymtabShdr = GetShdrByIndex(RelShdr->sh_link);
+      UINT8 *Symtab = (UINT8*)mEhdr + SymtabShdr->sh_offset;
+      for (RelIdx = 0; RelIdx < RelShdr->sh_size; RelIdx += (UINT32) RelShdr->sh_entsize) {
+        Elf_Rela *Rel = (Elf_Rela *)((UINT8*)mEhdr + RelShdr->sh_offset + RelIdx);
+        Elf_Sym  *Sym = (Elf_Sym *)(Symtab + ELF_R_SYM(Rel->r_info) * SymtabShdr->sh_entsize);
+        Elf_Shdr *SymShdr;
+        UINT8    *Targ;
+
+        if (Sym->st_shndx == SHN_UNDEF
+            || Sym->st_shndx == SHN_ABS
+            || Sym->st_shndx > mEhdr->e_shnum) {
+          Error (NULL, 0, 3000, "Invalid", "%s bad symbol definition.", mInImageName);
+        }
+        SymShdr = GetShdrByIndex(Sym->st_shndx);
+
+        //
+        // Note: r_offset in a memory address.
+        //  Convert it to a pointer in the coff file.
+        //
+        Targ = mCoffFile + SecOffset + (Rel->r_offset - SecShdr->sh_addr);
+
+        if (mEhdr->e_machine == EM_X86_64) {
+          switch (ELF_R_TYPE(Rel->r_info)) {
+          case R_X86_64_NONE:
+            break;
+          case R_X86_64_64:
+            //
+            // Absolute relocation.
+            //
+            VerboseMsg ("R_X86_64_64");
+            VerboseMsg ("Offset: 0x%08X, Addend: 0x%016LX", 
+              (UINT32)(SecOffset + (Rel->r_offset - SecShdr->sh_addr)), 
+              *(UINT64 *)Targ);
+            *(UINT64 *)Targ = *(UINT64 *)Targ - SymShdr->sh_addr + mCoffSectionsOffset[Sym->st_shndx];
+            VerboseMsg ("Relocation:  0x%016LX", *(UINT64*)Targ);
+            break;
+          case R_X86_64_32:
+            VerboseMsg ("R_X86_64_32");
+            VerboseMsg ("Offset: 0x%08X, Addend: 0x%08X", 
+              (UINT32)(SecOffset + (Rel->r_offset - SecShdr->sh_addr)), 
+              *(UINT32 *)Targ);
+            *(UINT32 *)Targ = (UINT32)((UINT64)(*(UINT32 *)Targ) - SymShdr->sh_addr + mCoffSectionsOffset[Sym->st_shndx]);
+            VerboseMsg ("Relocation:  0x%08X", *(UINT32*)Targ);
+            break;
+          case R_X86_64_32S:
+            VerboseMsg ("R_X86_64_32S");
+            VerboseMsg ("Offset: 0x%08X, Addend: 0x%08X", 
+              (UINT32)(SecOffset + (Rel->r_offset - SecShdr->sh_addr)), 
+              *(UINT32 *)Targ);
+            *(INT32 *)Targ = (INT32)((INT64)(*(INT32 *)Targ) - SymShdr->sh_addr + mCoffSectionsOffset[Sym->st_shndx]);
+            VerboseMsg ("Relocation:  0x%08X", *(UINT32*)Targ);
+            break;
+          case R_X86_64_PC32:
+            //
+            // Relative relocation: Symbol - Ip + Addend
+            //
+            VerboseMsg ("R_X86_64_PC32");
+            VerboseMsg ("Offset: 0x%08X, Addend: 0x%08X", 
+              (UINT32)(SecOffset + (Rel->r_offset - SecShdr->sh_addr)), 
+              *(UINT32 *)Targ);
+            *(UINT32 *)Targ = (UINT32) (*(UINT32 *)Targ
+              + (mCoffSectionsOffset[Sym->st_shndx] - SymShdr->sh_addr)
+              - (SecOffset - SecShdr->sh_addr));
+            VerboseMsg ("Relocation:  0x%08X", *(UINT32 *)Targ);
+            break;
+          default:
+            Error (NULL, 0, 3000, "Invalid", "%s unsupported ELF EM_X86_64 relocation 0x%x.", mInImageName, (unsigned) ELF_R_TYPE(Rel->r_info));
+          }
+        } else {
+          Error (NULL, 0, 3000, "Invalid", "Not EM_X86_X64");
+        }
+      }
+    }
+  }
+
+  return TRUE;
+}
+
+STATIC
+VOID
+WriteRelocations64 (
+  VOID
+  )
+{
+  UINT32                           Index;
+  EFI_IMAGE_OPTIONAL_HEADER_UNION  *NtHdr;
+  EFI_IMAGE_DATA_DIRECTORY         *Dir;
+  BOOLEAN                          FoundRelocations;
+  Elf_Sym                          *Sym;
+  Elf_Shdr                         *SymtabShdr;
+  UINT8                            *Symtab;
+
+
+  for (Index = 0, FoundRelocations = FALSE; Index < mEhdr->e_shnum; Index++) {
+    Elf_Shdr *RelShdr = GetShdrByIndex(Index);
+    if ((RelShdr->sh_type == SHT_REL) || (RelShdr->sh_type == SHT_RELA)) {
+      Elf_Shdr *SecShdr = GetShdrByIndex (RelShdr->sh_info);
+      if (IsTextShdr(SecShdr) || IsDataShdr(SecShdr)) {
+        UINT64 RelIdx;
+
+        SymtabShdr = GetShdrByIndex (RelShdr->sh_link);
+        Symtab = (UINT8*)mEhdr + SymtabShdr->sh_offset;
+        FoundRelocations = TRUE;
+        for (RelIdx = 0; RelIdx < RelShdr->sh_size; RelIdx += RelShdr->sh_entsize) {
+          Elf_Rela *Rel = (Elf_Rela *)((UINT8*)mEhdr + RelShdr->sh_offset + RelIdx);
+          Elf_Shdr *SymShdr;
+
+          Sym = (Elf_Sym *)(Symtab + ELF_R_SYM(Rel->r_info) * SymtabShdr->sh_entsize);
+          SymShdr = GetShdrByIndex (Sym->st_shndx);
+
+          if (mEhdr->e_machine == EM_X86_64) {
+            switch (ELF_R_TYPE(Rel->r_info)) {
+            case R_X86_64_NONE:
+            case R_X86_64_PC32:
+              break;
+            case R_X86_64_64:
+              VerboseMsg ("EFI_IMAGE_REL_BASED_DIR64 Offset: 0x%08X", 
+                mCoffSectionsOffset[RelShdr->sh_info] + (Rel->r_offset - SecShdr->sh_addr));
+              CoffAddFixup(
+                (UINT32) ((UINT64) mCoffSectionsOffset[RelShdr->sh_info]
+                + (Rel->r_offset - SecShdr->sh_addr)),
+                EFI_IMAGE_REL_BASED_DIR64);
+              break;
+            case R_X86_64_32S:
+            case R_X86_64_32:
+              VerboseMsg ("EFI_IMAGE_REL_BASED_HIGHLOW Offset: 0x%08X", 
+                mCoffSectionsOffset[RelShdr->sh_info] + (Rel->r_offset - SecShdr->sh_addr));
+              CoffAddFixup(
+                (UINT32) ((UINT64) mCoffSectionsOffset[RelShdr->sh_info]
+                + (Rel->r_offset - SecShdr->sh_addr)),
+                EFI_IMAGE_REL_BASED_HIGHLOW);
+              break;
+            default:
+              Error (NULL, 0, 3000, "Invalid", "%s unsupported ELF EM_X86_64 relocation 0x%x.", mInImageName, (unsigned) ELF_R_TYPE(Rel->r_info));
+            }
+          } else {
+            Error (NULL, 0, 3000, "Not Supported", "This tool does not support relocations for ELF with e_machine %u (processor type).", (unsigned) mEhdr->e_machine);
+          }
+        }
+      }
+    }
+  }
+
+  //
+  // Pad by adding empty entries.
+  //
+  while (mCoffOffset & (mCoffAlignment - 1)) {
+    CoffAddFixupEntry(0);
+  }
+
+  NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(mCoffFile + mNtHdrOffset);
+  Dir = &NtHdr->Pe32Plus.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_BASERELOC];
+  Dir->Size = mCoffOffset - mRelocOffset;
+  if (Dir->Size == 0) {
+    // If no relocations, null out the directory entry and don't add the .reloc section
+    Dir->VirtualAddress = 0;
+    NtHdr->Pe32Plus.FileHeader.NumberOfSections--;
+  } else {
+    Dir->VirtualAddress = mRelocOffset;
+    CreateSectionHeader (".reloc", mRelocOffset, mCoffOffset - mRelocOffset,
+            EFI_IMAGE_SCN_CNT_INITIALIZED_DATA
+            | EFI_IMAGE_SCN_MEM_DISCARDABLE
+            | EFI_IMAGE_SCN_MEM_READ);
+  }
+}
+
+STATIC
+VOID
+WriteDebug64 (
+  VOID
+  )
+{
+  UINT32                              Len;
+  UINT32                              DebugOffset;
+  EFI_IMAGE_OPTIONAL_HEADER_UNION     *NtHdr;
+  EFI_IMAGE_DATA_DIRECTORY            *DataDir;
+  EFI_IMAGE_DEBUG_DIRECTORY_ENTRY     *Dir;
+  EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY *Nb10;
+
+  Len = strlen(mInImageName) + 1;
+  DebugOffset = mCoffOffset;
+
+  mCoffOffset += sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY)
+    + sizeof(EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY)
+    + Len;
+  mCoffOffset = CoffAlign(mCoffOffset);
+
+  mCoffFile = realloc(mCoffFile, mCoffOffset);
+  memset(mCoffFile + DebugOffset, 0, mCoffOffset - DebugOffset);
+
+  Dir = (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY*)(mCoffFile + DebugOffset);
+  Dir->Type = EFI_IMAGE_DEBUG_TYPE_CODEVIEW;
+  Dir->SizeOfData = sizeof(EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY) + Len;
+  Dir->RVA = DebugOffset + sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY);
+  Dir->FileOffset = DebugOffset + sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY);
+
+  Nb10 = (EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY*)(Dir + 1);
+  Nb10->Signature = CODEVIEW_SIGNATURE_NB10;
+  strcpy ((char *)(Nb10 + 1), mInImageName);
+
+
+  NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(mCoffFile + mNtHdrOffset);
+  DataDir = &NtHdr->Pe32Plus.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_DEBUG];
+  DataDir->VirtualAddress = DebugOffset;
+  DataDir->Size = mCoffOffset - DebugOffset;
+  if (DataDir->Size == 0) {
+    // If no debug, null out the directory entry and don't add the .debug section
+    DataDir->VirtualAddress = 0;
+    NtHdr->Pe32Plus.FileHeader.NumberOfSections--;
+  } else {
+    DataDir->VirtualAddress = DebugOffset;
+    CreateSectionHeader (".debug", DebugOffset, mCoffOffset - DebugOffset,
+            EFI_IMAGE_SCN_CNT_INITIALIZED_DATA
+            | EFI_IMAGE_SCN_MEM_DISCARDABLE
+            | EFI_IMAGE_SCN_MEM_READ);
+
+  }
+}
+
+STATIC
+VOID
+SetImageSize64 (
+  VOID
+  )
+{
+  EFI_IMAGE_OPTIONAL_HEADER_UNION *NtHdr;
+
+  //
+  // Set image size
+  //
+  NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(mCoffFile + mNtHdrOffset);
+  NtHdr->Pe32Plus.OptionalHeader.SizeOfImage = mCoffOffset;
+}
+
+STATIC
+VOID
+CleanUp64 (
+  VOID
+  )
+{
+  if (mCoffSectionsOffset != NULL) {
+    free (mCoffSectionsOffset);
+  }
+}
+
+
diff --git a/BaseTools/Source/C/GenFw/Elf64Convert.h b/BaseTools/Source/C/GenFw/Elf64Convert.h
new file mode 100644 (file)
index 0000000..1fb95a8
--- /dev/null
@@ -0,0 +1,24 @@
+/** @file
+
+Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+
+This program and the accompanying materials are licensed and made available 
+under the terms and conditions of the BSD License which accompanies this 
+distribution.  The full text of the license may be found at 
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#ifndef _ELF_64_CONVERT_
+#define _ELF_64_CONVERT_
+
+BOOLEAN
+InitializeElf64 (
+  UINT8               *FileBuffer,
+  ELF_FUNCTION_TABLE  *ElfFunctions
+  );
+
+#endif
diff --git a/BaseTools/Source/C/GenFw/ElfConvert.c b/BaseTools/Source/C/GenFw/ElfConvert.c
new file mode 100644 (file)
index 0000000..135fa90
--- /dev/null
@@ -0,0 +1,233 @@
+/** @file
+
+Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+
+This program and the accompanying materials are licensed and made available 
+under the terms and conditions of the BSD License which accompanies this 
+distribution.  The full text of the license may be found at 
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#include "WinNtInclude.h"
+
+#ifndef __GNUC__
+#include <windows.h>
+#include <io.h>
+#endif
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <ctype.h>
+
+#include <Common/UefiBaseTypes.h>
+#include <IndustryStandard/PeImage.h>
+
+#include "EfiUtilityMsgs.h"
+
+#include "GenFw.h"
+#include "ElfConvert.h"
+#include "Elf32Convert.h"
+#include "Elf64Convert.h"
+
+//
+// Result Coff file in memory.
+//
+UINT8 *mCoffFile = NULL;
+
+//
+// COFF relocation data
+//
+EFI_IMAGE_BASE_RELOCATION *mCoffBaseRel;
+UINT16                    *mCoffEntryRel;
+
+//
+// Current offset in coff file.
+//
+UINT32 mCoffOffset;
+
+//
+// Offset in Coff file of headers and sections.
+//
+UINT32 mTableOffset;
+
+//
+//*****************************************************************************
+// Common ELF Functions
+//*****************************************************************************
+//
+
+VOID
+CoffAddFixupEntry(
+  UINT16 Val
+  )
+{
+  *mCoffEntryRel = Val;
+  mCoffEntryRel++;
+  mCoffBaseRel->SizeOfBlock += 2;
+  mCoffOffset += 2;
+}
+
+VOID
+CoffAddFixup(
+  UINT32 Offset,
+  UINT8  Type
+  )
+{
+  if (mCoffBaseRel == NULL
+      || mCoffBaseRel->VirtualAddress != (Offset & ~0xfff)) {
+    if (mCoffBaseRel != NULL) {
+      //
+      // Add a null entry (is it required ?)
+      //
+      CoffAddFixupEntry (0);
+      
+      //
+      // Pad for alignment.
+      //
+      if (mCoffOffset % 4 != 0)
+        CoffAddFixupEntry (0);
+    }
+
+    mCoffFile = realloc (
+      mCoffFile,
+      mCoffOffset + sizeof(EFI_IMAGE_BASE_RELOCATION) + 2*0x1000
+      );
+    memset (
+      mCoffFile + mCoffOffset, 0,
+      sizeof(EFI_IMAGE_BASE_RELOCATION) + 2*0x1000
+      );
+
+    mCoffBaseRel = (EFI_IMAGE_BASE_RELOCATION*)(mCoffFile + mCoffOffset);
+    mCoffBaseRel->VirtualAddress = Offset & ~0xfff;
+    mCoffBaseRel->SizeOfBlock = sizeof(EFI_IMAGE_BASE_RELOCATION);
+
+    mCoffEntryRel = (UINT16 *)(mCoffBaseRel + 1);
+    mCoffOffset += sizeof(EFI_IMAGE_BASE_RELOCATION);
+  }
+
+  //
+  // Fill the entry.
+  //
+  CoffAddFixupEntry((UINT16) ((Type << 12) | (Offset & 0xfff)));
+}
+
+VOID
+CreateSectionHeader (
+  const CHAR8 *Name,
+  UINT32      Offset,
+  UINT32      Size,
+  UINT32      Flags
+  )
+{
+  EFI_IMAGE_SECTION_HEADER *Hdr;
+  Hdr = (EFI_IMAGE_SECTION_HEADER*)(mCoffFile + mTableOffset);
+
+  strcpy((char *)Hdr->Name, Name);
+  Hdr->Misc.VirtualSize = Size;
+  Hdr->VirtualAddress = Offset;
+  Hdr->SizeOfRawData = Size;
+  Hdr->PointerToRawData = Offset;
+  Hdr->PointerToRelocations = 0;
+  Hdr->PointerToLinenumbers = 0;
+  Hdr->NumberOfRelocations = 0;
+  Hdr->NumberOfLinenumbers = 0;
+  Hdr->Characteristics = Flags;
+
+  mTableOffset += sizeof (EFI_IMAGE_SECTION_HEADER);
+}
+
+//
+//*****************************************************************************
+// Functions called from GenFw main code.
+//*****************************************************************************
+//
+
+INTN
+IsElfHeader (
+  UINT8  *FileBuffer
+)
+{
+  return (FileBuffer[EI_MAG0] == ELFMAG0 && 
+          FileBuffer[EI_MAG1] == ELFMAG1 &&
+          FileBuffer[EI_MAG2] == ELFMAG2 &&
+          FileBuffer[EI_MAG3] == ELFMAG3);
+}
+
+BOOLEAN
+ConvertElf (
+  UINT8  **FileBuffer,
+  UINT32 *FileLength
+  )
+{
+  ELF_FUNCTION_TABLE              ElfFunctions;
+  UINT8                           EiClass;
+
+  //
+  // Determine ELF type and set function table pointer correctly.
+  //
+  VerboseMsg ("Check Efl Image Header");
+  EiClass = (*FileBuffer)[EI_CLASS];
+  if (EiClass == ELFCLASS32) {
+    if (!InitializeElf32 (*FileBuffer, &ElfFunctions)) {
+      return FALSE;
+    }
+  } else if (EiClass == ELFCLASS64) {
+    if (!InitializeElf64 (*FileBuffer, &ElfFunctions)) {
+      return FALSE;
+    }
+  } else {
+    Error (NULL, 0, 3000, "Unsupported", "ELF EI_CLASS not supported.");
+    return FALSE;
+  }
+
+  //
+  // Compute sections new address.
+  //  
+  VerboseMsg ("Compute sections new address.");
+  ElfFunctions.ScanSections ();
+
+  //
+  // Write and relocate sections.
+  //
+  VerboseMsg ("Write and relocate sections.");
+  ElfFunctions.WriteSections (SECTION_TEXT);
+  ElfFunctions.WriteSections (SECTION_DATA);
+  ElfFunctions.WriteSections (SECTION_HII);
+
+  //
+  // Translate and write relocations.
+  //
+  VerboseMsg ("Translate and write relocations.");
+  ElfFunctions.WriteRelocations ();
+
+  //
+  // Write debug info.
+  //
+  VerboseMsg ("Write debug info.");
+  ElfFunctions.WriteDebug ();
+
+  //
+  // Make sure image size is correct before returning the new image.
+  //
+  VerboseMsg ("Set image size.");
+  ElfFunctions.SetImageSize ();
+
+  //
+  // Replace.
+  //
+  free (*FileBuffer);
+  *FileBuffer = mCoffFile;
+  *FileLength = mCoffOffset;
+
+  //
+  // Free resources used by ELF functions.
+  //
+  ElfFunctions.CleanUp ();
+  
+  return TRUE;
+}
diff --git a/BaseTools/Source/C/GenFw/ElfConvert.h b/BaseTools/Source/C/GenFw/ElfConvert.h
new file mode 100644 (file)
index 0000000..edd9d52
--- /dev/null
@@ -0,0 +1,82 @@
+/** @file
+
+Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+
+This program and the accompanying materials are licensed and made available 
+under the terms and conditions of the BSD License which accompanies this 
+distribution.  The full text of the license may be found at 
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#ifndef _ELF_CONVERT_H_
+#define _ELF_CONVERT_H_
+
+#include "elf_common.h"
+#include "elf32.h"
+#include "elf64.h"
+
+//
+// Externally defined variables
+//
+extern UINT32 mCoffOffset;
+extern CHAR8  *mInImageName;
+extern UINT32 mImageTimeStamp;
+extern UINT8  *mCoffFile;
+extern UINT32 mTableOffset;
+
+//
+// Common EFI specific data.
+//
+#define ELF_HII_SECTION_NAME ".hii"
+
+//
+// Filter Types
+//
+typedef enum {
+  SECTION_TEXT,
+  SECTION_HII,
+  SECTION_DATA
+  
+} SECTION_FILTER_TYPES;
+
+//
+// FunctionTalbe
+//
+typedef struct {
+  VOID    (*ScanSections) ();
+  BOOLEAN (*WriteSections) (SECTION_FILTER_TYPES  FilterType);
+  VOID    (*WriteRelocations) ();
+  VOID    (*WriteDebug) ();
+  VOID    (*SetImageSize) ();
+  VOID    (*CleanUp) ();
+  
+} ELF_FUNCTION_TABLE;
+
+//
+// Common functions
+//
+VOID
+CoffAddFixup (
+  UINT32 Offset,
+  UINT8  Type
+  );
+
+VOID
+CoffAddFixupEntry (
+  UINT16 Val
+  );
+
+
+VOID
+CreateSectionHeader (
+  const CHAR8 *Name,
+  UINT32      Offset,
+  UINT32      Size,
+  UINT32      Flags
+  );
+
+#endif
index 25228eb5bb32171254c62b0652c8eb9cbbba3c42..2a0f058b86f8c0b7202e8b356671139932a8d267 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'GenFw' module build.\r
 #\r
-# Copyright (c) 2009 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
@@ -15,7 +15,7 @@ MAKEROOT ?= ..
 \r
 APPNAME = GenFw\r
 \r
-OBJECTS = GenFw.o\r
+OBJECTS = GenFw.o ElfConvert.o Elf32Convert.o Elf64Convert.o\r
 \r
 include $(MAKEROOT)/Makefiles/app.makefile\r
 \r
index ee02f851204a06e3ea02e2fba3bcf7e9488ed3d7..e41fe6e82ba78091124d654f7ad1d6ba104f822b 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2010, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
 http://opensource.org/licenses/bsd-license.php\r
@@ -51,10 +51,7 @@ Abstract:
 #include "ParseInf.h"\r
 #include "EfiUtilityMsgs.h"\r
 \r
-#include "elf_common.h"\r
-#include "elf32.h"\r
-#include "elf64.h"\r
-\r
+#include "GenFw.h"\r
 \r
 //\r
 // Version of this utility\r
@@ -68,22 +65,22 @@ Abstract:
 //\r
 // Action for this tool.\r
 //\r
-#define FW_DUMMY_IMAGE       0\r
-#define FW_EFI_IMAGE         1\r
-#define FW_TE_IMAGE          2\r
-#define FW_ACPI_IMAGE        3\r
-#define FW_BIN_IMAGE         4\r
-#define FW_ZERO_DEBUG_IMAGE  5\r
-#define FW_SET_STAMP_IMAGE   6\r
-#define FW_MCI_IMAGE         7\r
-#define FW_MERGE_IMAGE       8\r
-#define FW_RELOC_STRIPEED_IMAGE 9\r
-#define FW_HII_PACKAGE_LIST_RCIMAGE 10\r
-#define FW_HII_PACKAGE_LIST_BINIMAGE 11\r
-#define FW_REBASE_IMAGE      12\r
-#define FW_SET_ADDRESS_IMAGE 13\r
-\r
-#define DUMP_TE_HEADER       0x11\r
+#define FW_DUMMY_IMAGE                0\r
+#define FW_EFI_IMAGE                  1\r
+#define FW_TE_IMAGE                   2\r
+#define FW_ACPI_IMAGE                 3\r
+#define FW_BIN_IMAGE                  4\r
+#define FW_ZERO_DEBUG_IMAGE           5\r
+#define FW_SET_STAMP_IMAGE            6\r
+#define FW_MCI_IMAGE                  7\r
+#define FW_MERGE_IMAGE                8\r
+#define FW_RELOC_STRIPEED_IMAGE       9\r
+#define FW_HII_PACKAGE_LIST_RCIMAGE   10\r
+#define FW_HII_PACKAGE_LIST_BINIMAGE  11\r
+#define FW_REBASE_IMAGE               12\r
+#define FW_SET_ADDRESS_IMAGE          13\r
+\r
+#define DUMP_TE_HEADER  0x11\r
 \r
 #define DEFAULT_MC_PAD_BYTE_VALUE  0xFF\r
 #define DEFAULT_MC_ALIGNMENT       16\r
@@ -92,7 +89,7 @@ Abstract:
 #define _MAX_PATH 500\r
 #endif\r
 \r
-#define STATUS_IGNORE        0xA\r
+#define STATUS_IGNORE 0xA\r
 //\r
 // Structure definition for a microcode header\r
 //\r
@@ -118,13 +115,13 @@ static const char *gHiiPackageRCFileHeader[] = {
   NULL\r
 };\r
 \r
-STATIC CHAR8 *mInImageName;\r
-\r
 //\r
 // Module image information\r
 //\r
-STATIC UINT32 mImageTimeStamp = 0;\r
-STATIC UINT32 mImageSize = 0;\r
+CHAR8  *mInImageName;\r
+UINT32 mImageTimeStamp = 0;\r
+UINT32 mImageSize = 0;\r
+\r
 \r
 STATIC\r
 EFI_STATUS\r
@@ -472,186 +469,6 @@ Returns:
   return STATUS_SUCCESS;\r
 }\r
 \r
-\r
-INTN\r
-IsElfHeader(\r
-  UINT8  *FileBuffer\r
-)\r
-{\r
-  return (FileBuffer[EI_MAG0] == ELFMAG0\r
-    && FileBuffer[EI_MAG1] == ELFMAG1\r
-    && FileBuffer[EI_MAG2] == ELFMAG2\r
-    && FileBuffer[EI_MAG3] == ELFMAG3);\r
-}\r
-\r
-typedef Elf32_Shdr Elf_Shdr;\r
-typedef Elf32_Ehdr Elf_Ehdr;\r
-typedef Elf32_Rel Elf_Rel;\r
-typedef Elf32_Sym Elf_Sym;\r
-typedef Elf32_Phdr Elf_Phdr;\r
-typedef Elf32_Dyn Elf_Dyn;\r
-\r
-#define ELFCLASS ELFCLASS32\r
-#define ELF_R_TYPE(r) ELF32_R_TYPE(r)\r
-#define ELF_R_SYM(r) ELF32_R_SYM(r)\r
-#define ELF_HII_SECTION_NAME ".hii"\r
-//\r
-// Well known ELF structures.\r
-//\r
-Elf_Ehdr *Ehdr;\r
-Elf_Shdr *ShdrBase;\r
-Elf_Phdr *gPhdrBase;\r
-\r
-//\r
-// PE section alignment.\r
-//\r
-const UINT32 CoffAlignment = 0x20;\r
-const UINT16 CoffNbrSections = 5;\r
-\r
-//\r
-// Current offset in coff file.\r
-//\r
-UINT32 CoffOffset;\r
-\r
-//\r
-// Result Coff file in memory.\r
-//\r
-UINT8 *CoffFile = NULL;\r
-//\r
-// ELF sections to offset in Coff file.\r
-//\r
-UINT32 *CoffSectionsOffset = NULL;\r
-\r
-//\r
-// Offset in Coff file of headers and sections.\r
-//\r
-UINT32 NtHdrOffset;\r
-UINT32 TableOffset;\r
-UINT32 TextOffset;\r
-UINT32 DataOffset;\r
-UINT32 HiiRsrcOffset;\r
-UINT32 RelocOffset;\r
-\r
-EFI_IMAGE_BASE_RELOCATION *CoffBaseRel;\r
-UINT16 *CoffEntryRel;\r
-\r
-UINT32\r
-CoffAlign(\r
-  UINT32 Offset\r
-  )\r
-{\r
-  return (Offset + CoffAlignment - 1) & ~(CoffAlignment - 1);\r
-}\r
-\r
-Elf_Shdr *\r
-GetShdrByIndex(\r
-  UINT32 Num\r
-  )\r
-{\r
-  if (Num >= Ehdr->e_shnum)\r
-    return NULL;\r
-  return (Elf_Shdr*)((UINT8*)ShdrBase + Num * Ehdr->e_shentsize);\r
-}\r
-\r
-INTN\r
-CheckElfHeader(\r
-  VOID\r
-  )\r
-{\r
-  //\r
-  // Note: Magic has already been tested.\r
-  //\r
-  if (Ehdr->e_ident[EI_CLASS] != ELFCLASS) {\r
-    Error (NULL, 0, 3000, "Unsupported", "%s needs to be ported for 64-bit ELF.", mInImageName);\r
-    return 0;\r
-  }\r
-  if (Ehdr->e_ident[EI_DATA] != ELFDATA2LSB) {\r
-    Error (NULL, 0, 3000, "Unsupported", "ELF EI_DATA not ELFDATA2LSB");\r
-    return 0;\r
-  }\r
-  if ((Ehdr->e_type != ET_EXEC) && (Ehdr->e_type != ET_DYN)) {\r
-    Error (NULL, 0, 3000, "Unsupported", "ELF e_type not ET_EXEC or ET_DYN");\r
-    return 0;\r
-  }\r
-  if (!((Ehdr->e_machine == EM_386) || (Ehdr->e_machine == EM_ARM))) { \r
-    Error (NULL, 0, 3000, "Unsupported", "ELF e_machine not EM_386 or EM_ARM");\r
-    return 0;\r
-  }\r
-  if (Ehdr->e_version != EV_CURRENT) {\r
-    Error (NULL, 0, 3000, "Unsupported", "ELF e_version (%u) not EV_CURRENT (%d)", (unsigned) Ehdr->e_version, EV_CURRENT);\r
-    return 0;\r
-  }\r
-\r
-  //\r
-  // Find the section header table\r
-  //\r
-  ShdrBase  = (Elf_Shdr *)((UINT8 *)Ehdr + Ehdr->e_shoff);\r
-  gPhdrBase = (Elf_Phdr *)((UINT8 *)Ehdr + Ehdr->e_phoff);\r
-\r
-  CoffSectionsOffset = (UINT32 *)malloc(Ehdr->e_shnum * sizeof (UINT32));\r
-\r
-  memset(CoffSectionsOffset, 0, Ehdr->e_shnum * sizeof(UINT32));\r
-  return 1;\r
-}\r
-\r
-int\r
-IsTextShdr(\r
-  Elf_Shdr *Shdr\r
-  )\r
-{\r
-  return (Shdr->sh_flags & (SHF_WRITE | SHF_ALLOC)) == SHF_ALLOC;\r
-}\r
-\r
-int\r
-IsHiiRsrcShdr(\r
-  Elf_Shdr *Shdr\r
-  )\r
-{\r
-  Elf_Shdr *Namedr = GetShdrByIndex(Ehdr->e_shstrndx);\r
-\r
-  if (strcmp((CHAR8*)Ehdr + Namedr->sh_offset + Shdr->sh_name, ELF_HII_SECTION_NAME) == 0) {\r
-    return 1;\r
-  }\r
-\r
-  return 0;\r
-}\r
-\r
-int\r
-IsDataShdr(\r
-  Elf_Shdr *Shdr\r
-  )\r
-{\r
-  if (IsHiiRsrcShdr(Shdr)) {\r
-    return 0;\r
-  }\r
-  return (Shdr->sh_flags & (SHF_WRITE | SHF_ALLOC)) == (SHF_ALLOC | SHF_WRITE);\r
-}\r
-\r
-VOID\r
-CreateSectionHeader(\r
-  const CHAR8 *Name,\r
-  UINT32      Offset,\r
-  UINT32      Size,\r
-  UINT32      Flags\r
-  )\r
-{\r
-  EFI_IMAGE_SECTION_HEADER *Hdr;\r
-  Hdr = (EFI_IMAGE_SECTION_HEADER*)(CoffFile + TableOffset);\r
-\r
-  strcpy((char *)Hdr->Name, Name);\r
-  Hdr->Misc.VirtualSize = Size;\r
-  Hdr->VirtualAddress = Offset;\r
-  Hdr->SizeOfRawData = Size;\r
-  Hdr->PointerToRawData = Offset;\r
-  Hdr->PointerToRelocations = 0;\r
-  Hdr->PointerToLinenumbers = 0;\r
-  Hdr->NumberOfRelocations = 0;\r
-  Hdr->NumberOfLinenumbers = 0;\r
-  Hdr->Characteristics = Flags;\r
-\r
-  TableOffset += sizeof (EFI_IMAGE_SECTION_HEADER);\r
-}\r
-\r
 VOID\r
 SetHiiResourceHeader (\r
   UINT8   *HiiBinData,\r
@@ -712,708 +529,6 @@ SetHiiResourceHeader (
   return;\r
 }\r
 \r
-VOID\r
-ScanSections(\r
-  VOID\r
-  )\r
-{\r
-  UINT32                          i;\r
-  EFI_IMAGE_DOS_HEADER            *DosHdr;\r
-  EFI_IMAGE_OPTIONAL_HEADER_UNION *NtHdr;\r
-  UINT32                          CoffEntry;\r
-\r
-  CoffEntry = 0;\r
-  CoffOffset = 0;\r
-\r
-  //\r
-  // Coff file start with a DOS header.\r
-  //\r
-  CoffOffset = sizeof(EFI_IMAGE_DOS_HEADER) + 0x40;\r
-  NtHdrOffset = CoffOffset;\r
-  switch (Ehdr->e_machine) {\r
-  case EM_386:\r
-  case EM_ARM:\r
-    CoffOffset += sizeof (EFI_IMAGE_NT_HEADERS32);\r
-       break;\r
-  case EM_X86_64:\r
-  case EM_IA_64:\r
-    CoffOffset += sizeof (EFI_IMAGE_NT_HEADERS64);\r
-       break;\r
-  default:\r
-    VerboseMsg ("%s unknown e_machine type. Assume IA-32", (UINTN)Ehdr->e_machine);\r
-    CoffOffset += sizeof (EFI_IMAGE_NT_HEADERS32);\r
-       break;\r
-  }\r
-\r
-  TableOffset = CoffOffset;\r
-  CoffOffset += CoffNbrSections * sizeof(EFI_IMAGE_SECTION_HEADER);\r
-\r
-  //\r
-  // First text sections.\r
-  //\r
-  CoffOffset = CoffAlign(CoffOffset);\r
-  TextOffset = CoffOffset;\r
-  for (i = 0; i < Ehdr->e_shnum; i++) {\r
-    Elf_Shdr *shdr = GetShdrByIndex(i);\r
-    if (IsTextShdr(shdr)) {\r
-      if ((shdr->sh_addralign != 0) && (shdr->sh_addralign != 1)) {\r
-        // the alignment field is valid\r
-        if ((shdr->sh_addr & (shdr->sh_addralign - 1)) == 0) {\r
-          // if the section address is aligned we must align PE/COFF \r
-          CoffOffset = (CoffOffset + shdr->sh_addralign - 1) & ~(shdr->sh_addralign - 1);\r
-        } else if ((shdr->sh_addr % shdr->sh_addralign) != (CoffOffset % shdr->sh_addralign)) {\r
-          // ARM RVCT tools have behavior outside of the ELF specification to try \r
-          // and make images smaller.  If sh_addr is not aligned to sh_addralign \r
-          // then the section needs to preserve sh_addr MOD sh_addralign. \r
-          // Normally doing nothing here works great.\r
-          Error (NULL, 0, 3000, "Invalid", "Unsupported section alignment.");\r
-        }\r
-      }\r
-      \r
-      /* Relocate entry.  */\r
-      if ((Ehdr->e_entry >= shdr->sh_addr) &&\r
-          (Ehdr->e_entry < shdr->sh_addr + shdr->sh_size)) {\r
-        CoffEntry = CoffOffset + Ehdr->e_entry - shdr->sh_addr;\r
-      }\r
-      CoffSectionsOffset[i] = CoffOffset;\r
-      CoffOffset += shdr->sh_size;\r
-    }\r
-  }\r
-\r
-  if (Ehdr->e_machine != EM_ARM) {\r
-    CoffOffset = CoffAlign(CoffOffset);\r
-  }\r
-\r
-  //\r
-  //  Then data sections.\r
-  //\r
-  DataOffset = CoffOffset;\r
-  for (i = 0; i < Ehdr->e_shnum; i++) {\r
-    Elf_Shdr *shdr = GetShdrByIndex(i);\r
-    if (IsDataShdr(shdr)) {\r
-      if ((shdr->sh_addralign != 0) && (shdr->sh_addralign != 1)) {\r
-        // the alignment field is valid\r
-        if ((shdr->sh_addr & (shdr->sh_addralign - 1)) == 0) {\r
-          // if the section address is aligned we must align PE/COFF \r
-          CoffOffset = (CoffOffset + shdr->sh_addralign - 1) & ~(shdr->sh_addralign - 1);\r
-        } else if ((shdr->sh_addr % shdr->sh_addralign) != (CoffOffset % shdr->sh_addralign)) {\r
-          // ARM RVCT tools have behavior outside of the ELF specification to try \r
-          // and make images smaller.  If sh_addr is not aligned to sh_addralign \r
-          // then the section needs to preserve sh_addr MOD sh_addralign. \r
-          // Normally doing nothing here works great.\r
-          Error (NULL, 0, 3000, "Invalid", "Unsupported section alignment.");\r
-        }\r
-      }\r
-      CoffSectionsOffset[i] = CoffOffset;\r
-      CoffOffset += shdr->sh_size;\r
-    }\r
-  }\r
-  CoffOffset = CoffAlign(CoffOffset);\r
-\r
-  //\r
-  //  The HII resource sections.\r
-  //\r
-  HiiRsrcOffset = CoffOffset;\r
-  for (i = 0; i < Ehdr->e_shnum; i++) {\r
-    Elf_Shdr *shdr = GetShdrByIndex(i);\r
-    if (IsHiiRsrcShdr(shdr)) {\r
-      if ((shdr->sh_addralign != 0) && (shdr->sh_addralign != 1)) {\r
-        // the alignment field is valid\r
-        if ((shdr->sh_addr & (shdr->sh_addralign - 1)) == 0) {\r
-          // if the section address is aligned we must align PE/COFF \r
-          CoffOffset = (CoffOffset + shdr->sh_addralign - 1) & ~(shdr->sh_addralign - 1);\r
-        } else if ((shdr->sh_addr % shdr->sh_addralign) != (CoffOffset % shdr->sh_addralign)) {\r
-          // ARM RVCT tools have behavior outside of the ELF specification to try \r
-          // and make images smaller.  If sh_addr is not aligned to sh_addralign \r
-          // then the section needs to preserve sh_addr MOD sh_addralign. \r
-          // Normally doing nothing here works great.\r
-          Error (NULL, 0, 3000, "Invalid", "Unsupported section alignment.");\r
-        }\r
-      }\r
-      if (shdr->sh_size != 0) {\r
-        CoffSectionsOffset[i] = CoffOffset;\r
-        CoffOffset += shdr->sh_size;\r
-        CoffOffset = CoffAlign(CoffOffset);\r
-        SetHiiResourceHeader ((UINT8*) Ehdr + shdr->sh_offset, HiiRsrcOffset);\r
-      }\r
-      break;\r
-    }\r
-  }\r
-\r
-  RelocOffset = CoffOffset;\r
-\r
-  //\r
-  // Allocate base Coff file.  Will be expanded later for relocations.\r
-  //\r
-  CoffFile = (UINT8 *)malloc(CoffOffset);\r
-  memset(CoffFile, 0, CoffOffset);\r
-\r
-  //\r
-  // Fill headers.\r
-  //\r
-  DosHdr = (EFI_IMAGE_DOS_HEADER *)CoffFile;\r
-  DosHdr->e_magic = EFI_IMAGE_DOS_SIGNATURE;\r
-  DosHdr->e_lfanew = NtHdrOffset;\r
-\r
-  NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION*)(CoffFile + NtHdrOffset);\r
-\r
-  NtHdr->Pe32.Signature = EFI_IMAGE_NT_SIGNATURE;\r
-\r
-  switch (Ehdr->e_machine) {\r
-  case EM_386:\r
-    NtHdr->Pe32.FileHeader.Machine = EFI_IMAGE_MACHINE_IA32;\r
-    NtHdr->Pe32.OptionalHeader.Magic = EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC;\r
-    break;\r
-  case EM_X86_64:\r
-    NtHdr->Pe32.FileHeader.Machine = EFI_IMAGE_MACHINE_X64;\r
-    NtHdr->Pe32.OptionalHeader.Magic = EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC;\r
-    break;\r
-  case EM_IA_64:\r
-    NtHdr->Pe32.FileHeader.Machine = EFI_IMAGE_MACHINE_IPF;\r
-    NtHdr->Pe32.OptionalHeader.Magic = EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC;\r
-    break;\r
-  case EM_ARM:\r
-    NtHdr->Pe32.FileHeader.Machine = EFI_IMAGE_MACHINE_ARMT;\r
-    NtHdr->Pe32.OptionalHeader.Magic = EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC;\r
-    break;\r
-  default:\r
-    VerboseMsg ("%s unknown e_machine type. Assume IA-32", (UINTN)Ehdr->e_machine);\r
-    NtHdr->Pe32.FileHeader.Machine = EFI_IMAGE_MACHINE_IA32;\r
-    NtHdr->Pe32.OptionalHeader.Magic = EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC;\r
-  }\r
-\r
-  NtHdr->Pe32.FileHeader.NumberOfSections = CoffNbrSections;\r
-  NtHdr->Pe32.FileHeader.TimeDateStamp = (UINT32) time(NULL);\r
-  mImageTimeStamp = NtHdr->Pe32.FileHeader.TimeDateStamp;\r
-  NtHdr->Pe32.FileHeader.PointerToSymbolTable = 0;\r
-  NtHdr->Pe32.FileHeader.NumberOfSymbols = 0;\r
-  NtHdr->Pe32.FileHeader.SizeOfOptionalHeader = sizeof(NtHdr->Pe32.OptionalHeader);\r
-  NtHdr->Pe32.FileHeader.Characteristics = EFI_IMAGE_FILE_EXECUTABLE_IMAGE\r
-    | EFI_IMAGE_FILE_LINE_NUMS_STRIPPED\r
-    | EFI_IMAGE_FILE_LOCAL_SYMS_STRIPPED\r
-    | EFI_IMAGE_FILE_32BIT_MACHINE;\r
-\r
-  NtHdr->Pe32.OptionalHeader.SizeOfCode = DataOffset - TextOffset;\r
-  NtHdr->Pe32.OptionalHeader.SizeOfInitializedData = RelocOffset - DataOffset;\r
-  NtHdr->Pe32.OptionalHeader.SizeOfUninitializedData = 0;\r
-  NtHdr->Pe32.OptionalHeader.AddressOfEntryPoint = CoffEntry;\r
-\r
-  NtHdr->Pe32.OptionalHeader.BaseOfCode = TextOffset;\r
-\r
-  NtHdr->Pe32.OptionalHeader.BaseOfData = DataOffset;\r
-  NtHdr->Pe32.OptionalHeader.ImageBase = 0;\r
-  NtHdr->Pe32.OptionalHeader.SectionAlignment = CoffAlignment;\r
-  NtHdr->Pe32.OptionalHeader.FileAlignment = CoffAlignment;\r
-  NtHdr->Pe32.OptionalHeader.SizeOfImage = 0;\r
-\r
-  NtHdr->Pe32.OptionalHeader.SizeOfHeaders = TextOffset;\r
-  NtHdr->Pe32.OptionalHeader.NumberOfRvaAndSizes = EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES;\r
-\r
-  //\r
-  // Section headers.\r
-  //\r
-  if ((DataOffset - TextOffset) > 0) {\r
-    CreateSectionHeader (".text", TextOffset, DataOffset - TextOffset,\r
-            EFI_IMAGE_SCN_CNT_CODE\r
-            | EFI_IMAGE_SCN_MEM_EXECUTE\r
-            | EFI_IMAGE_SCN_MEM_READ);\r
-  } else {\r
-    // Don't make a section of size 0. \r
-    NtHdr->Pe32.FileHeader.NumberOfSections--;\r
-  }\r
-\r
-  if ((HiiRsrcOffset - DataOffset) > 0) {\r
-    CreateSectionHeader (".data", DataOffset, HiiRsrcOffset - DataOffset,\r
-            EFI_IMAGE_SCN_CNT_INITIALIZED_DATA\r
-            | EFI_IMAGE_SCN_MEM_WRITE\r
-            | EFI_IMAGE_SCN_MEM_READ);\r
-  } else {\r
-    // Don't make a section of size 0. \r
-    NtHdr->Pe32.FileHeader.NumberOfSections--;\r
-  }\r
-\r
-  if ((RelocOffset - HiiRsrcOffset) > 0) {\r
-    CreateSectionHeader (".rsrc", HiiRsrcOffset, RelocOffset - HiiRsrcOffset,\r
-            EFI_IMAGE_SCN_CNT_INITIALIZED_DATA\r
-            | EFI_IMAGE_SCN_MEM_READ);\r
-\r
-    NtHdr->Pe32.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_RESOURCE].Size = RelocOffset - HiiRsrcOffset;\r
-    NtHdr->Pe32.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_RESOURCE].VirtualAddress = HiiRsrcOffset;\r
-  } else {\r
-    // Don't make a section of size 0. \r
-    NtHdr->Pe32.FileHeader.NumberOfSections--;\r
-  }\r
-\r
-}\r
-\r
-VOID\r
-WriteSections(\r
-  int   (*Filter)(Elf_Shdr *)\r
-  )\r
-{\r
-  UINT32      Idx;\r
-  Elf_Shdr  *SecShdr;\r
-  UINT32      SecOffset;\r
-\r
-  //\r
-  // First: copy sections.\r
-  //\r
-  for (Idx = 0; Idx < Ehdr->e_shnum; Idx++) {\r
-    Elf_Shdr *Shdr = GetShdrByIndex(Idx);\r
-    if ((*Filter)(Shdr)) {\r
-      switch (Shdr->sh_type) {\r
-      case SHT_PROGBITS:\r
-        /* Copy.  */\r
-        memcpy(CoffFile + CoffSectionsOffset[Idx],\r
-              (UINT8*)Ehdr + Shdr->sh_offset,\r
-              Shdr->sh_size);\r
-        break;\r
-      \r
-      case SHT_NOBITS:\r
-        memset(CoffFile + CoffSectionsOffset[Idx], 0, Shdr->sh_size);\r
-        break;\r
-      \r
-      default:\r
-        //\r
-        //  Ignore for unkown section type.\r
-        //\r
-        VerboseMsg ("%s unknown section type %x. We directly copy this section into Coff file", mInImageName, (unsigned)Shdr->sh_type);\r
-        break;\r
-      }\r
-    }\r
-  }\r
-\r
-  //\r
-  // Second: apply relocations.\r
-  //\r
-  for (Idx = 0; Idx < Ehdr->e_shnum; Idx++) {\r
-    Elf_Shdr *RelShdr = GetShdrByIndex(Idx);\r
-    if (RelShdr->sh_type != SHT_REL)\r
-      continue;\r
-    SecShdr = GetShdrByIndex(RelShdr->sh_info);\r
-    SecOffset = CoffSectionsOffset[RelShdr->sh_info];\r
-    if (RelShdr->sh_type == SHT_REL && (*Filter)(SecShdr)) {\r
-      UINT32 RelIdx;\r
-      Elf_Shdr *SymtabShdr = GetShdrByIndex(RelShdr->sh_link);\r
-      UINT8 *Symtab = (UINT8*)Ehdr + SymtabShdr->sh_offset;\r
-\r
-      for (RelIdx = 0; RelIdx < RelShdr->sh_size; RelIdx += RelShdr->sh_entsize) {\r
-        Elf_Rel *Rel = (Elf_Rel *)((UINT8*)Ehdr + RelShdr->sh_offset + RelIdx);\r
-        Elf_Sym *Sym = (Elf_Sym *)(Symtab + ELF_R_SYM(Rel->r_info) * SymtabShdr->sh_entsize);\r
-        Elf_Shdr *SymShdr;\r
-        UINT8 *Targ;\r
-\r
-        if (Sym->st_shndx == SHN_UNDEF\r
-            || Sym->st_shndx == SHN_ABS\r
-            || Sym->st_shndx > Ehdr->e_shnum) {\r
-          Error (NULL, 0, 3000, "Invalid", "%s bad symbol definition.", mInImageName);\r
-        }\r
-        SymShdr = GetShdrByIndex(Sym->st_shndx);\r
-\r
-        //\r
-        // Note: r_offset in a memory address.\r
-        //  Convert it to a pointer in the coff file.\r
-        //\r
-        Targ = CoffFile + SecOffset + (Rel->r_offset - SecShdr->sh_addr);\r
-\r
-        if (Ehdr->e_machine == EM_386) {\r
-          switch (ELF_R_TYPE(Rel->r_info)) {\r
-          case R_386_NONE:\r
-            break;\r
-          case R_386_32:\r
-            //\r
-            // Absolute relocation.\r
-            //\r
-            *(UINT32 *)Targ = *(UINT32 *)Targ - SymShdr->sh_addr\r
-              + CoffSectionsOffset[Sym->st_shndx];\r
-            break;\r
-          case R_386_PC32:\r
-            //\r
-            // Relative relocation: Symbol - Ip + Addend\r
-            //\r
-            *(UINT32 *)Targ = *(UINT32 *)Targ\r
-              + (CoffSectionsOffset[Sym->st_shndx] - SymShdr->sh_addr)\r
-              - (SecOffset - SecShdr->sh_addr);\r
-            break;\r
-          default:\r
-            Error (NULL, 0, 3000, "Invalid", "%s unsupported ELF EM_386 relocation 0x%x.", mInImageName, (unsigned) ELF_R_TYPE(Rel->r_info));\r
-          }\r
-        } else if (Ehdr->e_machine == EM_ARM) {\r
-          switch (ELF32_R_TYPE(Rel->r_info)) {\r
-          case R_ARM_RBASE:   // No relocation - no action required\r
-          \r
-          // Thease are all PC-relative relocations and don't require modification\r
-          case R_ARM_PC24:    \r
-          case R_ARM_XPC25:   \r
-          case R_ARM_THM_PC22:\r
-          case R_ARM_THM_JUMP19:\r
-          case R_ARM_CALL:\r
-            break;\r
-\r
-          case R_ARM_ABS32:\r
-          case R_ARM_RABS32:\r
-            //\r
-            // Absolute relocation.\r
-            //\r
-            *(UINT32 *)Targ = *(UINT32 *)Targ - SymShdr->sh_addr + CoffSectionsOffset[Sym->st_shndx];\r
-            break;\r
-          default:\r
-            Error (NULL, 0, 3000, "Invalid", "WriteSections (): %s unsupported ELF EM_ARM relocation 0x%x.", mInImageName, (unsigned) ELF32_R_TYPE(Rel->r_info));\r
-          }\r
-        }\r
-      }\r
-    }\r
-  }\r
-}\r
-\r
-VOID\r
-CoffAddFixupEntry(\r
-  UINT16 Val\r
-  )\r
-{\r
-  *CoffEntryRel = Val;\r
-  CoffEntryRel++;\r
-  CoffBaseRel->SizeOfBlock += 2;\r
-  CoffOffset += 2;\r
-}\r
-\r
-VOID\r
-CoffAddFixup(\r
-  UINT32 Offset,\r
-  UINT8  Type\r
-  )\r
-{\r
-  if (CoffBaseRel == NULL\r
-      || CoffBaseRel->VirtualAddress != (Offset & ~0xfff)) {\r
-    if (CoffBaseRel != NULL) {\r
-      //\r
-      // Add a null entry (is it required ?)\r
-      //\r
-      CoffAddFixupEntry (0);\r
-      //\r
-      // Pad for alignment.\r
-      //\r
-      if (CoffOffset % 4 != 0)\r
-        CoffAddFixupEntry (0);\r
-    }\r
-\r
-    CoffFile = realloc\r
-      (CoffFile,\r
-       CoffOffset + sizeof(EFI_IMAGE_BASE_RELOCATION) + 2*0x1000);\r
-    memset(CoffFile + CoffOffset, 0,\r
-     sizeof(EFI_IMAGE_BASE_RELOCATION) + 2*0x1000);\r
-\r
-    CoffBaseRel = (EFI_IMAGE_BASE_RELOCATION*)(CoffFile + CoffOffset);\r
-    CoffBaseRel->VirtualAddress = Offset & ~0xfff;\r
-    CoffBaseRel->SizeOfBlock = sizeof(EFI_IMAGE_BASE_RELOCATION);\r
-\r
-    CoffEntryRel = (UINT16 *)(CoffBaseRel + 1);\r
-    CoffOffset += sizeof(EFI_IMAGE_BASE_RELOCATION);\r
-  }\r
-\r
-  //\r
-  // Fill the entry.\r
-  //\r
-  CoffAddFixupEntry((UINT16) ((Type << 12) | (Offset & 0xfff)));\r
-}\r
-\r
-\r
-Elf_Phdr *\r
-GetPhdrByIndex (\r
-  UINT32 num\r
-  )\r
-{\r
-  if (num >= Ehdr->e_phnum) {\r
-    return NULL;\r
-  }\r
-  \r
-  return (Elf32_Phdr *)((UINT8*)gPhdrBase + num * Ehdr->e_phentsize);\r
-}\r
-\r
-\r
-VOID\r
-WriteRelocations (\r
-  VOID\r
-  )\r
-{\r
-  UINT32                           Index;\r
-  EFI_IMAGE_OPTIONAL_HEADER_UNION  *NtHdr;\r
-  EFI_IMAGE_DATA_DIRECTORY         *Dir;\r
-  BOOLEAN                          FoundRelocations;\r
-  Elf_Dyn                          *Dyn;\r
-  Elf_Rel                          *Rel;\r
-  UINTN                            RelElementSize;\r
-  UINTN                            RelSize;\r
-  UINTN                            RelOffset;\r
-  UINTN                            K;\r
-  UINT8                            *Targ;\r
-  Elf32_Phdr                       *DynamicSegment;\r
-  Elf32_Phdr                       *TargetSegment;\r
-\r
-  for (Index = 0, FoundRelocations = FALSE; Index < Ehdr->e_shnum; Index++) {\r
-    Elf_Shdr *RelShdr = GetShdrByIndex(Index);\r
-    if (RelShdr->sh_type == SHT_REL) {\r
-      Elf_Shdr *SecShdr = GetShdrByIndex(RelShdr->sh_info);\r
-      if (IsTextShdr(SecShdr) || IsDataShdr(SecShdr)) {\r
-        UINT32 RelIdx;\r
-        FoundRelocations = TRUE;\r
-        for (RelIdx = 0; RelIdx < RelShdr->sh_size; RelIdx += RelShdr->sh_entsize) {\r
-          Elf_Rel *Rel = (Elf_Rel *)\r
-            ((UINT8*)Ehdr + RelShdr->sh_offset + RelIdx);\r
-          \r
-          if (Ehdr->e_machine == EM_386) { \r
-            switch (ELF_R_TYPE(Rel->r_info)) {\r
-            case R_386_NONE:\r
-            case R_386_PC32:\r
-              break;\r
-            case R_386_32:\r
-              CoffAddFixup(CoffSectionsOffset[RelShdr->sh_info]\r
-              + (Rel->r_offset - SecShdr->sh_addr),\r
-              EFI_IMAGE_REL_BASED_HIGHLOW);\r
-              break;\r
-            default:\r
-              Error (NULL, 0, 3000, "Invalid", "%s unsupported ELF EM_386 relocation 0x%x.", mInImageName, (unsigned) ELF_R_TYPE(Rel->r_info));\r
-            }\r
-          } else if (Ehdr->e_machine == EM_ARM) {\r
-            switch (ELF32_R_TYPE(Rel->r_info)) {\r
-            case R_ARM_RBASE: // No relocation - no action required\r
-          \r
-            // Thease are all PC-relative relocations and don't require modification\r
-            case R_ARM_PC24:\r
-            case R_ARM_XPC25:\r
-            case R_ARM_THM_PC22:\r
-            case R_ARM_THM_JUMP19:\r
-            case R_ARM_CALL:\r
-              break;\r
-            case R_ARM_ABS32:\r
-            case R_ARM_RABS32:\r
-              CoffAddFixup (\r
-                CoffSectionsOffset[RelShdr->sh_info]\r
-                + (Rel->r_offset - SecShdr->sh_addr),\r
-                EFI_IMAGE_REL_BASED_HIGHLOW\r
-                );\r
-              break;\r
-\r
-           default:\r
-              Error (NULL, 0, 3000, "Invalid", "WriteRelocations(): %s unsupported ELF EM_ARM relocation 0x%x.", mInImageName, (unsigned) ELF32_R_TYPE(Rel->r_info));\r
-            }\r
-          } else {\r
-            Error (NULL, 0, 3000, "Not Supported", "This tool does not support relocations for ELF with e_machine %u (processor type).", (unsigned) Ehdr->e_machine);\r
-          }\r
-        }\r
-      }\r
-    }\r
-  }\r
-\r
-  if (!FoundRelocations && (Ehdr->e_machine == EM_ARM)) {\r
-    /* Try again, but look for PT_DYNAMIC instead of SHT_REL */\r
-\r
-    for (Index = 0; Index < Ehdr->e_phnum; Index++) {\r
-      RelElementSize = 0;\r
-      RelSize = 0;\r
-      RelOffset = 0;\r
-\r
-      DynamicSegment = GetPhdrByIndex (Index);\r
-\r
-      if (DynamicSegment->p_type == PT_DYNAMIC) {\r
-        Dyn = (Elf32_Dyn *) ((UINT8 *)Ehdr + DynamicSegment->p_offset);\r
-\r
-        while (Dyn->d_tag != DT_NULL) {\r
-          switch (Dyn->d_tag) {\r
-            case  DT_REL:\r
-              RelOffset = Dyn->d_un.d_val;\r
-              break;\r
-\r
-            case  DT_RELSZ:\r
-              RelSize = Dyn->d_un.d_val;\r
-              break;\r
-\r
-            case  DT_RELENT:\r
-              RelElementSize = Dyn->d_un.d_val;\r
-              break;\r
-\r
-            default:\r
-              break;\r
-          }\r
-          Dyn++;\r
-        }\r
-        if (( RelOffset == 0 ) || ( RelSize == 0 ) || ( RelElementSize == 0 )) {\r
-          Error (NULL, 0, 3000, "Invalid", "%s bad ARM dynamic relocations.", mInImageName);\r
-        }\r
-\r
-        for (K = 0; K < RelSize; K += RelElementSize) {\r
-\r
-          if (DynamicSegment->p_paddr == 0) {\r
-            // This seems to be how it works on armcc???? Have the email in to find out?\r
-            Rel = (Elf32_Rel *) ((UINT8 *) Ehdr + DynamicSegment->p_offset + RelOffset + K);\r
-          } else {\r
-            // This is how it reads in the ELF specification\r
-            Rel = (Elf32_Rel *) ((UINT8 *) Ehdr + RelOffset + K);\r
-          }\r
-\r
-          switch (ELF32_R_TYPE (Rel->r_info)) {\r
-          case  R_ARM_RBASE:\r
-            break;\r
-          case  R_ARM_RABS32:\r
-            TargetSegment = GetPhdrByIndex (ELF32_R_SYM (Rel->r_info) - 1);\r
-\r
-            // Note: r_offset in a memory address.  Convert it to a pointer in the coff file.\r
-            Targ = CoffFile + CoffSectionsOffset[ ELF32_R_SYM( Rel->r_info ) ] + Rel->r_offset - TargetSegment->p_vaddr;\r
-\r
-            *(UINT32 *)Targ = *(UINT32 *)Targ + CoffSectionsOffset [ELF32_R_SYM( Rel->r_info )];\r
-\r
-            CoffAddFixup (CoffSectionsOffset[ELF32_R_SYM (Rel->r_info)] + (Rel->r_offset - TargetSegment->p_vaddr), EFI_IMAGE_REL_BASED_HIGHLOW);\r
-            break;\r
-          default:\r
-            Error (NULL, 0, 3000, "Invalid", "%s bad ARM dynamic relocations, unkown type %d.", mInImageName, ELF32_R_TYPE (Rel->r_info));\r
-            break;\r
-          }\r
-        }\r
-        break;\r
-      }\r
-    }\r
-  }\r
-\r
-  //\r
-  // Pad by adding empty entries.\r
-  //\r
-  while (CoffOffset & (CoffAlignment - 1)) {\r
-    CoffAddFixupEntry(0);\r
-  }\r
-\r
-\r
-  NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(CoffFile + NtHdrOffset);\r
-  Dir = &NtHdr->Pe32.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_BASERELOC];\r
-  Dir->Size = CoffOffset - RelocOffset;\r
-  if (Dir->Size == 0) {\r
-    // If no relocations, null out the directory entry and don't add the .reloc section\r
-    Dir->VirtualAddress = 0;\r
-    NtHdr->Pe32.FileHeader.NumberOfSections--;\r
-  } else {\r
-    Dir->VirtualAddress = RelocOffset;\r
-    CreateSectionHeader (".reloc", RelocOffset, CoffOffset - RelocOffset,\r
-            EFI_IMAGE_SCN_CNT_INITIALIZED_DATA\r
-            | EFI_IMAGE_SCN_MEM_DISCARDABLE\r
-            | EFI_IMAGE_SCN_MEM_READ);\r
-  }\r
-\r
-}\r
-\r
-VOID\r
-WriteDebug(\r
-  VOID\r
-  )\r
-{\r
-  UINT32                              Len;\r
-  UINT32                              DebugOffset;\r
-  EFI_IMAGE_OPTIONAL_HEADER_UNION     *NtHdr;\r
-  EFI_IMAGE_DATA_DIRECTORY            *DataDir;\r
-  EFI_IMAGE_DEBUG_DIRECTORY_ENTRY     *Dir;\r
-  EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY *Nb10;\r
-\r
-  Len = strlen(mInImageName) + 1;\r
-  DebugOffset = CoffOffset;\r
-\r
-  CoffOffset += sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY)\r
-    + sizeof(EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY)\r
-    + Len;\r
-  CoffOffset = CoffAlign(CoffOffset);\r
-\r
-  CoffFile = realloc(CoffFile, CoffOffset);\r
-  memset(CoffFile + DebugOffset, 0, CoffOffset - DebugOffset);\r
-\r
-  Dir = (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY*)(CoffFile + DebugOffset);\r
-  Dir->Type = EFI_IMAGE_DEBUG_TYPE_CODEVIEW;\r
-  Dir->SizeOfData = sizeof(EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY) + Len;\r
-  Dir->RVA = DebugOffset + sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY);\r
-  Dir->FileOffset = DebugOffset + sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY);\r
-\r
-  Nb10 = (EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY*)(Dir + 1);\r
-  Nb10->Signature = CODEVIEW_SIGNATURE_NB10;\r
-  strcpy ((char *)(Nb10 + 1), mInImageName);\r
-\r
-\r
-  NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(CoffFile + NtHdrOffset);\r
-  DataDir = &NtHdr->Pe32.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_DEBUG];\r
-  DataDir->VirtualAddress = DebugOffset;\r
-  DataDir->Size = CoffOffset - DebugOffset;\r
-  if (DataDir->Size == 0) {\r
-    // If no debug, null out the directory entry and don't add the .debug section\r
-    DataDir->VirtualAddress = 0;\r
-    NtHdr->Pe32.FileHeader.NumberOfSections--;\r
-  } else {\r
-    DataDir->VirtualAddress = DebugOffset;\r
-    CreateSectionHeader (".debug", DebugOffset, CoffOffset - DebugOffset,\r
-            EFI_IMAGE_SCN_CNT_INITIALIZED_DATA\r
-            | EFI_IMAGE_SCN_MEM_DISCARDABLE\r
-            | EFI_IMAGE_SCN_MEM_READ);\r
-\r
-  }\r
-}\r
-\r
-VOID\r
-ConvertElf (\r
-  UINT8  **FileBuffer,\r
-  UINT32 *FileLength\r
-  )\r
-{\r
-  EFI_IMAGE_OPTIONAL_HEADER_UNION *NtHdr;\r
-\r
-  //\r
-  // Check header, read section table.\r
-  //\r
-  Ehdr = (Elf32_Ehdr*)*FileBuffer;\r
-  if (!CheckElfHeader())\r
-    return;\r
-\r
-  VerboseMsg ("Check Efl Image Header");\r
-  //\r
-  // Compute sections new address.\r
-  //\r
-  \r
-  ScanSections();\r
-\r
-  VerboseMsg ("Compute sections new address.");\r
-\r
-  //\r
-  // Write and relocate sections.\r
-  //\r
-  WriteSections(IsTextShdr);\r
-  WriteSections(IsDataShdr);\r
-  WriteSections(IsHiiRsrcShdr);\r
-  VerboseMsg ("Write and relocate sections.");\r
-\r
-  //\r
-  // Translate and write relocations.\r
-  //\r
-  WriteRelocations();\r
-  VerboseMsg ("Translate and write relocations.");\r
-\r
-  //\r
-  // Write debug info.\r
-  //\r
-  WriteDebug();\r
-  VerboseMsg ("Write debug info.");\r
-\r
-  NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(CoffFile + NtHdrOffset);\r
-  NtHdr->Pe32.OptionalHeader.SizeOfImage = CoffOffset;\r
-\r
-  //\r
-  // Replace.\r
-  //\r
-  free(*FileBuffer);\r
-  *FileBuffer = CoffFile;\r
-  *FileLength = CoffOffset;\r
-\r
-  //\r
-  // Free memory space\r
-  //\r
-  if (CoffSectionsOffset != NULL) {\r
-    free (CoffSectionsOffset);\r
-  }\r
-}\r
-\r
-\r
 EFI_IMAGE_OPTIONAL_HEADER_UNION *\r
 GetPeCoffHeader (\r
   void *Data\r
@@ -2935,8 +2050,11 @@ Returns:
   // Convert EFL image to PeImage\r
   //\r
   if (IsElfHeader(FileBuffer)) {\r
-    VerboseMsg ("Convert the input ELF Image to Pe Image");\r
-    ConvertElf(&FileBuffer, &FileLength);\r
+    VerboseMsg ("Convert %s from ELF to PE/COFF.", mInImageName);\r
+    if (!ConvertElf(&FileBuffer, &FileLength)) {\r
+      Error (NULL, 0, 3000, "Invalid", "Unable to convert %s from ELF to PE/COFF.", mInImageName);\r
+      goto Finish;\r
+    }\r
   }\r
 \r
   //\r
diff --git a/BaseTools/Source/C/GenFw/GenFw.h b/BaseTools/Source/C/GenFw/GenFw.h
new file mode 100644 (file)
index 0000000..11b3aa9
--- /dev/null
@@ -0,0 +1,35 @@
+/** @file
+
+Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+
+This program and the accompanying materials are licensed and made available 
+under the terms and conditions of the BSD License which accompanies this 
+distribution.  The full text of the license may be found at 
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#ifndef _GEN_FW_H_
+#define _GEN_FW_H_
+
+VOID
+SetHiiResourceHeader (
+  UINT8   *HiiBinData,
+  UINT32  OffsetToFile
+  );
+
+INTN
+IsElfHeader (
+  UINT8  *FileBuffer
+  );
+
+BOOLEAN
+ConvertElf (
+  UINT8  **FileBuffer,
+  UINT32 *FileLength
+  );
+
+#endif
index b9c40fce5ac17f350795112205f0fb31962dd631..e7952b9a5b86d7ef54f3abfe8dc34896b64159fa 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'GenFw' module build.\r
 #\r
-# Copyright (c) 2009 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
@@ -16,7 +16,7 @@ APPNAME = GenFw
 \r
 LIBS = $(LIB_PATH)\Common.lib\r
 \r
-OBJECTS = GenFw.obj\r
+OBJECTS = GenFw.obj ElfConvert.obj Elf32Convert.obj Elf64Convert.obj\r
 \r
 #CFLAGS = $(CFLAGS) /nodefaultlib:libc.lib\r
 \r
index 0edba15b81222710f8d23e73e45ea94e01098a4c..63946aad841adeeacd8af6b2b91d9ce0654fb352 100644 (file)
@@ -1,8 +1,8 @@
 /** @file
 Ported ELF include files from FreeBSD
 
-Copyright (c) 2009 - 2010, Apple, Inc. All  rights reserved. 
-All rights reserved. This program and the accompanying materials
+Copyright (c) 2009 - 2010, Apple Inc. All rights reserved.<BR>
+This program and the accompanying materials
 are licensed and made available under the terms and conditions of the BSD License
 which accompanies this distribution.  The full text of the license may be found at
 http://opensource.org/licenses/bsd-license.php
index ba8e85fb12809e7e9e1381eb1fec35f19ad7cb32..6c87207edeb93b2082d4d85f761487a23db247ae 100644 (file)
@@ -1,8 +1,8 @@
 /** @file
 Ported ELF include files from FreeBSD
 
-Copyright (c) 2009 - 2010, Apple, Inc. All  rights reserved. 
-All rights reserved. This program and the accompanying materials
+Copyright (c) 2009 - 2010, Apple Inc. All rights reserved.<BR>
+This program and the accompanying materials
 are licensed and made available under the terms and conditions of the BSD License
 which accompanies this distribution.  The full text of the license may be found at
 http://opensource.org/licenses/bsd-license.php
index 3798c95d613d42b5697c507cca0d674f8e07baee..d53f98b679989f7d6a5583d0bbb5b897022e6977 100644 (file)
@@ -1,8 +1,8 @@
 /** @file
 Ported ELF include files from FreeBSD
 
-Copyright (c) 2009 - 2010, Apple, Inc. All  rights reserved. 
-All rights reserved. This program and the accompanying materials
+Copyright (c) 2009 - 2010, Apple Inc. All rights reserved.<BR>
+This program and the accompanying materials
 are licensed and made available under the terms and conditions of the BSD License
 which accompanies this distribution.  The full text of the license may be found at
 http://opensource.org/licenses/bsd-license.php
@@ -597,7 +597,11 @@ typedef struct {
 #define        R_ARM_GOTPC             25      /* Add PC-relative GOT table address. */
 #define        R_ARM_GOT32             26      /* Add PC-relative GOT offset. */
 #define        R_ARM_PLT32             27      /* Add PC-relative PLT offset. */
-#define R_ARM_CALL          28
+#define R_ARM_CALL            28
+#define R_ARM_JMP24           29
+#define R_ARM_THM_MOVW_ABS_NC 47 
+#define R_ARM_THM_MOVT_ABS    48
+
 #define R_ARM_THM_JUMP19    51
 #define        R_ARM_GNU_VTENTRY       100
 #define        R_ARM_GNU_VTINHERIT     101
index b2c2aae1cc6ff0fdfe2a4e25e196a1e464d4ecf6..11ee11562297786f326c71d02c5fa9d549a39489 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'GenPage' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index abcb5e827c3b4a6a90885c0feb34d2e26a195b72..c72011045cfdcfb6e942cf0af7ff05b645646148 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright 2006 - 2010, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 72df008202bb0fcfff605b305e6d6811d2eb4991..bc0369aadd61b7576edf3caa16019266b43ae7af 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'GenPage' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index b4baec86b2f241cb8abac1c3722e699c74e9e0ba..3cfebd6c695abdbd95bdf360ec8ee03294607f95 100644 (file)
@@ -1,7 +1,7 @@
 /** @file \r
 \r
-Copyright 2006 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index dd41f82868c808b3a6f6ef13ec8ccf12bf92109f..d41e9dc9a787c599a27a40eeb4e45b347482dd4a 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'GenSec' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 8c4f8743fd0259aa60673a6fa06145ddae386883..ed34ec408e6a8e6cef0e09dc5ea554e15047ec42 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2010, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 2418241e132e714b683cb8fc230ceaa224a87d9b..fdd2a4b1602c8e4fb50b2f25acf8b4be55a38aa1 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'GenSec' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 76db9b2b98c3d9558c7115f42ca213effc9b7685..7ff752bf1117268e518706fc3db1e90463129404 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'GenVtf' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 72fb109fa6505eadfb9c8271e22a50365c81680e..35120f36c1a202c3b2bd6b81361e69373b18be4a 100644 (file)
@@ -1,6 +1,6 @@
 /**\r
 \r
-Copyright (c)  1999-2010 Intel Corporation. All rights reserved\r
+Copyright (c) 1999 - 2010, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials are licensed and made available \r
 under the terms and conditions of the BSD License which accompanies this \r
 distribution.  The full text of the license may be found at\r
index a1d9f936fe5c65f14e3028dc4e0b2155e8620bc8..8ebc8d25f3f193ad9b76d3d2bc438eda6042bb49 100644 (file)
@@ -1,6 +1,6 @@
 /** @file\r
 \r
-Copyright (c)  1999-2008 Intel Corporation. All rights reserved\r
+Copyright (c) 1999 - 2008, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials are licensed and made available \r
 under the terms and conditions of the BSD License which accompanies this \r
 distribution.  The full text of the license may be found at\r
index 7d2550fd478cf5a29d735248e795df69755d63c4..957f25bd169f2e4319ac8bd9dd32b423292a6c9a 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'GenVtf' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index f24b4ee9accf5451625d6c813fce1affbb93952e..1f77e879b313907c40ba42144e1c6325893807a9 100644 (file)
@@ -2,8 +2,8 @@
 \r
   Fat file system structure and definition.\r
 \r
-Copyright 2006 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 1a466288f7e1d0b42d508cb83d9ae9445e0f6cbd..f9888704f91f18c3d1675b5e9980960c19d304f6 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'GnuGenBootSector' module build.\r
 #\r
-# Copyright (c) 2009 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 9e32892d6ad9d4d12caea2a322d348495ee9c9b9..8a0952ff0877e395a2846e736520236517c368f6 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright 2006 - 2010, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 43721ae469198d8a3dfa10d1f6251817bc6f703e..27934375ce2c2f7ff723d91d34c536da814b8494 100644 (file)
@@ -3,8 +3,8 @@
 \r
   This file is stand alone self consistent set of definitions. \r
 \r
-  Copyright (c) 2006, Intel Corporation                                                         \r
-  All rights reserved. This program and the accompanying materials                          \r
+  Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
+  This program and the accompanying materials                          \r
   are licensed and made available under the terms and conditions of the BSD License         \r
   which accompanies this distribution.  The full text of the license may be found at        \r
   http://opensource.org/licenses/bsd-license.php                                            \r
@@ -220,4 +220,69 @@ typedef INTN RETURN_STATUS;
 \r
 typedef UINT64 PHYSICAL_ADDRESS;\r
 \r
+#define  BIT0     0x00000001\r
+#define  BIT1     0x00000002\r
+#define  BIT2     0x00000004\r
+#define  BIT3     0x00000008\r
+#define  BIT4     0x00000010\r
+#define  BIT5     0x00000020\r
+#define  BIT6     0x00000040\r
+#define  BIT7     0x00000080\r
+#define  BIT8     0x00000100\r
+#define  BIT9     0x00000200\r
+#define  BIT10    0x00000400\r
+#define  BIT11    0x00000800\r
+#define  BIT12    0x00001000\r
+#define  BIT13    0x00002000\r
+#define  BIT14    0x00004000\r
+#define  BIT15    0x00008000\r
+#define  BIT16    0x00010000\r
+#define  BIT17    0x00020000\r
+#define  BIT18    0x00040000\r
+#define  BIT19    0x00080000\r
+#define  BIT20    0x00100000\r
+#define  BIT21    0x00200000\r
+#define  BIT22    0x00400000\r
+#define  BIT23    0x00800000\r
+#define  BIT24    0x01000000\r
+#define  BIT25    0x02000000\r
+#define  BIT26    0x04000000\r
+#define  BIT27    0x08000000\r
+#define  BIT28    0x10000000\r
+#define  BIT29    0x20000000\r
+#define  BIT30    0x40000000\r
+#define  BIT31    0x80000000\r
+#define  BIT32    0x0000000100000000ULL\r
+#define  BIT33    0x0000000200000000ULL\r
+#define  BIT34    0x0000000400000000ULL\r
+#define  BIT35    0x0000000800000000ULL\r
+#define  BIT36    0x0000001000000000ULL\r
+#define  BIT37    0x0000002000000000ULL\r
+#define  BIT38    0x0000004000000000ULL\r
+#define  BIT39    0x0000008000000000ULL\r
+#define  BIT40    0x0000010000000000ULL\r
+#define  BIT41    0x0000020000000000ULL\r
+#define  BIT42    0x0000040000000000ULL\r
+#define  BIT43    0x0000080000000000ULL\r
+#define  BIT44    0x0000100000000000ULL\r
+#define  BIT45    0x0000200000000000ULL\r
+#define  BIT46    0x0000400000000000ULL\r
+#define  BIT47    0x0000800000000000ULL\r
+#define  BIT48    0x0001000000000000ULL\r
+#define  BIT49    0x0002000000000000ULL\r
+#define  BIT50    0x0004000000000000ULL\r
+#define  BIT51    0x0008000000000000ULL\r
+#define  BIT52    0x0010000000000000ULL\r
+#define  BIT53    0x0020000000000000ULL\r
+#define  BIT54    0x0040000000000000ULL\r
+#define  BIT55    0x0080000000000000ULL\r
+#define  BIT56    0x0100000000000000ULL\r
+#define  BIT57    0x0200000000000000ULL\r
+#define  BIT58    0x0400000000000000ULL\r
+#define  BIT59    0x0800000000000000ULL\r
+#define  BIT60    0x1000000000000000ULL\r
+#define  BIT61    0x2000000000000000ULL\r
+#define  BIT62    0x4000000000000000ULL\r
+#define  BIT63    0x8000000000000000ULL\r
+\r
 #endif\r
index 022a7492f21d3e48f899fe14ba5d352f0c2cf17b..8b42061d715257c06f998569cd8ad8ac8e2f61a5 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   EDK II specific HII relative definition.\r
 \r
-  Copyright (c) 2006 - 2007, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index 4db99dcac53d8233d97d6b9185030a2a0fa6e36e..e66f40ca43a7119140594e5dfbe3bdcc67fb6fd4 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   The firmware file related definitions in PI.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index 07682a3fcaf46cacdfb22ffae58e3df666e2012a..fde381537fc871e7184f637368d3ff00f0d33da3 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   The firmware volume related definitions in PI.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index 53f86bd52db273ea91b44dbae69a79e7d370367e..43f585491cd8142763941a7c6488c905aa630685 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Defines data types and constants introduced in UEFI.\r
 \r
-  Copyright (c) 2006 - 2007, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index 70d87234f72e756f249333ad5a49a17d3342498b..a0f6c6af08c9c52d24c1629b4f0b7e1208ee35a6 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Defines for the EFI Capsule functionality.\r
 \r
-  Copyright (c) 2006 - 2009, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index 9f382471419a91ae6f2fd18109a90c2a4772f615..61fc19161899a39280e4940c672c6b12ef0fa20e 100644 (file)
@@ -3,7 +3,7 @@
   IFR is primarily consumed by the EFI presentation engine, and produced by EFI\r
   internal application and drivers as well as all add-in card option-ROM drivers\r
 \r
-  Copyright (c) 2006 - 2010, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index 59db59c5f5c9708be638e8f6281bf9a0ee625f26..11c587e862642c26e9c2a9a73a8f7950b54096d5 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   This includes some definitions introduced in UEFI that will be used in both PEI and DXE phases.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index 32d6b2570bc4d088354bd269544b469c9c7d2afa..af69ece4f5e203ad025597e3219572b11a7d2842 100644 (file)
@@ -1,7 +1,7 @@
 /**@file\r
   Header file for EFI Variable Services.\r
 \r
-  Copyright (c) 2007 - 2008, Intel Corporation.  All rights reserved. <BR>\r
+  Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index 98f8527a7b62e668777710898fe95b6456da59ad..b6fdf2363053a009bc709e9b9fec15d1f47ccbb1 100644 (file)
@@ -4,7 +4,7 @@
   working block, the header structure of the variable block, FTW\r
   working block, or event log block.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation.  All rights reserved.\r
+  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index 9084d99f09195fd053c7a5fd0c3d8b5c0d43e66b..3691e272448373d78fd329d5fac3bb48c1a8960e 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Terminal Device Path Vendor Guid.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index 8ab4993584435035470ccf72cdafeb99e4182a9e..a1c6b55f1dcd4de66d387904efaa68a8808a3bcb 100644 (file)
@@ -2,7 +2,7 @@
   Guid used to define the Firmware File System. See PI spec volume 3 for more\r
   details.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index df778a583e4a0a0d07603b9364c55181910a594b..20d559e2fd362f7b6d95328d680716bdac8d01df 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Processor or Compiler specific defines and types for x64.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index 07c542ebfb1628ff29ea817c1b276e09a4595a15..6b4179086c3afcb51b76c9a96c72be978ca0c072 100644 (file)
@@ -2,7 +2,7 @@
   This file contains some basic ACPI definitions that are consumed by drivers\r
   that do not care about ACPI versions.\r
 \r
-  Copyright (c) 2006, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index fb8599333ce17ec35aaeb5c79be0ddd7696cfb57..a118e4ffa2c819c01a68fd787ac25a8856b83ff3 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   ACPI 1.0b definitions from the ACPI Specification, revision 1.0b\r
 \r
-  Copyright (c) 2006 - 2007 Intel Corporation. All rights reserved. \r
+  Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index a19e8822c3e58ed5bc6a68bbef36b2e4c5d97ace..9cbd5e00b717f9e495edb9ba87bee5516da4e0e9 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   ACPI 2.0 definitions from the ACPI Specification, revision 2.0\r
 \r
-  Copyright (c) 2006 - 2007 Intel Corporation. All rights reserved. \r
+  Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index 4cd8b08df0be25486d359cfb5a22466a7aaece63..47824eff3ab5b78388fba0d82ac3387154d05517 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   ACPI 3.0 definitions from the ACPI Specification Revision 3.0 September 2, 2004\r
 \r
-  Copyright (c) 2006 - 2007 Intel Corporation. All rights reserved. \r
+  Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index 24356b8b1947dc2e4d0a42a9340d06449d680e2d..bd23e5a5eeb07d7ad8309d4dab7bd32db98d7329 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Support for EFI PCI specification.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index 69bd83e882b906e1208517166f88eacb33259636..b661eecb5dd0a2dbbbbf47d4982b9cadf346ddc3 100644 (file)
@@ -3,7 +3,7 @@
   in the PCI Firmware Specification, version 3.0 draft version 0.5.\r
   Specification is available at http://www.pcisig.com.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation.  All rights reserved. \r
+  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index 69cca91c31a3b89d320b3a60f8ed811bb038ce80..de0e90e223d112f6243bd7ddfd2af8e477d9ee72 100644 (file)
@@ -4,7 +4,7 @@
 \r
   @bug Fix text - doc as defined in MSFT EFI specification.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
@@ -110,6 +110,7 @@ typedef struct {
 #define EFI_IMAGE_FILE_EXECUTABLE_IMAGE     0x0002  // File is executable  (i.e. no unresolved externel references).\r
 #define EFI_IMAGE_FILE_LINE_NUMS_STRIPPED   0x0004  // Line nunbers stripped from file.\r
 #define EFI_IMAGE_FILE_LOCAL_SYMS_STRIPPED  0x0008  // Local symbols stripped from file.\r
+#define EFI_IMAGE_FILE_LARGE_ADDRESS_AWARE  0x0020  // Supports addresses > 2-GB\r
 #define EFI_IMAGE_FILE_BYTES_REVERSED_LO    0x0080  // Bytes of machine word are reversed.\r
 #define EFI_IMAGE_FILE_32BIT_MACHINE        0x0100  // 32 bit word machine.\r
 #define EFI_IMAGE_FILE_DEBUG_STRIPPED       0x0200  // Debugging info stripped from file in .DBG file\r
@@ -513,6 +514,9 @@ typedef struct {
 #define EFI_IMAGE_REL_BASED_IA64_IMM64    9\r
 #define EFI_IMAGE_REL_BASED_DIR64         10\r
 \r
+#define EFI_IMAGE_REL_BASED_ARM_THUMB_MOVW  11\r
+#define EFI_IMAGE_REL_BASED_ARM_THUMB_MOVT  12\r
+\r
 ///\r
 /// Line number format.\r
 ///\r
index 057b6d7494e5f32d168a7635e76c0a2ec77e580c..e1d347afbbd71ff28a0e890d084f3baf24ec7591 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Support for PCI 2.2 standard.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index 2cbf13d134063b1f645d609d20838a5d3462c5c8..491d05f11ab90e5c805dc559cd9307726cab5bb4 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Support for PCI 2.3 standard.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index b2a9198dfb9fb956888b650667f67ca1b9a6fb92..5477f44fed46a361b3cec55523014b809a5d101f 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Support for PCI 3.0 standard.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index 1fdffe419f3b162d7ba314a2da3db87242381dda..9fc8cb1aff0509b37531dd1356c279a31848ef45 100644 (file)
@@ -5,7 +5,7 @@
   from a software point of view. It also must persist from boot to boot, so \r
   it can not contain things like PCI bus numbers that change from boot to boot.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index 35cf7a14a59db3caa4751e9d6f44d0e0eb74e1cb..cdcc28f40a909ac77ddcc5907fa77966d976c731 100644 (file)
@@ -3,7 +3,7 @@
 \r
   Abstraction of a very simple graphics device.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index 3b5dadadfabda3b4e260c90e54251a812833f355..6a1114d0531331be014d6937c5b71b34c6c2d113 100644 (file)
@@ -6,7 +6,7 @@
   section extraction protocol. That is, all instances of the GUIDed section\r
   extraction protocol must have the same interface structure.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index 49a60b2afe7bcf54b4eb06ba91331d3f1c348d41..d8da4aa5d8214dc8fea2608bd5766b39e726dba9 100644 (file)
@@ -3,7 +3,7 @@
   be used by resources which want to publish IFR/Font/String data and have it\r
   collected by the Configuration engine.\r
 \r
-  Copyright (c) 2007, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index 35de25c163a75cec7a9925bdb15a889a702edaf2..2da3d1d5fee5de8d83157fc55dbf7cb4c466bbbe 100644 (file)
@@ -3,7 +3,7 @@
 \r
   Abstraction of a very simple graphics device.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index 5d79d89d13388fd1d63baac718d094b806d877eb..3c106b5fce9a53a5cc5b4317e9b38c322ceeaaed 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Processor or Compiler specific defines and types x64 (Intel(r) EM64T, AMD64).\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
index db3dbd1037bc9f755ca274a755cf6ac7e379d8a7..99e9cbbeb0914f88170ec91baa4e078f311b413f 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'LzmaCompress' module build.\r
 #\r
-# Copyright (c) 2009 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 16b91da177344ed79ca27dc7080466ac01f05a7f..d8e98890fed7ac068f128b64f1f281199c5e08d3 100644 (file)
@@ -5,8 +5,8 @@
     LzmaUtil.c -- Test application for LZMA compression\r
     2008-11-23 : Igor Pavlov : Public domain\r
 \r
-  Copyright (c) 2006 - 2009, Intel Corporation<BR>\r
-  All rights reserved. This program and the accompanying materials\r
+  Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>\r
+  This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
   http://opensource.org/licenses/bsd-license.php\r
index 8cc303dd6957f09fc10a315ce3a3710476b15a04..1c1ba2bc38cc1a7b8359fd4a1dbd1a1312aad475 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'LzmaCompress' module build.\r
 #\r
-# Copyright (c) 2009 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index aeacbd30ee9766c7b6cf0a60948d3cad8f05fe4f..367a5dbeadd44d264913eae5df097b57441639b7 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for C tools build.\r
 #\r
-# Copyright (c) 2009 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 8fc4bcdb41b165cbb74ba786f7d327755456b647..25b8790ac562ac76c2290487207cc6c163bf3529 100644 (file)
@@ -1,7 +1,7 @@
 @REM ## @file\r
 @REM #\r
-@REM # Copyright (c) 2007 - 2010, Intel Corporation\r
-@REM # All rights reserved. This program and the accompanying materials\r
+@REM # Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+@REM # This program and the accompanying materials\r
 @REM # are licensed and made available under the terms and conditions of the BSD License\r
 @REM # which accompanies this distribution.    The full text of the license may be found at\r
 @REM # http://opensource.org/licenses/bsd-license.php\r
index 96fd09480fb8fe8d479b10056a993116d714bdae..bef6f28c0636b1de1f4bdeb0543406cd5e7fc469 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.    The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 7877ebc149bc0aebb6e3f6e4812cdf9ff45b40fb..de7114257da88b2807af8ce7330f77282487d25d 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.    The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 006a0716caf93232745a2c43ffe66ef26cf02d13..841803e51d54c88f196c13511fbb91b302101ac6 100644 (file)
@@ -5,8 +5,8 @@
 # ARCH = ia32 or IA32 for IA32 build
 # ARCH = ia64 or IA64 for IA64 build
 #
-# Copyright (c) 2007 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.    The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 3d49107183166eba43c9bbb903b9ecb286c2f41e..fe7a1cef8dbbfee098b2ca3cc8452931642b81a1 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.    The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 05c68ed53a377533940d120e3ac7e86bad3f3be3..13c83f4edf6f1d4658dbaed916caee9934f70355 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.    The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 83372a8ab08957d706927b164a9ca7bbb6943319..d2fbc453eebe238e51843df2202efd0511d7d20a 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.    The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index dd9ef74aee16396e60b8251f81fd09b6ac43d5a7..0e418f3c8f906777a81230e9f089b9f51cc21ea7 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.    The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 7702cfac549a15053861bb4f232126eda9b60bd7..afbd5dcc4b0589646a8535537a90feb9ace50063 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.    The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 0abf11ed06493aa89b7a4ed3067cd25aa269a1c1..cf37c0c100875c7fc23e615df5b28c1b411617c4 100644 (file)
@@ -1,6 +1,6 @@
 /** @file\r
 \r
-Copyright (c) 2009 - 2010 Intel Corporation. All rights reserved\r
+Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials are licensed and made available \r
 under the terms and conditions of the BSD License which accompanies this \r
 distribution.  The full text of the license may be found at\r
index c0bc5438c1f75190e6e18f4342aa9be2b74c47e9..d52a3454b784ed4692861951e8c9407268e1f34a 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.    The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 508ac835165069f99110e298b0083fee71efe4cb..e0cf5ef5d5c3af3c8d9110944426031677e219df 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # package and install PyEfiCompressor extension\r
 #\r
-#  Copyright (c) 2008, Intel Corporation\r
+#  Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 51ce9bcf3461ce232daf46d98f6473f24911fc86..71d4d542bd779ce53c71e8720e05d4a1e4c2e336 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.    The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index e80cd70bf0e7dded300d033abec0a0c2d027a350..ff3ad9443b7aebfe7f1de40bf8e8ffe212c54da9 100644 (file)
@@ -1,6 +1,6 @@
 /** @file\r
 \r
-Copyright (c) 2009 - 2010 Intel Corporation. All rights reserved\r
+Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials are licensed and made available \r
 under the terms and conditions of the BSD License which accompanies this \r
 distribution.  The full text of the license may be found at\r
index ff78af3d582ea39b9570b746fbecb425ff9809f0..e4d407d84f5e0609be99e0da47c9e497f3f82abc 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # package and install PyEfiCompressor extension\r
 #\r
-#  Copyright (c) 2008, Intel Corporation\r
+#  Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 9d91161f9ad4f1cbfc97fae14a4a3e98e7d02734..2c62a270cb34e6c158eb18888d767564a4e5c6f8 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'Split' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 1ad9e7ddc47be1604be6bf192b28a8f397562f89..0fbc5e3dc2375962c9021656aaec2ea4be4df3b2 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'Split' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 8be795ff17dd9965a875babf5d8e0651eb02f1c2..930a2ad73454277a93b95875b63fb94f77f7325a 100644 (file)
@@ -2,7 +2,7 @@
 \r
   Split a file into two pieces at the request offset.\r
 \r
-Copyright (c)  1999-2010 Intel Corporation. All rights reserved\r
+Copyright (c) 1999 - 2010, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials are licensed and made available\r
 under the terms and conditions of the BSD License which accompanies this\r
 distribution.  The full text of the license may be found at\r
index 986f32c640bcf2b96ed1e46d4d8694df9d381e39..e58b89bc83e91b732cb354a5d15690a5f139b43c 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'TianoCompress' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 8cee1a1cb26faf75d2b103c48e822d978f37f8ea..2987d9901666a7c0946754311aaea993db7f27df 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'TianoCompress' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index f99176a195cedaa5c773a20c99ac3779438e886a..81adcc7876ba68a02fdecb3ddb2dcab11694cf85 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2007 - 2010, Intel Corporation                                              \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 4fc48c3ad43d22cf3e4ea18e39af3ef16f54618a..b719ad2debe3a7681218e51aae6ba4e0c7a2a22d 100644 (file)
@@ -1,8 +1,8 @@
 /** @file\r
   Internal include file for Tiano Decompress Libary.\r
 \r
-  Copyright (c) 2006, Intel Corporation\r
-  All rights reserved. This program and the accompanying materials\r
+  Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
+  This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
   http://opensource.org/licenses/bsd-license.php\r
index 809ca9e4ad303be9703980674a4e56785135721f..406a12491d5f68536996fffbea6eeaf1c7d072f3 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
-Copyright (c) 2004 - 2010, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 7be5758ffbb9b3aa10d4a88a96bfbd3f3de6e43f..af04ab104c77aef19391cdee0a34614e909e00d3 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'VfrCompile' module build.\r
 #\r
-# Copyright (c) 2008 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index bdafbf69de8c28cfc33bc761757e6b9b94e61399..caadc40c4b5a1b48f12ef7d758cbdc9938342a80 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'VfrCompile' module build.\r
 #\r
-# Copyright (c) 2008 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 508b68371eb3ac7b993afcf3b3be3b79814f3f4a..24ac97789237d2275bc1b4d6e9af13627367e295 100644 (file)
@@ -2,8 +2,8 @@
   \r
   VfrCompiler main class and main function.\r
 \r
-Copyright (c) 2004 - 2010, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index fcd2b24146d197f09caa8a9d82fd493ba9836ac8..c32325f0b717efbc00e77db66735fa25ae08378e 100644 (file)
@@ -2,8 +2,8 @@
   \r
   VfrCompiler internal defintions.\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 3289101710f055943bd3b9c55e559917ae870d90..3bfe5d576af2635ef232522418f54588bbfccb50 100644 (file)
@@ -2,8 +2,8 @@
   \r
   VfrCompiler error handler.\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 916e0702eb6a08d432633dde7acf838b098014b1..29cccabd297e34676d2b1c83a7e2f5b5522ba645 100644 (file)
@@ -2,8 +2,8 @@
   \r
   VfrCompiler Error definition\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index ccbc04455a629ac8c1d17bd12b07d8c30c24b5da..571af91b0a93c70072d2b8bfdb63fe08c4ea3f86 100644 (file)
@@ -2,8 +2,8 @@
   \r
   The definition of CFormPkg's member function\r
 \r
-Copyright (c) 2004 - 2010, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 38422e1332f85636b628fc491908834f16d229fe..88d3422162f78318f4c356f81de9def9ae9cbbed 100644 (file)
@@ -2,8 +2,8 @@
   \r
   The definition of CFormPkg's member function\r
 \r
-Copyright (c) 2004 - 2010, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 2a4f7b6488ab15e52710a0f0fa2d94109bba9dac..fc0215134dad408ac7ffb3154c787f3a3623be34 100644 (file)
@@ -1,6 +1,6 @@
 /*++\r
-Copyright (c) 2004 - 2010, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
 http://opensource.org/licenses/bsd-license.php\r
@@ -1900,6 +1900,9 @@ vfrStatementStringType :
 vfrStatementString :\r
   <<\r
      CIfrString SObj;\r
+     UINT32 VarArraySize;\r
+     UINT8 StringMinSize;\r
+     UINT8 StringMaxSize;\r
   >>\r
   L:String                                             << SObj.SetLineNo(L->getLine()); >>\r
   vfrQuestionHeader[SObj] ","\r
@@ -1907,8 +1910,27 @@ vfrStatementString :
   {\r
     Key "=" KN:Number ","                              << AssignQuestionKey (SObj, KN); >>\r
   }\r
-  MinSize "=" MIN:Number ","                           << SObj.SetMinSize (_STOU8(MIN->getText())); >>\r
-  MaxSize "=" MAX:Number ","                           << SObj.SetMaxSize (_STOU8(MAX->getText())); >>\r
+  MinSize "=" MIN:Number ","                           << \r
+                                                          VarArraySize = _GET_CURRQEST_ARRAY_SIZE();\r
+                                                          StringMinSize = _STOU8(MIN->getText());\r
+                                                          if (_STOU64(MIN->getText()) > StringMinSize) {\r
+                                                            _PCATCH (VFR_RETURN_INVALID_PARAMETER, MIN->getLine(), "String MinSize takes only one byte, which can't be larger than 0xFF.");\r
+                                                          } else if (VarArraySize != 0 && StringMinSize > VarArraySize) {\r
+                                                            _PCATCH (VFR_RETURN_INVALID_PARAMETER, MIN->getLine(), "String MinSize can't be larger than the max number of elements in string array.");\r
+                                                          }\r
+                                                          SObj.SetMinSize (StringMinSize);\r
+                                                       >>\r
+  MaxSize "=" MAX:Number ","                           << \r
+                                                          StringMaxSize = _STOU8(MAX->getText());\r
+                                                          if (_STOU64(MAX->getText()) > StringMaxSize) {\r
+                                                            _PCATCH (VFR_RETURN_INVALID_PARAMETER, MAX->getLine(), "String MaxSize takes only one byte, which can't be larger than 0xFF.");\r
+                                                          } else if (VarArraySize != 0 && StringMaxSize > VarArraySize) {\r
+                                                            _PCATCH (VFR_RETURN_INVALID_PARAMETER, MAX->getLine(), "String MaxSize can't be larger than the max number of elements in string array.");\r
+                                                          } else if (StringMaxSize < StringMinSize) {\r
+                                                            _PCATCH (VFR_RETURN_INVALID_PARAMETER, MAX->getLine(), "String MaxSize can't be less than String MinSize.");\r
+                                                          }\r
+                                                          SObj.SetMaxSize (StringMaxSize);\r
+                                                       >>\r
   vfrStatementQuestionOptionList\r
   E:EndString                                          << CRT_END_OP (E); >>\r
   ";"\r
@@ -1932,6 +1954,9 @@ stringFlagsField [UINT8 & HFlags, UINT8 & LFlags] :
 vfrStatementPassword :\r
   <<\r
      CIfrPassword PObj;\r
+     UINT32 VarArraySize;\r
+     UINT16 PasswordMinSize;\r
+     UINT16 PasswordMaxSize;\r
   >>\r
   L:Password                                           << PObj.SetLineNo(L->getLine()); >>\r
   vfrQuestionHeader[PObj] ","\r
@@ -1939,8 +1964,27 @@ vfrStatementPassword :
   {\r
     Key "=" KN:Number ","                              << AssignQuestionKey (PObj, KN); >>\r
   }\r
-  MinSize "=" MIN:Number ","                           << PObj.SetMinSize (_STOU16(MIN->getText())); >>\r
-  MaxSize "=" MAX:Number ","                           << PObj.SetMaxSize (_STOU16(MAX->getText())); >>\r
+  MinSize "=" MIN:Number ","                           << \r
+                                                          VarArraySize = _GET_CURRQEST_ARRAY_SIZE();\r
+                                                          PasswordMinSize = _STOU16(MIN->getText());\r
+                                                          if (_STOU64(MIN->getText()) > PasswordMinSize) {\r
+                                                            _PCATCH (VFR_RETURN_INVALID_PARAMETER, MIN->getLine(), "Password MinSize takes only two byte, which can't be larger than 0xFFFF.");\r
+                                                          } else if (VarArraySize != 0 && PasswordMinSize > VarArraySize) {\r
+                                                            _PCATCH (VFR_RETURN_INVALID_PARAMETER, MIN->getLine(), "Password MinSize can't be larger than the max number of elements in password array.");\r
+                                                          }\r
+                                                          PObj.SetMinSize (PasswordMinSize);\r
+                                                       >>\r
+  MaxSize "=" MAX:Number ","                           << \r
+                                                          PasswordMaxSize = _STOU16(MAX->getText());\r
+                                                          if (_STOU64(MAX->getText()) > PasswordMaxSize) {\r
+                                                            _PCATCH (VFR_RETURN_INVALID_PARAMETER, MAX->getLine(), "Password MaxSize takes only two byte, which can't be larger than 0xFFFF.");\r
+                                                          } else if (VarArraySize != 0 && PasswordMaxSize > VarArraySize) {\r
+                                                            _PCATCH (VFR_RETURN_INVALID_PARAMETER, MAX->getLine(), "Password MaxSize can't be larger than the max number of elements in password array.");\r
+                                                          } else if (PasswordMaxSize < PasswordMinSize) {\r
+                                                            _PCATCH (VFR_RETURN_INVALID_PARAMETER, MAX->getLine(), "Password MaxSize can't be less than Password MinSize.");\r
+                                                          }\r
+                                                          PObj.SetMaxSize (PasswordMaxSize);\r
+                                                       >>\r
   { Encoding "=" Number "," }\r
   vfrStatementQuestionOptionList\r
   E:EndPassword                                        << CRT_END_OP (E); >>\r
@@ -1961,12 +2005,23 @@ passwordFlagsField [UINT8 & HFlags] :
 vfrStatementOrderedList :\r
   <<\r
      CIfrOrderedList OLObj;\r
+     UINT32 VarArraySize;\r
   >>\r
   L:OrderedList                                        << OLObj.SetLineNo(L->getLine()); >>\r
   vfrQuestionHeader[OLObj] ","\r
-                                                       << OLObj.SetMaxContainers ((UINT8) _GET_CURRQEST_ARRAY_SIZE()); >>\r
+                                                       << \r
+                                                          VarArraySize = _GET_CURRQEST_ARRAY_SIZE();\r
+                                                          OLObj.SetMaxContainers ((UINT8) (VarArraySize > 0xFF ? 0xFF : VarArraySize));\r
+                                                       >>\r
   {\r
-    MaxContainers "=" M:Number ","                     << OLObj.SetMaxContainers (_STOU8(M->getText())); >>\r
+    MaxContainers "=" M:Number ","                     << \r
+                                                          if (_STOU64(M->getText()) > _STOU8(M->getText())) {\r
+                                                            _PCATCH (VFR_RETURN_INVALID_PARAMETER, M->getLine(), "OrderedList MaxContainers takes only one byte, which can't be larger than 0xFF.");\r
+                                                          } else if (VarArraySize != 0 && _STOU8(M->getText()) > VarArraySize) {\r
+                                                            _PCATCH (VFR_RETURN_INVALID_PARAMETER, M->getLine(), "OrderedList MaxContainers can't be larger than the max number of elements in array.");\r
+                                                          }\r
+                                                          OLObj.SetMaxContainers (_STOU8(M->getText()));\r
+                                                       >>\r
   }\r
   { F:FLAGS "=" vfrOrderedListFlags[OLObj, F->getLine()] }\r
   vfrStatementQuestionOptionList\r
@@ -2002,7 +2057,7 @@ vfrStatementTime :
     (\r
       vfrQuestionHeader[TObj, QUESTION_TIME] ","\r
     { F:FLAGS "=" vfrTimeFlags[TObj, F->getLine()] "," }\r
-      vfrStatementDefault\r
+      vfrStatementQuestionOptionList\r
     )\r
     |\r
     (\r
index cae0479ad360a340e96421d63405ecd36230a4c7..3797cd822841d2f5eaa4c78fecdeef6428539be4 100644 (file)
@@ -2,8 +2,8 @@
   \r
   Vfr common library functions.\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index 27ec3d900f1226191d68481c040e1f17b4ae3fc2..bec5d67b94270857c7758c470bee74ef0970f621 100644 (file)
@@ -2,8 +2,8 @@
   \r
   Vfr common library functions.\r
 \r
-Copyright (c) 2004 - 2010, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
index c80c55513b635cdb122027305e9195b81c5c0eca..d5594d07a07f2889e3653691cf8ee6d136e73438 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'VolInfo' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index e110e8914bd7cf1d4558121a0617dacfd9cf513b..4cee93a869f2b193883c7ffc63057b53c8c44e32 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'VolInfo' module build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 60a443ccedad8f5d91c0e65987921e2c6661e973..70d4589e80f0c126b92fe016ddfb77577e8dcde6 100644 (file)
@@ -1,7 +1,7 @@
 /** @file
 
-Copyright (c) 1999 - 2010, Intel Corporation
-All rights reserved. This program and the accompanying materials
+Copyright (c) 1999 - 2010, Intel Corporation. All rights reserved.<BR>
+This program and the accompanying materials
 are licensed and made available under the terms and conditions of the BSD License
 which accompanies this distribution.  The full text of the license may be found at
 http://opensource.org/licenses/bsd-license.php
@@ -123,7 +123,8 @@ PrintFileInfo (
 static
 EFI_STATUS
 PrintFvInfo (
-  IN VOID                         *Fv
+  IN VOID                         *Fv,
+  IN BOOLEAN                      IsChildFv
   );
 
 static
@@ -291,7 +292,7 @@ Returns:
 
   LoadGuidedSectionToolsTxt (argv[0]);
 
-  PrintFvInfo (FvImage);
+  PrintFvInfo (FvImage, FALSE);
 
   //
   // Clean up
@@ -305,7 +306,8 @@ Returns:
 static
 EFI_STATUS
 PrintFvInfo (
-  IN VOID                         *Fv
+  IN VOID                         *Fv,
+  IN BOOLEAN                      IsChildFv
   )
 /*++
 
@@ -316,6 +318,7 @@ Routine Description:
 Arguments:
 
   Fv            - Firmware Volume to print information about
+  IsChildFv     - Flag specifies whether the input FV is a child FV.
 
 Returns:
 
@@ -375,7 +378,11 @@ Returns:
     }
   }
 
-  printf ("There are a total of %d files in this FV\n", (int) NumberOfFiles);
+  if (IsChildFv) {
+    printf ("There are a total of %d files in the child FV\n", (int) NumberOfFiles);
+  } else {
+    printf ("There are a total of %d files in this FV\n", (int) NumberOfFiles);
+  }
 
   return EFI_SUCCESS;
 }
@@ -1275,7 +1282,7 @@ Returns:
       break;
 
     case EFI_SECTION_FIRMWARE_VOLUME_IMAGE:
-      Status = PrintFvInfo (((EFI_FIRMWARE_VOLUME_IMAGE_SECTION*)Ptr) + 1);
+      Status = PrintFvInfo (((EFI_FIRMWARE_VOLUME_IMAGE_SECTION*)Ptr) + 1, TRUE);
       if (EFI_ERROR (Status)) {
         Error (NULL, 0, 0003, "printing of FV section contents failed", NULL);
         return EFI_SECTION_ERROR;
index 2bee33ad1eedb5d2605e6aca2d9dcd075550d052..c2831293ba98d940bca7348aff7609fc1686681b 100644 (file)
@@ -1,7 +1,7 @@
 /** @file
 
-Copyright (c) 1999 - 2008, Intel Corporation
-All rights reserved. This program and the accompanying materials
+Copyright (c) 1999 - 2008, Intel Corporation. All rights reserved.<BR>
+This program and the accompanying materials
 are licensed and made available under the terms and conditions of the BSD License
 which accompanies this distribution.  The full text of the license may be found at
 http://opensource.org/licenses/bsd-license.php
index fa434e810a520f850869a7b83c00ebdacbd5f877..3b8024c199bd93e2ee4271bc127d3995880ad8d9 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Generate AutoGen.h, AutoGen.c and *.depex files\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
@@ -1953,8 +1953,10 @@ class ModuleAutoGen(AutoGen):
             return\r
 \r
         for ModuleType in self.DepexList:\r
-            if len(self.DepexList[ModuleType]) == 0:\r
+            # Ignore empty [depex] section or [depex] section for "USER_DEFINED" module\r
+            if len(self.DepexList[ModuleType]) == 0 or ModuleType == "USER_DEFINED":\r
                 continue\r
+\r
             Dpx = GenDepex.DependencyExpression(self.DepexList[ModuleType], ModuleType, True)\r
             DpxFile = gAutoGenDepexFileName % {"module_name" : self.Name}\r
 \r
index cbe7d60f3f22ea71ef3462e4ae23d83821a19e71..73b4a97417a3f9ae5fd3a15691bd61293c35171b 100644 (file)
@@ -1,8 +1,8 @@
 ## @file
 # The engine for building files
 #
-# Copyright (c) 2007, Intel Corporation
-# All rights reserved. This program and the accompanying materials
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# This program and the accompanying materials
 # are licensed and made available under the terms and conditions of the BSD License
 # which accompanies this distribution.  The full text of the license may be found at
 # http://opensource.org/licenses/bsd-license.php
index a913cf4e5aa44f43a7fbb362a5c5b9ee474bd703..824e5e058303d6223cf58584600635aeb26f5bff 100644 (file)
@@ -1,8 +1,8 @@
 ## @file
 # Routines for generating AutoGen.h and AutoGen.c
 #
-# Copyright (c) 2007 - 2010, Intel Corporation
-# All rights reserved. This program and the accompanying materials
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# This program and the accompanying materials
 # are licensed and made available under the terms and conditions of the BSD License
 # which accompanies this distribution.  The full text of the license may be found at
 # http://opensource.org/licenses/bsd-license.php
index f456f0d25efc80cb4521935118901ecd78080829..b652051ac1af95f27db319d3e0fc43fd9891470c 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to generate DEPEX file for module's dependency expression\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.    The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index b58d0c641f4b1a284c12a9b1fa3a1f6b1efed5ff..e3f5c2b6ecdea07ffb37ac560347e175e034ddba 100644 (file)
@@ -1,8 +1,8 @@
 ## @file
 # Create makefile for MS nmake and GNU make
 #
-# Copyright (c) 2007 - 2010, Intel Corporation
-# All rights reserved. This program and the accompanying materials
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# This program and the accompanying materials
 # are licensed and made available under the terms and conditions of the BSD License
 # which accompanies this distribution.  The full text of the license may be found at
 # http://opensource.org/licenses/bsd-license.php
index 903ac3cd0de49db46a08811bf2c24f4d48b97892..1759da72dd96ae646cc183115f0f4b7e4a757a5b 100644 (file)
@@ -1,5 +1,5 @@
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 717c10f266771d5bb55a349bdb2c390bbf5d18ed..8f929a33cba93214b65df073f4fdc0a79cc45299 100644 (file)
@@ -1,5 +1,5 @@
-# Copyright (c) 2007 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
@@ -15,6 +15,7 @@
 # Import Modules\r
 #\r
 import os, codecs, re\r
+import distutils.util\r
 import Common.EdkLogger as EdkLogger\r
 from Common.BuildToolError import *\r
 from Common.String import GetLineNo\r
@@ -125,6 +126,8 @@ def GetLanguageCode(LangName, IsCompatibleMode, File):
         else:\r
             EdkLogger.error("Unicode File Parser", FORMAT_INVALID, "Invalid ISO 639-2 language code : %s" % LangName, File)\r
 \r
+    if (LangName[0] == 'X' or LangName[0] == 'x') and LangName[1] == '-':\r
+        return LangName\r
     if length == 2:\r
         if LangName.isalpha():\r
             return LangName\r
@@ -193,20 +196,20 @@ class UniFileClassObject(object):
     # Get Language definition\r
     #\r
     def GetLangDef(self, File, Line):\r
-        Lang = Line.split(u"//")[0].split()\r
+        Lang = distutils.util.split_quoted((Line.split(u"//")[0]))\r
         if len(Lang) != 3:\r
             try:\r
-                FileIn = codecs.open(File, mode='rb', encoding='utf-16').read()\r
+                FileIn = codecs.open(File.Path, mode='rb', encoding='utf-16').read()\r
             except UnicodeError, X:\r
                 EdkLogger.error("build", FILE_READ_FAILURE, "File read failure: %s" % str(X), ExtraData=File);\r
             except:\r
                 EdkLogger.error("build", FILE_OPEN_FAILURE, ExtraData=File);\r
             LineNo = GetLineNo(FileIn, Line, False)\r
             EdkLogger.error("Unicode File Parser", PARSER_ERROR, "Wrong language definition",\r
-                            ExtraData="""%s\n\t*Correct format is like '#langdef eng "English"'""" % Line, File = File, Line = LineNo)\r
+                            ExtraData="""%s\n\t*Correct format is like '#langdef en-US "English"'""" % Line, File = File, Line = LineNo)\r
         else:\r
             LangName = GetLanguageCode(Lang[1], self.IsCompatibleMode, self.File)\r
-            LangPrintName = Lang[2][1:-1]\r
+            LangPrintName = Lang[2]\r
 \r
         IsLangInDef = False\r
         for Item in self.LanguageDef:\r
index 737cb0c9aba9f9066b216b950b6135169adf31cf..d2de425732f5eb2fc803cde9aff3ec3bff7c02ea 100644 (file)
@@ -4,8 +4,8 @@
 # This file is required to make Python interpreter treat the directory\r
 # as containing package.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index a49de46401c79f267603279f9b687f8f2708079d..9986ba2b0d0c8308bc1f4b641151a42c76f6001d 100644 (file)
@@ -1,8 +1,8 @@
 ## @file
 # Standardized Error Hanlding infrastructures.
 #
-# Copyright (c) 2007, Intel Corporation
-# All rights reserved. This program and the accompanying materials
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# This program and the accompanying materials
 # are licensed and made available under the terms and conditions of the BSD License
 # which accompanies this distribution.  The full text of the license may be found at
 # http://opensource.org/licenses/bsd-license.php
index dd33380a1e519cd2c6d7dc447832e318cd5a6561..982d710ce519771d18ee6ab70ed58deaf36582ef 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define common static strings used by INF/DEC/DSC files\r
 #\r
-# Copyright (c) 2007 ~ 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index e645337a39a14c2f414edfabcdf66761be162951..5c0a79f2910f0c5eaf44e35e56c87c467c83a625 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to create a database used by ECC tool\r
 #\r
-# Copyright (c) 2007 ~ 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index b95ff621ccbdcb4a6a48dacadbf0c9cb0c107f5d..ffa485979d7f44e569b1bd209082917f85d0caa4 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define each component of DEC file\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 7c572a56f0f4e914a1068e668d944e728d1bf1dc..1982dd05a0e2c9ec078b272d6d164f5000329a2e 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define each component of DEC file in light mode\r
 #\r
-# Copyright (c) 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 3c968f5ec6e0d49c7984d801b89835185aed8757..e3460e9891d4f995ef22caa1f283bc1200759263 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Define a dictionary structure\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index c25580ac3756407ea0c4d31081eff50a5623bc66..943bc6948eb2c7971b665a7b97395c1681579418 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define each component of DSC file\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index a494e814a6e95805aeb296de1eb02ec4b05ad0c5..d041b35411f20c85d2d2d32cca1e97b682776cf1 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This is the base class for applications that operate on an EDK II Workspace \r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index c33b9bff0b611582909e26397907052982828a06..69a67eda391ee68f5dad61b7b6a4a7abf56519f4 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define each component of the build database\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index ce4cfa14bbc0210918e20362334952757c9a710f..a3bcb3a14701eb70b5c21c78dc87179fa7922258 100644 (file)
@@ -1,8 +1,8 @@
 ## @file
 # This file implements the log mechanism for Python tools.
 #
-# Copyright (c) 2007, Intel Corporation
-# All rights reserved. This program and the accompanying materials
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# This program and the accompanying materials
 # are licensed and made available under the terms and conditions of the BSD License
 # which accompanies this distribution.  The full text of the license may be found at
 # http://opensource.org/licenses/bsd-license.php
index e0df1c20c26a64e5ff2520886a4c0ef5e1a4db8e..3e7d44954c885e264dd9c9c8ad97cf4e61618533 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define each component of FDF file\r
 #\r
-# Copyright (c) 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index b181e65d162b0c2888578508a476bff9ec4f72f0..5d0fd7f67b46be6dbf2c0aeed0b9ff730125927e 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # parse FDF file\r
 #\r
-#  Copyright (c) 2007 - 2010, Intel Corporation\r
+#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index d56152ec8a461927d656ed75da49300b222fe997..6c7f085810100ddab0eac964c93248c176165844 100644 (file)
@@ -1,8 +1,8 @@
 ## @file
 # This file is used to define common static strings used by INF/DEC/DSC files
 #
-# Copyright (c) 2007, Intel Corporation
-# All rights reserved. This program and the accompanying materials
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# This program and the accompanying materials
 # are licensed and made available under the terms and conditions of the BSD License
 # which accompanies this distribution.  The full text of the license may be found at
 # http://opensource.org/licenses/bsd-license.php
index a9b2f33d551f5f63b50c62bc336596d55fbe858f..f43150dfc1fee94dac57e274a865c4a93cc36520 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define the identification of INF/DEC/DSC files\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 7127cc5cff401afdb4f2a4cc8ea6d4a9ea042de8..e774d80d697b0489f3ce54fda35e0d7487e2003e 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define each component of INF file\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 179b75e28a951122d4cae49a652f4a2319a73b0a..020addfdb74b3e1001fa487e1f2c1524c2816266 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define each component of INF file\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 8573f0b692e2a20a05a4f4217109c1b47c42a529..b15daa8448167a6a30e129da0621e3caa32040fa 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Contains several utilitities shared by migration tools.\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 546dd377729aed80aa4fed0a003b7b2d9f743f1c..126985fdaca48319d020b18c654184fb731c781e 100644 (file)
@@ -1,8 +1,8 @@
 ## @file
 # Common routines used by all tools
 #
-# Copyright (c) 2007, Intel Corporation
-# All rights reserved. This program and the accompanying materials
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# This program and the accompanying materials
 # are licensed and made available under the terms and conditions of the BSD License
 # which accompanies this distribution.  The full text of the license may be found at
 # http://opensource.org/licenses/bsd-license.php
@@ -1322,7 +1322,12 @@ class PathClass(object):
 
         RealFile, RealRoot = RealPath2(self.File, self.Root, self.AlterRoot)
         if not RealRoot and not RealFile:
-            return FILE_NOT_FOUND, self.File
+            RealFile = self.File
+            if self.AlterRoot:
+                RealFile = os.path.join(self.AlterRoot, self.File)
+            elif self.Root:
+                RealFile = os.path.join(self.Root, self.File)
+            return FILE_NOT_FOUND, os.path.join(self.AlterRoot, RealFile)
 
         ErrorCode = 0
         ErrorInfo = ''
index 3884b0521cdc23b96b0b11c8a8e17340d3c243e5..ce1e60338ed7ad743a4f2ca0a0eca477ce868a4d 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define common parsing related functions used in parsing INF/DEC/DSC process\r
 #\r
-# Copyright (c) 2008 ~ 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 5da0cacfb01638efd77c61cd80e1a0f20cbe2800..1f199fe2ca58ff832185dfea8b4efb342b4a16c7 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define common string related functions used in parsing process\r
 #\r
-# Copyright (c) 2007 ~ 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 70178f54ce502ac2cb211b97ebf3066515bdf7e4..fc5d589a5966bf27a7a2281a0283bb377c26f58a 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define each component of Target.txt file\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 5a9a3096bb6a0e0c45f104d06d261a84ee84a12e..549f76cee98ca7741cca1e2f49a392914952ba31 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define each component of tools_def.txt file\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 4d601159251df89662132053c1c11c457e7c6a51..dcafb5f1566fee41112949d0fa702eb2f1b274ee 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to parse a xml file of .PKG file\r
 #\r
-# Copyright (c) 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index e5fedae83d462803cbf6217508bbbe81c26563be..58230670568391e9c6f2d93b810f628212933cdf 100644 (file)
@@ -2,8 +2,8 @@
 # This is an XML API that uses a syntax similar to XPath, but it is written in\r
 # standard python so that no extra python packages are required to use it.\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index b289a2b0d838b41e5e8cb94c0268112d11e72a3c..d8a96f9bfb8b280ffbf471f03cf6b874578f74f7 100644 (file)
@@ -4,8 +4,8 @@
 # This file is required to make Python interpreter treat the directory\r
 # as containing package.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index e226f1b0d6b2661ea4398b44e6b961322373f89e..509601007c1b32c4f4ac3743741028a54ffb8093 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define common items of class object\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.    The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 00f4be8332b66b751be8e479650fca4c4ad7aec2..a0eddc236551cd967ad1787a12271e3611393c37 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define class for data sturcture used in ECC\r
 #\r
-# Copyright (c) 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.    The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index cd8bd4cb7fd4bd7b16083a3efcd199532d36e4df..b43329945223e400e36c8c6d6a0a84d02fc0c367 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define a class object to describe a distribution package\r
 #\r
-# Copyright (c) 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.    The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index a6953b8c5ac06eda99a4ddf279fd06257b23c91b..a459cad8bad896e2c58db47a87481ef0d0f7bb6a 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # classes represent data in FDF\r
 #\r
-#  Copyright (c) 2007 - 2010, Intel Corporation\r
+#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 350350bdf4911a59aee8918a3157c209d2b5d798..399d328752159df3fdfe92c2d277d63fb07791b3 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define a class object to describe a module\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.    The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 1382b80839ef73e88948ca74cdc6a805a10c7c32..82e7394ced2ed2049ae27669be0f643f0a695de0 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define a class object to describe a package\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.    The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 1966fb9f8c10ab30cc2dfa1671e16eb852320703..46329ba1d7845e25bd9c777cbe96a2c99645bbec 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define a class object to describe a platform\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.    The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 8f81773a9551223102df861b6812cc5d86951efa..5c565408bf96a3891352f6c4a0cfadc43829e98f 100644 (file)
@@ -4,8 +4,8 @@
 # This file is required to make Python interpreter treat the directory\r
 # as containing package.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index a34f5902bb7f96b074587eafde9c07dc2780c21a..e344088f36326647e838e4b3b12960c4862c006f 100644 (file)
@@ -1,8 +1,8 @@
 /* @file\r
  This file is used to be the grammar file of ECC tool\r
 \r
- Copyright (c) 2009 - 2010, Intel Corporation\r
All rights reserved. This program and the accompanying materials\r
+ Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+ This program and the accompanying materials\r
  are licensed and made available under the terms and conditions of the BSD License\r
  which accompanies this distribution.  The full text of the license may be found at\r
  http://opensource.org/licenses/bsd-license.php\r
index 947ac4c8e3c085e663bc26d19ca5cee0e4d8bbbb..a72d4ee3c2473dcaf01b4ab50eaa0de907b77aa2 100644 (file)
@@ -10,7 +10,7 @@ from antlr3.compat import set, frozenset
 # This file is generated by running:\r
 # java org.antlr.Tool C.g\r
 #\r
-# Copyright (c) 2009 - 2010, Intel Corporation  All rights reserved.\r
+# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
 #\r
 # This program and the accompanying materials are licensed and made available\r
 # under the terms and conditions of the BSD License which accompanies this\r
index e56a79a43db0828659af3488372db3e54705ddbb..511d429f2698ad9f6e8faddbf49ff976665b7484 100644 (file)
@@ -10,7 +10,7 @@ from antlr3.compat import set, frozenset
 # This file is generated by running:\r
 # java org.antlr.Tool C.g\r
 #\r
-# Copyright (c) 2009 - 2010, Intel Corporation  All rights reserved.\r
+# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
 #\r
 # This program and the accompanying materials are licensed and made available\r
 # under the terms and conditions of the BSD License which accompanies this\r
index a8ec638fce1768c8423e028a6f73ea250415397f..dbfedb514bc809020d9e822da3f7c9a456708be8 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define checkpoints used by ECC tool\r
 #\r
-# Copyright (c) 2008 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
@@ -341,9 +341,19 @@ class Check(object):
 \r
             for Dirpath, Dirnames, Filenames in self.WalkTree():\r
                 for F in Filenames:\r
-                    if os.path.splitext(F)[1] in ('.h', '.c'):\r
+                    Ext = os.path.splitext(F)[1]\r
+                    if Ext in ('.h', '.c'):\r
                         FullName = os.path.join(Dirpath, F)\r
                         MsgList = c.CheckFileHeaderDoxygenComments(FullName)\r
+                    elif Ext in ('.inf', '.dec', '.dsc', '.fdf'):\r
+                        FullName = os.path.join(Dirpath, F)\r
+                        if not open(FullName).read().startswith('## @file'):\r
+                            SqlStatement = """ select ID from File where FullPath like '%s'""" % FullName\r
+                            ResultSet = EccGlobalData.gDb.TblFile.Exec(SqlStatement)\r
+                            for Result in ResultSet:\r
+                                Msg = 'INF/DEC/DSC/FDF file header comment should begin with ""## @file""'\r
+                                EccGlobalData.gDb.TblReport.Insert(ERROR_DOXYGEN_CHECK_FILE_HEADER, Msg, "File", Result[0])\r
+                                        \r
 \r
     # Check whether the function headers are followed Doxygen special documentation blocks in section 2.3.5\r
     def DoxygenCheckFunctionHeader(self):\r
@@ -399,6 +409,7 @@ class Check(object):
         self.MetaDataFileCheckGuidDuplicate()\r
         self.MetaDataFileCheckModuleFileNoUse()\r
         self.MetaDataFileCheckPcdType()\r
+        self.MetaDataFileCheckModuleFileGuidDuplication()\r
 \r
     # Check whether each file defined in meta-data exists\r
     def MetaDataFileCheckPathName(self):\r
@@ -692,6 +703,38 @@ class Check(object):
             #ERROR_META_DATA_FILE_CHECK_PCD_TYPE\r
         pass\r
 \r
+    # Internal worker function to get the INF workspace relative path from FileID\r
+    def GetInfFilePathFromID(self, FileID):\r
+        Table = EccGlobalData.gDb.TblFile\r
+        SqlCommand = """select A.FullPath from %s as A where A.ID = %s""" % (Table.Table, FileID)\r
+        RecordSet = Table.Exec(SqlCommand)\r
+        Path = ""\r
+        for Record in RecordSet:\r
+            Path = Record[0].replace(EccGlobalData.gWorkspace, '')\r
+            if Path.startswith('\\') or Path.startswith('/'):\r
+                Path = Path[1:]\r
+        return Path\r
+    \r
+    # Check whether two module INFs under one workspace has the same FILE_GUID value\r
+    def MetaDataFileCheckModuleFileGuidDuplication(self):\r
+        if EccGlobalData.gConfig.MetaDataFileCheckModuleFileGuidDuplication == '1' or EccGlobalData.gConfig.MetaDataFileCheckAll == '1' or EccGlobalData.gConfig.CheckAll == '1':\r
+            EdkLogger.quiet("Checking for pcd type in c code function usage ...")\r
+            Table = EccGlobalData.gDb.TblInf\r
+            SqlCommand = """\r
+                         select A.ID, A.Value2, A.BelongsToFile, B.BelongsToFile from %s as A, %s as B\r
+                         where A.Value1 = 'FILE_GUID' and B.Value1 = 'FILE_GUID' and\r
+                         A.Value2 = B.Value2 and A.ID <> B.ID group by A.ID\r
+                         """ % (Table.Table, Table.Table)\r
+            RecordSet = Table.Exec(SqlCommand)\r
+            for Record in RecordSet:\r
+                InfPath1 = self.GetInfFilePathFromID(Record[2])\r
+                InfPath2 = self.GetInfFilePathFromID(Record[3])\r
+                if InfPath1 and InfPath2:\r
+                    if not EccGlobalData.gException.IsException(ERROR_META_DATA_FILE_CHECK_MODULE_FILE_GUID_DUPLICATION, InfPath1):\r
+                        Msg = "The FILE_GUID of INF file [%s] is duplicated with that of %s" % (InfPath1, InfPath2)\r
+                        EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_MODULE_FILE_GUID_DUPLICATION, OtherMsg = Msg, BelongsToTable = Table.Table, BelongsToItem = Record[0])\r
+        \r
+\r
     # Check whether these is duplicate Guid/Ppi/Protocol name\r
     def CheckGuidProtocolPpi(self, ErrorID, Model, Table):\r
         Name = ''\r
index 1c5c5e4df26063b49fa881bf52e706252bb62cc7..3bf1c451502046768346ec93b3e98bf15245b629 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # fragments of source file\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index d95faeef6aecdd51313f7e1bc0f3051ebc2748ac..134b15f81e7e07fed2b136b28b43541b1713863b 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # preprocess source file\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index bd9313cef4bda6d5ae5818b5cf3288dac71fc08a..310cb5716bfa5875e5ec756dfeb6eb546f7990fc 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define class Configuration\r
 #\r
-# Copyright (c) 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
@@ -222,7 +222,9 @@ class Configuration(object):
         self.MetaDataFileCheckModuleFileNoUse = 1\r
         # Check whether the PCD is correctly used in C function via its type\r
         self.MetaDataFileCheckPcdType = 1\r
-        \r
+        # Check whether there are FILE_GUID duplication among different INF files\r
+        self.MetaDataFileCheckModuleFileGuidDuplication = 1\r
+\r
         #\r
         # The check points in this section are reserved\r
         #\r
index c9311f65a5002a41afa8757598e9e0343141dcec..9520be4345f9af735ee34404bfc76ffd66a76bb4 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to create a database used by ECC tool\r
 #\r
-# Copyright (c) 2007 ~ 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 4b5c319c35e14d432594ae4b97272e9ec5670e9b..62b265bbaa0a9eb14d49ba677f8cb56010a591a9 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to be the main entrance of ECC tool\r
 #\r
-# Copyright (c) 2009 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 8e8f24b8c88ef4ab7168b504da8c5924ec3c168c..29e4aca0d083afe5ffee885a26fd46d2c2ba398f 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to save global datas used by ECC tool\r
 #\r
-# Copyright (c) 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index f6c4097e780ec05310575d59e7309bd2fb3ea6f0..985737f1924cf36e059ab5c86610133f083a6dd0 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Standardized Error Hanlding infrastructures.\r
 #\r
-# Copyright (c) 2008 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
@@ -92,6 +92,7 @@ ERROR_META_DATA_FILE_CHECK_DUPLICATE_PROTOCOL = 10012
 ERROR_META_DATA_FILE_CHECK_DUPLICATE_PPI = 10013\r
 ERROR_META_DATA_FILE_CHECK_MODULE_FILE_NO_USE = 10014\r
 ERROR_META_DATA_FILE_CHECK_PCD_TYPE = 10015\r
+ERROR_META_DATA_FILE_CHECK_MODULE_FILE_GUID_DUPLICATION = 10016\r
 \r
 ERROR_SPELLING_CHECK_ALL = 11000\r
 \r
@@ -177,7 +178,7 @@ gEccErrorMessage = {
     ERROR_META_DATA_FILE_CHECK_DUPLICATE_PPI : "Duplicate PPI found",\r
     ERROR_META_DATA_FILE_CHECK_MODULE_FILE_NO_USE : "No used module files found",\r
     ERROR_META_DATA_FILE_CHECK_PCD_TYPE : "Wrong C code function used for this kind of PCD",\r
-\r
+    ERROR_META_DATA_FILE_CHECK_MODULE_FILE_GUID_DUPLICATION : "Module file has FILE_GUID collision with other module file",\r
     ERROR_SPELLING_CHECK_ALL : "",\r
     }\r
 \r
index 733408551af19876cf8b9eafad6986475c911e18..ff8736059f77f9e42eae99d2c2c5d55ede887a8b 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to parse exception items found by ECC tool\r
 #\r
-# Copyright (c) 2009, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2009, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 810087ea0733d106d2dee6c9a9e4d5f918483fdc..689aee0975312c80bb32cc8ee3ae403ac10ce277 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # fragments of source file\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index fb4239f47495e41e430e8982ba98a9215418a084..36ad6e492fb25f99888c06ec08069ee719e45c5b 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define common parser functions for meta-data\r
 #\r
-# Copyright (c) 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 1874739915fbc05bad0e5f50de3accfb8a3b9f41..a52c78ec3194dec39b6b5c657220b1c5f9e3d047 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to be the warning class of ECC tool\r
 #\r
-# Copyright (c) 2009 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index f385b1e6701fb1b2f4c7884b57799525bc6b7b46..880ad499f456900a724297439100c17f703a592d 100644 (file)
@@ -4,8 +4,8 @@
 # This file is required to make Python interpreter treat the directory\r
 # as containing package.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 1085da942b0872b0e0c74ca394f719393eea94fb..941392be0fe0a9322e96cf37a5e347fccdfd221c 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to be the c coding style checking of ECC tool\r
 #\r
-# Copyright (c) 2009 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index a3215aedaa9d49231bfa7638ce99f189e43308ca..973bc68b3867f9135b98cece2558e4d1a688bc57 100644 (file)
@@ -2,8 +2,8 @@
 # This file is used to set configuration of ECC tool\r
 # For the items listed below, 1 means valid, 0 means invalid\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
@@ -233,6 +233,8 @@ MetaDataFileCheckGuidDuplicate = 1
 MetaDataFileCheckModuleFileNoUse = 1\r
 # Check whether the PCD is correctly used in C function via its type\r
 MetaDataFileCheckPcdType = 1\r
+# Check whether there are FILE_GUID duplication among different INF files\r
+MetaDataFileCheckModuleFileGuidDuplication = 1\r
 \r
 #\r
 # The check points in this section are reserved\r
index 58cb600e466523786ecbd4c3253d178d7b6473d4..9102de6fef17dcbaa4b7bb6aa83b3fc691380b06 100644 (file)
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <ExceptionList xmlns="http://www.uefi.org/2008/2.1" xmlns:xsi="http:/www.w3.org/2001/XMLSchema-instance">\r
-  <Copyright>Copyright (c) 2009 - 2010,  Intel Corporation.</Copyright>\r
+  <Copyright>Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.</Copyright>\r
   <License>\r
-    All rights reserved.\r
     This program and the accompanying materials are licensed and made available\r
     under the terms and conditions of the BSD License which accompanies this distribution.\r
     The full text of the license may be found at http://opensource.org/licenses/bsd-license.php\r
index 947ac4c8e3c085e663bc26d19ca5cee0e4d8bbbb..a72d4ee3c2473dcaf01b4ab50eaa0de907b77aa2 100644 (file)
@@ -10,7 +10,7 @@ from antlr3.compat import set, frozenset
 # This file is generated by running:\r
 # java org.antlr.Tool C.g\r
 #\r
-# Copyright (c) 2009 - 2010, Intel Corporation  All rights reserved.\r
+# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
 #\r
 # This program and the accompanying materials are licensed and made available\r
 # under the terms and conditions of the BSD License which accompanies this\r
index e56a79a43db0828659af3488372db3e54705ddbb..511d429f2698ad9f6e8faddbf49ff976665b7484 100644 (file)
@@ -10,7 +10,7 @@ from antlr3.compat import set, frozenset
 # This file is generated by running:\r
 # java org.antlr.Tool C.g\r
 #\r
-# Copyright (c) 2009 - 2010, Intel Corporation  All rights reserved.\r
+# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
 #\r
 # This program and the accompanying materials are licensed and made available\r
 # under the terms and conditions of the BSD License which accompanies this\r
index 6dc30a3baf1d419b305747e4b206fc41c3b04f3c..db5f40a6a4ed51e1f73933a46ed2b338298efc3b 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # fragments of source file\r
 #\r
-#  Copyright (c) 2007 ~ 2010, Intel Corporation\r
+#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 349f934304df704e25ad4f77219ce13dafbe6f35..4e8cef2c4222ea1d4ba86e8e1d17c2c30753075e 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # preprocess source file\r
 #\r
-#  Copyright (c) 2007 ~ 2010, Intel Corporation\r
+#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index e3fb4f2ddfdd2d244b21c6875243fe06d49b453b..ce38a0fa929e9ec68346c90275dd1ad6e4a5ea02 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to create a database used by EOT tool\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 815907dfdda9dccb2f30a06b9630274da4d9dd55..ee7f3197a130ab52177dfc2886e2eddbf2626fc7 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to be the main entrance of EOT tool\r
 #\r
-# Copyright (c) 2008 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index a70a60b81905915a94f4756e63942fd9750d589f..43fd57a8de05b6c4bbe911332d5b30ba433e62b1 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to save global datas\r
 #\r
-# Copyright (c) 2008 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 17005f30f6b275ad924f4d822312a492719b0c83..0b3686a586111fd1c2b1cdc57815c2c8f7aa65fa 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Standardized Error Handling infrastructures.\r
 #\r
-# Copyright (c) 2008 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 602639e5bdf396906a3492c70b8d183759bb754f..b377ef6f4137aebc722291f84b01da505c0b76e7 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # fragments of source file\r
 #\r
-#  Copyright (c) 2007 - 2010, Intel Corporation\r
+#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index ad88491bae61e4f0b99cee42ad9e36393e1aed12..d54c2233d8e3bfdf02e2b07b8094bec53f8f8de6 100644 (file)
@@ -1,8 +1,8 @@
 ## @file
 # Parse FV image
 #
-# Copyright (c) 2008 - 2010, Intel Corporation
-# All rights reserved. This program and the accompanying materials
+# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>
+# This program and the accompanying materials
 # are licensed and made available under the terms and conditions of the BSD License
 # which accompanies this distribution.  The full text of the license may be found at
 # http://opensource.org/licenses/bsd-license.php
index 06f775f8033c678f844100f06332d970f06426de..6750f5a0c9673d63b665f695d123cd347a948b7c 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to parse INF file of EDK project\r
 #\r
-# Copyright (c) 2008 - 2010 Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 6850c8d32a591b51cf02c2f630163e98df6bde6d..9ef71a958769dc17050bb2b7c8faac8ff016772f 100644 (file)
@@ -2,8 +2,8 @@
 # This file is used to define common parsing related functions used in parsing\r
 # Inf/Dsc/Makefile process\r
 #\r
-# Copyright (c) 2008 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
@@ -453,8 +453,7 @@ def SearchPpiCallFunction(Identifier, SourceFileID, SourceFileFullPath, ItemMode
         if NewRecordSet:\r
             NewRecord = NewRecordSet[0][0]\r
             VariableValueList = NewRecord.split('},')\r
-            if len(VariableValueList) > Index:\r
-                VariableValue = VariableValueList[Index]\r
+            for VariableValue in VariableValueList[Index:]:\r
                 NewVariableValueList = VariableValue.split(',')\r
                 if len(NewVariableValueList) > 1:\r
                     NewVariableValue = NewVariableValueList[1].strip()\r
index af8333af232e06c0556f6f30851105478028dd02..2e3f5e49831c8414a9b4973bdcb978e93730f642 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # Warning information of Eot\r
 #\r
-#  Copyright (c) 2007 - 2010, Intel Corporation\r
+#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 34002ba7d8341db67364f68baa53b5f7cb84a79c..024f6d87bea3b86c1a424595889814ebcc1b6839 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to create report for Eot tool\r
 #\r
-# Copyright (c) 2008 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index ecd6a071f75685aca75baf1b8d77dbd5d591d6e7..c184a687d852c053636346caa2a9c2b2fd420daa 100644 (file)
@@ -4,8 +4,8 @@
 # This file is required to make Python interpreter treat the directory\r
 # as containing package.\r
 #\r
-# Copyright (c) 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 8b11ed378f0e74cd1e4fa8fed5877b04c1e1c9ae..f191dd4efcbf8ea69be0c18f146efd360986bb07 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # preprocess source file\r
 #\r
-#  Copyright (c) 2007 - 2010, Intel Corporation\r
+#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
@@ -353,9 +353,12 @@ def GetFunctionList():
 def CreateCCodeDB(FileNameList):\r
     FileObjList = []\r
     ParseErrorFileList = []\r
-\r
+    ParsedFiles = {}\r
     for FullName in FileNameList:\r
         if os.path.splitext(FullName)[1] in ('.h', '.c'):\r
+            if FullName.lower() in ParsedFiles:\r
+                continue\r
+            ParsedFiles[FullName.lower()] = 1\r
             EdkLogger.info("Parsing " + FullName)\r
             model = FullName.endswith('c') and DataClass.MODEL_FILE_C or DataClass.MODEL_FILE_H\r
             collector = CodeFragmentCollector.CodeFragmentCollector(FullName)\r
index 8d79301f3eedd7bc08ff7cb562c8c97514c7aeff..c9dbe8e4f190f84839f86e10a670a5393b6969a7 100644 (file)
@@ -4,8 +4,8 @@
 # This file is required to make Python interpreter treat the directory\r
 # as containing package.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index df2630319fd89cfe2b86228e21a9fe1a1c4d84c9..b648fcaf0e0fd3dc8ca0bc81a34cf66a272eb5cd 100644 (file)
@@ -4,8 +4,8 @@
 # This file is required to make Python interpreter treat the directory\r
 # as containing package.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 2f357a63d2031606e2e2ab52aedc4989ac2f4fa5..e489c1075385d3127e4e0a1d8652921b20cdbab9 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for Python tools build.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 92a9794f51f58e91c4f54ce67e428cdb8b5cd302..bb40d756c8a772d5720206f96214946a131fb6e5 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # process APRIORI file data and generate PEI/DXE APRIORI file\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 67f9956e1d221042e7c76e64e08f5f6f7465d435..17761f2e24f3ab2cf28a4c2a8f4f8a5cb479c903 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # name value pair\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 961b88a45837b34bdb26a668f80d35f47dc7b659..fb9213b467b383cd5719b3bcaed94422e9799b1d 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # generate capsule\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 0940094de0efe686354f3fb0389303bcccdb734b..85307b90c647624dcd6d788d443c66783cfc8781 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # generate capsule\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 8a7540fe25c0e2c1edb8a193bc9c538857aac1d8..1cf926155bc3bdf8bf0dc4f2cf33cf7bd9decc75 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # VTF components\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 7e126678a2d5950cc4a645a933da59c9d2e4cd83..4bcf286c23f0e854b046874152c4180720ac02a4 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # process compress section generation\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 7f24b51fc34af60c00b2bf10666f977bb8b3a0d8..dff4691462f177e7683685e18a47806859808971 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # process data section generation\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 8650a73eb590fb96c5895f3bdf8b666f718692e8..39678b23e96df52752caeedb2aa0e5cddcc036aa 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # process depex section generation\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index ad953facb98f04166c9065e56943d70f4c4e11cb..5419e11fce9a8062ac6a97da6602ff098068c0ba 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # process rule section generation\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 26de500d9b6c59d30efed35fda1e9f8fab9946af..cbfd6715ca09572e5bf6f14510e38fa6344f66de 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # process FD generation\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 1e87eb410eb5983075306f47b098f00b3cc01eea..ea19156dafbff4b0f8cce47d773d9e7befd979fb 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # parse FDF file\r
 #\r
-#  Copyright (c) 2007 - 2010, Intel Corporation\r
+#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 438bd186dc81f2fa402a4bdf2266eca7b379fd39..d9f1cdaff0e42d32d294847f72d7d3078ba6280f 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # process FFS generation\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index b0b1b00c7e751074612fb3fc928e982be7706972..013dbb1f02fb99e335c23fc516847576362de4f1 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # process FFS generation from FILE statement\r
 #\r
-#  Copyright (c) 2007 - 2010, Intel Corporation\r
+#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index b00e5a21788410fdebc19dfe2c99b5985e5f5cdf..d95af34dfc6b721c3233d480b5ee848daf77fe0b 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # process FFS generation from INF statement\r
 #\r
-#  Copyright (c) 2007 - 2010, Intel Corporation\r
+#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 8d2ef1d87419c1923a5341fce0470f107c6475bb..7b6305b48eb9f20e73f6fb8889285a8c794fdf43 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # process FV generation\r
 #\r
-#  Copyright (c) 2007 - 2010, Intel Corporation\r
+#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index c945ce9b9bdaff70fbc8933e41ea8b126646f65d..f5d3f4f9a536b48f3a4457b473efcfc9ff228933 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # process FV image section generation\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 5e9a02299cb7ad75fada382fb9b547aaf6efcfa8..cb82c717ddd92c656262b1a09b8dd51292332007 100644 (file)
@@ -1,9 +1,9 @@
 ## @file
 # generate flash image
 #
-#  Copyright (c) 2007 - 2010, Intel Corporation
+#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
 #
-#  All rights reserved. This program and the accompanying materials
+#  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD License
 #  which accompanies this distribution.  The full text of the license may be found at
 #  http://opensource.org/licenses/bsd-license.php
@@ -35,6 +35,7 @@ import Common.GlobalData as GlobalData
 from Common import EdkLogger
 from Common.String import *
 from Common.Misc import DirCache,PathClass
+from Common.Misc import SaveFileOnChange
 
 ## Version and Copyright
 versionNumber = "1.0"
@@ -486,14 +487,15 @@ class GenFds :
 
     def GenerateGuidXRefFile(BuildDb, ArchList):
         GuidXRefFileName = os.path.join(GenFdsGlobalVariable.FvDir, "Guid.xref")
-        GuidXRefFile = open(GuidXRefFileName, "w+")
+        GuidXRefFile = StringIO.StringIO('')
         for Arch in ArchList:
             PlatformDataBase = BuildDb.BuildObject[GenFdsGlobalVariable.ActivePlatform, Arch]
             for ModuleFile in PlatformDataBase.Modules:
                 Module = BuildDb.BuildObject[ModuleFile, Arch]
                 GuidXRefFile.write("%s %s\n" % (Module.Guid, Module.BaseName))
+        SaveFileOnChange(GuidXRefFileName, GuidXRefFile.getvalue(), False)\r
         GuidXRefFile.close()
-        GenFdsGlobalVariable.InfLogger("\nGUID cross reference file saved to %s" % GuidXRefFileName)
+        GenFdsGlobalVariable.InfLogger("\nGUID cross reference file can be found at %s" % GuidXRefFileName)
         
     ##Define GenFd as static function
     GenFd = staticmethod(GenFd)
index cad27586274c5599c93d425fc6be25606b5e827c..e9eace9c39553994d01b651c22c9feb1a1e6e40c 100644 (file)
@@ -1,9 +1,9 @@
 ## @file
 # Global variables for GenFds
 #
-#  Copyright (c) 2007 - 2010, Intel Corporation
+#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
 #
-#  All rights reserved. This program and the accompanying materials
+#  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD License
 #  which accompanies this distribution.  The full text of the license may be found at
 #  http://opensource.org/licenses/bsd-license.php
index d96788047277afb74966c3d95bb32302fee37fa2..0ef5a23716a1000c7bfc05e988909431c4da2e13 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # process GUIDed section generation\r
 #\r
-#  Copyright (c) 2007 - 2010, Intel Corporation\r
+#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index c360c6d9ad01186bfd7bcea134c00d19cc7e3ec6..a98d208e1d75e22604ab28b9f32cac3e2fd9179e 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # process OptionROM generation from FILE statement\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 8cd7429d58a44c794b66ffd364f4e7a8cbca8c1e..d64f836164863fc2a1f9b5ce23131fab0def2897 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # process OptionROM generation from INF statement\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 28e77aad5fbd4f1e918defc94942563be02f38a8..ce46413bf65159d6c87d9f815d6cf8f96d2a94f0 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # process OptionROM generation\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 99f1ac39ac1092283a3e75c7960858cda6ccbedf..09971b3cd0084de886d0323640e8605d96ce7b8b 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # process FD Region generation\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 40a5f88bab5e0fc62b639690e13b0363fc4e1df7..0e112cf15e6c9b949e9beb23eefe79459d633fba 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # Rule object for generating FFS\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 63e65c597007509e19d46714ebe58f387b2feda1..36c483fbb2079f2bd3113eac48d44fceceec0d6b 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # Complex Rule object for generating FFS\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index c6fdbd88dc8b410d18cfb816780b310354ff3526..061f984e6af43c1d4f361dcb10622c96db22d1b2 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # Simple Rule object for generating FFS\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 2e24697a3dc7b4ee18abdae99752a975e0527c52..8c884b6e1085d85cdb2134b70f755451b9626a49 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # section base class\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index e660055f9a30f3dba5df18cbe83d6c8017ec253f..e1b69ed13356ea28f323c247858a0efa8cb2abde 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # process UI section generation\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index e27d0a20f97f32bc9dd0a9ebb65f7cf413a9990d..3fca4064f0cb4c6dab5c0bfc32278edbf1ff6178 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # process Version section generation\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index eebc7b1dab4a4a76ae57323291380a5a7d0beacd..2bea9346cf438f8ba45220526ad0648de2e00d14 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # process VTF generation\r
 #\r
-#  Copyright (c) 2007, Intel Corporation\r
+#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index 1c5796affed734cdb0fbdc8dc47d91e926969844..6ba4ed4431f50271c6e3edd3062357da13593e43 100644 (file)
@@ -4,8 +4,8 @@
 # This file is required to make Python interpreter treat the directory\r
 # as containing package.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 38398221dc139578f8c480bb32020eddb593f83a..74ad01166c0cc0e3a3e51f85a2ed54d13e1451db 100644 (file)
@@ -5,8 +5,8 @@
 #    PCD Name    Offset in binary
 #    ========    ================\r
 #\r
-# Copyright (c) 2008 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index d6a199f7d540badec7c9b7a62a8ad5dace73f40b..58a5b1d630f05f8509c3010dfcd36b966068786c 100644 (file)
@@ -4,8 +4,8 @@
 # This file is required to make Python interpreter treat the directory\r
 # as containing package.\r
 #\r
-# Copyright (c) 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 0b103f2b1ab420b85276634a0c8932b5e80d7e92..26aacf947f092d0c43062bc8b0bf02a2d29f9029 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for Python tools build.\r
 #\r
-# Copyright (c) 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 16f7a6bb2e417fc0b1c42695e0f1fd6fb2adbf49..37fff885a885219ef3c32d2c66b7772df784fd07 100644 (file)
@@ -1,8 +1,8 @@
 #!/usr/bin/env python\r
 #\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 09245344a1deeaa794d20e67912a2f010f5487c2..2c81c995bd6771e0ff4a22cbfdc468d8fc3a8abc 100644 (file)
@@ -1,8 +1,8 @@
 #!/usr/bin/env python
 #
 #
-# Copyright (c) 2007 - 2010, Intel Corporation
-# All rights reserved. This program and the accompanying materials
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# This program and the accompanying materials
 # are licensed and made available under the terms and conditions of the BSD License
 # which accompanies this distribution.  The full text of the license may be found at
 # http://opensource.org/licenses/bsd-license.php
index 6eb8a1e573f856993bf541d90397069dafd8776f..4c44c247319382cf4eabb068044648f8fe43762f 100644 (file)
@@ -4,8 +4,8 @@
 # This file is required to make Python interpreter treat the directory\r
 # as containing package.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 6b2e9b28570c3da00ef6aa966c3ff79f44b36a8a..86ef62958402cb405eeaf8bd52167bb0d7ba4c17 100644 (file)
@@ -4,8 +4,8 @@
 # This file is required to make Python interpreter treat the directory\r
 # as containing package.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 402694054ed4c138028ca5a4d49fd2f0dc28dbb6..7956c8a2aeba66a77caac89e232759e463ee9ae8 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is for installed package information database operations\r
 #\r
-# Copyright (c) 2007 ~ 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index ebf907784046a4e6ad3b411cd583c3f1f82c00bc..8e4d45da21c2a8f04b5faa34e2b2f0b3953a6f3c 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Install distribution package.\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 8661edbca41eb0650007efd7fbea6197b77f3c8a..6da3e18975b6d9a03a2b0edcb44ee02b6f0474f1 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is for installed package information database operations\r
 #\r
-# Copyright (c) 2007 ~ 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index ec2136811dce224d805f5df3e132874c8c7b7a2e..f6d693d2da2ccb3ad8ce69182368105c1160019e 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Install distribution package.\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 12544927c9629c32c840ba9a30f9d903b09ae19b..6194231441c8d740b65ccac37e7e221271d520a0 100644 (file)
@@ -2,8 +2,8 @@
 #\r
 # PackageFile class represents the zip file of a distribution package.\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index ffe34bd9240ed163ff5503fea75339e64e6ef89e..38908a331fb9c5ca8cbc960b1b6439ab66fd8651 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Install distribution package.\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 9a9f1d0468568b628a9900355f91e4d7fed04634..7212522cb321ece2f6ab3ccd7f5bb0944bdbee00 100644 (file)
@@ -1,8 +1,8 @@
 ## @file
 # Patch value into the binary file.
 #
-# Copyright (c) 2010, Intel Corporation
-# All rights reserved. This program and the accompanying materials
+# Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# This program and the accompanying materials
 # are licensed and made available under the terms and conditions of the BSD License
 # which accompanies this distribution.  The full text of the license may be found at
 # http://opensource.org/licenses/bsd-license.php
index 7ec3e7e67256b4aed6ed5dfa189e9ec2122c5340..a17d05f6b97ceefbdbc3ddd61d618476911852ab 100644 (file)
@@ -4,8 +4,8 @@
 # This file is required to make Python interpreter treat the directory\r
 # as containing package.\r
 #\r
-# Copyright (c) 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 9a9657a4b3c178cde396df6554f5c5a7cd4375dc..c311df91c2ec10538f0b73a9abdae54d750d820d 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to create/update/query/erase a common table\r
 #\r
-# Copyright (c) 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 1e5fe47af143e064e60e7fe2c3d5db1352064c7f..9c3d7bd9345f768ffe53516d7ba0fc4f1637222f 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to create/update/query/erase table for data models\r
 #\r
-# Copyright (c) 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index f570fd1d1095c0e256305deed5560c40bf8599fc..6b7d22c9384c09724d612bc7c981f21ede94a713 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to create/update/query/erase table for dec datas\r
 #\r
-# Copyright (c) 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 62608a061a5d630b11160cd29958490f2410691d..69477d544d8e3e6d5f2f9c8950ee22b7d10bb6ed 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to create/update/query/erase table for dsc datas\r
 #\r
-# Copyright (c) 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 2d98129e4f5cc81d9d7eacfbb61e8a38f8d72c1e..dd465b68b2f6502db89a754974ff3f4cc1250b00 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to create/update/query/erase table for ECC reports\r
 #\r
-# Copyright (c) 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 317bd4149b970ef09a980ca027aa6b56a4f2127e..5fb8cd82322c54a15dfee508dddccd070f5e21f7 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to create/update/query/erase table for fdf datas\r
 #\r
-# Copyright (c) 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 9be64942ec30f8a9365f29fc1d909fbc73383b00..86dddd0f2b63dbd05e572fb417e8bec4ca38a4eb 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to create/update/query/erase table for files\r
 #\r
-# Copyright (c) 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index c013d0d2fe9ba3a265e752a70426943ffdba4353..3d7c2d0ea5a0c6b8fc1130234f5cd6f5bc2a4794 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to create/update/query/erase table for functions\r
 #\r
-# Copyright (c) 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 3cf33f20e2fd7aed5339710f4f8b220b439236fb..bcd6d6e1c1526832eeb14a4cd497b75449d0899b 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to create/update/query/erase table for Identifiers\r
 #\r
-# Copyright (c) 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 65ca1ce25c8e0594ee4db46d24b163dd06ee7321..b6e300b150c1076c91ac76137c2e4c8abc52cd88 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to create/update/query/erase table for inf datas\r
 #\r
-# Copyright (c) 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index ba91d175f0a4a298fd1c67afc83e3f584fa86da4..19623f98f42c465f6c11cf9abdb76cf7e5f9e69e 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to create/update/query/erase table for pcds\r
 #\r
-# Copyright (c) 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 4ad9dc5e5507e4eacb5227c4e19ecd6458e9480a..e1d2537394b2076ffe80b346fd1da5b338c482e4 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to create/update/query/erase table for Queries\r
 #\r
-# Copyright (c) 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 777a479156d0ec338b1538d7e9d5fb075a45cb23..2e7fd539f7ee7a8d3538585a39de8d77aa941938 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to create/update/query/erase table for ECC reports\r
 #\r
-# Copyright (c) 2008 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
@@ -105,7 +105,7 @@ class TableReport(Table):
                 IsCorrected = Record[5]\r
                 SqlCommand = ''\r
                 if BelongsToTable == 'File':\r
-                    SqlCommand = """select 0, FullPath from %s where ID = %s\r
+                    SqlCommand = """select 1, FullPath from %s where ID = %s\r
                              """ % (BelongsToTable, BelongsToItem)\r
                 else:\r
                     SqlCommand = """select A.StartLine, B.FullPath from %s as A, File as B\r
index ea0b26743f8d007d6a718795a415beab80e9fa2e..c6424a593304985cf540cfcb01d14cc25b2b25d6 100644 (file)
@@ -4,8 +4,8 @@
 # This file is required to make Python interpreter treat the directory\r
 # as containing package.\r
 #\r
-# Copyright (c) 2008 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index df3ed2f6bb6442d48c0d219b09af421accab3fda..68c55718bcc718d91b066f2ad0e69e4dec94765c 100644 (file)
@@ -1,7 +1,7 @@
 #\r
-#  Copyright (c) 2007 - 2010, Intel Corporation\r
+#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
index cbc78a7322c8da1f62b187f2ca58f8c8cda2f91c..0187a7a74a2a60b1ff6c3b8396b64cf177312b65 100644 (file)
@@ -4,8 +4,8 @@
 # This file is required to make Python interpreter treat the directory\r
 # as containing package.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index dbfa84a5da0ab9697482d9846b72b77f97e0dde1..d19bb09b2d286301c1b327b68ab195785ffb141e 100644 (file)
@@ -1,8 +1,8 @@
 ## @file
 # Trim files preprocessed by compiler
 #
-# Copyright (c) 2007 - 2010, Intel Corporation
-# All rights reserved. This program and the accompanying materials
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# This program and the accompanying materials
 # are licensed and made available under the terms and conditions of the BSD License
 # which accompanies this distribution.  The full text of the license may be found at
 # http://opensource.org/licenses/bsd-license.php
@@ -33,7 +33,7 @@ __copyright__ = "Copyright (c) 2007-2010, Intel Corporation. All rights reserved
 ## Regular expression for matching Line Control directive like "#line xxx"
 gLineControlDirective = re.compile('^\s*#(?:line)?\s+([0-9]+)\s+"*([^"]*)"')
 ## Regular expression for matching "typedef struct"
-gTypedefPattern = re.compile("^\s*typedef\s+struct\s*[{]*$", re.MULTILINE)
+gTypedefPattern = re.compile("^\s*typedef\s+struct(\s+\w+)?\s*[{]*$", re.MULTILINE)
 ## Regular expression for matching "#pragma pack"
 gPragmaPattern = re.compile("^\s*#pragma\s+pack", re.MULTILINE)
 ## Regular expression for matching HEX number
@@ -294,6 +294,7 @@ def DoInclude(Source, Indent=''):
         CurrentIndent = Indent + Result[0][0]
         IncludedFile = Result[0][1]
         NewFileContent.extend(DoInclude(IncludedFile, CurrentIndent))
+        NewFileContent.append("\n")
 
     gIncludedAslFile.pop()
     F.close()
index 36c2ebf491adeb0dc85cf4cfd4a33717fe48dce9..f0fef4dda3f55de7bbccdeeba26ab9f7874f67c6 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define each component of the build database\r
 #\r
-# Copyright (c) 2007 ~ 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index c8166bfa9085ebc513c95dc2022cae67bc0932b6..64f0480c37e860d39c9a469c1702d194bde9d12a 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to create/update/query/erase table for files\r
 #\r
-# Copyright (c) 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index eb2e038b5d10091bddfb336a49b95ebf454645d7..70c6e62fe93ead5a0a0bc44176b6048f7c847442 100644 (file)
@@ -1,8 +1,8 @@
 ## @file
 # This file is used to parse meta files
 #
-# Copyright (c) 2008 - 2010, Intel Corporation
-# All rights reserved. This program and the accompanying materials
+# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>
+# This program and the accompanying materials
 # are licensed and made available under the terms and conditions of the BSD License
 # which accompanies this distribution.  The full text of the license may be found at
 # http://opensource.org/licenses/bsd-license.php
index 22e2afa4c929504f7b2444465d2c32f2486f74a8..d8dacacd64e14d15fc2fa6ff6740cd18f03d26fc 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to create/update/query/erase a meta file table\r
 #\r
-# Copyright (c) 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 5b20c4091c5b39ce973a55ed8abbc22e3a9fa94d..12c3324b8dfa834321116cc11e10007219308821 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to create a database used by build tool\r
 #\r
-# Copyright (c) 2008 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 27a969bb27033091f841370ec4c43de576683673..05cd34bad5a6e4dfe736bc8e90de3ef7455a0e92 100644 (file)
@@ -4,8 +4,8 @@
 # This file is required to make Python interpreter treat the directory\r
 # as containing package.\r
 #\r
-# Copyright (c) 2008 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 329352204dc4267a2965ccd116095de99fd797ef..af03e1f982d04291f4b94e6702dce847e30e47df 100644 (file)
@@ -4,8 +4,8 @@
 # This module contains the functionality to generate build report after\r
 # build all target completes successfully.\r
 #\r
-# Copyright (c) 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
@@ -22,12 +22,14 @@ import platform
 import textwrap\r
 import traceback\r
 import sys\r
+import time\r
 from datetime import datetime\r
+from StringIO import StringIO\r
 from Common import EdkLogger\r
+from Common.Misc import SaveFileOnChange\r
 from Common.Misc import GuidStructureByteArrayToGuidString\r
 from Common.Misc import GuidStructureStringToGuidString\r
 from Common.InfClassObject import gComponentType2ModuleType\r
-from Common.BuildToolError import FILE_OPEN_FAILURE\r
 from Common.BuildToolError import FILE_WRITE_FAILURE\r
 from Common.BuildToolError import CODE_ERROR\r
 \r
@@ -578,7 +580,8 @@ class PcdReport(object):
         for Platform in Wa.BuildDatabase.WorkspaceDb.PlatformList:\r
             for (TokenCName, TokenSpaceGuidCName) in Platform.Pcds:\r
                 DscDefaultValue = Platform.Pcds[(TokenCName, TokenSpaceGuidCName)].DefaultValue\r
-                self.DscPcdDefault[(TokenCName, TokenSpaceGuidCName)] = DscDefaultValue\r
+                if DscDefaultValue:\r
+                    self.DscPcdDefault[(TokenCName, TokenSpaceGuidCName)] = DscDefaultValue\r
 \r
     ##\r
     # Generate report for PCD information\r
@@ -765,6 +768,13 @@ class PredictionReport(object):
         for Pa in Wa.AutoGenObjectList:\r
             for Module in Pa.LibraryAutoGenList + Pa.ModuleAutoGenList:\r
                 #\r
+                # BASE typed modules are EFI agnostic, so we need not scan\r
+                # their source code to find PPI/Protocol produce or consume\r
+                # information.\r
+                #\r
+                if Module.ModuleType == "BASE":\r
+                    continue\r
+                #\r
                 # Add module referenced source files\r
                 #\r
                 self._SourceList.append(str(Module))\r
@@ -889,12 +899,17 @@ class PredictionReport(object):
 \r
         try:\r
             from Eot.Eot import Eot\r
+\r
             #\r
-            # Invoke EOT tool\r
+            # Invoke EOT tool and echo its runtime performance\r
             #\r
+            EotStartTime = time.time()\r
             Eot(CommandLineOption=False, SourceFileList=SourceList, GuidList=GuidList,\r
                 FvFileList=' '.join(FvFileList), Dispatch=DispatchList, IsInit=True)\r
-\r
+            EotEndTime = time.time()\r
+            EotDuration = time.strftime("%H:%M:%S", time.gmtime(int(round(EotEndTime - EotStartTime))))\r
+            EdkLogger.quiet("EOT run time: %s\n" % EotDuration)\r
+            \r
             #\r
             # Parse the output of EOT tool\r
             #\r
@@ -1415,13 +1430,11 @@ class BuildReport(object):
     def GenerateReport(self, BuildDuration):\r
         if self.ReportFile:\r
             try:\r
-                File = open(self.ReportFile, "w+")\r
-            except IOError:\r
-                EdkLogger.error(None, FILE_OPEN_FAILURE, ExtraData=self.ReportFile)\r
-            try:\r
+                File = StringIO('')\r
                 for (Wa, MaList) in self.ReportList:\r
                     PlatformReport(Wa, MaList, self.ReportType).GenerateReport(File, BuildDuration, self.ReportType)\r
-                EdkLogger.quiet("Report successfully saved to %s" % os.path.abspath(self.ReportFile))\r
+                SaveFileOnChange(self.ReportFile, File.getvalue(), False)\r
+                EdkLogger.quiet("Build report can be found at %s" % os.path.abspath(self.ReportFile))\r
             except IOError:\r
                 EdkLogger.error(None, FILE_WRITE_FAILURE, ExtraData=self.ReportFile)\r
             except:\r
index 1c7f31a8bcf398a86d795cb0ca04ab6c98a8b04a..64cf63b635f48f0c61b477db3ff2200311bfc5af 100644 (file)
@@ -4,8 +4,8 @@
 # This file is required to make Python interpreter treat the directory\r
 # as containing package.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index f608dee9b8c703094bd01274f61d272369ab9be2..545ffa39aaa9e7fc1b6c3bd5c9d4835600a7222c 100644 (file)
@@ -1,9 +1,9 @@
 ## @file\r
 # build a platform or a module\r
 #\r
-#  Copyright (c) 2007 - 2010, Intel Corporation\r
+#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
 #\r
-#  All rights reserved. This program and the accompanying materials\r
+#  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
@@ -1289,12 +1289,10 @@ class Build():
         #\r
         # Save address map into MAP file.\r
         #\r
-        MapFile = open(MapFilePath, "wb")
-        MapFile.write(MapBuffer.getvalue())
-        MapFile.close()
-        MapBuffer.close()\r
+        SaveFileOnChange(MapFilePath, MapBuffer.getvalue(), False)\r
+        MapBuffer.close()
         if self.LoadFixAddress != 0:
-            sys.stdout.write ("\nLoad Module At Fix Address Map file saved to %s\n" %(MapFilePath))
+            sys.stdout.write ("\nLoad Module At Fix Address Map file can be found at %s\n" %(MapFilePath))
         sys.stdout.flush()
 \r
     ## Build active platform for different build targets and different tool chains\r
index 528dbf3ddb464cc684d0ebb2f5680ea6d7df7179..68fa79e7a4242ba260677612fc3c830ab61479d1 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Collects the Guid Information in current workspace.\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index cc97ec55213436f07511f6945b0aad2a247e3dbb..fe271ac85b40afc0675da9da557c268ef7ea99e1 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Open an FPD file and load all its contents to a PlatformClass object.\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index d3c724832cf391f672b06d8b64a6aaed23ee48a9..8e360b9b5b650348c5d84a7902e0280a9eea292d 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Contains several utilitities shared by migration tools.\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 8d07ab9c5bd0440d3c17cb192a64ffbec055f9c5..f8123a2f9722b61439792d35369b3e439a18e72c 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Store a Platform class object to an INF file.\r
 #\r
-# Copyright (c) 2007 - 2009, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2009, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 4831e80db7c4bb6afa381aec916866b891228262..f9d3a2197f0a3ce7621852ab68ec114acb4fc75f 100644 (file)
@@ -4,8 +4,8 @@
 # This file is required to make Python interpreter treat the directory\r
 # as containing package.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 496e108b1f64ef4f0bb48b2467ab2b84596dcf7b..0d65e2bb51d69ec8765ec609ced8e6c95dc4ce05 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Convert an XML-based FPD file to a text-based DSC file.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index af9aa1d8ec82dca1597088501d58337845630a58..2a118ae51ef65b3570765c4ec30a6bac3130584f 100644 (file)
@@ -2,8 +2,8 @@
 # Convert an MSA Module class object ot an INF Module class object by filling\r
 # several info required by INF file.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index f1c8d60d752cffc54aa1aa457ef0b2a4d0271fc5..6d6633b89356cdedbb065b23c8c4d2fc54a48009 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Collects the Guid Information in current workspace.\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 4995f2cd0c2e26cf6f12700bd4790bb8bca50ec4..5bf80300a80a585abaed8a0eccdb2f79a39eff4a 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Open an MSA file and load all its contents to a ModuleClass object.\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 5873b1d198abc7060874d591fbbd6907849330b7..04c86026de84035803c1ae9fecb7a43c041c2fb2 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Convert an XML-based MSA file to a text-based INF file.\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 6bf46cf0be64dcead64dbd046430c49a6af4d57b..d7f6869d76fcd2ce547c019ccec5b27298bb0ae2 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Store a Module class object to an INF file.\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index e139a80bdb376c7d7ef31cabd027445d11714f52..ed1749bd123e96fabb35f7ee205bc29c98ea89f3 100644 (file)
@@ -4,8 +4,8 @@
 # This file is required to make Python interpreter treat the directory\r
 # as containing package.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index cd315e022fb51d9e1c2b78d9d48518b4068ca155..22501f8baef8b0ac2de712d2332ffbeabd4c0658 100644 (file)
@@ -1,7 +1,7 @@
 #
-# Copyright (c) 2009 - 2010, Apple, Inc. All rights reserved.
+# Copyright (c) 2009 - 2010, Apple Inc. All rights reserved.<BR>
 #
-# All rights reserved. This program and the accompanying materials
+# This program and the accompanying materials
 # are licensed and made available under the terms and conditions of the BSD License
 # which accompanies this distribution.  The full text of the license may be found at
 # http://opensource.org/licenses/bsd-license.php
index 57bc098bfa2f648b07ef2911061f1652689a36f4..f0742252802cef19809522ede993a2c2e634b69b 100644 (file)
@@ -2,8 +2,8 @@
 # Convert an SPD Package class object ot a DEC Package class object by filling\r
 # some fields required by DEC file.\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index e94e7fc317b5b1607c40763b0dfef88ce9621214..e82a9bfa80f11d85e636b26a37b87aad373eaa99 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Open an SPD file and load all its contents to a PackageClass object.\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 46d058344bddabfbe0d0b0af3d32396b124294f8..2d2814ae0d42ffebeedc0041a7f832297043fa64 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Convert an XML-based SPD file to a text-based DEC file.\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 67cbd11e9b4883782c815f08960beb0e0b7ba7ce..f3805f62108577e792a9eff6b6ee6a86cea6dff3 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Store a Package class object to a DEC file.\r
 #\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index ed0302b48d3b05ffd277a66023e3cc5e4646091c..41e5b2656eac2d6852cca949b8cd00754e02e5e1 100644 (file)
@@ -4,8 +4,8 @@
 # This file is required to make Python interpreter treat the directory\r
 # as containing package.\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 22179b9e10b8ddebe7a6306d62ab61a1b64626b7..67681ea77f91f579eae063fed96b3a15ca774dad 100644 (file)
@@ -1,9 +1,9 @@
 ## @file
 # Unit tests for C based BaseTools
 #
-#  Copyright (c) 2008, Intel Corporation
+#  Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>
 #
-#  All rights reserved. This program and the accompanying materials
+#  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD License
 #  which accompanies this distribution.  The full text of the license may be found at
 #  http://opensource.org/licenses/bsd-license.php
index 47eb81fce82955cb17f741e55c8177b6b728607d..e27c341c0ca8db4bb920867075478178c64b17a2 100644 (file)
@@ -1,9 +1,9 @@
 ## @file
 #  Unit tests for checking syntax of Python source code
 #
-#  Copyright (c) 2009, Intel Corporation
+#  Copyright (c) 2009, Intel Corporation. All rights reserved.<BR>
 #
-#  All rights reserved. This program and the accompanying materials
+#  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD License
 #  which accompanies this distribution.  The full text of the license may be found at
 #  http://opensource.org/licenses/bsd-license.php
index 4bd51c678d5bbe2c064c4e6429e3e3ffe3f6464c..c63c2166c318618c8442dc67134206b2cf350679 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # Windows makefile for 'Tests' module build.\r
 #\r
-# Copyright (c) 2009 - 2010, Intel Corporation<BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
index 1ffd89ba1146a7864b27ffabc799b2d6477125be..7db5855e0b00de9ad190fd5197660b64faab3b42 100644 (file)
@@ -1,9 +1,9 @@
 ## @file
 # Unit tests for Python based BaseTools
 #
-#  Copyright (c) 2008, Intel Corporation
+#  Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>
 #
-#  All rights reserved. This program and the accompanying materials
+#  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD License
 #  which accompanies this distribution.  The full text of the license may be found at
 #  http://opensource.org/licenses/bsd-license.php
index 792384a8fb2bc04739778c973bff1fc08e3b8cd5..193bc606255eb8b80a448471d68a83c6a92a8762 100644 (file)
@@ -1,9 +1,9 @@
 ## @file
 # Unit tests for BaseTools utilities
 #
-#  Copyright (c) 2008, Intel Corporation
+#  Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>
 #
-#  All rights reserved. This program and the accompanying materials
+#  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD License
 #  which accompanies this distribution.  The full text of the license may be found at
 #  http://opensource.org/licenses/bsd-license.php
index 72e42461da42ceca00c9a7cb475630d07d8aaa1c..4a70e92bcdd03d874a451edfb84405576052824e 100644 (file)
@@ -1,9 +1,9 @@
 ## @file
 # Utility functions and classes for BaseTools unit tests
 #
-#  Copyright (c) 2008, Intel Corporation
+#  Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>
 #
-#  All rights reserved. This program and the accompanying materials
+#  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD License
 #  which accompanies this distribution.  The full text of the license may be found at
 #  http://opensource.org/licenses/bsd-license.php
index dd2cdfb68f94d29ef2e7964bcde24f458e784817..01cd975048a487c6eb4819e0c46a745ffe9cd89a 100644 (file)
@@ -1,9 +1,9 @@
 ## @file
 # Unit tests for TianoCompress utility
 #
-#  Copyright (c) 2008, Intel Corporation
+#  Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>
 #
-#  All rights reserved. This program and the accompanying materials
+#  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD License
 #  which accompanies this distribution.  The full text of the license may be found at
 #  http://opensource.org/licenses/bsd-license.php
index 02210a62c60eb2a22b758f251aa5432e63cc2ca5..38473970da120035d5cb246e1c00fcf3d96922ac 100644 (file)
Binary files a/BaseTools/UserManuals/BootSectImage_Utility_Man_Page.rtf and b/BaseTools/UserManuals/BootSectImage_Utility_Man_Page.rtf differ
index e7ca6609af93a33307e002b716adab46d68366e9..75b403edca96e64b5b86836b8b930ea73f033080 100644 (file)
-{\rtf1\adeflang1025\ansi\ansicpg1252\uc2\adeff0\deff0\stshfdbch13\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe2052{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times};}{\f13\fnil\fcharset134\fprq2{\*\panose 02010600030101010101}\'cb\'ce\'cc\'e5{\*\falt SimSun};}\r
-{\f38\fnil\fcharset134\fprq2{\*\panose 02010600030101010101}@\'cb\'ce\'cc\'e5;}{\f39\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana{\*\falt Tahoma};}{\f148\froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times};}\r
-{\f149\froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times};}{\f151\froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times};}{\f152\froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times};}\r
-{\f153\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times};}{\f154\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times};}{\f155\froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times};}\r
-{\f156\froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times};}{\f280\fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};}{\f530\fnil\fcharset0\fprq2 @\'cb\'ce\'cc\'e5 Western;}{\f538\fswiss\fcharset238\fprq2 Verdana CE{\*\falt Tahoma};}\r
-{\f539\fswiss\fcharset204\fprq2 Verdana Cyr{\*\falt Tahoma};}{\f541\fswiss\fcharset161\fprq2 Verdana Greek{\*\falt Tahoma};}{\f542\fswiss\fcharset162\fprq2 Verdana Tur{\*\falt Tahoma};}{\f545\fswiss\fcharset186\fprq2 Verdana Baltic{\*\falt Tahoma};}\r
-{\f546\fswiss\fcharset163\fprq2 Verdana (Vietnamese){\*\falt Tahoma};}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\r
-\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red8\green96\blue168;}{\stylesheet{\r
-\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\f39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 \snext0 Normal;}{\r
-\s1\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel0\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\f39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 \sbasedon0 \snext0 heading 1;}{\r
-\s2\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\f39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 \sbasedon0 \snext0 heading 2;}{\*\cs10 \r
-\additive \ssemihidden Default Paragraph Font;}{\*\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \r
-\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs20\lang1024\langfe1024\loch\f0\hich\af0\dbch\af13\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}}\r
-{\*\latentstyles\lsdstimax156\lsdlockeddef0}{\*\rsidtbl \rsid4665511}{\*\generator Microsoft Word 11.0.0000;}{\info{\operator lgao4}{\creatim\yr2010\mo3\dy18\hr17\min7}{\revtim\yr2010\mo3\dy18\hr17\min7}{\version2}{\edmins0}{\nofpages5}{\nofwords1007}\r
-{\nofchars5745}{\nofcharsws6739}{\vern24615}{\*\password 00000000}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}{\xmlns2 urn:schemas-microsoft-com:office:smarttags}}\r
-\paperw12240\paperh15840\margl1800\margr1800\margt1440\margb1440\gutter0\ltrsect \r
-\widowctrl\ftnbj\aenddoc\donotembedsysfont0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\r
-\jcompress\viewkind4\viewscale100\rsidroot4665511 \fet0{\*\wgrffmtfilter 013f}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta \hich .}}{\*\pnseclvl2\r
-\pnucltr\pnstart1\pnindent720\pnhang {\pntxta \hich .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta \hich .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta \hich )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb \hich (}\r
-{\pntxta \hich )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb \hich (}{\pntxta \hich )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb \hich (}{\pntxta \hich )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb \hich (}\r
-{\pntxta \hich )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb \hich (}{\pntxta \hich )}}\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx360\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \r
-\rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Name\r
-\par }\pard\plain \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \r
-\ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Build.exe \hich\f39 \endash \loch\f39  the master command that provides the {\*\xmlopen\xmlns2{\factoidname PersonName}}dev{\*\xmlclose}\r
-eloper with a single command for selecting various options of a build\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx360\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Synopsis\r
-\par }\pard\plain \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs18 \r
-\ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Build.exe [options] [target]\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Description\r
-\par }\pard\plain \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \r
-\ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Build.exe is the master command line (CLI) tool that provides the {\*\xmlopen\xmlns2{\factoidname PersonName}}dev{\*\xmlclose}eloper with a s\hich\af39\dbch\af13\loch\f39 \r
-ingle command for selecting various options of a build.  In general, it checks the environment variables, gets the user\hich\f39 \rquote \loch\f39 \r
-s configuration from either the CLI or target.txt, parses the dsc, dec, inf, target.txt, tools_def.txt, generates .C, .H files and the \hich\af39\dbch\af13\loch\f39 M\hich\af39\dbch\af13\loch\f39 \r
-akefiles for one or more modules and/or the active platform, calls a make (NMake or make) program to process these Makefiles, then optionally calls GenFds to generate an fd file.\r
-\par \hich\af39\dbch\af13\loch\f39 The build tool supports two kinds of path specifications on command line - an\hich\af39\dbch\af13\loch\f39  absolutely path or a relative (to the WORKSPACE environment variable) path \hich\f39 \endash \loch\f39 \r
- in command line.\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx360\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Options\r
-\par }\pard\plain \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \r
-\ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 There are no required options. \r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 -a, --arch <ARCH>\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 \r
-ARCH is one of list: IA32, X64, IPF or EBC,  which overrides target.txt's TARGET_ARCH  definition. To s\hich\af39\dbch\af13\loch\f39 pecify more ARCH, please  repeat this option.\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 -p, --platform PlatformName.dsc\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 \r
-Build the platform specified by the DSC file  name argument, overrides target.txt's  ACTIVE_PLATFORM definition.\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 -m, --module ModuleName.inf\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Build the module specified by the INF\hich\af39\dbch\af13\loch\f39 \r
- file name argument.\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 -b, --buildtarget <TARGET>\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 \r
-TARGET is one of list: DEBUG, RELEASE,  which overrides target.txt's TARGET definition. To specify more TARGET, please repeat this option.\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 -t, --tagname Tagname\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Using the Tool Chain Tagname to build the platf\hich\af39\dbch\af13\loch\f39 \r
-orm, overrides target.txt's TOOL_CHAIN_TAG definition.\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 -f --fdf Filename.fdf\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 The name of the FDF file to use, which overrides the setting in the DSC file.\r
-\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 -r --rom-image ROM_IMAGE_NAME\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 The name of FD to be generated. The name must be from [FD] section in FDF file.\r
-\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 -i --fv-image FV_IMAGE_NAME\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 The name of FV to be generated. The name must be from [FV] section in FDF file.\r
-\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 -n NUM\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Build the platform using multi-threaded compiler. The value o\r
-\hich\af39\dbch\af13\loch\f39 verrides target.txt's MULTIPLE_THREAD and MAX_CONCURRENT_THREAD_NUMBER. Less than 2 will disable multi-thread builds.\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 -x --sku-id SKU_ID}{\rtlch\fcs1 \ab\af0\afs18 \ltrch\fcs0 \r
-\b\f0\fs18\cf1\insrsid4665511 \r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 \r
-Using this name of SKU ID to build the platform, overriding SKUID_IDENTIFIER in DSC file.\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 -u --skip-autogen}{\rtlch\fcs1 \ab\af0\afs18 \ltrch\fcs0 \r
-\b\f0\fs18\cf1\insrsid4665511 \r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Skip AutoGe\hich\af39\dbch\af13\loch\f39 \r
-n step. Note the build may fail if there\hich\f39 \rquote \loch\f39 s no AutoGen-ed files before.\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 -e --re-parse}{\rtlch\fcs1 \ab\af0\afs18 \ltrch\fcs0 \r
-\b\f0\fs18\cf1\insrsid4665511 \r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 \r
-Re-parse all meta-data files. Use this option if you encounter inconsistency issue.}{\rtlch\fcs1 \af0\afs18 \ltrch\fcs0 \f0\fs18\cf1\insrsid4665511 \r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 -w --warning-as-error}{\rtlch\fcs1 \ab\af0\afs18 \ltrch\fcs0 \r
-\b\f0\fs18\cf1\insrsid4665511 \r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Treat warning in tools as error.\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 -j --log LOGFILE}{\rtlch\fcs1 \ab\af0\afs18 \ltrch\fcs0 \r
-\b\f0\fs18\cf1\insrsid4665511 \r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Put screen outp\hich\af39\dbch\af13\loch\f39 ut in specified file.\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 -s \hich\f39 \endash \loch\f39 silent\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 \hich\f39 Tell \'93\loch\f39 \hich\f39 make\'94\loch\f39 \hich\f39 \r
- tool to run \'93\loch\f39 \hich\f39 silently\'94\loch\f39 . Internally, a \hich\f39 \lquote \loch\f39 -s\hich\f39 \rquote \loch\f39 \hich\f39  switch will be passed to \'93\loch\f39 \hich\f39 make\'94\loch\f39  tool. Don\hich\f39 \rquote \loch\f39 \r
-\hich\f39 t use this option if your \'93\loch\f39 \hich\f39 make\'94\loch\f39  tool doesn\hich\f39 \rquote \loch\f39 t support \hich\f39 \lquote \loch\f39 -s\hich\f39 \rquote \loch\f39 \hich\f39 . Instead, if your \'93\loch\f39 \hich\f39 make\'94\r
-\loch\f39  tool uses other option to do the same, you\hich\af39\dbch\af13\loch\f39  could add it to the XX_XX_XX_MAKE_FLAGS in tools_def.txt.\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 -d, --debug [#]\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Enable debug messages at specified level. It is used by Tool itself.\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 -q, --quiet\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Disable all messages except FATAL ERRORS.\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 -v, --verbose\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Turn on verbose output with informational me\hich\af39\dbch\af13\loch\f39 \r
-ssages printed.\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 -D, --define MACROS\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Macro: "Name [= Value]".\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 -y, --report-file REPORTFILE}{\rtlch\fcs1 \ab\af0\afs18 \ltrch\fcs0 \r
-\b\f0\fs18\cf1\insrsid4665511 \r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Create/overwrite the report to the specified filename.\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 -Y, --report-type REPORTTYPE\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 \r
-Flags that control the type of build report to generate.  Must be one of: [PCD, LIBRARY, FLASH, DEPEX, BUILD_FLAGS, FIXED_ADDRESS, EXECUTION_ORDER].  To specify more than one flag, repeat this option on the command line and the default flag set is [PCD, L\r
-\hich\af39\dbch\af13\loch\f39 I\hich\af39\dbch\af13\loch\f39 BRARY, FLASH, DEPEX, BUILD_FLAGS, FIXED_ADDRESS]\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 --version\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Show program's copyright and version number then exit.\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 -h, --help\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Print the copyright, version and usage of this program then exit.\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx360\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Target\r
-\par }\pard\plain \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \r
-\ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 If no target is given, then default target is ALL.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 ALL}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39     \hich\af39\dbch\af13\loch\f39 \r
-       Build everything for either the platform or module.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 GenC}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 \r
-         Auto-generate all C files for either the platform or module.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 GenMake}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39      Generate the Makefiles \hich\f39 \endash \loch\f39 \r
- if auto-generated files are missing,\r
-\par }\pard \ltrpar\ql \li360\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39                     then auto-generate all C file\hich\af39\dbch\af13\loch\f39 \r
-s first for either the platform or module.\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Fds}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \r
-\hich\af39\dbch\af13\loch\f39             Create the FD Image files.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Libraries}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 \r
-      Build all EDK Libraries and EDK II Library Instances which are specified.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Modules}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 \r
-       Build all EDK components and EDK II modules which are specified.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Clean}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 \r
-         Remove intermediate files generated by the NMAKE command (leaving\r
-\par }\pard \ltrpar\ql \li360\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 \r
-                    the auto-generated C format, FD image files, PE32 output files, PCH \r
-\par \hich\af39\dbch\af13\loch\f39                     files and LIB files).\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 CleanAll}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \r
-\hich\af39\dbch\af13\loch\f39       Remove all intermmediate, auto-\hich\af39\dbch\af13\loch\f39 generated, FV and FD image files \hich\f39 \endash \loch\f39  \r
-\par }\pard \ltrpar\ql \li360\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 \r
-                   state of the tree should be exactly as if a fresh checkout or install has \r
-\par \hich\af39\dbch\af13\loch\f39                    occurred.\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 CleanLib}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \r
-\hich\af39\dbch\af13\loch\f39      Remove intermediate files generated by the NMAKE command AND LIB \r
-\par }\pard \ltrpar\ql \li360\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39                   \hich\af39\dbch\af13\loch\f39 \r
- files (leaving the auto-generated, FV and FD image files, PE32 output \r
-\par \hich\af39\dbch\af13\loch\f39                    files and PCH files)\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 run}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \r
-\hich\af39\dbch\af13\loch\f39            Run platform (for emulator platform only)\r
-\par }\pard \ltrpar\ql \li360\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af0\afs18 \ltrch\fcs0 \f0\fs18\cf1\insrsid4665511 \r
-\par \r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx360\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Examples\r
-\par }\pard\plain \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \r
-\ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Assume that $(WORKSPACE) is C:\\MyWorkspace\r
-\par }\pard \ltrpar\ql \li180\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin180\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Build platform: Nt32Pkg.dsc\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Specify the platform description file on the command line.\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 C:\\MyWorkspace>build -p Nt32Pkg\\Nt32Pkg.dsc \hich\f39 \endash \loch\f39 \r
-a IA32\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 \r
-Build the platform in the current working directory if it contains a platform description file.\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 C:\\MyWorkspace\\Nt32Pkg>build \hich\f39 \endash \loch\f39 a IA32\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Build the ac\hich\af39\dbch\af13\loch\f39 \r
-tive platform specified in the target.txt file.\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 C:\\ MyWorkspace>build \hich\f39 \endash \loch\f39 a Ia32\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af0\afs18 \ltrch\fcs0 \f0\fs18\cf1\insrsid4665511 \r
-\par }\pard \ltrpar\ql \li180\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin180\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Build Module: HelloWorld.inf\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Specify the platform and Module on the command line.\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 C:\\MyWorkspace>build -p Nt32Pkg\\Nt32Pkg.dsc \hich\f39 \endash \loch\f39 \r
-a IA32 \\\r
-\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39  \hich\f39 \endash \loch\f39 m MdeModulePkg/Application/HelloWorld/H\r
-\hich\af39\dbch\af13\loch\f39 elloWorld.inf\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 \r
-Specify the Module on the command line and use the active platform specified in the target.txt file.\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 C:\\MyWorkspace>build \hich\f39 \endash \loch\f39 a IA32 \\\r
-\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \loch\af39\dbch\af13\hich\f39 \endash \loch\f39 m MdeModulePkg/Application/HelloWorld/HelloWorld.inf\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Build the module in the current working directory if it \r
-\hich\af39\dbch\af13\loch\f39 contains a module description file and specify the platform on the command line.\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 C:\\ MyWorkspace\\MdeModulePkg\\Application\\HelloWorld>build \hich\f39 \r
-\endash \loch\f39 a Ia32 \\\r
-\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \loch\af39\dbch\af13\hich\f39 \endash \loch\f39 p Nt32Pkg\\Nt32Pkg.dsc\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 \r
-Build the module in the current working directory and use the active platform specified in the target.txt file.\r
-\par }\pard \ltrpar\ql \li720\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 C:\\ MyWorkspace\\MdeModulePkg\\Application\\HelloWorld>build \hich\f39 \r
-\endash \loch\f39 a Ia32 \r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx360\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Bugs \r
-\par }\pard\plain \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \r
-\ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 No known bugs.\r
-\par \hich\af39\dbch\af13\loch\f39 Report bugs to }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4665511\charrsid6704915 \hich\af39\dbch\af13\loch\f39 edk2-buildtools-devel@lists.sourceforge.net}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid4665511 \r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx360\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Files \r
-\par }\pard\plain \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \r
-\ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 ta\hich\af39\dbch\af13\loch\f39 rget.txt, tools_def.txt, platform.dsc, flashmap.fdf, package.dec and module.inf.\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx360\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid4665511 \hich\af39\dbch\af13\loch\f39 See also\r
-\par }\pard\plain \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \r
-\ltrch\fcs0 \fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 GenFds.exe\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx360\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid4665511 \hich\af39\dbch\af13\loch\f39 License\r
-\par }\pard\plain \ltrpar\ql \li360\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid4665511 \hich\af39\dbch\af13\loch\f39 Copyright (c)  1999-2010 Intel Corporation. All rights reserved.\r
-\par \r
-\par \hich\af39\dbch\af13\loch\f39 This program and the accompanying materials are licensed and made available under\hich\af39\dbch\af13\loch\f39  the terms and\r
-\par \hich\af39\dbch\af13\loch\f39 conditions of the BSD License which accompanies this distribution.  The full text of the license may be\r
-\par \hich\af39\dbch\af13\loch\f39 found at:\r
-\par \hich\af39\dbch\af13\loch\f39 http://opensource.org/licenses/bsd-license.php\r
-\par \r
-\par \hich\af39\dbch\af13\loch\f39 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT W\hich\af39\dbch\af13\loch\f39 ARRANTIES\r
-\par \hich\af39\dbch\af13\loch\f39 OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\par }}
\ No newline at end of file
+{\rtf1\ansi\ansicpg1252\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fswiss\fprq2\fcharset0 Verdana;}{\f1\froman\fprq2\fcharset0 Times New Roman;}}\r
+{\colortbl ;\red8\green96\blue168;\red0\green0\blue0;}\r
+{\stylesheet{ Normal;}{\s1 heading 1;}{\s2 heading 2;}}\r
+{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\cf1\b\f0\fs28 Name\par\r
+\pard\nowidctlpar\li360\sb200\cf2\b0\fs18 Build.exe \endash  the master command that provides the developer with a single command for selecting various options of a build\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\cf1\b\fs28 Synopsis\par\r
+\pard\nowidctlpar\li360\sb200\cf2\fs18 Build.exe [options] [target]\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\fs28 Description\par\r
+\pard\nowidctlpar\li360\sb200\cf2\b0\fs18 Build.exe is the master command line (CLI) tool that provides the developer with a single command for selecting various options of a build.  In general, it checks the environment variables, gets the user\rquote s configuration from either the CLI or target.txt, parses the dsc, dec, inf, target.txt, tools_def.txt, generates .C, .H files and the Makefiles for one or more modules and/or the active platform, calls a make (NMake or make) program to process these Makefiles, then optionally calls GenFds to generate an fd file.\par\r
+The build tool supports two kinds of path specifications on command line - an absolutely path or a relative (to the WORKSPACE environment variable) path \endash  in command line.\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\tx1440\cf1\b\fs28 Options\par\r
+\pard\nowidctlpar\li360\sb200\cf2\b0\fs18 There are no required options. \par\r
+\b -a, --arch <ARCH>\par\r
+\pard\nowidctlpar\li720\sb200\b0 ARCH is one of list: IA32, X64, IPF or EBC,  which overrides target.txt's TARGET_ARCH  definition. To specify more ARCH, please  repeat this option.\par\r
+\pard\nowidctlpar\li360\sb200\b -p, --platform PlatformName.dsc\par\r
+\pard\nowidctlpar\li720\sb200\b0 Build the platform specified by the DSC file  name argument, overrides target.txt's  ACTIVE_PLATFORM definition.\par\r
+\pard\nowidctlpar\li360\sb200\b -m, --module ModuleName.inf\par\r
+\pard\nowidctlpar\li720\sb200\b0 Build the module specified by the INF file name argument.\par\r
+\pard\nowidctlpar\li360\sb200\b -b, --buildtarget <TARGET>\par\r
+\pard\nowidctlpar\li720\sb200\b0 TARGET is one of list: DEBUG, RELEASE,  which overrides target.txt's TARGET definition. To specify more TARGET, please repeat this option.\par\r
+\pard\nowidctlpar\li360\sb200\b -t, --tagname Tagname\par\r
+\pard\nowidctlpar\li720\sb200\b0 Using the Tool Chain Tagname to build the platform, overrides target.txt's TOOL_CHAIN_TAG definition.\par\r
+\pard\nowidctlpar\li360\sb200\b -f --fdf Filename.fdf\par\r
+\pard\nowidctlpar\li720\sb200\b0 The name of the FDF file to use, which overrides the setting in the DSC file.\par\r
+\pard\nowidctlpar\li360\sb200\b -r --rom-image ROM_IMAGE_NAME\par\r
+\pard\nowidctlpar\li720\sb200\b0 The name of FD to be generated. The name must be from [FD] section in FDF file.\par\r
+\pard\nowidctlpar\li360\sb200\b -i --fv-image FV_IMAGE_NAME\par\r
+\pard\nowidctlpar\li720\sb200\b0 The name of FV to be generated. The name must be from [FV] section in FDF file.\par\r
+\pard\nowidctlpar\li360\sb200\b -n NUM\par\r
+\pard\nowidctlpar\li720\sb200\b0 Build the platform using multi-threaded compiler. The value overrides target.txt's MULTIPLE_THREAD and MAX_CONCURRENT_THREAD_NUMBER. Less than 2 will disable multi-thread builds.\par\r
+\pard\nowidctlpar\li360\sb200\b -x --sku-id SKU_ID\f1\par\r
+\pard\nowidctlpar\li720\sb200\b0\f0 Using this name of SKU ID to build the platform, overriding SKUID_IDENTIFIER in DSC file.\par\r
+\pard\nowidctlpar\li360\sb200\b -u --skip-autogen\f1\par\r
+\pard\nowidctlpar\li720\sb200\b0\f0 Skip AutoGen step. Note the build may fail if there\rquote s no AutoGen-ed files before.\par\r
+\pard\nowidctlpar\li360\sb200\b -e --re-parse\f1\par\r
+\pard\nowidctlpar\li720\sb200\b0\f0 Re-parse all meta-data files. Use this option if you encounter inconsistency issue.\f1\par\r
+\pard\nowidctlpar\li360\sb200\b\f0 -w --warning-as-error\f1\par\r
+\pard\nowidctlpar\li720\sb200\b0\f0 Treat warning in tools as error.\par\r
+\pard\nowidctlpar\li360\sb200\b -j --log LOGFILE\f1\par\r
+\pard\nowidctlpar\li720\sb200\b0\f0 Put screen output in specified file.\par\r
+\pard\nowidctlpar\li360\sb200\b -s \endash silent\par\r
+\pard\nowidctlpar\li720\sb200\b0 Tell \ldblquote make\rdblquote  tool to run \ldblquote silently\rdblquote . Internally, a \lquote -s\rquote  switch will be passed to \ldblquote make\rdblquote  tool. Don\rquote t use this option if your \ldblquote make\rdblquote  tool doesn\rquote t support \lquote -s\rquote . Instead, if your \ldblquote make\rdblquote  tool uses other option to do the same, you could add it to the XX_XX_XX_MAKE_FLAGS in tools_def.txt.\par\r
+\pard\nowidctlpar\li360\sb200\b -d, --debug [#]\par\r
+\pard\nowidctlpar\li720\sb200\b0 Enable debug messages at specified level. It is used by Tool itself.\par\r
+\pard\nowidctlpar\li360\sb200\b -q, --quiet\par\r
+\pard\nowidctlpar\li720\sb200\b0 Disable all messages except FATAL ERRORS.\par\r
+\pard\nowidctlpar\li360\sb200\b -v, --verbose\par\r
+\pard\nowidctlpar\li720\sb200\b0 Turn on verbose output with informational messages printed.\par\r
+\pard\nowidctlpar\li360\sb200\b -D, --define MACROS\par\r
+\pard\nowidctlpar\li720\sb200\b0 Macro: "Name [= Value]".\par\r
+\pard\nowidctlpar\li360\sb200\b -y, --report-file REPORTFILE\f1\par\r
+\pard\nowidctlpar\li720\sb200\b0\f0 Create/overwrite the report to the specified filename.\par\r
+\pard\nowidctlpar\li360\sb200\b -Y, --report-type REPORTTYPE\par\r
+\pard\nowidctlpar\li720\sb200\b0 Flags that control the type of build report to generate.  Must be one of: [PCD, LIBRARY, FLASH, DEPEX, BUILD_FLAGS, FIXED_ADDRESS, EXECUTION_ORDER].  To specify more than one flag, repeat this option on the command line and the default flag set is [PCD, LIBRARY, FLASH, DEPEX, BUILD_FLAGS, FIXED_ADDRESS]\f1\par\r
+\pard\nowidctlpar\li360\sb200\b\f0 -F FLAG, --flag=FLAG\f1\par\r
+\pard\nowidctlpar\li720\sb200\b0\f0 Specify the specific option to parse EDK UNI file. Must be one of: [-c, -s]. -c is for EDK framework UNI file, and -s is for EDK UEFI UNI file. This option can also be specified by setting *_*_*_BUILD_FLAGS in [BuildOptions] section of platform DSC. If they are both specified, this value will override the setting in [BuildOptions] section of platform DSC.\par\r
+\pard\nowidctlpar\li360\sb200\b --version\par\r
+\pard\nowidctlpar\li720\sb200\b0 Show program's copyright and version number then exit.\par\r
+\pard\nowidctlpar\li360\sb200\b -h, --help\par\r
+\pard\nowidctlpar\li720\sb200\b0 Print the copyright, version and usage of this program then exit.\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\tx1440\cf1\b\fs28 Target\par\r
+\pard\nowidctlpar\li360\sb200\cf2\b0\fs18 If no target is given, then default target is ALL.\par\r
+\b ALL\b0            Build everything for either the platform or module.\par\r
+\b GenC\b0          Auto-generate all C files for either the platform or module.\par\r
+\b GenMake\b0      Generate the Makefiles \endash  if auto-generated files are missing,\par\r
+\pard\nowidctlpar\li360                     then auto-generate all C files first for either the platform or module.\par\r
+\pard\nowidctlpar\li360\sb200\b Fds\b0             Create the FD Image files.\par\r
+\b Libraries\b0       Build all EDK Libraries and EDK II Library Instances which are specified.\par\r
+\b Modules\b0        Build all EDK components and EDK II modules which are specified.\par\r
+\b Clean\b0          Remove intermediate files generated by the NMAKE command (leaving\par\r
+\pard\nowidctlpar\li360                     the auto-generated C format, FD image files, PE32 output files, PCH \par\r
+                    files and LIB files).\par\r
+\pard\nowidctlpar\li360\sb200\b CleanAll\b0       Remove all intermmediate, auto-generated, FV and FD image files \endash  \par\r
+\pard\nowidctlpar\li360                    state of the tree should be exactly as if a fresh checkout or install has \par\r
+                   occurred.\par\r
+\pard\nowidctlpar\li360\sb200\b CleanLib\b0      Remove intermediate files generated by the NMAKE command AND LIB \par\r
+\pard\nowidctlpar\li360                    files (leaving the auto-generated, FV and FD image files, PE32 output \par\r
+                   files and PCH files)\par\r
+\pard\nowidctlpar\li360\sb200\b run\b0            Run platform (for emulator platform only)\par\r
+\pard\nowidctlpar\li360\f1\par\r
+\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\tx1440\cf1\b\f0\fs28 Examples\par\r
+\pard\nowidctlpar\li360\sb200\cf2\b0\fs18 Assume that $(WORKSPACE) is C:\\MyWorkspace\par\r
+\pard\nowidctlpar\li180\sb200 Build platform: Nt32Pkg.dsc\par\r
+\pard\nowidctlpar\li360\sb200 Specify the platform description file on the command line.\par\r
+\pard\nowidctlpar\li720\sb200\b C:\\MyWorkspace>build -p Nt32Pkg\\Nt32Pkg.dsc \endash a IA32\par\r
+\pard\nowidctlpar\li360\sb200\b0 Build the platform in the current working directory if it contains a platform description file.\par\r
+\pard\nowidctlpar\li720\sb200\b C:\\MyWorkspace\\Nt32Pkg>build \endash a IA32\par\r
+\pard\nowidctlpar\li360\sb200\b0 Build the active platform specified in the target.txt file.\par\r
+\pard\nowidctlpar\li720\sb200\b C:\\ MyWorkspace>build \endash a Ia32\par\r
+\pard\nowidctlpar\li360\sb200\b0\f1\par\r
+\pard\nowidctlpar\li180\sb200\f0 Build Module: HelloWorld.inf\par\r
+\pard\nowidctlpar\li360\sb200 Specify the platform and Module on the command line.\par\r
+\pard\nowidctlpar\li720\sb200\b C:\\MyWorkspace>build -p Nt32Pkg\\Nt32Pkg.dsc \endash a IA32 \\\par\r
+\pard\nowidctlpar\li720  \endash m MdeModulePkg/Application/HelloWorld/HelloWorld.inf\par\r
+\pard\nowidctlpar\li360\sb200\b0 Specify the Module on the command line and use the active platform specified in the target.txt file.\par\r
+\pard\nowidctlpar\li720\sb200\b C:\\MyWorkspace>build \endash a IA32 \\\par\r
+\pard\nowidctlpar\li720\endash m MdeModulePkg/Application/HelloWorld/HelloWorld.inf\par\r
+\pard\nowidctlpar\li360\sb200\b0 Build the module in the current working directory if it contains a module description file and specify the platform on the command line.\par\r
+\pard\nowidctlpar\li720\sb200\b C:\\ MyWorkspace\\MdeModulePkg\\Application\\HelloWorld>build \endash a Ia32 \\\par\r
+\pard\nowidctlpar\li720\endash p Nt32Pkg\\Nt32Pkg.dsc\par\r
+\pard\nowidctlpar\li360\sb200\b0 Build the module in the current working directory and use the active platform specified in the target.txt file.\par\r
+\pard\nowidctlpar\li720\sb200\b C:\\ MyWorkspace\\MdeModulePkg\\Application\\HelloWorld>build \endash a Ia32 \par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\tx1440\cf1\fs28 Bugs \par\r
+\pard\nowidctlpar\li360\sb200\cf2\b0\fs18 No known bugs.\par\r
+Report bugs to edk2-buildtools-devel@lists.sourceforge.net\f1\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\tx1440\cf1\b\f0\fs28 Files \par\r
+\pard\nowidctlpar\li360\sb200\cf2\b0\fs18 target.txt, tools_def.txt, platform.dsc, flashmap.fdf, package.dec and module.inf.\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\tx1440\cf1\b\fs28 See also\par\r
+\pard\nowidctlpar\li360\sb200\cf2\b0\fs18 GenFds.exe\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\tx1440\cf1\b\fs28 License\par\r
+\pard\nowidctlpar\li360\cf2\b0\fs18 Copyright (c) 1999 - 2010, Intel Corporation. All rights reserved.\par\r
+\par\r
+This program and the accompanying materials are licensed and made available under the terms and\par\r
+conditions of the BSD License which accompanies this distribution.  The full text of the license may be\par\r
+found at:\par\r
+http://opensource.org/licenses/bsd-license.php\par\r
+\par\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES\par\r
+OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\par\r
+}\r
+\0
\ No newline at end of file
index 74c292a688c327c26d7530ad0868d5afa8c11d11..703f3fa0e5f058c2602a994d9b9bfb24bcaa143e 100644 (file)
Binary files a/BaseTools/UserManuals/EfiLdrImage_Utility_Man_Page.rtf and b/BaseTools/UserManuals/EfiLdrImage_Utility_Man_Page.rtf differ
index 16b78e16b5e6447b7ed7792b695a6eab62039242..6b27fbc61dd67b8bb5d90b6937b4a272d4bfcf88 100644 (file)
Binary files a/BaseTools/UserManuals/EfiRom_Utility_Man_Page.rtf and b/BaseTools/UserManuals/EfiRom_Utility_Man_Page.rtf differ
index cff4d56bbf0d76a0000bb9747e4016b87c8b9812..c279214620c620cacb0d9ba930680f29d14a026e 100644 (file)
Binary files a/BaseTools/UserManuals/Fpd2Dsc_Utility_Man_Page.rtf and b/BaseTools/UserManuals/Fpd2Dsc_Utility_Man_Page.rtf differ
index 0cfccc22d10f057f493ac25605c8db9b8aa32b86..8af703ae8d686bbb4a3152cf8208d2bdc1cb7099 100644 (file)
Binary files a/BaseTools/UserManuals/GenBootSector_Utility_Man_Page.rtf and b/BaseTools/UserManuals/GenBootSector_Utility_Man_Page.rtf differ
index 9d923636af45ddef755af62be4e44c904e0b54aa..6aad22f5be0256aa246695c69800a6d1eb800f7f 100644 (file)
Binary files a/BaseTools/UserManuals/GenCrc32_Utility_Man_Page.rtf and b/BaseTools/UserManuals/GenCrc32_Utility_Man_Page.rtf differ
index 27cf16d6962a96ef087b745cf5178a84fa49baa4..41c324d2c02392f7e9a282cf137d7828cc92ca02 100644 (file)
Binary files a/BaseTools/UserManuals/GenDepex_Utility_Man_Page.rtf and b/BaseTools/UserManuals/GenDepex_Utility_Man_Page.rtf differ
index 3180ec7e08a83eb1419f867d96767d756fb620e4..615a549cbdd527455dd0ccbc7b99b8f5f67adcef 100644 (file)
-{\rtf1\adeflang1025\ansi\ansicpg936\uc2\adeff0\deff0\stshfdbch13\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe2052{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f13\fnil\fcharset134\fprq2{\*\panose 02010600030101010101}\'cb\'ce\'cc\'e5{\*\falt SimSun};}\r
-{\f37\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Verdana;}{\f38\fnil\fcharset134\fprq2{\*\panose 00000000000000000000}@\'cb\'ce\'cc\'e5;}{\f40\froman\fcharset238\fprq2 Times New Roman CE;}{\f41\froman\fcharset204\fprq2 Times New Roman Cyr;}\r
-{\f43\froman\fcharset161\fprq2 Times New Roman Greek;}{\f44\froman\fcharset162\fprq2 Times New Roman Tur;}{\f45\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f46\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}\r
-{\f47\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f48\froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f172\fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};}{\f410\fswiss\fcharset238\fprq2 Verdana CE;}\r
-{\f411\fswiss\fcharset204\fprq2 Verdana Cyr;}{\f413\fswiss\fcharset161\fprq2 Verdana Greek;}{\f414\fswiss\fcharset162\fprq2 Verdana Tur;}{\f417\fswiss\fcharset186\fprq2 Verdana Baltic;}{\f418\fswiss\fcharset163\fprq2 Verdana (Vietnamese);}\r
-{\f422\fnil\fcharset0\fprq2 @\'cb\'ce\'cc\'e5 Western;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\r
-\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red8\green96\blue168;}{\stylesheet{\r
-\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\f37\hich\af37\dbch\af13\cgrid\langnp1033\langfenp2052 \snext0 Normal;}{\r
-\s1\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel0\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\f37\hich\af37\dbch\af13\cgrid\langnp1033\langfenp2052 \sbasedon0 \snext0 heading 1;}{\r
-\s2\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\f37\hich\af37\dbch\af13\cgrid\langnp1033\langfenp2052 \sbasedon0 \snext0 heading 2;}{\*\cs10 \r
-\additive \ssemihidden Default Paragraph Font;}{\*\r
-\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \r
-\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs20\lang1024\langfe1024\loch\f0\hich\af0\dbch\af13\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}}\r
-{\*\latentstyles\lsdstimax156\lsdlockeddef0}{\*\rsidtbl \rsid71424\rsid11170234}{\*\generator Microsoft Word 11.0.0000;}{\info{\operator jwang36}{\creatim\yr2008\mo12\dy31\hr14\min57}{\revtim\yr2008\mo12\dy31\hr15\min5}{\version3}{\edmins8}{\nofpages4}\r
-{\nofwords880}{\nofchars5019}{\nofcharsws5888}{\vern24613}{\*\password 00000000}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1800\margr1800\margt1440\margb1440\gutter0\ltrsect \r
-\deftab360\ftnbj\aenddoc\donotembedsysfont0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\r
-\jcompress\viewkind4\viewscale100\rsidroot71424 \fet0{\*\wgrffmtfilter 013f}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta \dbch .}}{\*\pnseclvl2\r
-\pnucltr\pnstart1\pnindent720\pnhang {\pntxta \dbch .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta \dbch .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta \dbch )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb \dbch (}\r
-{\pntxta \dbch )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb \dbch (}{\pntxta \dbch )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb \dbch (}{\pntxta \dbch )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb \dbch (}\r
-{\pntxta \dbch )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb \dbch (}{\pntxta \dbch )}}\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \r
-\rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af37\hich\af37\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af37\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid71424 \hich\af37\dbch\af13\loch\f37 Name\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af37\hich\af37\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37  GenFds.exe\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af37\hich\af37\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af37\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid71424 \hich\af37\dbch\af13\loch\f37 Description\r
-\par }\pard\plain \ltrpar\ql \li60\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin60\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af37\hich\af37\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af37\afs18 \r
-\ltrch\fcs0 \fs18\insrsid71424 \hich\af37\dbch\af13\loch\f37 \r
-GenFds will get platform, flash and module information from target.txt,platform.dsc, flashmap.fdf, package.dec and module.inf. it will generate Ffs, Fv, FD and Section data depending on command line options. The FDF file must be pointed out. And the FDF f\r
-\hich\af37\dbch\af13\loch\f37 i\hich\af37\dbch\af13\loch\f37 le must follow the format of FDF\hich\f37 \rquote \loch\f37 s specification otherwise tool will throw a exception and stop the build.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 \r
-The FDF file describes information about flash parts as well as rules for combining binaries (Firmware Image) built from a DSC file.  The output of t\hich\af37\dbch\af13\loch\f37 \r
-he first phase of an EDK II build (as defined in the EDK II Build Specification) generates valid PE32/PE32+/Coff image files.  GenFds performs the second phase of the build process during which consumes the images generated during the first phase, using s\r
-\hich\af37\dbch\af13\loch\f37 t\hich\af37\dbch\af13\loch\f37 \r
-atements and rules defined in the FDF file to place the PE32/PE32+/Coff images files into one or more EFI sections, then the EFI sections may get combined with other optional sections (version, depex, user interface) sections, into EFI Firmware File syste\r
-\hich\af37\dbch\af13\loch\f37 m\hich\af37\dbch\af13\loch\f37  (FFS) Sections. FFS images are put into Firmware Volumes (FVs,) and finally, the FV sections are combined into one or more Flash Device binary image (FD.)\r
-\par \hich\af37\dbch\af13\loch\f37 The outputDir must be pointed out. Tool will generate a FV directory which includes a FFS directory,\hich\af37\dbch\af13\loch\f37 \r
- Fv file, Fv INf file and Fd file. The FFS directory contents all modules directory which contents Ffs files and section files. All output of GenFds tool output will be in FV directory. The FV directory structure is following. The outputDir should be poin\r
-\hich\af37\dbch\af13\loch\f37 t\hich\af37\dbch\af13\loch\f37  part of Efi file path. That mean for each of module which descript in the FDF file as the \hich\f37 \lquote \loch\f37 InfFIle\hich\f37 \rquote \loch\f37 \r
- statement format  the GenFds tool would find out it\hich\f37 \rquote \loch\f37 \hich\f37 s input files from the path of  \'93\loch\f37  $(outputDir)\\ $(Arch) \\ $(ActivePlatfromName) \\$(ModuleName) \\$(Modu\hich\af37\dbch\af13\loch\f37 l\r
-\hich\af37\dbch\af13\loch\f37 eName) \\DEBUG\r
-\par }\pard \ltrpar\ql \fi-360\li420\ri0\sb200\nowidctlpar\tx420\wrapdefault\faauto\rin0\lin420\itap0 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 1.\tab \r
-If Arch list was pointed out, GenFds tool will use this Arch instead of Arch List in Target.txt file\r
-\par }\pard \ltrpar\ql \fi-360\li420\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin420\itap0 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 2.\tab \r
-If Workspace was not pointed out, GenFds tool will use the Workspace path which set in OS environment. \r
-\par \hich\af37\dbch\af13\loch\f37 3.\tab If ActivePlatform was pointe\hich\af37\dbch\af13\loch\f37 d out, GenFds tool will use this active platform as the current platform instead of active platform which in Target.txt file.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 \r
-GenFds tool support 2 kinds of path in command line. Absolutely path and relative workspace path. The GenFds tool also support $(W\hich\af37\dbch\af13\loch\f37 ORKSPACE) marco in path. For example, if the input Fdf like that $(WORKSPACE)\\NT32PKg\\\r
-Nt32.fdf, the tool will expand the $(WORKSPACE) macro with real path.\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af37\hich\af37\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af37\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid71424 \hich\af37\dbch\af13\loch\f37 Options\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af37\hich\af37\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 -a,  --arch <ARCHS>\r
-\par }\pard \ltrpar\ql \fi1\li425\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin425\itap0 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 ARCHS is a comma separated }{\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid11170234 \hich\af37\dbch\af13\loch\f37 (\hich\af37\dbch\af13\loch\f37 no space) }{\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 list containing one or more of: IA32, X64, IP\r
-\hich\af37\dbch\af13\loch\f37 F or EBC which should be built, overrides target.txt\hich\f37 \rquote \loch\f37 s TARGET_ARCH\r
-\par }\pard \ltrpar\ql \fi-425\li425\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin425\itap0 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 -p, --platform PlatformName.dsc\r
-\par }\pard \ltrpar\ql \li426\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin426\itap0 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 \r
-Build the platform specified by the DSC file name argument, over rides the ACTIVE_PLATFORM\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 -f, --filename Filename\tab \tab \tab \r
-\par }\pard \ltrpar\ql \fi426\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 Input FDF file and its format must foll\hich\af37\dbch\af13\loch\f37 \r
-ow FDF specification.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 -r, --rom_image FdUiName\tab \tab \tab \tab \r
-\par }\pard \ltrpar\ql \fi425\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 Build the image using the [FD] section named by FdUiName.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 -i, --FvImage UiFvName\r
-\par \tab \hich\af37\dbch\af13\loch\f37 Buld the FV image using the [FV] section named by UiFvName\r
-\par \hich\af37\dbch\af13\loch\f37 -o, --output Dir\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 The output\hich\af37\dbch\af13\loch\f37 \r
- directory of Genfds tool. And this directory also should be the directory of the EFI file.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 -w \hich\f37 \endash \loch\f37 -workspace\r
-\par \tab \hich\af37\dbch\af13\loch\f37 The workspace path working on.}{\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid71424 \r
-\par }{\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11170234 \hich\af37\dbch\af13\loch\f37 -b \hich\af37\dbch\af13\loch\f37 --\hich\af37\dbch\af13\loch\f37 buildtarget\hich\af37\dbch\af13\loch\f37  DEBUG|RELEASE\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0\pararsid11170234 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11170234 \hich\af37\dbch\af13\loch\f37 Build target is one of\hich\af37\dbch\af13\loch\f37 :\r
-\hich\af37\dbch\af13\loch\f37  DEBUG, RELEASE}{\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11170234 \hich\af37\dbch\af13\loch\f37 .}{\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11170234\charrsid11170234 \r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid11170234 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11170234 \hich\af37\dbch\af13\loch\f37 -\hich\af37\dbch\af13\loch\f37 t\hich\af37\dbch\af13\loch\f37  \r
-\hich\af37\dbch\af13\loch\f37 --\hich\af37\dbch\af13\loch\f37 tagname\hich\af37\dbch\af13\loch\f37  \hich\af37\dbch\af13\loch\f37 TOOLCHAIN_TAG\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0\pararsid11170234 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11170234 \hich\af37\dbch\af13\loch\f37 Specify the tool chain to build the platform}{\rtlch\fcs1 \r
-\af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11170234 \hich\af37\dbch\af13\loch\f37 .}{\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11170234\charrsid11170234 \r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid11170234 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11170234 \hich\af37\dbch\af13\loch\f37 -\hich\af37\dbch\af13\loch\f37 D\hich\af37\dbch\af13\loch\f37  \r
-\hich\af37\dbch\af13\loch\f37 --\hich\af37\dbch\af13\loch\f37 define\hich\af37\dbch\af13\loch\f37  \hich\af37\dbch\af13\loch\f37 MACRO=VALUE\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0\pararsid11170234 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11170234 \hich\af37\dbch\af13\loch\f37 Pass macro to this tool}{\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid11170234 \hich\af37\dbch\af13\loch\f37 .}{\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11170234\charrsid11170234 \r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid11170234 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11170234 \hich\af37\dbch\af13\loch\f37 -\hich\af37\dbch\af13\loch\f37 s\hich\af37\dbch\af13\loch\f37  \r
-\hich\af37\dbch\af13\loch\f37 --\hich\af37\dbch\af13\loch\f37 specifyaddress \hich\af37\dbch\af13\loch\f37 ADDRESS\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0\pararsid11170234 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11170234 \hich\af37\dbch\af13\loch\f37 Specify \hich\af37\dbch\af13\loch\f37 driver load address}{\r
-\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11170234 \hich\af37\dbch\af13\loch\f37 .}{\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11170234\charrsid11170234 \r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid11170234 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 [--version]\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid71424 \tab \hich\af37\dbch\af13\loch\f37 Print version and copyright of this program and exit\r
-\par \hich\af37\dbch\af13\loch\f37 [-v, --verbose]\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 Turn on verbose output with informa\hich\af37\dbch\af13\loch\f37 \r
-tional messages printed. This is a count value, so specifying \hich\f37 \endash \loch\f37 vv can be used to increase the verbosity level.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 [-q, --quiet]\r
-\par \tab \hich\af37\dbch\af13\loch\f37 disable all messages except FATAL ERRORS\r
-\par \hich\af37\dbch\af13\loch\f37 [-d, --debug [#]]\r
-\par \tab \hich\af37\dbch\af13\loch\f37 Enable debug messages, at level #\r
-\par \hich\af37\dbch\af13\loch\f37 [-h, --help]\r
-\par \tab \hich\af37\dbch\af13\loch\f37 Print copyright, versi\hich\af37\dbch\af13\loch\f37 on and usage of this program and exit\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af37\hich\af37\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af37\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid71424 \hich\af37\dbch\af13\loch\f37 Example\r
-\par }\pard\plain \ltrpar\ql \li60\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin60\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af37\hich\af37\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af37\afs18 \r
-\ltrch\fcs0 \fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 1. WORKSAPCE has already set. $(WORKSPACE) = c:\\work\\EdkII. The Fdf file is in c:\\work\\EdkII\\Nt32pkg\\Nt32pkg.fdf. Output directory is c:\\work\\EdkII\\Build\\Nt32\\\r
-Debug_MyTools.  ActivePlatform is C:\\work\\EdkII\\Nt3\hich\af37\dbch\af13\loch\f37 2Pkg\\Nt32Pkg.dsc\r
-\par \hich\af37\dbch\af13\loch\f37 GenFds \hich\f37 \endash \loch\f37 f c:\\work\\EdkII\\Nt32pkg\\Nt32pkg.fdf \hich\f37 \endash \loch\f37 o c:\\work\\EdkII\\Build\\Nt32\\Debug_MyTools \hich\f37 \endash \loch\f37 p c:\\work\\EdkII\\Nt32pkg\\Nt32Pkg.dsc\r
-\par \hich\af37\dbch\af13\loch\f37 GenFds \hich\f37 \endash \loch\f37 f $(WORKSPACE)\\Nt32Pkg\\Nt32Pkg.fdf \hich\f37 \endash \loch\f37 o $(WORSPACE)\\Build\\Nt32\\Debug_MyTools \hich\f37 \endash \loch\f37 p $(WORKSAPCE)\\Nt32Pkg\\Nt32Pkg.d\r
-\hich\af37\dbch\af13\loch\f37 sc\r
-\par \r
-\par \hich\af37\dbch\af13\loch\f37 GenFds \hich\f37 \endash \loch\f37 f Nt32Pkg\\Nt32Pkg.fdf \hich\f37 \endash \loch\f37 o Build\\Nt32\\Debug_MyTools \hich\f37 \endash \loch\f37 p Nt32Pkg\\Nt32Pkg.dsc\r
-\par \hich\af37\dbch\af13\loch\f37 2. Generate one FD which defined in FDF file. Use \hich\f37 \lquote \loch\f37 -r\hich\f37 \rquote \loch\f37  and Fd UIName. The Fd  UIName is the name which defined in the FDf file, for detail information refer to FDF specifi\r
-\hich\af37\dbch\af13\loch\f37 cation\r
-\par \hich\af37\dbch\af13\loch\f37 GenFds \hich\f37 \endash \loch\f37 f GenFds \hich\f37 \endash \loch\f37 f c:\\work\\EdkII\\Nt32pkg\\Nt32pkg.fdf \hich\f37 \endash \loch\f37 o c:\\work\\EdkII\\Build\\Nt32\\Debug_MyTools \hich\f37 \endash \loch\f37 p c:\\work\r
-\\EdkII\\Nt32pkg\\Nt32Pkg.dsc \hich\f37 \endash \loch\f37 r Fv_Recovery\r
-\par \hich\af37\dbch\af13\loch\f37 3. Generate one FV which defined in FDF file. Use \hich\f37 \lquote \loch\f37 -i\hich\f37 \rquote \hich\af37\dbch\af13\loch\f37 \r
- and FV UiName. The FV UIName is the name which defined in the FDF file, for detail information refers to FDF specification.\r
-\par \hich\af37\dbch\af13\loch\f37 GenFds \hich\f37 \endash \loch\f37 f c:\\work\\EdkII\\Nt32pkg\\Nt32pkg.fdf \hich\f37 \endash \loch\f37 o c:\\work\\EdkII\\Build\\Nt32\\Debug_MyTools \hich\f37 \endash \loch\f37 p c:\\work\\EdkII\\Nt32pkg\\Nt32Pkg.dsc \r
-\hich\f37 \endash \loch\f37 I FVRec\hich\af37\dbch\af13\loch\f37 overy\r
-\par \r
-\par \hich\af37\dbch\af13\loch\f37 4. Use command line option to replace the Arch List in Target.txt. \r
-\par \hich\af37\dbch\af13\loch\f37 GenFds \hich\f37 \endash \loch\f37 f c:\\work\\EdkII\\Nt32pkg\\Nt32pkg.fdf \hich\f37 \endash \loch\f37 o c:\\work\\EdkII\\Build\\Nt32\\Debug_MyTools \hich\f37 \endash \loch\f37 p c:\\work\\EdkII\\Nt32pkg\\Nt32Pkg.dsc\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 -a IA32, X64\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af37\hich\af37\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af37\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid71424 \hich\af37\dbch\af13\loch\f37 Bugs\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af37\hich\af37\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 Not found yet.\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af37\hich\af37\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af37\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid71424 \hich\af37\dbch\af13\loch\f37 Files \r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af37\hich\af37\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 target.txt, platfo\hich\af37\dbch\af13\loch\f37 rm.dsc, flashmap.fdf, package.dec and module.inf.\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af37\hich\af37\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af37\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid71424 \hich\af37\dbch\af13\loch\f37 See also\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af37\hich\af37\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37  GenFv, GenFfs, GenSection, GenFw.\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af37\hich\af37\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af37\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid71424 \hich\af37\dbch\af13\loch\f37 License\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af37\hich\af37\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 Copyright (c)  1999-2009 Intel Corporation. All rights reserved\r
-\par \hich\af37\dbch\af13\loch\f37 This program and the accompanying materials are licensed and made available \r
-\par \hich\af37\dbch\af13\loch\f37 under the ter\hich\af37\dbch\af13\loch\f37 ms and conditions of the BSD License which accompanies this \r
-\par \hich\af37\dbch\af13\loch\f37 distribution.  The full text of the license may be found at\r
-\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\insrsid71424 \hich\af37\dbch\af13\loch\f37 http://opensource.org/licenses/bsd-license.php}{\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid71424 \hich\af37\dbch\af13\loch\f37 . THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,WITHOUT WARRANTIES\hich\af37\dbch\af13\loch\f37  OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\par }\pard \ltrpar\ql \li60\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin60\itap0 {\rtlch\fcs1 \af37\afs18 \ltrch\fcs0 \fs18\cf1\insrsid71424 \r
-\par }}
\ No newline at end of file
+{\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052\deftab360{\fonttbl{\f0\fswiss\fprq2\fcharset0 Verdana;}{\f1\froman\fprq2\fcharset0 Times New Roman;}}\r
+{\colortbl ;\red8\green96\blue168;\red0\green0\blue0;}\r
+{\stylesheet{ Normal;}{\s1 heading 1;}{\s2 heading 2;}}\r
+{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx1440\cf1\b\f0\fs28 Name\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18  GenFds.exe\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx1440\cf1\b\fs28 Description\par\r
+\pard\nowidctlpar\li60\sb200\cf0\b0\fs18 GenFds will get platform, flash and module information from target.txt,platform.dsc, flashmap.fdf, package.dec and module.inf. it will generate Ffs, Fv, FD and Section data depending on command line options. The FDF file must be pointed out. And the FDF file must follow the format of FDF\rquote s specification otherwise tool will throw a exception and stop the build.\par\r
+\pard\nowidctlpar\sb200\cf2 The FDF file describes information about flash parts as well as rules for combining binaries (Firmware Image) built from a DSC file.  The output of the first phase of an EDK II build (as defined in the EDK II Build Specification) generates valid PE32/PE32+/Coff image files.  GenFds performs the second phase of the build process during which consumes the images generated during the first phase, using statements and rules defined in the FDF file to place the PE32/PE32+/Coff images files into one or more EFI sections, then the EFI sections may get combined with other optional sections (version, depex, user interface) sections, into EFI Firmware File system (FFS) Sections. FFS images are put into Firmware Volumes (FVs,) and finally, the FV sections are combined into one or more Flash Device binary image (FD.)\par\r
+The outputDir must be pointed out. Tool will generate a FV directory which includes a FFS directory, Fv file, Fv INf file and Fd file. The FFS directory contents all modules directory which contents Ffs files and section files. All output of GenFds tool output will be in FV directory. The FV directory structure is following. The outputDir should be point part of Efi file path. That mean for each of module which descript in the FDF file as the \lquote InfFIle\rquote  statement format  the GenFds tool would find out it\rquote s input files from the path of  \ldblquote  $(outputDir)\\ $(Arch) \\ $(ActivePlatfromName) \\$(ModuleName) \\$(ModuleName) \\DEBUG\par\r
+\pard\nowidctlpar\fi-360\li420\sb200\tx420 1.\tab If Arch list was pointed out, GenFds tool will use this Arch instead of Arch List in Target.txt file\par\r
+\pard\nowidctlpar\fi-360\li420\sb200 2.\tab If Workspace was not pointed out, GenFds tool will use the Workspace path which set in OS environment. \par\r
+3.\tab If ActivePlatform was pointed out, GenFds tool will use this active platform as the current platform instead of active platform which in Target.txt file.\par\r
+\pard\nowidctlpar\sb200 GenFds tool support 2 kinds of path in command line. Absolutely path and relative workspace path. The GenFds tool also support $(WORKSPACE) marco in path. For example, if the input Fdf like that $(WORKSPACE)\\NT32PKg\\Nt32.fdf, the tool will expand the $(WORKSPACE) macro with real path.\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx1440\cf1\b\fs28 Options\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18 -a,  --arch <ARCHS>\par\r
+\pard\nowidctlpar\fi1\li425\sb200 ARCHS is a comma separated (no space) list containing one or more of: IA32, X64, IPF or EBC which should be built, overrides target.txt\rquote s TARGET_ARCH\par\r
+\pard\nowidctlpar\fi-425\li425\sb200 -p, --platform PlatformName.dsc\par\r
+\pard\nowidctlpar\li426\sb200 Build the platform specified by the DSC file name argument, over rides the ACTIVE_PLATFORM\par\r
+\pard\nowidctlpar\sb200 -f, --filename Filename\tab\tab\tab\par\r
+\pard\nowidctlpar\fi426\sb200 Input FDF file and its format must follow FDF specification.\par\r
+\pard\nowidctlpar\sb200 -r, --rom_image FdUiName\tab\tab\tab\tab\par\r
+\pard\nowidctlpar\fi425\sb200 Build the image using the [FD] section named by FdUiName.\par\r
+\pard\nowidctlpar\sb200 -i, --FvImage UiFvName\par\r
+\tab Buld the FV image using the [FV] section named by UiFvName\par\r
+-o, --output Dir\par\r
+\pard\nowidctlpar\li360\sb200 The output directory of Genfds tool. And this directory also should be the directory of the EFI file.\par\r
+\pard\nowidctlpar\sb200 -w \endash -workspace\par\r
+\tab The workspace path working on.\f1\par\r
+\f0 -b --buildtarget DEBUG|RELEASE\par\r
+\pard\nowidctlpar\li360\sb200 Build target is one of: DEBUG, RELEASE.\f1\par\r
+\pard\nowidctlpar\sb200\f0 -t --tagname TOOLCHAIN_TAG\par\r
+\pard\nowidctlpar\li360\sb200 Specify the tool chain to build the platform.\f1\par\r
+\pard\nowidctlpar\sb200\f0 -D --define MACRO=VALUE\par\r
+\pard\nowidctlpar\li360\sb200 Pass macro to this tool.\f1\par\r
+\pard\nowidctlpar\sb200\f0 -s --specifyaddress ADDRESS\par\r
+\pard\nowidctlpar\li360\sb200 Specify driver load address.\f1\par\r
+\pard\nowidctlpar\sb200\f0 [--version]\par\r
+\f1\tab\f0 Print version and copyright of this program and exit\par\r
+[-v, --verbose]\par\r
+\pard\nowidctlpar\li360\sb200 Turn on verbose output with informational messages printed. This is a count value, so specifying \endash vv can be used to increase the verbosity level.\par\r
+\pard\nowidctlpar\sb200 [-q, --quiet]\par\r
+\tab disable all messages except FATAL ERRORS\par\r
+[-d, --debug [#]]\par\r
+\tab Enable debug messages, at level #\par\r
+[-h, --help]\par\r
+\tab Print copyright, version and usage of this program and exit\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx1440\cf1\b\fs28 Example\par\r
+\pard\nowidctlpar\li60\sb200\cf2\b0\fs18 1. WORKSAPCE has already set. $(WORKSPACE) = c:\\work\\EdkII. The Fdf file is in c:\\work\\EdkII\\Nt32pkg\\Nt32pkg.fdf. Output directory is c:\\work\\EdkII\\Build\\Nt32\\Debug_MyTools.  ActivePlatform is C:\\work\\EdkII\\Nt32Pkg\\Nt32Pkg.dsc\par\r
+GenFds \endash f c:\\work\\EdkII\\Nt32pkg\\Nt32pkg.fdf \endash o c:\\work\\EdkII\\Build\\Nt32\\Debug_MyTools \endash p c:\\work\\EdkII\\Nt32pkg\\Nt32Pkg.dsc\par\r
+GenFds \endash f $(WORKSPACE)\\Nt32Pkg\\Nt32Pkg.fdf \endash o $(WORSPACE)\\Build\\Nt32\\Debug_MyTools \endash p $(WORKSAPCE)\\Nt32Pkg\\Nt32Pkg.dsc\par\r
+\par\r
+GenFds \endash f Nt32Pkg\\Nt32Pkg.fdf \endash o Build\\Nt32\\Debug_MyTools \endash p Nt32Pkg\\Nt32Pkg.dsc\par\r
+2. Generate one FD which defined in FDF file. Use \lquote -r\rquote  and Fd UIName. The Fd  UIName is the name which defined in the FDf file, for detail information refer to FDF specification\par\r
+GenFds \endash f GenFds \endash f c:\\work\\EdkII\\Nt32pkg\\Nt32pkg.fdf \endash o c:\\work\\EdkII\\Build\\Nt32\\Debug_MyTools \endash p c:\\work\\EdkII\\Nt32pkg\\Nt32Pkg.dsc \endash r Fv_Recovery\par\r
+3. Generate one FV which defined in FDF file. Use \lquote -i\rquote  and FV UiName. The FV UIName is the name which defined in the FDF file, for detail information refers to FDF specification.\par\r
+GenFds \endash f c:\\work\\EdkII\\Nt32pkg\\Nt32pkg.fdf \endash o c:\\work\\EdkII\\Build\\Nt32\\Debug_MyTools \endash p c:\\work\\EdkII\\Nt32pkg\\Nt32Pkg.dsc \endash I FVRecovery\par\r
+\par\r
+4. Use command line option to replace the Arch List in Target.txt. \par\r
+GenFds \endash f c:\\work\\EdkII\\Nt32pkg\\Nt32pkg.fdf \endash o c:\\work\\EdkII\\Build\\Nt32\\Debug_MyTools \endash p c:\\work\\EdkII\\Nt32pkg\\Nt32Pkg.dsc\par\r
+\pard\nowidctlpar\sb200 -a IA32, X64\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx1440\cf1\b\fs28 Bugs\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18 Not found yet.\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx1440\cf1\b\fs28 Files \par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18 target.txt, platform.dsc, flashmap.fdf, package.dec and module.inf.\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx1440\cf1\b\fs28 See also\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18  GenFv, GenFfs, GenSection, GenFw.\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx1440\cf1\b\fs28 License\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18 Copyright (c) 1999 - 2009, Intel Corporation. All rights reserved.\par\r
+This program and the accompanying materials are licensed and made available \par\r
+under the terms and conditions of the BSD License which accompanies this \par\r
+distribution.  The full text of the license may be found at\par\r
+\pard\nowidctlpar\cf0 http://opensource.org/licenses/bsd-license.php\cf2 . THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\par\r
+\pard\nowidctlpar\li60\sb200\f1\par\r
+}\r
+\0
\ No newline at end of file
index 7f524467e6623ad54dc975aa6467a488d7b3ac62..c360f3b803b6c3c60284f47c0660efaac26b6b38 100644 (file)
Binary files a/BaseTools/UserManuals/GenFfs_Utility_Man_Page.rtf and b/BaseTools/UserManuals/GenFfs_Utility_Man_Page.rtf differ
index b40da13f90d4da65b72f0b147ffea6447edb2dd4..fd02266da98648d8f02bdce4dd01bd6fc6073e6e 100644 (file)
-{\rtf1\adeflang1025\ansi\ansicpg1252\uc2\adeff0\deff0\stshfdbch13\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe2052{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times};}{\f13\fnil\fcharset134\fprq2{\*\panose 02010600030101010101}\'cb\'ce\'cc\'e5{\*\falt SimSun};}\r
-{\f38\fnil\fcharset134\fprq2{\*\panose 02010600030101010101}@\'cb\'ce\'cc\'e5;}{\f39\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana{\*\falt Tahoma};}{\f148\froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times};}\r
-{\f149\froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times};}{\f151\froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times};}{\f152\froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times};}\r
-{\f153\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times};}{\f154\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times};}{\f155\froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times};}\r
-{\f156\froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times};}{\f280\fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};}{\f530\fnil\fcharset0\fprq2 @\'cb\'ce\'cc\'e5 Western;}{\f538\fswiss\fcharset238\fprq2 Verdana CE{\*\falt Tahoma};}\r
-{\f539\fswiss\fcharset204\fprq2 Verdana Cyr{\*\falt Tahoma};}{\f541\fswiss\fcharset161\fprq2 Verdana Greek{\*\falt Tahoma};}{\f542\fswiss\fcharset162\fprq2 Verdana Tur{\*\falt Tahoma};}{\f545\fswiss\fcharset186\fprq2 Verdana Baltic{\*\falt Tahoma};}\r
-{\f546\fswiss\fcharset163\fprq2 Verdana (Vietnamese){\*\falt Tahoma};}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\r
-\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red8\green96\blue168;}{\stylesheet{\r
-\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\f39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 \snext0 Normal;}{\r
-\s1\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel0\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\f39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 \sbasedon0 \snext0 heading 1;}{\r
-\s2\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\f39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 \sbasedon0 \snext0 heading 2;}{\*\cs10 \r
-\additive \ssemihidden Default Paragraph Font;}{\*\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \r
-\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs20\lang1024\langfe1024\loch\f0\hich\af0\dbch\af13\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}}\r
-{\*\latentstyles\lsdstimax156\lsdlockeddef0}{\*\rsidtbl \rsid161327\rsid289912\rsid536636\rsid550197\rsid1125541\rsid1591227\rsid2510884\rsid2566299\rsid2887531\rsid4086897\rsid4463303\rsid4544702\rsid4608121\rsid4937157\rsid5179294\rsid5535427\r
-\rsid5791475\rsid6904443\rsid7348251\rsid7432917\rsid8009887\rsid8724680\rsid9923110\rsid11665539\rsid11689149\rsid11809043\rsid11865356\rsid11877657\rsid12217334\rsid12389480\rsid12845507\rsid12854771\rsid12988031\rsid12993393\rsid13438928\rsid13787208\r
-\rsid14746353\rsid15335526\rsid15474958\rsid15929223\rsid16646888}{\*\generator Microsoft Word 11.0.0000;}{\info{\operator lgao4}{\creatim\yr2008\mo12\dy31\hr15\min9}{\revtim\yr2010\mo3\dy18\hr17\min9}{\version42}{\edmins33}{\nofpages5}{\nofwords1007}\r
-{\nofchars5746}{\nofcharsws6740}{\vern24615}{\*\password 00000000}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}{\xmlns2 urn:schemas-microsoft-com:office:smarttags}}\r
-\paperw12240\paperh15840\margl1800\margr1800\margt1440\margb1440\gutter0\ltrsect \r
-\deftab360\widowctrl\ftnbj\aenddoc\donotembedsysfont0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\r
-\jcompress\viewkind4\viewscale100\rsidroot5535427 \fet0{\*\wgrffmtfilter 013f}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta \hich .}}{\*\pnseclvl2\r
-\pnucltr\pnstart1\pnindent720\pnhang {\pntxta \hich .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta \hich .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta \hich )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb \hich (}\r
-{\pntxta \hich )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb \hich (}{\pntxta \hich )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb \hich (}{\pntxta \hich )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb \hich (}\r
-{\pntxta \hich )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb \hich (}{\pntxta \hich )}}\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \r
-\af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid6904443 \hich\af39\dbch\af13\loch\f39 Name\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 GenFv.exe \hich\f39 \endash \loch\f39  build one PI firmware volume image or one UEFI capsule image.\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid6904443 \hich\af39\dbch\af13\loch\f39 Synopsis\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs18 \r
-\ltrch\fcs0 \b\fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 GenFv.exe [options]}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid6904443 \hich\af39\dbch\af13\loch\f39 Description\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 GenFv is used to }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\insrsid6904443 \hich\af39\dbch\af13\loch\f39 \r
-generate a PI firmware volume image or a UEFI capsule image from the PI firmware files or the binary files, which conforms to the firmware volume image format defined in PI specification or uefi capsule image format defined in UEFI specification.}{\r
-\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \r
-\par \hich\af39\dbch\af13\loch\f39 This util\hich\af39\dbch\af13\loch\f39 ity is responsible for aggregating Firmware File System (FFS}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid161327 \hich\af39\dbch\af13\loch\f39 2}{\rtlch\fcs1 \af39\afs18 \r
-\ltrch\fcs0 \fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 ) files into a single FV image}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid16646888 \hich\af39\dbch\af13\loch\f39  with FFS2 }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid9923110 \hich\af39\dbch\af13\loch\f39 file system guid}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 \r
-.  The input files must be compliant with the PI 1.0 specification.  The utility will create a FV header, append all of the FFS input file\hich\af39\dbch\af13\loch\f39 \r
-s, and optionally add the FFS pad file for those FFS files that require the specific file alignment. When adding {\*\xmlopen\xmlns2{\factoidname State}}{\*\xmlopen\xmlns2{\factoidname place}}\hich\af39\dbch\af13\loch\f39 PEI{\*\xmlclose}{\*\xmlclose}\r
- files or dxe drivers, it will relocate them to the fixed flash address or the prefered loaded memory address if necessary.  Also,\hich\af39\dbch\af13\loch\f39 \r
- one symbol map file that contains the symbol information (Function and Variable) for each driver in the FV will be produced. This utility is also responsible for aggregating the binary files into a single UEFI capsule image with the UEFI capsule header. \r
-\r
-\par \hich\af39\dbch\af13\loch\f39 \r
-GenFv takes as input the path/filename of the Fv.inf or Cap.inf file, the output file name, the starting physical address of the FV, the boot driver base address and the runtime driver base address of the address.inf file to create the final Fv or Capsule\r
-\hich\af39\dbch\af13\loch\f39  \hich\af39\dbch\af13\loch\f39 \r
-image. This utility is usually called by GenFds tool, which parses platform.fdf file to create the interanl Fv.inf or Cap.inf. Generally, user doesn't need to care about these internal file format.\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39  }{\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid6904443 \r
-\hich\af39\dbch\af13\loch\f39 Options\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs18 \r
-\ltrch\fcs0 \b\fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 -o FileName, --outputfile FileName\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 The PI firmwar\hich\af39\dbch\af13\loch\f39 \r
-e volume image or Uefi Capsule image is created. This option is required.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 -i FileName, --inputfile FileName}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid6904443 \r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 \r
-File is the input FV.inf or Cap.inf to specify how to construct FvImage or CapImage. Fv.inf and Cap.inf will be introduced in the following examples\hich\af39\dbch\af13\loch\f39 . File may be one capsule image }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid7432917 \hich\af39\dbch\af13\loch\f39 when its}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39  header }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid8009887 \r
-\hich\af39\dbch\af13\loch\f39 is}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39  dumped. This option is required.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid7348251 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid7348251 \hich\af39\dbch\af13\loch\f39 -b BlockSize, --blocksize BlockSize}{\rtlch\fcs1 \af39\afs18 \r
-\ltrch\fcs0 \fs18\cf1\insrsid7348251 \r
-\par \tab \hich\af39\dbch\af13\loch\f39 Block}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid13438928 \hich\af39\dbch\af13\loch\f39 Size is one HEX or DEC format}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid7348251 \r
-\hich\af39\dbch\af13\loch\f39  value required by FV image.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid289912 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid289912\charrsid289912 \hich\af39\dbch\af13\loch\f39 -n NumberBlock, --numberblock NumberBlock\r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid289912\charrsid13787208 \hich\af39\dbch\af13\loch\f39     \hich\af39\dbch\af13\loch\f39 NumberBlock is one HEX or DEC format value}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid13787208 \r
-\hich\af39\dbch\af13\loch\f39 . }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid289912\charrsid13787208 \hich\af39\dbch\af13\loch\f39 NumberBlock is one optional parameter.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid7348251 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid7348251 \hich\af39\dbch\af13\loch\f39 -f FfsFile, --ffsfile FfsFile}{\rtlch\fcs1 \af39\afs18 \r
-\ltrch\fcs0 \fs18\cf1\insrsid7348251 \r
-\par \tab \hich\af39\dbch\af13\loch\f39 FfsFile is placed into FV image. Multiple files can be input one by one.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid7348251 \hich\af39\dbch\af13\loch\f39 -s FileTakeSize, --filetakesize FileTakenSize}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid7348251 \r
-\par \tab \hich\af39\dbch\af13\loch\f39 Specify the size of th\hich\af39\dbch\af13\loch\f39 e required space that the input file is placed in FV image. It should be specified together with the input file.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 -r Address, --baseaddr Address}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid6904443 \r
-\par \tab \hich\af39\dbch\af13\loch\f39 Address is the rebase start address for drivers that run in Flash. It supports DEC or HEX digital format.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 -a Ad\hich\af39\dbch\af13\loch\f39 dressFile, --addrfile AddressFile\r
-\par \tab }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 AddressFile is one file used to log boot driver base address and runtime driver base address. And this tool will update these two addresses after it \tab \r
-relocates all boot drivers and runtime drivers in this fv image to the \hich\af39\dbch\af13\loch\f39 preferred loaded memory address.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid5791475 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid5791475 \hich\af39\dbch\af13\loch\f39 -m logfile, --map logfile}{\rtlch\fcs1 \af39\afs18 \r
-\ltrch\fcs0 \fs18\cf1\insrsid5791475 \r
-\par \tab \hich\af39\dbch\af13\loch\f39 Logfile is the output Fv map file. If this option is not given, the FvName.map will be the default fv map file name.}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid5791475 \r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid7348251 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid5179294 \hich\af39\dbch\af13\loch\f39 -g Guid, --}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \r
-\b\fs18\cf1\insrsid7348251 \hich\af39\dbch\af13\loch\f39 guid Guid}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid7348251 \r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid5179294 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5179294 \hich\af39\dbch\af13\loch\f39     }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid5179294\charrsid5179294 \hich\af39\dbch\af13\loch\f39 Guid is one specific capsule guid value}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5179294 \hich\af39\dbch\af13\loch\f39  }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid5179294\charrsid5179294 \hich\af39\dbch\af13\loch\f39 or fv file sys\hich\af39\dbch\af13\loch\f39 tem guid value.\r
-\par \hich\af39\dbch\af13\loch\f39 Its format is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5179294 \hich\af39\dbch\af13\loch\f39 .\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4463303\charrsid4463303 \hich\af39\dbch\af13\loch\f39 --FvNameGuid}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4463303 \hich\af39\dbch\af13\loch\f39  Guid}{\rtlch\fcs1 \r
-\ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid5179294\charrsid4463303 \r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4608121 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5179294 \hich\af39\dbch\af13\loch\f39     }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid4608121\charrsid4608121 \hich\af39\dbch\af13\loch\f39 Guid is }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4608121 \hich\af39\dbch\af13\loch\f39 used to specify }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid15929223 \r
-\hich\af39\dbch\af13\loch\f39 Fv Name.}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid8724680 \hich\af39\dbch\af13\loch\f39  }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4608121\charrsid4608121 \r
-\par \hich\af39\dbch\af13\loch\f39 Its format is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5179294\charrsid4608121 \r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid7348251 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid7348251 \hich\af39\dbch\af13\loch\f39 --capflag CapFlag}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid7348251 \r
-\par \tab \hich\af39\dbch\af13\loch\f39 Specify capsule reset flag (PersistAcrossReset, PopulateSyst}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid536636 \hich\af39\dbch\af13\loch\f39 emTable or}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid536636\charrsid536636 \hich\af39\dbch\af13\loch\f39  InitiateReset or}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid536636 \hich\af39\dbch\af13\loch\f39  }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid7348251 \r
-\hich\af39\dbch\af13\loch\f39 none).\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid7348251 \hich\af39\dbch\af13\loch\f39 --capheadsize HeadSize}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid7348251 \r
-\par \tab \hich\af39\dbch\af13\loch\f39 Specify head size for capsule image in the format of HEX or DEC.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid12217334 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid12217334 \hich\af39\dbch\af13\loch\f39 -c, --capsule}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid12217334 \r
-\par \tab \hich\af39\dbch\af13\loch\f39 Create Uefi capsule image.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 -p, --dump}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \r
-\r
-\par \tab \hich\af39\dbch\af13\loch\f39 Dump a capsule image header.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 -v, --verbose\r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \tab \hich\af39\dbch\af13\loch\f39 Turn on verbose output with informational messages.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid6904443 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid15335526\charrsid15335526 \hich\af39\dbch\af13\loch\f39 -q, --quiet           }{\rtlch\fcs1 \r
-\ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid15335526 \r
-\par \hich\af39\dbch\af13\loch\f39     }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid15335526\charrsid15335526 \hich\af39\dbch\af13\loch\f39 Disable all messages except key message and fatal error}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid15335526 \hich\af39\dbch\af13\loch\f39 .}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid15335526\charrsid15335526 \r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 -d, --debug level\r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \tab \hich\af39\dbch\af13\loch\f39 Enable debug message with specified level.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 --version\r
-\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 Show program's version number and exit\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 -h, --hel\hich\af39\dbch\af13\loch\f39 p\r
-\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 Show this help message and exit\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid6904443 \hich\af39\dbch\af13\loch\f39 Example\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 1. Generate BFV that contains {\*\xmlopen\xmlns2{\factoidname PersonName}}\hich\af39\dbch\af13\loch\f39 PEI{\*\xmlclose} drivers in Flash with the input FV.inf, base address, and the output file name.\r
-\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 GenFv -i FvRecovery.inf -o FvRecovery.fv -r 0xFFFD0000\r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 FvRecovery.inf\r
-\par \hich\af39\dbch\af13\loch\f39 [options]\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_BLOCK_\hich\af39\dbch\af13\loch\f39 SIZE = 0x10000           #required option\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_NUM_BLOCKS   =  0x3\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_BASE_ADDRESS = 0xFFFD0000 #optional, if command line -r is not specified, this option will be used.\r
-\par \hich\af39\dbch\af13\loch\f39 [attributes]\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_ERASE_POLARITY   =  1\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_WRITE_ENABLED_CAP = TRUE\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_READ_ENABLED_C\hich\af39\dbch\af13\loch\f39 AP = TRUE\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_READ_LOCK_STATUS = TRUE\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_WRITE_STATUS = TRUE\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_READ_DISABLED_CAP = TRUE\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_WRITE_LOCK_STATUS = TRUE\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_LOCK_CAP = TRUE\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_LOCK_STATUS = TRUE\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_ERASE_POLARITY = 1\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_MEMORY_MAPPED = TRUE\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_READ_LOCK_CAP = TRUE\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_WRITE_DISABLED_CAP = TRUE\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_READ_STATUS = TRUE\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_WRITE_LOCK_CAP = TRUE\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_STICKY_WRITE = TRUE\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_FVB2_ALIGNMENT_16 = TRUE\r
-\par \hich\af39\dbch\af13\loch\f39 [files]\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_FILE_NAME = K:\\Build\\NT32\\DEBUG_MYTOOLS\\Fv\\Ffs\\52C05B14-0B98-496c-BC3B-04B50211D680PeiMain\\52C05B14-0B98-496c-BC\hich\af39\dbch\af13\loch\f39 3B-04B50211D680.ffs\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_FILE_NAME = K:\\Build\\NT32\\DEBUG_MYTOOLS\\Fv\\Ffs\\9B3ADA4F-AE56-4c24-8DEA-F03B7558AE50PcdPeim\\9B3ADA4F-AE56-4c24-8DEA-F03B7558AE50.ffs\r
-\par \hich\af39\dbch\af13\loch\f39 ......}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6904443 \r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 2. Generate FvMain that contains Dxe drivers loaded in the preferred loaded memory address wi\hich\af39\dbch\af13\loch\f39 th the }{\rtlch\fcs1 \af39\afs18 \r
-\ltrch\fcs0 \fs18\cf1\insrsid12854771 \hich\af39\dbch\af13\loch\f39 input FV.inf, address file, the output file name}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11865356 \hich\af39\dbch\af13\loch\f39 , its }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid11877657 \hich\af39\dbch\af13\loch\f39 firmware file system guid }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11809043 \hich\af39\dbch\af13\loch\f39 (FFS2}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11877657 \r
-\hich\af39\dbch\af13\loch\f39 ) and}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid12854771 \hich\af39\dbch\af13\loch\f39  its }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid2887531 \hich\af39\dbch\af13\loch\f39 guid }{\rtlch\fcs1 \r
-\af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid12854771 \hich\af39\dbch\af13\loch\f39 name.}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 GenFv -i FvMain.inf -o FvMain.fv -a Addr.inf}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid12854771 \hich\af39\dbch\af13\loch\f39  }{\r
-\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid11865356 \loch\af39\dbch\af13\hich\f39 \endash \loch\f39 g }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid11865356\charrsid11865356 \hich\af39\dbch\af13\loch\f39 \r
-8c8ce578-8a3d-4f1c-9935-896185c32dd3 }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid12854771 \loch\af39\dbch\af13\hich\f39 \endash \loch\f39 FvNameGuid }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid12854771\charrsid12854771 \r
-\hich\af39\dbch\af13\loch\f39 6D99E806-3D38-42c2-A095-5F4300BFD7DC}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6904443 \r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 Addr.inf}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6904443 \r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 [options]\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_BOOT_DRIVER_BASE_ADDRESS = 0x1f300000\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_RUNTIME_DRIVER_BASE_ADDRESS = 0x1f600000}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6904443 \r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 3. Generate the capsule image with the input cap.inf, and the output file name.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 GenFv -i BiosUpdate.inf -o BiosUpdate.cap\r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 BiosUpdate.inf}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6904443 \r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 [options]\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_CAPSULE_\hich\af39\dbch\af13\loch\f39 GUID           = 25A5CD7D-A5EB-4d74-9C28-D6EF04E03B16 (Required)\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_CAPSULE_HEADER_SIZE  = 0x20                                                                (Optional)\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_CAPSULE_FLAGS              = PopulateSystemTable                                      (Optional)\r
-\par \hich\af39\dbch\af13\loch\f39 [attributes]\r
-\par \hich\af39\dbch\af13\loch\f39 [files]\r
-\par \hich\af39\dbch\af13\loch\f39 EFI_FILE_NAME = K:\\Build\\NT32\\DEBUG_MYTOOLS\\Fv\\Ffs\\EDBEDF47-6EA3-4512-83C1-70F4769D4BDE-Capsule_A.fvi\r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid15929223 \hich\af39\dbch\af13\loch\f39 4}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 . Dump capsule image header inf\hich\af39\dbch\af13\loch\f39 \r
-ormation for the input capsule image.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 GenFv -p -i BiosUpdate.cap -o Cap.info}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid6904443 \hich\af39\dbch\af13\loch\f39 Bugs\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 No known bugs.\r
-\par \hich\af39\dbch\af13\loch\f39 Report bugs to }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid1591227\charrsid6704915 \hich\af39\dbch\af13\loch\f39 edk2-buildtools-{\*\xmlopen\xmlns2{\factoidname PersonName}}dev{\*\xmlclose}el@lists.sourceforge.net}\r
-{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid6904443 \hich\af39\dbch\af13\loch\f39 Files\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 None\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid6904443 \hich\af39\dbch\af13\loch\f39 See also\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 None\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid6904443 \hich\af39\dbch\af13\loch\f39 License\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 Copyright (c) 2007}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5535427 \hich\af39\dbch\af13\loch\f39 -2009}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \r
-\hich\af39\dbch\af13\loch\f39  Intel Corporation. All rights reserved\r
-\par \hich\af39\dbch\af13\loch\f39 This program and the accompanying materials are licensed and made available \r
-\par \hich\af39\dbch\af13\loch\f39 under the terms and conditions of the BSD License which accompanies this \r
-\par \hich\af39\dbch\af13\loch\f39 distribution.  The full text of the license may be found at\r
-\par \hich\af39\dbch\af13\loch\f39 http://opensource.org/licenses/bsd-license.ph\hich\af39\dbch\af13\loch\f39 p\r
-\par \r
-\par \hich\af39\dbch\af13\loch\f39 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6904443 \hich\af39\dbch\af13\loch\f39 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-\par }}
\ No newline at end of file
+{\rtf1\ansi\ansicpg1252\deff0\deflang1033\deflangfe2052\deftab360{\fonttbl{\f0\fswiss\fprq2\fcharset0 Verdana;}{\f1\froman\fprq2\fcharset0 Times New Roman;}}\r
+{\colortbl ;\red8\green96\blue168;\red0\green0\blue0;}\r
+{\stylesheet{ Normal;}{\s1 heading 1;}{\s2 heading 2;}}\r
+{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\b\f0\fs28 Name\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18 GenFv.exe \endash  build one PI firmware volume image or one UEFI capsule image.\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx1440\cf1\b\fs28 Synopsis\par\r
+\pard\nowidctlpar\sb200\cf2\fs18 GenFv.exe [options]\b0\f1\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\b\f0\fs28 Description\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18 GenFv is used to \cf0 generate a PI firmware volume image or a UEFI capsule image from the PI firmware files or the binary files, which conforms to the firmware volume image format defined in PI specification or uefi capsule image format defined in UEFI specification.\cf2\f1\par\r
+\f0 This utility is responsible for aggregating Firmware File System (FFS2) files into a single FV image with FFS2 file system guid.  The input files must be compliant with the PI 1.0 specification.  The utility will create a FV header, append all of the FFS input files, and optionally add the FFS pad file for those FFS files that require the specific file alignment. When adding PEI files or dxe drivers, it will relocate them to the fixed flash address or the prefered loaded memory address if necessary.  Also, one symbol map file that contains the symbol information (Function and Variable) for each driver in the FV will be produced. This utility is also responsible for aggregating the binary files into a single UEFI capsule image with the UEFI capsule header. \par\r
+GenFv takes as input the path/filename of the Fv.inf or Cap.inf file, the output file name, the starting physical address of the FV, the boot driver base address and the runtime driver base address of the address.inf file to create the final Fv or Capsule image. This utility is usually called by GenFds tool, which parses platform.fdf file to create the interanl Fv.inf or Cap.inf. Generally, user doesn't need to care about these internal file format.\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0  \cf1\b\fs28 Options\par\r
+\pard\nowidctlpar\sb200\cf2\fs18 -o FileName, --outputfile FileName\par\r
+\pard\nowidctlpar\li360\sb200\b0 The PI firmware volume image or Uefi Capsule image is created. This option is required.\par\r
+\pard\nowidctlpar\sb200\b -i FileName, --inputfile FileName\b0\f1\par\r
+\pard\nowidctlpar\li360\sb200\f0 File is the input FV.inf or Cap.inf to specify how to construct FvImage or CapImage. Fv.inf and Cap.inf will be introduced in the following examples. File may be one capsule image when its header is dumped. This option is required.\par\r
+\pard\nowidctlpar\sb200\b -b BlockSize, --blocksize BlockSize\b0\f1\par\r
+\tab\f0 BlockSize is one HEX or DEC format value required by FV image.\par\r
+\b -n NumberBlock, --numberblock NumberBlock\par\r
+\b0     NumberBlock is one HEX or DEC format value. NumberBlock is one optional parameter.\par\r
+\b -f FfsFile, --ffsfile FfsFile\b0\f1\par\r
+\tab\f0 FfsFile is placed into FV image. Multiple files can be input one by one.\par\r
+\b -s FileTakeSize, --filetakesize FileTakenSize\b0\f1\par\r
+\tab\f0 Specify the size of the required space that the input file is placed in FV image. It should be specified together with the input file.\par\r
+\b -r Address, --baseaddr Address\b0\f1\par\r
+\tab\f0 Address is the rebase start address for drivers that run in Flash. It supports DEC or HEX digital format.\par\r
+\b -a AddressFile, --addrfile AddressFile\par\r
+\tab\b0 AddressFile is one file used to log boot driver base address and runtime driver base address. And this tool will update these two addresses after it \tab relocates all boot drivers and runtime drivers in this fv image to the preferred loaded memory address.\par\r
+\b -m logfile, --map logfile\b0\f1\par\r
+\tab\f0 Logfile is the output Fv map file. If this option is not given, the FvName.map will be the default fv map file name.\b\f1\par\r
+\f0 -g Guid, --guid Guid\b0\f1\par\r
+\f0     Guid is one specific capsule guid value or fv file system guid value.\par\r
+Its format is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.\par\r
+\b --FvNameGuid Guid\f1\par\r
+\b0\f0     Guid is used to specify Fv Name. \f1\par\r
+\f0 Its format is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\f1\par\r
+\b\f0 --capflag CapFlag\b0\f1\par\r
+\tab\f0 Specify capsule reset flag (PersistAcrossReset, PopulateSystemTable or InitiateReset or none).\par\r
+\b --capheadsize HeadSize\b0\f1\par\r
+\tab\f0 Specify head size for capsule image in the format of HEX or DEC.\par\r
+\b -c, --capsule\b0\f1\par\r
+\tab\f0 Create Uefi capsule image.\par\r
+\b -p, --dump\b0\f1\par\r
+\tab\f0 Dump a capsule image header.\par\r
+\b -v, --verbose\par\r
+\b0\f1\tab\f0 Turn on verbose output with informational messages.\par\r
+\b -q, --quiet           \f1\par\r
+\f0     \b0 Disable all messages except key message and fatal error.\b\f1\par\r
+\f0 -d, --debug level\par\r
+\b0\f1\tab\f0 Enable debug message with specified level.\par\r
+\b --version\par\r
+\pard\nowidctlpar\fi360\sb200\b0 Show program's version number and exit\par\r
+\pard\nowidctlpar\sb200\b -h, --help\par\r
+\pard\nowidctlpar\fi360\sb200\b0 Show this help message and exit\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\b\fs28 Example\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18 1. Generate BFV that contains PEI drivers in Flash with the input FV.inf, base address, and the output file name.\par\r
+\b GenFv -i FvRecovery.inf -o FvRecovery.fv -r 0xFFFD0000\par\r
+\b0 FvRecovery.inf\par\r
+[options]\par\r
+EFI_BLOCK_SIZE = 0x10000           #required option\par\r
+EFI_NUM_BLOCKS   =  0x3\par\r
+EFI_BASE_ADDRESS = 0xFFFD0000 #optional, if command line -r is not specified, this option will be used.\par\r
+[attributes]\par\r
+EFI_ERASE_POLARITY   =  1\par\r
+EFI_WRITE_ENABLED_CAP = TRUE\par\r
+EFI_READ_ENABLED_CAP = TRUE\par\r
+EFI_READ_LOCK_STATUS = TRUE\par\r
+EFI_WRITE_STATUS = TRUE\par\r
+EFI_READ_DISABLED_CAP = TRUE\par\r
+EFI_WRITE_LOCK_STATUS = TRUE\par\r
+EFI_LOCK_CAP = TRUE\par\r
+EFI_LOCK_STATUS = TRUE\par\r
+EFI_ERASE_POLARITY = 1\par\r
+EFI_MEMORY_MAPPED = TRUE\par\r
+EFI_READ_LOCK_CAP = TRUE\par\r
+EFI_WRITE_DISABLED_CAP = TRUE\par\r
+EFI_READ_STATUS = TRUE\par\r
+EFI_WRITE_LOCK_CAP = TRUE\par\r
+EFI_STICKY_WRITE = TRUE\par\r
+EFI_FVB2_ALIGNMENT_16 = TRUE\par\r
+[files]\par\r
+EFI_FILE_NAME = K:\\Build\\NT32\\DEBUG_MYTOOLS\\Fv\\Ffs\\52C05B14-0B98-496c-BC3B-04B50211D680PeiMain\\52C05B14-0B98-496c-BC3B-04B50211D680.ffs\par\r
+EFI_FILE_NAME = K:\\Build\\NT32\\DEBUG_MYTOOLS\\Fv\\Ffs\\9B3ADA4F-AE56-4c24-8DEA-F03B7558AE50PcdPeim\\9B3ADA4F-AE56-4c24-8DEA-F03B7558AE50.ffs\par\r
+......\b\f1\par\r
+\b0\f0 2. Generate FvMain that contains Dxe drivers loaded in the preferred loaded memory address with the input FV.inf, address file, the output file name, its firmware file system guid (FFS2) and its guid name.\f1\par\r
+\b\f0 GenFv -i FvMain.inf -o FvMain.fv -a Addr.inf \endash g 8c8ce578-8a3d-4f1c-9935-896185c32dd3 \endash FvNameGuid 6D99E806-3D38-42c2-A095-5F4300BFD7DC\f1\par\r
+\b0\f0 Addr.inf\b\f1\par\r
+\b0\f0 [options]\par\r
+EFI_BOOT_DRIVER_BASE_ADDRESS = 0x1f300000\par\r
+EFI_RUNTIME_DRIVER_BASE_ADDRESS = 0x1f600000\b\f1\par\r
+\b0\f0 3. Generate the capsule image with the input cap.inf, and the output file name.\par\r
+\b GenFv -i BiosUpdate.inf -o BiosUpdate.cap\par\r
+\b0 BiosUpdate.inf\b\f1\par\r
+\b0\f0 [options]\par\r
+EFI_CAPSULE_GUID           = 25A5CD7D-A5EB-4d74-9C28-D6EF04E03B16 (Required)\par\r
+EFI_CAPSULE_HEADER_SIZE  = 0x20                                                                (Optional)\par\r
+EFI_CAPSULE_FLAGS              = PopulateSystemTable                                      (Optional)\par\r
+[attributes]\par\r
+[files]\par\r
+EFI_FILE_NAME = K:\\Build\\NT32\\DEBUG_MYTOOLS\\Fv\\Ffs\\EDBEDF47-6EA3-4512-83C1-70F4769D4BDE-Capsule_A.fvi\par\r
+4. Dump capsule image header information for the input capsule image.\par\r
+\b GenFv -p -i BiosUpdate.cap -o Cap.info\b0\f1\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\b\f0\fs28 Bugs\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18 No known bugs.\par\r
+Report bugs to edk2-buildtools-devel@lists.sourceforge.net\f1\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\b\f0\fs28 Files\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18 None\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\b\fs28 See also\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18 None\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\b\fs28 License\par\r
+\pard\nowidctlpar\cf2\b0\fs18 Copyright (c) 2007 - 2009, Intel Corporation. All rights reserved.\par\r
+This program and the accompanying materials are licensed and made available \par\r
+under the terms and conditions of the BSD License which accompanies this \par\r
+distribution.  The full text of the license may be found at\par\r
+http://opensource.org/licenses/bsd-license.php\par\r
+\par\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\par\r
+\pard\nowidctlpar\sb200 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\par\r
+}\r
+\0
\ No newline at end of file
index e551744e312dbf209f00fc21f5e3adbebe2a2613..7d04571ccafaad451cc068d5ead96a379bca57e1 100644 (file)
-{\rtf1\adeflang1025\ansi\ansicpg1252\uc2\adeff0\deff0\stshfdbch13\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe2052{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times};}{\f13\fnil\fcharset134\fprq2{\*\panose 02010600030101010101}\'cb\'ce\'cc\'e5{\*\falt SimSun};}\r
-{\f36\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Tahoma;}{\f38\fnil\fcharset134\fprq2{\*\panose 02010600030101010101}@\'cb\'ce\'cc\'e5;}{\f39\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana{\*\falt Tahoma};}\r
-{\f148\froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times};}{\f149\froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times};}{\f151\froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times};}\r
-{\f152\froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times};}{\f153\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times};}{\f154\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times};}\r
-{\f155\froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times};}{\f156\froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times};}{\f280\fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};}{\f508\fswiss\fcharset238\fprq2 Tahoma CE;}\r
-{\f509\fswiss\fcharset204\fprq2 Tahoma Cyr;}{\f511\fswiss\fcharset161\fprq2 Tahoma Greek;}{\f512\fswiss\fcharset162\fprq2 Tahoma Tur;}{\f513\fbidi \fswiss\fcharset177\fprq2 Tahoma (Hebrew);}{\f514\fbidi \fswiss\fcharset178\fprq2 Tahoma (Arabic);}\r
-{\f515\fswiss\fcharset186\fprq2 Tahoma Baltic;}{\f516\fswiss\fcharset163\fprq2 Tahoma (Vietnamese);}{\f517\fswiss\fcharset222\fprq2 Tahoma (Thai);}{\f530\fnil\fcharset0\fprq2 @\'cb\'ce\'cc\'e5 Western;}\r
-{\f538\fswiss\fcharset238\fprq2 Verdana CE{\*\falt Tahoma};}{\f539\fswiss\fcharset204\fprq2 Verdana Cyr{\*\falt Tahoma};}{\f541\fswiss\fcharset161\fprq2 Verdana Greek{\*\falt Tahoma};}{\f542\fswiss\fcharset162\fprq2 Verdana Tur{\*\falt Tahoma};}\r
-{\f545\fswiss\fcharset186\fprq2 Verdana Baltic{\*\falt Tahoma};}{\f546\fswiss\fcharset163\fprq2 Verdana (Vietnamese){\*\falt Tahoma};}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\r
-\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\r
-\red8\green96\blue168;}{\stylesheet{\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\f39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 \snext0 Normal;}{\r
-\s1\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel0\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\f39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 \sbasedon0 \snext0 heading 1;}{\r
-\s2\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\f39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 \sbasedon0 \snext0 heading 2;}{\*\cs10 \r
-\additive \ssemihidden Default Paragraph Font;}{\*\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \r
-\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs20\lang1024\langfe1024\loch\f0\hich\af0\dbch\af13\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}{\r
-\s15\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \cbpat9 \rtlch\fcs1 \af36\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2052\loch\f36\hich\af36\dbch\af13\cgrid\langnp1033\langfenp2052 \sbasedon0 \snext15 \ssemihidden \styrsid9256052 \r
-Document Map;}}{\*\latentstyles\lsdstimax156\lsdlockeddef0}{\*\rsidtbl \rsid200735\rsid747391\rsid804235\rsid1006462\rsid1114661\rsid1189587\rsid1720354\rsid2505219\rsid2650853\rsid3286690\rsid3350056\rsid4087862\rsid4144673\rsid4266238\rsid4731505\r
-\rsid4982015\rsid5065021\rsid5177422\rsid5510712\rsid5648175\rsid5929449\rsid6126508\rsid6228389\rsid6441940\rsid6553824\rsid7094037\rsid7154530\rsid8349431\rsid8794482\rsid9256052\rsid9533504\rsid10230445\rsid10837442\rsid11028874\rsid11357415\r
-\rsid11495481\rsid11868619\rsid12192700\rsid12275166\rsid12334510\rsid12854407\rsid16059034\rsid16126898\rsid16281781}{\*\generator Microsoft Word 11.0.0000;}{\info{\operator lgao4}{\creatim\yr2008\mo12\dy31\hr15\min18}{\revtim\yr2010\mo3\dy18\hr17\min9}\r
-{\version45}{\edmins6569}{\nofpages4}{\nofwords791}{\nofchars4510}{\nofcharsws5291}{\vern24615}{\*\password 00000000}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}{\xmlns2 urn:schemas-microsoft-com:office:smarttags}}\r
-\paperw12240\paperh15840\margl1800\margr1800\margt1440\margb1440\gutter0\ltrsect \r
-\deftab360\widowctrl\ftnbj\aenddoc\donotembedsysfont0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\r
-\jcompress\viewkind4\viewscale100\rsidroot4982015 \fet0{\*\wgrffmtfilter 013f}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta \hich .}}{\*\pnseclvl2\r
-\pnucltr\pnstart1\pnindent720\pnhang {\pntxta \hich .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta \hich .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta \hich )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb \hich (}\r
-{\pntxta \hich )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb \hich (}{\pntxta \hich )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb \hich (}{\pntxta \hich )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb \hich (}\r
-{\pntxta \hich )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb \hich (}{\pntxta \hich )}}\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \r
-\af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid3286690 \hich\af39\dbch\af13\loch\f39 Name\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 GenFw.exe \hich\f39 \endash \loch\f39  build a UEFI image or other image.\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid3286690 \hich\af39\dbch\af13\loch\f39 Synopsis\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs18 \r
-\ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 \hich\f39 GenFw.exe [options] Filename [Filename]\'85}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid3286690 \hich\af39\dbch\af13\loch\f39 Description\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 \r
-Genfw is mainly used to process PE32 image to get the expected image data or image file. PE32 is a general-purpose image format that contains, among other information, data identifying the target environment for execution of the image. This utility can mo\r
-\hich\af39\dbch\af13\loch\f39 d\hich\af39\dbch\af13\loch\f39 \r
-ify the standard PE32 image to create UEFI image with EFI subsystem type, PI Terse Executable image with the compact TE image header, zero its dubug data or reset its time stamp. It can also extract PE32 image data to create bin file, extract PE32 image d\r
-\hich\af39\dbch\af13\loch\f39 a\hich\af39\dbch\af13\loch\f39 \r
-ta section to create Acpi table image, or dump PI TE image header information. It can also parse the text MicroCode definition file to create the MicroCode binary image, merge (concatenate) several MicroCode binary images into a single file by pad value a\r
-\hich\af39\dbch\af13\loch\f39 n\hich\af39\dbch\af13\loch\f39 d alignment requirement. This tool also supports the override the input file with the output contents.\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid3286690 \hich\af39\dbch\af13\loch\f39 Options\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs18 \r
-\ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 Filename1 [FilenameN]\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 {\*\xmlopen\xmlns2{\factoidname City}}{\*\xmlopen\xmlns2{\factoidname place}}\hich\af39\dbch\af13\loch\f39 \r
-Input{\*\xmlclose} {\*\xmlopen\xmlns2{\factoidname State}}\hich\af39\dbch\af13\loch\f39 PE{\*\xmlclose}{\*\xmlclose}/PE32+ image, or TE image, or MicroCode Txt file, or MicroCode bin file}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid9533504 \r
-\hich\af39\dbch\af13\loch\f39 , or hii binary pakcages}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 .\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 -o F\hich\af39\dbch\af13\loch\f39 ileName, --outputfile FileName\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 The EFI image, TeImage, AcpiImage, MicroBin}{\rtlch\fcs1 \af39\afs18 \r
-\ltrch\fcs0 \fs18\cf1\insrsid1189587 \hich\af39\dbch\af13\loch\f39 , hii }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid16126898 \hich\af39\dbch\af13\loch\f39 package lists file}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \r
-\hich\af39\dbch\af13\loch\f39  or other modified PE image will be created.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 -e EFI_FILETYPE, --efiImage EFI_FILETYPE\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0\pararsid11028874 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11028874\charrsid11028874 \hich\af39\dbch\af13\loch\f39 \r
-Create Efi Image. EFI_FILETYPE is one of BASE, SEC,}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11028874 \hich\af39\dbch\af13\loch\f39  }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11028874\charrsid11028874 \r
-\hich\af39\dbch\af13\loch\f39 PEI_CORE, PEIM, DXE_CORE,}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3350056 \hich\af39\dbch\af13\loch\f39  SMM_CORE,}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11028874\charrsid11028874 \r
-\hich\af39\dbch\af13\loch\f39  DXE_DRIVER, UEFI_APPLICATION,}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11028874 \hich\af39\dbch\af13\loch\f39  DXE_SAL_DRIVER, UEFI_DRIVER, }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid11028874\charrsid11028874 \hich\af39\dbch\af13\loch\f39 DXE_RUNTIME_DRIVER,}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11028874 \hich\af39\dbch\af13\loch\f39  }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid11028874\charrsid11028874 \hich\af39\dbch\af13\loch\f39 DXE_SMM_DRIVER, SECURITY_CORE, COMBINED_PEIM_DRIVER,}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11028874 \hich\af39\dbch\af13\loch\f39  }{\rtlch\fcs1 \af39\afs18 \r
-\ltrch\fcs0 \fs18\cf1\insrsid11028874\charrsid11028874 \hich\af39\dbch\af13\loch\f39 PIC_PEIM, RELOCATABLE_PEIM, BS_DRIVER, RT_DRIVER,}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11028874 \hich\af39\dbch\af13\loch\f39  }{\rtlch\fcs1 \af39\afs18 \r
-\ltrch\fcs0 \fs18\cf1\insrsid11028874\charrsid11028874 \hich\af39\dbch\af13\loch\f39 APPLICATION, SAL_RT_DRIVER to support \hich\af39\dbch\af13\loch\f39 all module types}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11028874 \r
-\hich\af39\dbch\af13\loch\f39 .}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11028874\charrsid11028874 \r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 -c, --acpi\r
-\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 Create Acpi table.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 -t, --terse\r
-\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 Create Te Image.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 -u, --dump\r
-\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 Dump TeImage Header.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 -z, --zero\r
-\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid804235\charrsid804235 \hich\af39\dbch\af13\loch\f39 Zero the Debug Data Fields in the PE input image file.}{\r
-\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid804235 \hich\af39\dbch\af13\loch\f39  }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid804235\charrsid804235 \hich\af39\dbch\af13\loch\f39 It also zeros the time stamp fields.}{\rtlch\fcs1 \r
-\af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690\charrsid804235 \r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 -b, --exe2bin\r
-\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 Convert the input EXE to the o\hich\af39\dbch\af13\loch\f39 utput BIN file.\r
-\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4982015 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4982015 \hich\af39\dbch\af13\loch\f39 -l, --stripped\r
-\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4982015 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid1114661\charrsid5177422 \hich\af39\dbch\af13\loch\f39 Strip off the relocation info}{\rtlch\fcs1 \r
-\af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5929449 \hich\af39\dbch\af13\loch\f39 rmation data}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid1114661\charrsid5177422 \hich\af39\dbch\af13\loch\f39  from PE or TE image.}{\rtlch\fcs1 \af39\afs18 \r
-\ltrch\fcs0 \fs18\cf1\insrsid4982015 \r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 -s timedate, --stamp timedate\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0\pararsid7154530 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 timedate fo}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid8794482 \hich\af39\dbch\af13\loch\f39 \hich\f39 rmat is \'93\loch\f39 \hich\f39 yyyy-mm-dd 00:00:00\'94\loch\f39 . I}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 \hich\f39 \r
-f timedata is set to \'93\loch\f39 \hich\f39 NOW\'94\loch\f39 , current system time is used.}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid7154530 \hich\af39\dbch\af13\loch\f39  }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid7154530\charrsid7154530 \hich\af39\dbch\af13\loch\f39 The support}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid7154530 \hich\af39\dbch\af13\loch\f39  }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid7154530\charrsid7154530 \r
-\hich\af39\dbch\af13\loch\f39 date scope is 1970-1-1 8:0:0 ~ 2038-1-19 3:14:07}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid1114661 \hich\af39\dbch\af13\loch\f39 .}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690\charrsid7154530 \r
-\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 -m, --mcifile\r
-\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 Convert input microcode txt definition file to microcode bin file.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 -j, --join\r
-\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 Merge multiple microcode bin files to one file.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid12334510 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid12334510 \hich\af39\dbch\af13\loch\f39 -a NUM, --align NUM\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0\pararsid12334510 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid12334510 \hich\af39\dbch\af13\loch\f39 NUM is one HEX or DEC format alignment value, \r
-\hich\af39\dbch\af13\loch\f39 which is used to combine multip}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid1114661 \hich\af39\dbch\af13\loch\f39 le}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid12334510 \hich\af39\dbch\af13\loch\f39 \r
- microcode bin files.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid12334510 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid12334510 \hich\af39\dbch\af13\loch\f39 -p NUM, --pad NUM\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0\pararsid12334510 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid12334510 \hich\af39\dbch\af13\loch\f39 \r
-NUM is one HEX or DEC format padding value, which is used to combine multip}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid1114661 \hich\af39\dbch\af13\loch\f39 le}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid12334510 \r
-\hich\af39\dbch\af13\loch\f39  microcode bin files.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid3286690 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4266238 \hich\af39\dbch\af13\loch\f39 --keepex}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \r
-\b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 c}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4266238 \hich\af39\dbch\af13\loch\f39 e}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 \r
-ptiontable\r
-\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid3286690 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 Don\hich\f39 \rquote \loch\f39 t clear exception table.\r
-\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid3286690 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 --keepzeropending\r
-\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid3286690 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 Don\hich\f39 \rquote \loch\f39 t strip zero\r
-\hich\af39\dbch\af13\loch\f39  pending of .reloc.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid6126508 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6126508 \hich\af39\dbch\af13\loch\f39 -r, --replace\r
-\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid6126508 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6126508 \hich\af39\dbch\af13\loch\f39 Overwrite the input file with the output content.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid6126508 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6126508\charrsid9256052 \hich\af39\dbch\af13\loch\f39 \r
--g HiiPackageListGuid, --hiiguid HiiPackageListGuid\r
-\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid6126508 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6126508 \hich\af39\dbch\af13\loch\f39 Guid is used to specify hii package list guid.}{\rtlch\fcs1 \r
-\af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6126508\charrsid9256052 \r
-\par \hich\af39\dbch\af13\loch\f39 Its format is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid6126508 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6126508\charrsid4087862 \hich\af39\dbch\af13\loch\f39 --hiipackage }{\rtlch\fcs1 \ab\af39\afs18 \r
-\ltrch\fcs0 \b\fs18\cf1\insrsid6126508 \r
-\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid6126508 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6126508\charrsid4087862 \hich\af39\dbch\af13\loch\f39 Combine all input binary hii pack}{\r
-\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6126508 \hich\af39\dbch\af13\loch\f39 a}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6126508\charrsid4087862 \hich\af39\dbch\af13\loch\f39 \r
-ges into a single package list as the text resource data}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6126508 \hich\af39\dbch\af13\loch\f39  file }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6126508\charrsid4087862 \r
-\hich\af39\dbch\af13\loch\f39 (RC}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6126508 \hich\af39\dbch\af13\loch\f39  file format}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6126508\charrsid4087862 \hich\af39\dbch\af13\loch\f39 ).\r
-\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid6126508 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6126508\charrsid4087862 \hich\af39\dbch\af13\loch\f39 --hiibinpackage }{\rtlch\fcs1 \ab\af39\afs18 \r
-\ltrch\fcs0 \b\fs18\cf1\insrsid6126508 \r
-\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid6126508 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6126508\charrsid4087862 \hich\af39\dbch\af13\loch\f39 C}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid6126508 \hich\af39\dbch\af13\loch\f39 ombine all input binary hii pac}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6126508\charrsid4087862 \hich\af39\dbch\af13\loch\f39 k}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid6126508 \hich\af39\dbch\af13\loch\f39 a}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6126508\charrsid4087862 \hich\af39\dbch\af13\loch\f39 ges into a single package list as the binary resource section.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 -v, --verbose\r
-\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 Turn on verbos\hich\af39\dbch\af13\loch\f39 \r
-e output with informational messages.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid3286690 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 -d, --debug level\r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \tab \hich\af39\dbch\af13\loch\f39 Enable debug message with specified level.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 --version\r
-\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 Show program's version number and exit\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 -h, --help\r
-\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 Show this help message and exit\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid3286690 \hich\af39\dbch\af13\loch\f39 Example\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 1. Generate Efi image with the input PE image, module ty\hich\af39\dbch\af13\loch\f39 pe and the output file name.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 GenFw \hich\f39 \endash \loch\f39 e PEI_CORE PeiMain.dll \hich\f39 \endash \loch\f39 o PeiMain.efi\r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 2. Generate Te image with the input PE image and the output file name.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 GenFw \hich\f39 \endash \loch\f39 t PeiMain.dll \hich\f39 \endash \loch\f39 o PeiMain.te\r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 3. Generate acpi table image with the input PE image and the output file nam\hich\af39\dbch\af13\loch\f39 e.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 GenFw \hich\f39 \endash \loch\f39 c Facs.dll \hich\f39 \endash \loch\f39 o Facs.acpi\r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 4. Dump TeImage Header with the input Te Image and the output file name.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 GenFw \hich\f39 \endash \loch\f39 u PeiMain.te \hich\f39 \endash \loch\f39 o PeiMain.teheader\r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 5. Modify PeImage by zero its debug data.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 GenFw \hich\f39 \endash \loch\f39 z PeiMain.dll \hich\f39 \endash \loch\f39 o Peimain.zero\r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 6. Modify PeImage by set new timestamp and override the input image without the output file name.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 GenFw \hich\f39 \endash \loch\f39 \hich\f39 s \'93\loch\f39 \hich\f39 2007-8-16 16:06:32\'94\loch\f39  PeiMain.dll \hich\f39 \endash \loch\f39 r\r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 7. Extract bin image from PeImage.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 GenFw \hich\f39 \endash \loch\f39 b PeiMain.dll \hich\f39 \endash \loch\f39 o PeiMain.bin\r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 8. Generate the microcode b\hich\af39\dbch\af13\loch\f39 inary file from the micro code txt file.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 GenFw \hich\f39 \endash \loch\f39 m Mci.txt \hich\f39 \endash \loch\f39 o Mci.bin\r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 9. Merge the multiple mci binary files to one file.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 GenFw \hich\f39 \endash \loch\f39 j Mci.bin1 Mci.bin2 Mci.bin3 \hich\f39 \endash \loch\f39 a 32 \hich\f39 \endash \loch\f39 p 0xFF \hich\f39 \endash \r
-\loch\f39 o Mci.bin\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid2650853 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid12854407 \hich\af39\dbch\af13\loch\f39 10}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid2650853 \r
-\hich\af39\dbch\af13\loch\f39 . }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid10230445 \hich\af39\dbch\af13\loch\f39 Generate the text resource file}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid2505219 \hich\af39\dbch\af13\loch\f39  }{\r
-\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4144673 \hich\af39\dbch\af13\loch\f39 (RC format) }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid8349431 \hich\af39\dbch\af13\loch\f39 based o}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid16281781 \hich\af39\dbch\af13\loch\f39 n all input binary \hich\af39\dbch\af13\loch\f39 HII packages}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6441940 \hich\af39\dbch\af13\loch\f39  and }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid11357415 \hich\af39\dbch\af13\loch\f39 their package list guid}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid2650853 \hich\af39\dbch\af13\loch\f39 .\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid2650853 \hich\af39\dbch\af13\loch\f39 GenFw \hich\f39 \endash }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4731505 \hich\af39\dbch\af13\loch\f39 o SampleHii.rc \hich\f39 \endash \r
-\loch\f39 g }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4731505\charrsid4731505 \hich\af39\dbch\af13\loch\f39 D49D2EB0-44D5-4621-9FD6-1A92C9109B99 }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4731505 \r
-\loch\af39\dbch\af13\hich\f39 \endash \loch\f39 hiipackage }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4731505\charrsid4731505 \hich\af39\dbch\af13\loch\f39 SampleStr.hpk}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4731505 \r
-\hich\af39\dbch\af13\loch\f39  }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4731505\charrsid4731505 \hich\af39\dbch\af13\loch\f39 Sample}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4731505 \hich\af39\dbch\af13\loch\f39 Vfr}{\r
-\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4731505\charrsid4731505 \hich\af39\dbch\af13\loch\f39 .hpk}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid2650853\charrsid4731505 \r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid12854407 \hich\af39\dbch\af13\loch\f39 11.}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid2650853 \hich\af39\dbch\af13\loch\f39  }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid2505219 \r
-\hich\af39\dbch\af13\loch\f39 Generate }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid747391 \hich\af39\dbch\af13\loch\f39 the binary resource section based on all input binary HII packages and their package list guid.}{\rtlch\fcs1 \af39\afs18 \r
-\ltrch\fcs0 \fs18\cf1\insrsid2650853 \r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4731505 \hich\af39\dbch\af13\loch\f39 GenFw \hich\f39 \endash \loch\f39 o SampleHii.bin \hich\f39 \endash \loch\f39 g }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \r
-\b\fs18\cf1\insrsid4731505\charrsid4731505 \hich\af39\dbch\af13\loch\f39 D49D2EB0-44D5-4621-9FD6-1A92C9109B99 }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4731505 \loch\af39\dbch\af13\hich\f39 \endash \loch\f39 hii}{\rtlch\fcs1 \r
-\ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid10837442 \hich\af39\dbch\af13\loch\f39 bin}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4731505 \hich\af39\dbch\af13\loch\f39 package }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \r
-\b\fs18\cf1\insrsid4731505\charrsid4731505 \hich\af39\dbch\af13\loch\f39 SampleStr.hpk}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4731505 \hich\af39\dbch\af13\loch\f39  }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \r
-\b\fs18\cf1\insrsid4731505\charrsid4731505 \hich\af39\dbch\af13\loch\f39 Sample}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid4731505 \hich\af39\dbch\af13\loch\f39 Vfr}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \r
-\b\fs18\cf1\insrsid4731505\charrsid4731505 \hich\af39\dbch\af13\loch\f39 .hpk}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid2650853 \r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid3286690 \hich\af39\dbch\af13\loch\f39 Bugs\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 No known bugs.\r
-\par \hich\af39\dbch\af13\loch\f39 Report bugs to }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid1006462\charrsid6704915 \hich\af39\dbch\af13\loch\f39 edk2-buildtools-{\*\xmlopen\xmlns2{\factoidname PersonName}}dev{\*\xmlclose}el@lists.sourceforge.net}\r
-{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid3286690 \hich\af39\dbch\af13\loch\f39 Files\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 None\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid3286690 \hich\af39\dbch\af13\loch\f39 See also\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 None\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid3286690 \hich\af39\dbch\af13\loch\f39 License\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 Copyright (c) 2007}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4982015 \hich\af39\dbch\af13\loch\f39 -2009}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \r
-\hich\af39\dbch\af13\loch\f39  Intel Corporation. All rights reserved\r
-\par \hich\af39\dbch\af13\loch\f39 This program and the accompanying materials are licensed and made available \r
-\par \hich\af39\dbch\af13\loch\f39 under the terms and conditions of the BSD License which accompanies this \r
-\par \hich\af39\dbch\af13\loch\f39 distribution.  The full text of the license may be found at\r
-\par \hich\af39\dbch\af13\loch\f39 http://opensource.org/licenses/bsd-license.php\r
-\par \r
-\par \hich\af39\dbch\af13\loch\f39 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3286690 \hich\af39\dbch\af13\loch\f39 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\insrsid3286690 \r
-\par }}
\ No newline at end of file
+{\rtf1\ansi\ansicpg1252\deff0\deflang1033\deflangfe2052\deftab360{\fonttbl{\f0\fswiss\fprq2\fcharset0 Verdana;}{\f1\froman\fprq2\fcharset0 Times New Roman;}}\r
+{\colortbl ;\red8\green96\blue168;\red0\green0\blue0;}\r
+{\stylesheet{ Normal;}{\s1 heading 1;}{\s2 heading 2;}}\r
+{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\b\f0\fs28 Name\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18 GenFw.exe \endash  build a UEFI image or other image.\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx1440\cf1\b\fs28 Synopsis\par\r
+\pard\nowidctlpar\sb200\cf2\fs18 GenFw.exe [options] Filename [Filename]\'85\b0\f1\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\b\f0\fs28 Description\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18 Genfw is mainly used to process PE32 image to get the expected image data or image file. PE32 is a general-purpose image format that contains, among other information, data identifying the target environment for execution of the image. This utility can modify the standard PE32 image to create UEFI image with EFI subsystem type, PI Terse Executable image with the compact TE image header, zero its dubug data or reset its time stamp. It can also extract PE32 image data to create bin file, extract PE32 image data section to create Acpi table image, or dump PI TE image header information. It can also parse the text MicroCode definition file to create the MicroCode binary image, merge (concatenate) several MicroCode binary images into a single file by pad value and alignment requirement. This tool also supports the override the input file with the output contents.\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\b\fs28 Options\par\r
+\pard\nowidctlpar\sb200\cf2\fs18 Filename1 [FilenameN]\par\r
+\pard\nowidctlpar\li360\sb200\b0 Input PE/PE32+ image, or TE image, or MicroCode Txt file, or MicroCode bin file, or hii binary pakcages.\par\r
+\pard\nowidctlpar\sb200\b -o FileName, --outputfile FileName\par\r
+\pard\nowidctlpar\li360\sb200\b0 The EFI image, TeImage, AcpiImage, MicroBin, hii package lists file or other modified PE image will be created.\par\r
+\pard\nowidctlpar\sb200\b -e EFI_FILETYPE, --efiImage EFI_FILETYPE\par\r
+\pard\nowidctlpar\li360\sb200\b0 Create Efi Image. EFI_FILETYPE is one of BASE, SEC, PEI_CORE, PEIM, DXE_CORE, SMM_CORE, DXE_DRIVER, UEFI_APPLICATION, DXE_SAL_DRIVER, UEFI_DRIVER, DXE_RUNTIME_DRIVER, DXE_SMM_DRIVER, SECURITY_CORE, COMBINED_PEIM_DRIVER, PIC_PEIM, RELOCATABLE_PEIM, BS_DRIVER, RT_DRIVER, APPLICATION, SAL_RT_DRIVER to support all module types.\f1\par\r
+\pard\nowidctlpar\sb200\b\f0 -c, --acpi\par\r
+\pard\nowidctlpar\fi360\sb200\b0 Create Acpi table.\par\r
+\pard\nowidctlpar\sb200\b -t, --terse\par\r
+\pard\nowidctlpar\fi360\sb200\b0 Create Te Image.\par\r
+\pard\nowidctlpar\sb200\b -u, --dump\par\r
+\pard\nowidctlpar\fi360\sb200\b0 Dump TeImage Header.\par\r
+\pard\nowidctlpar\sb200\b -z, --zero\par\r
+\pard\nowidctlpar\fi360\sb200\b0 Zero the Debug Data Fields in the PE input image file. It also zeros the time stamp fields.\f1\par\r
+\pard\nowidctlpar\sb200\b\f0 -b, --exe2bin\par\r
+\pard\nowidctlpar\fi360\sb200\b0 Convert the input EXE to the output BIN file.\par\r
+\pard\nowidctlpar\sb200\b -l, --stripped\par\r
+\pard\nowidctlpar\fi360\sb200\b0 Strip off the relocation information data from PE or TE image.\f1\par\r
+\pard\nowidctlpar\sb200\b\f0 -s timedate, --stamp timedate\par\r
+\pard\nowidctlpar\li360\sb200\b0 timedate format is \ldblquote yyyy-mm-dd 00:00:00\rdblquote . If timedata is set to \ldblquote NOW\rdblquote , current system time is used. The support date scope is 1970-1-1 8:0:0 ~ 2038-1-19 3:14:07.\f1\par\r
+\pard\nowidctlpar\sb200\b\f0 -m, --mcifile\par\r
+\pard\nowidctlpar\fi360\sb200\b0 Convert input microcode txt definition file to microcode bin file.\par\r
+\pard\nowidctlpar\sb200\b -j, --join\par\r
+\pard\nowidctlpar\fi360\sb200\b0 Merge multiple microcode bin files to one file.\par\r
+\pard\nowidctlpar\sb200\b -a NUM, --align NUM\par\r
+\pard\nowidctlpar\li360\sb200\b0 NUM is one HEX or DEC format alignment value, which is used to combine multiple microcode bin files.\par\r
+\pard\nowidctlpar\sb200\b -p NUM, --pad NUM\par\r
+\pard\nowidctlpar\li360\sb200\b0 NUM is one HEX or DEC format padding value, which is used to combine multiple microcode bin files.\par\r
+\pard\nowidctlpar\sb200\b --keepexceptiontable\par\r
+\pard\nowidctlpar\fi360\sb200\b0 Don\rquote t clear exception table.\par\r
+\pard\nowidctlpar\sb200\b --keepzeropending\par\r
+\pard\nowidctlpar\fi360\sb200\b0 Don\rquote t strip zero pending of .reloc.\par\r
+\pard\nowidctlpar\sb200\b -r, --replace\par\r
+\pard\nowidctlpar\fi360\sb200\b0 Overwrite the input file with the output content.\par\r
+\pard\nowidctlpar\sb200\b -g HiiPackageListGuid, --hiiguid HiiPackageListGuid\par\r
+\pard\nowidctlpar\fi360\sb200\b0 Guid is used to specify hii package list guid.\f1\par\r
+\f0 Its format is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\par\r
+\pard\nowidctlpar\sb200\b --hiipackage \f1\par\r
+\pard\nowidctlpar\fi360\sb200\b0\f0 Combine all input binary hii packages into a single package list as the text resource data file (RC file format).\par\r
+\pard\nowidctlpar\sb200\b --hiibinpackage \f1\par\r
+\pard\nowidctlpar\fi360\sb200\b0\f0 Combine all input binary hii packages into a single package list as the binary resource section.\par\r
+\pard\nowidctlpar\sb200\b -v, --verbose\par\r
+\pard\nowidctlpar\fi360\sb200\b0 Turn on verbose output with informational messages.\par\r
+\pard\nowidctlpar\sb200\b -d, --debug level\par\r
+\b0\f1\tab\f0 Enable debug message with specified level.\par\r
+\b --version\par\r
+\pard\nowidctlpar\fi360\sb200\b0 Show program's version number and exit\par\r
+\pard\nowidctlpar\sb200\b -h, --help\par\r
+\pard\nowidctlpar\fi360\sb200\b0 Show this help message and exit\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\b\fs28 Example\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18 1. Generate Efi image with the input PE image, module type and the output file name.\par\r
+\b GenFw \endash e PEI_CORE PeiMain.dll \endash o PeiMain.efi\par\r
+\b0 2. Generate Te image with the input PE image and the output file name.\par\r
+\b GenFw \endash t PeiMain.dll \endash o PeiMain.te\par\r
+\b0 3. Generate acpi table image with the input PE image and the output file name.\par\r
+\b GenFw \endash c Facs.dll \endash o Facs.acpi\par\r
+\b0 4. Dump TeImage Header with the input Te Image and the output file name.\par\r
+\b GenFw \endash u PeiMain.te \endash o PeiMain.teheader\par\r
+\b0 5. Modify PeImage by zero its debug data.\par\r
+\b GenFw \endash z PeiMain.dll \endash o Peimain.zero\par\r
+\b0 6. Modify PeImage by set new timestamp and override the input image without the output file name.\par\r
+\b GenFw \endash s \ldblquote 2007-8-16 16:06:32\rdblquote  PeiMain.dll \endash r\par\r
+\b0 7. Extract bin image from PeImage.\par\r
+\b GenFw \endash b PeiMain.dll \endash o PeiMain.bin\par\r
+\b0 8. Generate the microcode binary file from the micro code txt file.\par\r
+\b GenFw \endash m Mci.txt \endash o Mci.bin\par\r
+\b0 9. Merge the multiple mci binary files to one file.\par\r
+\b GenFw \endash j Mci.bin1 Mci.bin2 Mci.bin3 \endash a 32 \endash p 0xFF \endash o Mci.bin\par\r
+\b0 10. Generate the text resource file (RC format) based on all input binary HII packages and their package list guid.\par\r
+\b GenFw \endash o SampleHii.rc \endash g D49D2EB0-44D5-4621-9FD6-1A92C9109B99 \endash hiipackage SampleStr.hpk SampleVfr.hpk\f1\par\r
+\b0\f0 11. Generate the binary resource section based on all input binary HII packages and their package list guid.\f1\par\r
+\b\f0 GenFw \endash o SampleHii.bin \endash g D49D2EB0-44D5-4621-9FD6-1A92C9109B99 \endash hiibinpackage SampleStr.hpk SampleVfr.hpk\f1\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\f0\fs28 Bugs\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18 No known bugs.\par\r
+Report bugs to edk2-buildtools-devel@lists.sourceforge.net\f1\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\b\f0\fs28 Files\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18 None\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\b\fs28 See also\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18 None\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\b\fs28 License\par\r
+\pard\nowidctlpar\cf2\b0\fs18 Copyright (c) 2007 - 2009, Intel Corporation. All rights reserved.\par\r
+This program and the accompanying materials are licensed and made available \par\r
+under the terms and conditions of the BSD License which accompanies this \par\r
+distribution.  The full text of the license may be found at\par\r
+http://opensource.org/licenses/bsd-license.php\par\r
+\par\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\par\r
+\pard\nowidctlpar\sb200 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\par\r
+\cf0\f1\par\r
+}\r
+\0
\ No newline at end of file
index 3b024f65f7666ae84f20f8eb2a98cb13ee92313d..b3c3f7f89f0e2109048ccb4f31c75fce95d2710f 100644 (file)
Binary files a/BaseTools/UserManuals/GenPage_Utility_Man_Page.rtf and b/BaseTools/UserManuals/GenPage_Utility_Man_Page.rtf differ
index 7fdfe62c4880f359bff1ab18c8338cb3009e87d8..2361472a87950669ec0d4ca72f608adb5d053e75 100644 (file)
Binary files a/BaseTools/UserManuals/GenPatchPcdTable_Utility_Man_Page.rtf and b/BaseTools/UserManuals/GenPatchPcdTable_Utility_Man_Page.rtf differ
index 004b7eee30afbed8f2e13c2a54305c258d3d3d62..f4b8bfa0b695e174382f0e6083ecd9b5bbc6a016 100644 (file)
-{\rtf1\adeflang1025\ansi\ansicpg1252\uc2\adeff0\deff0\stshfdbch13\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe2052{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}{\f4\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Helvetica;}\r
-{\f13\fnil\fcharset134\fprq2{\*\panose 02010600030101010101}\'cb\'ce\'cc\'e5{\*\falt SimSun};}{\f38\fnil\fcharset134\fprq2{\*\panose 02010600030101010101}@\'cb\'ce\'cc\'e5;}\r
-{\f39\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana{\*\falt Tahoma};}{\f148\froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\f149\froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}\r
-{\f151\froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\f152\froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\f153\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}\r
-{\f154\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\f155\froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}\r
-{\f156\froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}{\f188\fswiss\fcharset238\fprq2 Helvetica CE;}{\f189\fswiss\fcharset204\fprq2 Helvetica Cyr;}{\f191\fswiss\fcharset161\fprq2 Helvetica Greek;}\r
-{\f192\fswiss\fcharset162\fprq2 Helvetica Tur;}{\f193\fbidi \fswiss\fcharset177\fprq2 Helvetica (Hebrew);}{\f194\fbidi \fswiss\fcharset178\fprq2 Helvetica (Arabic);}{\f195\fswiss\fcharset186\fprq2 Helvetica Baltic;}\r
-{\f196\fswiss\fcharset163\fprq2 Helvetica (Vietnamese);}{\f280\fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};}{\f530\fnil\fcharset0\fprq2 @\'cb\'ce\'cc\'e5 Western;}{\f538\fswiss\fcharset238\fprq2 Verdana CE{\*\falt Tahoma};}\r
-{\f539\fswiss\fcharset204\fprq2 Verdana Cyr{\*\falt Tahoma};}{\f541\fswiss\fcharset161\fprq2 Verdana Greek{\*\falt Tahoma};}{\f542\fswiss\fcharset162\fprq2 Verdana Tur{\*\falt Tahoma};}{\f545\fswiss\fcharset186\fprq2 Verdana Baltic{\*\falt Tahoma};}\r
-{\f546\fswiss\fcharset163\fprq2 Verdana (Vietnamese){\*\falt Tahoma};}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\r
-\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red8\green96\blue168;}{\stylesheet{\r
-\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\f39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 \snext0 Normal;}{\r
-\s1\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel0\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\f39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 \sbasedon0 \snext0 heading 1;}{\r
-\s2\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\f39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 \sbasedon0 \snext0 heading 2;}{\*\cs10 \r
-\additive \ssemihidden Default Paragraph Font;}{\*\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \r
-\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs20\lang1024\langfe1024\loch\f0\hich\af0\dbch\af13\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}}\r
-{\*\latentstyles\lsdstimax156\lsdlockeddef0}{\*\rsidtbl \rsid5846868\rsid6037879\rsid6902473}{\*\generator Microsoft Word 11.0.0000;}{\info{\operator lgao4}{\creatim\yr2008\mo12\dy31\hr15\min21}{\revtim\yr2010\mo3\dy18\hr17\min9}{\version4}{\edmins2}\r
-{\nofpages3}{\nofwords653}{\nofchars3726}{\nofcharsws4371}{\vern24615}{\*\password 00000000}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}{\xmlns2 urn:schemas-microsoft-com:office:smarttags}}\r
-\paperw12240\paperh15840\margl1800\margr1800\margt1440\margb1440\gutter0\ltrsect \r
-\deftab360\widowctrl\ftnbj\aenddoc\donotembedsysfont0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\r
-\jcompress\viewkind4\viewscale100\rsidroot6902473 \fet0{\*\wgrffmtfilter 013f}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta \hich .}}{\*\pnseclvl2\r
-\pnucltr\pnstart1\pnindent720\pnhang {\pntxta \hich .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta \hich .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta \hich )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb \hich (}\r
-{\pntxta \hich )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb \hich (}{\pntxta \hich )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb \hich (}{\pntxta \hich )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb \hich (}\r
-{\pntxta \hich )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb \hich (}{\pntxta \hich )}}\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \r
-\af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid5846868 \hich\af39\dbch\af13\loch\f39 Name\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 GenSec.exe \hich\f39 \endash \loch\f39  bu\hich\af39\dbch\af13\loch\f39 ild one PI section file.\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid5846868 \hich\af39\dbch\af13\loch\f39 Synopsis\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs18 \r
-\ltrch\fcs0 \b\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 \hich\f39 GenSec.exe [options] [Filename]\'85}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5846868 \r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid5846868 \hich\af39\dbch\af13\loch\f39 Description\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 \r
-GenSec is used to generate valid EFI_SECTION type files, which conforms to the firmware file section defined in PI specification, from PE32/PE32+/COFF image files or other binary files. This utility will produce a file that is the section header concatena\r
-\hich\af39\dbch\af13\loch\f39 t\hich\af39\dbch\af13\loch\f39 ed with the contents of the input file.  It does not validate that the contents of the input file match the section added.\r
-\par \hich\af39\dbch\af13\loch\f39 PI SECTION Types referred to the Volume 3 of the PI 1.0 specification.\r
-\par \ltrrow}\trowd \irow0\irowband0\ltrrow\ts11\trgaph108\trleft36\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\tblind144\tblindtype3 \clvertalt\clbrdrt\r
-\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth1392\clshdrawnil \cellx1428\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \r
-\cltxlrtb\clftsWidth3\clwWidth4372\clshdrawnil \cellx5800\pard \ltrpar\ql \li0\ri0\sa60\sl240\slmult0\nowidctlpar\intbl\wrapdefault\faauto\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \hich\af4\dbch\af13\loch\f4 Mnemonic\cell \r
-\hich\af4\dbch\af13\loch\f4 PI Section Type\cell }\pard \ltrpar\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \trowd \irow0\irowband0\ltrrow\r
-\ts11\trgaph108\trleft36\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\tblind144\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \r
-\clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth1392\clshdrawnil \cellx1428\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth4372\clshdrawnil \r
-\cellx5800\row \ltrrow}\pard \ltrpar\ql \li0\ri0\sa60\sl240\slmult0\nowidctlpar\intbl\wrapdefault\faauto\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \hich\af4\dbch\af13\loch\f4 COMPRESS\cell \hich\af4\dbch\af13\loch\f4 \r
-EFI_SECTION_COMPRESSION\cell }\pard \ltrpar\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \trowd \irow1\irowband1\ltrrow\ts11\trgaph108\trleft36\trbrdrt\r
-\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\tblind144\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\r
-\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth1392\clshdrawnil \cellx1428\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth4372\clshdrawnil \cellx5800\row \ltrrow\r
-}\pard \ltrpar\ql \li0\ri0\sa60\sl240\slmult0\nowidctlpar\intbl\wrapdefault\faauto\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \hich\af4\dbch\af13\loch\f4 GUID\cell \hich\af4\dbch\af13\loch\f4 EFI_SECTION_GUID_DEFINED\cell \r
-}\pard \ltrpar\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \trowd \irow2\irowband2\ltrrow\ts11\trgaph108\trleft36\trbrdrt\brdrs\brdrw15 \trbrdrl\r
-\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\tblind144\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \r
-\cltxlrtb\clftsWidth3\clwWidth1392\clshdrawnil \cellx1428\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth4372\clshdrawnil \cellx5800\row \ltrrow}\pard \ltrpar\r
-\ql \li0\ri0\sa60\sl240\slmult0\nowidctlpar\intbl\wrapdefault\faauto\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \hich\af4\dbch\af13\loch\f4 PE32\cell \hich\af4\dbch\af13\loch\f4 EFI_SECTION_PE32\cell }\pard \ltrpar\r
-\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \trowd \irow3\irowband3\ltrrow\ts11\trgaph108\trleft36\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\r
-\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\tblind144\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \r
-\cltxlrtb\clftsWidth3\clwWidth1392\clshdrawnil \cellx1428\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth4372\clshdrawnil \cellx5800\row \ltrrow}\pard \ltrpar\r
-\ql \li0\ri0\sa60\sl240\slmult0\nowidctlpar\intbl\wrapdefault\faauto\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \hich\af4\dbch\af13\loch\f4 PIC\cell \hich\af4\dbch\af13\loch\f4 EFI_SECTION_PIC\cell }\pard \ltrpar\r
-\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \trowd \irow4\irowband4\ltrrow\ts11\trgaph108\trleft36\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\r
-\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\tblind144\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \r
-\cltxlrtb\clftsWidth3\clwWidth1392\clshdrawnil \cellx1428\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth4372\clshdrawnil \cellx5800\row \ltrrow}\pard \ltrpar\r
-\ql \li0\ri0\sa60\sl240\slmult0\nowidctlpar\intbl\wrapdefault\faauto\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \hich\af4\dbch\af13\loch\f4 TE\cell \hich\af4\dbch\af13\loch\f4 EFI_SECTION_TE\cell }\pard \ltrpar\r
-\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \trowd \irow5\irowband5\ltrrow\ts11\trgaph108\trleft36\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\r
-\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\tblind144\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \r
-\cltxlrtb\clftsWidth3\clwWidth1392\clshdrawnil \cellx1428\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth4372\clshdrawnil \cellx5800\row \ltrrow}\pard \ltrpar\r
-\ql \li0\ri0\sa60\sl240\slmult0\nowidctlpar\intbl\wrapdefault\faauto\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \hich\af4\dbch\af13\loch\f4 DXE_DEPEX\cell \hich\af4\dbch\af13\loch\f4 EFI_SECTION_DXE_DEPEX\cell }\pard \ltrpar\r
-\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \trowd \irow6\irowband6\ltrrow\ts11\trgaph108\trleft36\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\r
-\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\tblind144\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \r
-\cltxlrtb\clftsWidth3\clwWidth1392\clshdrawnil \cellx1428\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth4372\clshdrawnil \cellx5800\row \ltrrow}\pard \ltrpar\r
-\ql \li0\ri0\sa60\sl240\slmult0\nowidctlpar\intbl\wrapdefault\faauto\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \hich\af4\dbch\af13\loch\f4 VERSION\cell \hich\af4\dbch\af13\loch\f4 EFI_SECTION_VERSION\cell }\pard \ltrpar\r
-\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \trowd \irow7\irowband7\ltrrow\ts11\trgaph108\trleft36\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\r
-\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\tblind144\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \r
-\cltxlrtb\clftsWidth3\clwWidth1392\clshdrawnil \cellx1428\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth4372\clshdrawnil \cellx5800\row \ltrrow}\pard \ltrpar\r
-\ql \li0\ri0\sa60\sl240\slmult0\nowidctlpar\intbl\wrapdefault\faauto\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \hich\af4\dbch\af13\loch\f4 UI\cell \hich\af4\dbch\af13\loch\f4 EFI_SECTION_USER_INTERFACE\cell }\pard \ltrpar\r
-\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \trowd \irow8\irowband8\ltrrow\ts11\trgaph108\trleft36\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\r
-\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\tblind144\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \r
-\cltxlrtb\clftsWidth3\clwWidth1392\clshdrawnil \cellx1428\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth4372\clshdrawnil \cellx5800\row \ltrrow}\pard \ltrpar\r
-\ql \li0\ri0\sa60\sl240\slmult0\nowidctlpar\intbl\wrapdefault\faauto\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \hich\af4\dbch\af13\loch\f4 COMPAT16\cell \hich\af4\dbch\af13\loch\f4 EFI_SECTION_COMPATIBILITY16\cell \r
-}\pard \ltrpar\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \trowd \irow9\irowband9\ltrrow\ts11\trgaph108\trleft36\trbrdrt\brdrs\brdrw15 \trbrdrl\r
-\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\tblind144\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \r
-\cltxlrtb\clftsWidth3\clwWidth1392\clshdrawnil \cellx1428\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth4372\clshdrawnil \cellx5800\row \ltrrow}\pard \ltrpar\r
-\ql \li0\ri0\sa60\sl240\slmult0\nowidctlpar\intbl\wrapdefault\faauto\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \hich\af4\dbch\af13\loch\f4 FVIMAGE\cell \hich\af4\dbch\af13\loch\f4 EFI_SECTION_FIRMWARE_VOLUME_IMAGE\cell \r
-}\pard \ltrpar\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \trowd \irow10\irowband10\ltrrow\ts11\trgaph108\trleft36\trbrdrt\brdrs\brdrw15 \trbrdrl\r
-\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\tblind144\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \r
-\cltxlrtb\clftsWidth3\clwWidth1392\clshdrawnil \cellx1428\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth4372\clshdrawnil \cellx5800\row \ltrrow}\pard \ltrpar\r
-\ql \li0\ri0\sa60\sl240\slmult0\nowidctlpar\intbl\wrapdefault\faauto\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \hich\af4\dbch\af13\loch\f4 SUBGUID\cell \hich\af4\dbch\af13\loch\f4 EFI_SECTION_FREEFORM_SUBTYPE_GUID\cell \r
-}\pard \ltrpar\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \trowd \irow11\irowband11\ltrrow\ts11\trgaph108\trleft36\trbrdrt\brdrs\brdrw15 \trbrdrl\r
-\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\tblind144\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \r
-\cltxlrtb\clftsWidth3\clwWidth1392\clshdrawnil \cellx1428\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth4372\clshdrawnil \cellx5800\row \ltrrow}\pard \ltrpar\r
-\ql \li0\ri0\sa60\sl240\slmult0\nowidctlpar\intbl\wrapdefault\faauto\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \hich\af4\dbch\af13\loch\f4 RAW\cell \hich\af4\dbch\af13\loch\f4 EFI_SECTION_RAW\cell }\pard \ltrpar\r
-\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \trowd \irow12\irowband12\ltrrow\ts11\trgaph108\trleft36\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \r
-\trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\tblind144\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \r
-\cltxlrtb\clftsWidth3\clwWidth1392\clshdrawnil \cellx1428\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth4372\clshdrawnil \cellx5800\row \ltrrow}\pard \ltrpar\r
-\ql \li0\ri0\sa60\sl240\slmult0\nowidctlpar\intbl\wrapdefault\faauto\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \hich\af4\dbch\af13\loch\f4 PEI_DEPEX\cell \hich\af4\dbch\af13\loch\f4 EFI_SECTION_PEI_DEPEX\cell }\pard \ltrpar\r
-\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\rtlch\fcs1 \af4\afs18 \ltrch\fcs0 \f4\fs18\insrsid5846868 \trowd \irow13\irowband13\lastrow \ltrrow\ts11\trgaph108\trleft36\trbrdrt\brdrs\brdrw15 \trbrdrl\r
-\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\tblind144\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \r
-\cltxlrtb\clftsWidth3\clwWidth1392\clshdrawnil \cellx1428\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth4372\clshdrawnil \cellx5800\row }\pard\plain \ltrpar\r
-\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\r
-\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid5846868 \hich\af39\dbch\af13\loch\f39 Options\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs18 \r
-\ltrch\fcs0 \b\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 Filename1 [FilenameN]\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 Input PE/PE32+ image, or TE image, or other binary files.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 -o FileName, --outputfile FileName\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 The PI section file is created. This option is required.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 -s SectionType, --sectiontype SectionType\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 \r
-SectionType defined in PI spec is one type of EFI_SECTION_COMPRESSION, EFI_SECTION_GUID_DEFINED, EFI_SECTION_PE32, EFI_SECTION_PIC, EFI_SECTION_TE, EFI_SECTI\hich\af39\dbch\af13\loch\f39 \r
-ON_DXE_DEPEX, EFI_SECTION_COMPATIBILITY16, EFI_SECTION_USER_INTERFACE, EFI_SECTION_VERSION, EFI_SECTION_FIRMWARE_VOLUME_IMAGE, EFI_SECTION_RAW, EFI_SECTION_FREEFORM_SUBTYPE_GUID, EFI_SECTION_PEI_DEPEX. If sectiontype is not given, EFI_SECTION_ALL is defau\r
-\hich\af39\dbch\af13\loch\f39 l\hich\af39\dbch\af13\loch\f39 t type to contain the input all sections to one section file.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 -c [Type], --compress [Type]\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 \r
-Compress method type can be PI_NONE or PI_STD. If Type is not given, PI_STD is default type.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 -g GuidValue, --vendor GuidValue\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 GuidValue is one specific vendor guid v\hich\af39\dbch\af13\loch\f39 \r
-alue for guided section. Its format is 00000000-0000-0000-0000-000000000000. If it is not given, the default CRC32 guided is used.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid5846868 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 -l GuidHeaderLength, --HeaderLength GuidHeaderLength\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0\pararsid5846868 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 Specify the size of header of GUID-ed data.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 -r GuidAttr, --attributes Gu\hich\af39\dbch\af13\loch\f39 idAttr\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 \r
-GuidAttr is guided section attributes, which may be PROCESSING_REQUIRED or AUTH_STATUS_VALID. If it is not given, PROCESSING_REQUIRED is the default attribute.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 -n String, --name String\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 String is a NULL terminated string used in Ui section.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 -j Number\hich\af39\dbch\af13\loch\f39 , --buildnumber Number\r
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 Number is an integer value between 0000 and 9999 used in Ver section.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 -v, --verbose\r
-\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 Turn on verbose output with informational messages.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid5846868 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 -d, --debug level\r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5846868 \tab \hich\af39\dbch\af13\loch\f39 Enable debug message with specified level.\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 --version\r
-\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 Show program's version nu\hich\af39\dbch\af13\loch\f39 mber and exit\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 -h, --help\r
-\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 Show this help message and exit\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid5846868 \hich\af39\dbch\af13\loch\f39 Example\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 1. Generate PE32 section file with the input PE image, PE32 section type and the output file name.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 GenSec -s EFI_SECTION_PE32 PeiMain.efi -o PeiMain.pe32 \r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 2. Generate compression section file with the input section files, compression method and the output file name.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 GenSec -s EFI_SECTION_COMPRESSION \hich\f39 \endash \loch\f39 c PI_STD PeiMain.pe32 PeiMain.ui PeiMain.ver -o PeiMain.com\r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 3. Generate the default CRC32 guided section file\hich\af39\dbch\af13\loch\f39  with the input section files, and the output file name.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 GenSec \hich\f39 \endash \loch\f39 s EFI_SECTION_GUID_DEFINED PeiMain.pe32 PeiMain.ui PeiMain.ver \hich\f39 \endash \loch\f39 o PeiMain.guided\r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 4. Generate the vendor specific guided section file with the input vendor raw files, the vendor guid, and the \hich\af39\dbch\af13\loch\f39 output file name.\r
-\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 GenSec \hich\f39 \endash \loch\f39 s EFI_SECTION_GUID_DEFINED \hich\f39 \endash \loch\f39 g A31280AD-481E-41B6-95E8-127F-4C984779 \hich\f39 \endash \r
-\loch\f39 r PROCESSING_REQUIRED \hich\f39 \endash \loch\f39 r AUTH_STATUS_VALID PeiMain.raw \hich\f39 \endash \loch\f39 o PeiMain.guided\r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 5. Generate UI section with the input string and the output file name.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 Gensec -s EFI_SEC\hich\af39\dbch\af13\loch\f39 TION_USER_INTERFACE \hich\f39 \endash \loch\f39 \hich\f39 n \'93\loch\f39 \hich\f39 PeiMain\'94\loch\f39  \r
-\hich\f39 \endash \loch\f39 o PeiMain.ui\r
-\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 6. Generate VER section with the input build number and the output file name.\r
-\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 GenSec -s EFI_SECTION_VERSION \hich\f39 \endash \loch\f39 j 20 \hich\f39 \endash \loch\f39 o PeiMain.ver\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid5846868 \hich\af39\dbch\af13\loch\f39 Bugs\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 No known bugs.\r
-\par \hich\af39\dbch\af13\loch\f39 Report bugs to }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6037879\charrsid6704915 \hich\af39\dbch\af13\loch\f39 edk2-buildtools-{\*\xmlopen\xmlns2{\factoidname PersonName}}dev{\*\xmlclose}el@lists.sourceforge.net}\r
-{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5846868 \r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid5846868 \hich\af39\dbch\af13\loch\f39 Files\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 None\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid5846868 \hich\af39\dbch\af13\loch\f39 Se\hich\af39\dbch\af13\loch\f39 e also\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 None\r
-\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \r
-\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid5846868 \hich\af39\dbch\af13\loch\f39 License\r
-\par }\pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \r
-\fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 Copyright (c) 2007}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6902473 \hich\af39\dbch\af13\loch\f39 -2009}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5846868 \r
-\hich\af39\dbch\af13\loch\f39  Intel Corporation. All rights reserved\r
-\par \hich\af39\dbch\af13\loch\f39 This program and the accompanying materials are licensed and made available \r
-\par \hich\af39\dbch\af13\loch\f39 under the terms and conditions of the BSD License which accompanies this \r
-\par \hich\af39\dbch\af13\loch\f39 distribution.  The ful\hich\af39\dbch\af13\loch\f39 l text of the license may be found at\r
-\par \hich\af39\dbch\af13\loch\f39 http://opensource.org/licenses/bsd-license.php\r
-\par \r
-\par \hich\af39\dbch\af13\loch\f39 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5846868 \hich\af39\dbch\af13\loch\f39 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-\par }}
\ No newline at end of file
+{\rtf1\ansi\ansicpg1252\deff0\deflang1033\deflangfe2052\deftab360{\fonttbl{\f0\fswiss\fprq2\fcharset0 Verdana;}{\f1\froman\fprq2\fcharset0 Times New Roman;}{\f2\fswiss\fprq2\fcharset0 Helvetica;}}\r
+{\colortbl ;\red8\green96\blue168;\red0\green0\blue0;}\r
+{\stylesheet{ Normal;}{\s1 heading 1;}{\s2 heading 2;}}\r
+{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\b\f0\fs28 Name\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18 GenSec.exe \endash  build one PI section file.\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx1440\cf1\b\fs28 Synopsis\par\r
+\pard\nowidctlpar\sb200\cf2\fs18 GenSec.exe [options] [Filename]\'85\b0\f1\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\b\f0\fs28 Description\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18 GenSec is used to generate valid EFI_SECTION type files, which conforms to the firmware file section defined in PI specification, from PE32/PE32+/COFF image files or other binary files. This utility will produce a file that is the section header concatenated with the contents of the input file.  It does not validate that the contents of the input file match the section added.\par\r
+PI SECTION Types referred to the Volume 3 of the PI 1.0 specification.\par\r
+\trowd\trgaph108\trleft36\trbrdrl\brdrs\brdrw15 \trbrdrt\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\r
+\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx1428\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx5800\pard\intbl\nowidctlpar\sa60\sl240\slmult0\cf0\f2 Mnemonic\cell PI Section Type\cell\row\trowd\trgaph108\trleft36\trbrdrl\brdrs\brdrw15 \trbrdrt\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\r
+\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx1428\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx5800\pard\intbl\nowidctlpar\sa60\sl240\slmult0 COMPRESS\cell EFI_SECTION_COMPRESSION\cell\row\trowd\trgaph108\trleft36\trbrdrl\brdrs\brdrw15 \trbrdrt\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\r
+\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx1428\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx5800\pard\intbl\nowidctlpar\sa60\sl240\slmult0 GUID\cell EFI_SECTION_GUID_DEFINED\cell\row\trowd\trgaph108\trleft36\trbrdrl\brdrs\brdrw15 \trbrdrt\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\r
+\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx1428\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx5800\pard\intbl\nowidctlpar\sa60\sl240\slmult0 PE32\cell EFI_SECTION_PE32\cell\row\trowd\trgaph108\trleft36\trbrdrl\brdrs\brdrw15 \trbrdrt\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\r
+\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx1428\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx5800\pard\intbl\nowidctlpar\sa60\sl240\slmult0 PIC\cell EFI_SECTION_PIC\cell\row\trowd\trgaph108\trleft36\trbrdrl\brdrs\brdrw15 \trbrdrt\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\r
+\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx1428\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx5800\pard\intbl\nowidctlpar\sa60\sl240\slmult0 TE\cell EFI_SECTION_TE\cell\row\trowd\trgaph108\trleft36\trbrdrl\brdrs\brdrw15 \trbrdrt\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\r
+\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx1428\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx5800\pard\intbl\nowidctlpar\sa60\sl240\slmult0 DXE_DEPEX\cell EFI_SECTION_DXE_DEPEX\cell\row\trowd\trgaph108\trleft36\trbrdrl\brdrs\brdrw15 \trbrdrt\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\r
+\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx1428\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx5800\pard\intbl\nowidctlpar\sa60\sl240\slmult0 VERSION\cell EFI_SECTION_VERSION\cell\row\trowd\trgaph108\trleft36\trbrdrl\brdrs\brdrw15 \trbrdrt\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\r
+\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx1428\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx5800\pard\intbl\nowidctlpar\sa60\sl240\slmult0 UI\cell EFI_SECTION_USER_INTERFACE\cell\row\trowd\trgaph108\trleft36\trbrdrl\brdrs\brdrw15 \trbrdrt\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\r
+\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx1428\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx5800\pard\intbl\nowidctlpar\sa60\sl240\slmult0 COMPAT16\cell EFI_SECTION_COMPATIBILITY16\cell\row\trowd\trgaph108\trleft36\trbrdrl\brdrs\brdrw15 \trbrdrt\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\r
+\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx1428\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx5800\pard\intbl\nowidctlpar\sa60\sl240\slmult0 FVIMAGE\cell EFI_SECTION_FIRMWARE_VOLUME_IMAGE\cell\row\trowd\trgaph108\trleft36\trbrdrl\brdrs\brdrw15 \trbrdrt\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\r
+\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx1428\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx5800\pard\intbl\nowidctlpar\sa60\sl240\slmult0 SUBGUID\cell EFI_SECTION_FREEFORM_SUBTYPE_GUID\cell\row\trowd\trgaph108\trleft36\trbrdrl\brdrs\brdrw15 \trbrdrt\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\r
+\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx1428\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx5800\pard\intbl\nowidctlpar\sa60\sl240\slmult0 RAW\cell EFI_SECTION_RAW\cell\row\trowd\trgaph108\trleft36\trbrdrl\brdrs\brdrw15 \trbrdrt\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trpaddl108\trpaddr108\trpaddfl3\trpaddfr3\r
+\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx1428\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx5800\pard\intbl\nowidctlpar\sa60\sl240\slmult0 PEI_DEPEX\cell EFI_SECTION_PEI_DEPEX\cell\row\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\b\f0\fs28 Options\par\r
+\pard\nowidctlpar\sb200\cf2\fs18 Filename1 [FilenameN]\par\r
+\pard\nowidctlpar\li360\sb200\b0 Input PE/PE32+ image, or TE image, or other binary files.\par\r
+\pard\nowidctlpar\sb200\b -o FileName, --outputfile FileName\par\r
+\pard\nowidctlpar\li360\sb200\b0 The PI section file is created. This option is required.\par\r
+\pard\nowidctlpar\sb200\b -s SectionType, --sectiontype SectionType\par\r
+\pard\nowidctlpar\li360\sb200\b0 SectionType defined in PI spec is one type of EFI_SECTION_COMPRESSION, EFI_SECTION_GUID_DEFINED, EFI_SECTION_PE32, EFI_SECTION_PIC, EFI_SECTION_TE, EFI_SECTION_DXE_DEPEX, EFI_SECTION_COMPATIBILITY16, EFI_SECTION_USER_INTERFACE, EFI_SECTION_VERSION, EFI_SECTION_FIRMWARE_VOLUME_IMAGE, EFI_SECTION_RAW, EFI_SECTION_FREEFORM_SUBTYPE_GUID, EFI_SECTION_PEI_DEPEX. If sectiontype is not given, EFI_SECTION_ALL is default type to contain the input all sections to one section file.\par\r
+\pard\nowidctlpar\sb200\b -c [Type], --compress [Type]\par\r
+\pard\nowidctlpar\li360\sb200\b0 Compress method type can be PI_NONE or PI_STD. If Type is not given, PI_STD is default type.\par\r
+\pard\nowidctlpar\sb200\b -g GuidValue, --vendor GuidValue\par\r
+\pard\nowidctlpar\li360\sb200\b0 GuidValue is one specific vendor guid value for guided section. Its format is 00000000-0000-0000-0000-000000000000. If it is not given, the default CRC32 guided is used.\par\r
+\pard\nowidctlpar\sb200\b -l GuidHeaderLength, --HeaderLength GuidHeaderLength\par\r
+\pard\nowidctlpar\li360\sb200\b0 Specify the size of header of GUID-ed data.\par\r
+\pard\nowidctlpar\sb200\b -r GuidAttr, --attributes GuidAttr\par\r
+\pard\nowidctlpar\li360\sb200\b0 GuidAttr is guided section attributes, which may be PROCESSING_REQUIRED or AUTH_STATUS_VALID. If it is not given, PROCESSING_REQUIRED is the default attribute.\par\r
+\pard\nowidctlpar\sb200\b -n String, --name String\par\r
+\pard\nowidctlpar\li360\sb200\b0 String is a NULL terminated string used in Ui section.\par\r
+\pard\nowidctlpar\sb200\b -j Number, --buildnumber Number\par\r
+\pard\nowidctlpar\li360\sb200\b0 Number is an integer value between 0000 and 9999 used in Ver section.\par\r
+\pard\nowidctlpar\sb200\b -v, --verbose\par\r
+\pard\nowidctlpar\fi360\sb200\b0 Turn on verbose output with informational messages.\par\r
+\pard\nowidctlpar\sb200\b -d, --debug level\par\r
+\b0\f1\tab\f0 Enable debug message with specified level.\par\r
+\b --version\par\r
+\pard\nowidctlpar\fi360\sb200\b0 Show program's version number and exit\par\r
+\pard\nowidctlpar\sb200\b -h, --help\par\r
+\pard\nowidctlpar\fi360\sb200\b0 Show this help message and exit\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\b\fs28 Example\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18 1. Generate PE32 section file with the input PE image, PE32 section type and the output file name.\par\r
+\b GenSec -s EFI_SECTION_PE32 PeiMain.efi -o PeiMain.pe32 \par\r
+\b0 2. Generate compression section file with the input section files, compression method and the output file name.\par\r
+\b GenSec -s EFI_SECTION_COMPRESSION \endash c PI_STD PeiMain.pe32 PeiMain.ui PeiMain.ver -o PeiMain.com\par\r
+\b0 3. Generate the default CRC32 guided section file with the input section files, and the output file name.\par\r
+\b GenSec \endash s EFI_SECTION_GUID_DEFINED PeiMain.pe32 PeiMain.ui PeiMain.ver \endash o PeiMain.guided\par\r
+\b0 4. Generate the vendor specific guided section file with the input vendor raw files, the vendor guid, and the output file name.\par\r
+\b GenSec \endash s EFI_SECTION_GUID_DEFINED \endash g A31280AD-481E-41B6-95E8-127F-4C984779 \endash r PROCESSING_REQUIRED \endash r AUTH_STATUS_VALID PeiMain.raw \endash o PeiMain.guided\par\r
+\b0 5. Generate UI section with the input string and the output file name.\par\r
+\b Gensec -s EFI_SECTION_USER_INTERFACE \endash n \ldblquote PeiMain\rdblquote  \endash o PeiMain.ui\par\r
+\b0 6. Generate VER section with the input build number and the output file name.\par\r
+\b GenSec -s EFI_SECTION_VERSION \endash j 20 \endash o PeiMain.ver\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\fs28 Bugs\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18 No known bugs.\par\r
+Report bugs to edk2-buildtools-devel@lists.sourceforge.net\f1\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\b\f0\fs28 Files\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18 None\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\b\fs28 See also\par\r
+\pard\nowidctlpar\sb200\cf2\b0\fs18 None\par\r
+\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\b\fs28 License\par\r
+\pard\nowidctlpar\cf2\b0\fs18 Copyright (c) 2007 - 2009, Intel Corporation. All rights reserved.\par\r
+This program and the accompanying materials are licensed and made available \par\r
+under the terms and conditions of the BSD License which accompanies this \par\r
+distribution.  The full text of the license may be found at\par\r
+http://opensource.org/licenses/bsd-license.php\par\r
+\par\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\par\r
+\pard\nowidctlpar\sb200 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\par\r
+}\r
+\0
\ No newline at end of file
index 9eb5ba40bd2ff867ea4e0c3c1ee2b9c9955d292d..e65649253b1cf1eea1c61ff72bd4e76d6c8b23af 100644 (file)
Binary files a/BaseTools/UserManuals/GenVtf_Utility_Man_Page.rtf and b/BaseTools/UserManuals/GenVtf_Utility_Man_Page.rtf differ
index 8da849805ad5c064d5a57327fe9ea38967c46da9..88ae227c0e4fa70b930a56f320fd6a5012cd7a69 100644 (file)
Binary files a/BaseTools/UserManuals/InstallPkg_Utility_Man_Page.rtf and b/BaseTools/UserManuals/InstallPkg_Utility_Man_Page.rtf differ
index 8c643cdf24532d9e5cc9665bc5f570452a385d40..e220416a08f8bfaaf252f3bd40bfcea7e1e639b8 100644 (file)
Binary files a/BaseTools/UserManuals/LzmaCompress_Utility_Man_Page.rtf and b/BaseTools/UserManuals/LzmaCompress_Utility_Man_Page.rtf differ
index d54c8c18def6b591fd2f54cc6369079c77c64497..8655f4c0537440abf0572b6d0aab2412435a8ede 100644 (file)
Binary files a/BaseTools/UserManuals/MkPkg_Utility_Man_Page.rtf and b/BaseTools/UserManuals/MkPkg_Utility_Man_Page.rtf differ
index 07ef4f6fa401ab91a8a5a13dff05826c79eb57be..150fdec1ace547cbc8adc9afc1a009240af38853 100644 (file)
Binary files a/BaseTools/UserManuals/Msa2Inf_Utility_Man_Page.rtf and b/BaseTools/UserManuals/Msa2Inf_Utility_Man_Page.rtf differ
index 02c2ff2695a652f218e5e77598d50786786e6521..20eb5c8592ae0f2c073e2106c3acbc4784ed683c 100644 (file)
Binary files a/BaseTools/UserManuals/PatchPcdValue_Utility_Man_Page.rtf and b/BaseTools/UserManuals/PatchPcdValue_Utility_Man_Page.rtf differ
index 0b718ecf4c9cfffbf471f800673cc825e3087997..7175dcf3ca71c06a9c457ecf7c7d7e3fa5f0e832 100644 (file)
Binary files a/BaseTools/UserManuals/RmPkg_Utility_Man_Page.rtf and b/BaseTools/UserManuals/RmPkg_Utility_Man_Page.rtf differ
index 7e1b6ffced1dd19ed0367e38b1802619cca3cf5b..7605ba0507e14dfe8a2ec13ca00887ba7397e484 100644 (file)
Binary files a/BaseTools/UserManuals/Spd2Dec_Utility_Man_Page.rtf and b/BaseTools/UserManuals/Spd2Dec_Utility_Man_Page.rtf differ
index 66bd69e2b5ef09fe39554a85ea0cf6f82045a501..62f17226fe933b21075aca7e8985a4511d7d3163 100644 (file)
Binary files a/BaseTools/UserManuals/SplitFile_Utility_Man_Page.rtf and b/BaseTools/UserManuals/SplitFile_Utility_Man_Page.rtf differ
index b08179a9234c1fad6a6f16315ee407d10b133e8c..8eacc278650021d766143b65866e0820ca21cb65 100644 (file)
Binary files a/BaseTools/UserManuals/TargetTool_Utility_Man_Page.rtf and b/BaseTools/UserManuals/TargetTool_Utility_Man_Page.rtf differ
index bd341bf91d26ce50c1a075329ebbcf8041809491..78c96c3b1568d61425f6fdcd9c87188943863ea3 100644 (file)
Binary files a/BaseTools/UserManuals/TianoCompress_Utility_Man_Page.rtf and b/BaseTools/UserManuals/TianoCompress_Utility_Man_Page.rtf differ
index 8f8b0a7877a22c029d63cc9fde8a356936025313..9a845e731121d2c1cab6a95ecca04188cf38e67e 100644 (file)
Binary files a/BaseTools/UserManuals/Trim_Utility_Man_Page.rtf and b/BaseTools/UserManuals/Trim_Utility_Man_Page.rtf differ
index bfd671c459747b38cf6b9531b27ce7e73cd8f2c5..ae315e9f02d76a70ff8da3f8dea306cef11a59cd 100644 (file)
Binary files a/BaseTools/UserManuals/UtilityManPage_template.rtf and b/BaseTools/UserManuals/UtilityManPage_template.rtf differ
index 80f0b41ff4bcd03c41fa1d3d5cde03eca5dfbc53..5c78a39d3a01b8d14acbd216050461b6a0813853 100644 (file)
Binary files a/BaseTools/UserManuals/VfrCompiler_Utility_Man_Page.rtf and b/BaseTools/UserManuals/VfrCompiler_Utility_Man_Page.rtf differ
index 5ace7cccbad1180662a6393e4f06096a4511fbad..16ba2ef3fb52f34cbd94f368d742d6c64936f7df 100644 (file)
Binary files a/BaseTools/UserManuals/VolInfo_Utility_Man_Page.rtf and b/BaseTools/UserManuals/VolInfo_Utility_Man_Page.rtf differ
index 4133feb25607d4c566f1c800d3c03ee8b631ed2d..04a0ff1948139b642f0b25bba1eb132a7087ce86 100755 (executable)
@@ -6,8 +6,8 @@
 #   http://mingw-w64.svn.sourceforge.net/viewvc/mingw-w64/trunk/mingw-w64-doc/
 #     howto-build/mingw-w64-howto-build.txt?revision=216&view=markup
 #
-# Copyright (c) 2008 - 2010, Intel Corporation
-# All rights reserved. This program and the accompanying materials
+# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>
+# This program and the accompanying materials
 # are licensed and made available under the terms and conditions of the BSD License
 # which accompanies this distribution.    The full text of the license may be found at
 # http://opensource.org/licenses/bsd-license.php
@@ -227,8 +227,8 @@ class SourceFiles:
                    'mingw-w64/files/mingw-w64/mingw-w64-snapshot/' + \
                    'mingw-w64-v1.0-snapshot-$version.tar.bz2/download',
             'extract-dir': os.path.join('mingw-w64-v1.0-$version', 'mingw-w64-headers'),
-            'version': '20100223',
-            'md5': '700b9f54e740b1b962c8a3a0f52b7c04',
+            'version': '20100427',
+            'md5': '1fe68f486bba8995f6a5cf0ed06c80f3',
             },
         }
 
index 36cd9d2491b17788a5830312d616972f6b11696c..5a081430dbaca49cce4b21ad108bb3e34bd526bf 100755 (executable)
@@ -3,7 +3,7 @@
 @REM   however it may be executed directly from the BaseTools project folder\r
 @REM   if the file is not executed within a WORKSPACE\BaseTools folder.\r
 @REM\r
-@REM Copyright (c) 2006 - 2009, Intel Corporation.  All rights reserved.\r
+@REM Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>\r
 @REM\r
 @REM This program and the accompanying materials are licensed and made available\r
 @REM under the terms and conditions of the BSD Licensewhich accompanies this \r