public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [Patch 2/3] BaseTools: Remove unused logic for IPF
@ 2019-01-09  6:44 BobCF
  2019-01-14  0:12 ` Gao, Liming
  0 siblings, 1 reply; 2+ messages in thread
From: BobCF @ 2019-01-09  6:44 UTC (permalink / raw)
  To: edk2-devel; +Cc: Feng, Bob C, Liming Gao, Jaben Carsey

From: "Feng, Bob C" <bob.c.feng@intel.com>

Remove IPF support from BaseTools C code.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Jaben Carsey <jaben.carsey@intel.com>
---
 BaseTools/Source/Python/Common/DataType.py    |  19 +-
 .../Source/Python/CommonDataClass/FdfClass.py |  20 --
 BaseTools/Source/Python/Eot/EotMain.py        |   2 -
 .../Python/GenFds/ComponentStatement.py       |  29 ---
 BaseTools/Source/Python/GenFds/Fd.py          |  56 +----
 BaseTools/Source/Python/GenFds/FdfParser.py   | 223 +-----------------
 BaseTools/Source/Python/GenFds/Fv.py          |  12 +-
 BaseTools/Source/Python/GenFds/GenFds.py      |  11 +-
 .../Python/GenFds/GenFdsGlobalVariable.py     |   1 -
 BaseTools/Source/Python/GenFds/Region.py      |   5 +-
 BaseTools/Source/Python/GenFds/Vtf.py         | 200 ----------------
 .../Source/Python/TargetTool/TargetTool.py    |   4 +-
 BaseTools/Source/Python/build/build.py        |  20 +-
 13 files changed, 20 insertions(+), 582 deletions(-)
 delete mode 100644 BaseTools/Source/Python/GenFds/ComponentStatement.py
 delete mode 100644 BaseTools/Source/Python/GenFds/Vtf.py

diff --git a/BaseTools/Source/Python/Common/DataType.py b/BaseTools/Source/Python/Common/DataType.py
index ec0a4f3d59..798c0e353d 100644
--- a/BaseTools/Source/Python/Common/DataType.py
+++ b/BaseTools/Source/Python/Common/DataType.py
@@ -52,16 +52,15 @@ TAB_FV_DIRECTORY = 'FV'
 
 TAB_ARCH_NULL = ''
 TAB_ARCH_COMMON = 'COMMON'
 TAB_ARCH_IA32 = 'IA32'
 TAB_ARCH_X64 = 'X64'
-TAB_ARCH_IPF = 'IPF'
 TAB_ARCH_ARM = 'ARM'
 TAB_ARCH_EBC = 'EBC'
 TAB_ARCH_AARCH64 = 'AARCH64'
 
-ARCH_SET_FULL = {TAB_ARCH_IA32, TAB_ARCH_X64, TAB_ARCH_IPF, TAB_ARCH_ARM, TAB_ARCH_EBC, TAB_ARCH_AARCH64, TAB_ARCH_COMMON}
+ARCH_SET_FULL = {TAB_ARCH_IA32, TAB_ARCH_X64, TAB_ARCH_ARM, TAB_ARCH_EBC, TAB_ARCH_AARCH64, TAB_ARCH_COMMON}
 
 SUP_MODULE_BASE = 'BASE'
 SUP_MODULE_SEC = 'SEC'
 SUP_MODULE_PEI_CORE = 'PEI_CORE'
 SUP_MODULE_PEIM = 'PEIM'
@@ -134,74 +133,66 @@ PLATFORM_COMPONENT_TYPE_MODULE = 'MODULE'
 
 TAB_SOURCES = 'Sources'
 TAB_SOURCES_COMMON = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_COMMON
 TAB_SOURCES_IA32 = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_IA32
 TAB_SOURCES_X64 = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_X64
-TAB_SOURCES_IPF = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_IPF
 TAB_SOURCES_ARM = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_ARM
 TAB_SOURCES_EBC = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_EBC
 TAB_SOURCES_AARCH64 = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_AARCH64
 
 TAB_BINARIES = 'Binaries'
 TAB_BINARIES_COMMON = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_COMMON
 TAB_BINARIES_IA32 = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_IA32
 TAB_BINARIES_X64 = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_X64
-TAB_BINARIES_IPF = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_IPF
 TAB_BINARIES_ARM = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_ARM
 TAB_BINARIES_EBC = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_EBC
 TAB_BINARIES_AARCH64 = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_AARCH64
 
 TAB_INCLUDES = 'Includes'
 TAB_INCLUDES_COMMON = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_COMMON
 TAB_INCLUDES_IA32 = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_IA32
 TAB_INCLUDES_X64 = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_X64
-TAB_INCLUDES_IPF = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_IPF
 TAB_INCLUDES_ARM = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_ARM
 TAB_INCLUDES_EBC = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_EBC
 TAB_INCLUDES_AARCH64 = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_AARCH64
 
 TAB_GUIDS = 'Guids'
 TAB_GUIDS_COMMON = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_COMMON
 TAB_GUIDS_IA32 = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_IA32
 TAB_GUIDS_X64 = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_X64
-TAB_GUIDS_IPF = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_IPF
 TAB_GUIDS_ARM = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_ARM
 TAB_GUIDS_EBC = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_EBC
 TAB_GUIDS_AARCH64 = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_AARCH64
 
 TAB_PROTOCOLS = 'Protocols'
 TAB_PROTOCOLS_COMMON = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_COMMON
 TAB_PROTOCOLS_IA32 = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_IA32
 TAB_PROTOCOLS_X64 = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_X64
-TAB_PROTOCOLS_IPF = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_IPF
 TAB_PROTOCOLS_ARM = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_ARM
 TAB_PROTOCOLS_EBC = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_EBC
 TAB_PROTOCOLS_AARCH64 = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_AARCH64
 
 TAB_PPIS = 'Ppis'
 TAB_PPIS_COMMON = TAB_PPIS + TAB_SPLIT + TAB_ARCH_COMMON
 TAB_PPIS_IA32 = TAB_PPIS + TAB_SPLIT + TAB_ARCH_IA32
 TAB_PPIS_X64 = TAB_PPIS + TAB_SPLIT + TAB_ARCH_X64
-TAB_PPIS_IPF = TAB_PPIS + TAB_SPLIT + TAB_ARCH_IPF
 TAB_PPIS_ARM = TAB_PPIS + TAB_SPLIT + TAB_ARCH_ARM
 TAB_PPIS_EBC = TAB_PPIS + TAB_SPLIT + TAB_ARCH_EBC
 TAB_PPIS_AARCH64 = TAB_PPIS + TAB_SPLIT + TAB_ARCH_AARCH64
 
 TAB_LIBRARY_CLASSES = 'LibraryClasses'
 TAB_LIBRARY_CLASSES_COMMON = TAB_LIBRARY_CLASSES + TAB_SPLIT + TAB_ARCH_COMMON
 TAB_LIBRARY_CLASSES_IA32 = TAB_LIBRARY_CLASSES + TAB_SPLIT + TAB_ARCH_IA32
 TAB_LIBRARY_CLASSES_X64 = TAB_LIBRARY_CLASSES + TAB_SPLIT + TAB_ARCH_X64
-TAB_LIBRARY_CLASSES_IPF = TAB_LIBRARY_CLASSES + TAB_SPLIT + TAB_ARCH_IPF
 TAB_LIBRARY_CLASSES_ARM = TAB_LIBRARY_CLASSES + TAB_SPLIT + TAB_ARCH_ARM
 TAB_LIBRARY_CLASSES_EBC = TAB_LIBRARY_CLASSES + TAB_SPLIT + TAB_ARCH_EBC
 TAB_LIBRARY_CLASSES_AARCH64 = TAB_LIBRARY_CLASSES + TAB_SPLIT + TAB_ARCH_AARCH64
 
 TAB_PACKAGES = 'Packages'
 TAB_PACKAGES_COMMON = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_COMMON
 TAB_PACKAGES_IA32 = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_IA32
 TAB_PACKAGES_X64 = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_X64
-TAB_PACKAGES_IPF = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_IPF
 TAB_PACKAGES_ARM = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_ARM
 TAB_PACKAGES_EBC = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_EBC
 TAB_PACKAGES_AARCH64 = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_AARCH64
 
 TAB_PCDS = 'Pcds'
@@ -225,29 +216,26 @@ PCD_TYPE_LIST = [TAB_PCDS_FIXED_AT_BUILD, TAB_PCDS_PATCHABLE_IN_MODULE, TAB_PCDS
 
 TAB_PCDS_FIXED_AT_BUILD_NULL = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD
 TAB_PCDS_FIXED_AT_BUILD_COMMON = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_COMMON
 TAB_PCDS_FIXED_AT_BUILD_IA32 = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_IA32
 TAB_PCDS_FIXED_AT_BUILD_X64 = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_X64
-TAB_PCDS_FIXED_AT_BUILD_IPF = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_IPF
 TAB_PCDS_FIXED_AT_BUILD_ARM = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_ARM
 TAB_PCDS_FIXED_AT_BUILD_EBC = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_EBC
 TAB_PCDS_FIXED_AT_BUILD_AARCH64 = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_AARCH64
 
 TAB_PCDS_PATCHABLE_IN_MODULE_NULL = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE
 TAB_PCDS_PATCHABLE_IN_MODULE_COMMON = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_COMMON
 TAB_PCDS_PATCHABLE_IN_MODULE_IA32 = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_IA32
 TAB_PCDS_PATCHABLE_IN_MODULE_X64 = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_X64
-TAB_PCDS_PATCHABLE_IN_MODULE_IPF = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_IPF
 TAB_PCDS_PATCHABLE_IN_MODULE_ARM = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_ARM
 TAB_PCDS_PATCHABLE_IN_MODULE_EBC = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_EBC
 TAB_PCDS_PATCHABLE_IN_MODULE_AARCH64 = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_AARCH64
 
 TAB_PCDS_FEATURE_FLAG_NULL = TAB_PCDS + TAB_PCDS_FEATURE_FLAG
 TAB_PCDS_FEATURE_FLAG_COMMON = TAB_PCDS + TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + TAB_ARCH_COMMON
 TAB_PCDS_FEATURE_FLAG_IA32 = TAB_PCDS + TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + TAB_ARCH_IA32
 TAB_PCDS_FEATURE_FLAG_X64 = TAB_PCDS + TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + TAB_ARCH_X64
-TAB_PCDS_FEATURE_FLAG_IPF = TAB_PCDS + TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + TAB_ARCH_IPF
 TAB_PCDS_FEATURE_FLAG_ARM = TAB_PCDS + TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + TAB_ARCH_ARM
 TAB_PCDS_FEATURE_FLAG_EBC = TAB_PCDS + TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + TAB_ARCH_EBC
 TAB_PCDS_FEATURE_FLAG_AARCH64 = TAB_PCDS + TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + TAB_ARCH_AARCH64
 
 TAB_PCDS_DYNAMIC_EX_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_EX
@@ -255,11 +243,10 @@ TAB_PCDS_DYNAMIC_EX_DEFAULT_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_EX_DEFAULT
 TAB_PCDS_DYNAMIC_EX_HII_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_EX_HII
 TAB_PCDS_DYNAMIC_EX_VPD_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_EX_VPD
 TAB_PCDS_DYNAMIC_EX_COMMON = TAB_PCDS + TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + TAB_ARCH_COMMON
 TAB_PCDS_DYNAMIC_EX_IA32 = TAB_PCDS + TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + TAB_ARCH_IA32
 TAB_PCDS_DYNAMIC_EX_X64 = TAB_PCDS + TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + TAB_ARCH_X64
-TAB_PCDS_DYNAMIC_EX_IPF = TAB_PCDS + TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + TAB_ARCH_IPF
 TAB_PCDS_DYNAMIC_EX_ARM = TAB_PCDS + TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + TAB_ARCH_ARM
 TAB_PCDS_DYNAMIC_EX_EBC = TAB_PCDS + TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + TAB_ARCH_EBC
 TAB_PCDS_DYNAMIC_EX_AARCH64 = TAB_PCDS + TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + TAB_ARCH_AARCH64
 
 TAB_PCDS_DYNAMIC_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC
@@ -267,11 +254,10 @@ TAB_PCDS_DYNAMIC_DEFAULT_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_DEFAULT
 TAB_PCDS_DYNAMIC_HII_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_HII
 TAB_PCDS_DYNAMIC_VPD_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_VPD
 TAB_PCDS_DYNAMIC_COMMON = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT + TAB_ARCH_COMMON
 TAB_PCDS_DYNAMIC_IA32 = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT + TAB_ARCH_IA32
 TAB_PCDS_DYNAMIC_X64 = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT + TAB_ARCH_X64
-TAB_PCDS_DYNAMIC_IPF = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT + TAB_ARCH_IPF
 TAB_PCDS_DYNAMIC_ARM = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT + TAB_ARCH_ARM
 TAB_PCDS_DYNAMIC_EBC = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT + TAB_ARCH_EBC
 TAB_PCDS_DYNAMIC_AARCH64 = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT + TAB_ARCH_AARCH64
 
 TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_PEI_PAGE_SIZE = 'PcdLoadFixAddressPeiCodePageNumber'
@@ -294,11 +280,10 @@ MAX_SIZE_TYPE = {"BOOLEAN":1, TAB_UINT8:1, TAB_UINT16:2, TAB_UINT32:4, TAB_UINT6
 
 TAB_DEPEX = 'Depex'
 TAB_DEPEX_COMMON = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_COMMON
 TAB_DEPEX_IA32 = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_IA32
 TAB_DEPEX_X64 = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_X64
-TAB_DEPEX_IPF = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_IPF
 TAB_DEPEX_ARM = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_ARM
 TAB_DEPEX_EBC = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_EBC
 TAB_DEPEX_AARCH64 = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_AARCH64
 
 TAB_SKUIDS = 'SkuIds'
@@ -307,20 +292,18 @@ TAB_DEFAULT_STORES_DEFAULT = 'STANDARD'
 
 TAB_LIBRARIES = 'Libraries'
 TAB_LIBRARIES_COMMON = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_COMMON
 TAB_LIBRARIES_IA32 = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_IA32
 TAB_LIBRARIES_X64 = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_X64
-TAB_LIBRARIES_IPF = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_IPF
 TAB_LIBRARIES_ARM = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_ARM
 TAB_LIBRARIES_EBC = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_EBC
 TAB_LIBRARIES_AARCH64 = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_AARCH64
 
 TAB_COMPONENTS = 'Components'
 TAB_COMPONENTS_COMMON = TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_COMMON
 TAB_COMPONENTS_IA32 = TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_IA32
 TAB_COMPONENTS_X64 = TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_X64
-TAB_COMPONENTS_IPF = TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_IPF
 TAB_COMPONENTS_ARM = TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_ARM
 TAB_COMPONENTS_EBC = TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_EBC
 TAB_COMPONENTS_AARCH64 = TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_AARCH64
 
 TAB_COMPONENTS_SOURCE_OVERRIDE_PATH = 'SOURCE_OVERRIDE_PATH'
diff --git a/BaseTools/Source/Python/CommonDataClass/FdfClass.py b/BaseTools/Source/Python/CommonDataClass/FdfClass.py
index 3df8208245..0fb54d8914 100644
--- a/BaseTools/Source/Python/CommonDataClass/FdfClass.py
+++ b/BaseTools/Source/Python/CommonDataClass/FdfClass.py
@@ -33,11 +33,10 @@ class FDClassObject:
         # DefineVarDict[var] = value
         self.DefineVarDict = {}
         # SetVarDict[var] = value
         self.SetVarDict = {}
         self.RegionList = []
-        self.vtfRawDict = {}
 
 ## FFS data in FDF
 #
 #
 class FfsClassObject:
@@ -303,29 +302,10 @@ class CapsuleClassObject :
         # TokensDict[var] = value
         self.TokensDict = {}
         self.CapsuleDataList = []
         self.FmpPayloadList = []
 
-## VTF component data in FDF
-#
-#
-class ComponentStatementClassObject :
-    ## The constructor
-    #
-    #   @param  self        The object pointer
-    #
-    def __init__(self):
-        self.CompName = None
-        self.CompLoc = None
-        self.CompType = None
-        self.CompVer = None
-        self.CompCs = None
-        self.CompBin = None
-        self.CompSym = None
-        self.CompSize = None
-        self.FilePos = None
-
 ## OptionROM data in FDF
 #
 #
 class OptionRomClassObject:
     ## The constructor
diff --git a/BaseTools/Source/Python/Eot/EotMain.py b/BaseTools/Source/Python/Eot/EotMain.py
index 7eae4ac672..fd4bee6f90 100644
--- a/BaseTools/Source/Python/Eot/EotMain.py
+++ b/BaseTools/Source/Python/Eot/EotMain.py
@@ -927,12 +927,10 @@ class Ffs(Image):
     _TYPE_      = struct.Struct("18x 1B")
     _ATTR_      = struct.Struct("19x 1B")
     _SIZE_      = struct.Struct("20x 3B")
     _STATE_     = struct.Struct("23x 1B")
 
-    VTF_GUID = "1BA0062E-C779-4582-8566-336AE8F78F09"
-
     FFS_ATTRIB_FIXED              = 0x04
     FFS_ATTRIB_DATA_ALIGNMENT     = 0x38
     FFS_ATTRIB_CHECKSUM           = 0x40
 
     _TypeName = {
diff --git a/BaseTools/Source/Python/GenFds/ComponentStatement.py b/BaseTools/Source/Python/GenFds/ComponentStatement.py
deleted file mode 100644
index 1cf926155b..0000000000
--- a/BaseTools/Source/Python/GenFds/ComponentStatement.py
+++ /dev/null
@@ -1,29 +0,0 @@
-## @file
-# VTF components
-#
-#  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
-#
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-
-##
-# Import Modules
-#
-from CommonDataClass.FdfClass import ComponentStatementClassObject
-
-## VTF components
-#
-#
-class ComponentStatement (ComponentStatementClassObject) :
-    ## The constructor
-    #
-    #   @param  self        The object pointer
-    #
-    def __init__(self):
-          ComponentStatementClassObject.__init__(self)
diff --git a/BaseTools/Source/Python/GenFds/Fd.py b/BaseTools/Source/Python/GenFds/Fd.py
index bfae121798..9c43a62cc3 100644
--- a/BaseTools/Source/Python/GenFds/Fd.py
+++ b/BaseTools/Source/Python/GenFds/Fd.py
@@ -64,13 +64,10 @@ class FD(FDClassObject):
             EdkLogger.error("GenFds", GENFDS_ERROR, 'FD %s Size not consistent with block array' % self.FdUiName)
         GenFdsGlobalVariable.VerboseLogger('Following Fv will be add to Fd !!!')
         for FvObj in GenFdsGlobalVariable.FdfParser.Profile.FvDict:
             GenFdsGlobalVariable.VerboseLogger(FvObj)
 
-        GenFdsGlobalVariable.VerboseLogger('################### Gen VTF ####################')
-        self.GenVtfFile()
-
         HasCapsuleRegion = False
         for RegionObj in self.RegionList:
             if RegionObj.RegionType == 'CAPSULE':
                 HasCapsuleRegion = True
                 break
@@ -91,20 +88,20 @@ class FD(FDClassObject):
                         GenFdsGlobalVariable.InfLogger('Padding region starting from offset 0x%X, with size 0x%X' %(PreviousRegionStart + PreviousRegionSize, RegionObj.Offset - (PreviousRegionStart + PreviousRegionSize)))
                     PadRegion = Region.Region()
                     PadRegion.Offset = PreviousRegionStart + PreviousRegionSize
                     PadRegion.Size = RegionObj.Offset - PadRegion.Offset
                     if not Flag:
-                        PadRegion.AddToBuffer(TempFdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFdsGlobalVariable.ImageBinDict, self.vtfRawDict, self.DefineVarDict)
+                        PadRegion.AddToBuffer(TempFdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFdsGlobalVariable.ImageBinDict, self.DefineVarDict)
                 PreviousRegionStart = RegionObj.Offset
                 PreviousRegionSize = RegionObj.Size
                 #
                 # Call each region's AddToBuffer function
                 #
                 if PreviousRegionSize > self.Size:
                     pass
                 GenFdsGlobalVariable.VerboseLogger('Call each region\'s AddToBuffer function')
-                RegionObj.AddToBuffer (TempFdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFdsGlobalVariable.ImageBinDict, self.vtfRawDict, self.DefineVarDict)
+                RegionObj.AddToBuffer (TempFdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFdsGlobalVariable.ImageBinDict, self.DefineVarDict)
 
         FdBuffer = BytesIO('')
         PreviousRegionStart = -1
         PreviousRegionSize = 1
         for RegionObj in self.RegionList :
@@ -121,11 +118,11 @@ class FD(FDClassObject):
                     GenFdsGlobalVariable.InfLogger('Padding region starting from offset 0x%X, with size 0x%X' %(PreviousRegionStart + PreviousRegionSize, RegionObj.Offset - (PreviousRegionStart + PreviousRegionSize)))
                 PadRegion = Region.Region()
                 PadRegion.Offset = PreviousRegionStart + PreviousRegionSize
                 PadRegion.Size = RegionObj.Offset - PadRegion.Offset
                 if not Flag:
-                    PadRegion.AddToBuffer(FdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFdsGlobalVariable.ImageBinDict, self.vtfRawDict, self.DefineVarDict)
+                    PadRegion.AddToBuffer(FdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFdsGlobalVariable.ImageBinDict, self.DefineVarDict)
             PreviousRegionStart = RegionObj.Offset
             PreviousRegionSize = RegionObj.Size
             #
             # Verify current region fits within allocated FD section Size
             #
@@ -135,66 +132,21 @@ class FD(FDClassObject):
                                 % (self.FdUiName, PreviousRegionStart, PreviousRegionSize))
             #
             # Call each region's AddToBuffer function
             #
             GenFdsGlobalVariable.VerboseLogger('Call each region\'s AddToBuffer function')
-            RegionObj.AddToBuffer (FdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFdsGlobalVariable.ImageBinDict, self.vtfRawDict, self.DefineVarDict, Flag=Flag)
+            RegionObj.AddToBuffer (FdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFdsGlobalVariable.ImageBinDict, self.DefineVarDict, Flag=Flag)
         #
         # Write the buffer contents to Fd file
         #
         GenFdsGlobalVariable.VerboseLogger('Write the buffer contents to Fd file')
         if not Flag:
             SaveFileOnChange(FdFileName, FdBuffer.getvalue())
         FdBuffer.close()
         GenFdsGlobalVariable.ImageBinDict[self.FdUiName.upper() + 'fd'] = FdFileName
         return FdFileName
 
-    ## generate VTF
-    #
-    #   @param  self        The object pointer
-    #
-    def GenVtfFile (self) :
-        #
-        # Get this Fd's all Fv name
-        #
-        FvAddDict ={}
-        FvList = []
-        for RegionObj in self.RegionList:
-            if RegionObj.RegionType == BINARY_FILE_TYPE_FV:
-                if len(RegionObj.RegionDataList) == 1:
-                    RegionData = RegionObj.RegionDataList[0]
-                    FvList.append(RegionData.upper())
-                    FvAddDict[RegionData.upper()] = (int(self.BaseAddress, 16) + \
-                                                RegionObj.Offset, RegionObj.Size)
-                else:
-                    Offset = RegionObj.Offset
-                    for RegionData in RegionObj.RegionDataList:
-                        FvList.append(RegionData.upper())
-                        FvObj = GenFdsGlobalVariable.FdfParser.Profile.FvDict.get(RegionData.upper())
-                        if len(FvObj.BlockSizeList) < 1:
-                            EdkLogger.error("GenFds", GENFDS_ERROR,
-                                            'FV.%s must point out FVs blocksize and Fv BlockNum' \
-                                            % FvObj.UiFvName)
-                        else:
-                            Size = 0
-                            for blockStatement in FvObj.BlockSizeList:
-                                Size = Size + blockStatement[0] * blockStatement[1]
-                            FvAddDict[RegionData.upper()] = (int(self.BaseAddress, 16) + \
-                                                             Offset, Size)
-                            Offset = Offset + Size
-        #
-        # Check whether this Fd need VTF
-        #
-        Flag = False
-        for VtfObj in GenFdsGlobalVariable.FdfParser.Profile.VtfList:
-            compLocList = VtfObj.GetFvList()
-            if set(compLocList).issubset(FvList):
-                Flag = True
-                break
-        if Flag == True:
-            self.vtfRawDict = VtfObj.GenVtf(FvAddDict)
-
     ## generate flash map file
     #
     #   @param  self        The object pointer
     #
     def GenFlashMap (self):
diff --git a/BaseTools/Source/Python/GenFds/FdfParser.py b/BaseTools/Source/Python/GenFds/FdfParser.py
index de0b166030..5e1390e4b4 100644
--- a/BaseTools/Source/Python/GenFds/FdfParser.py
+++ b/BaseTools/Source/Python/GenFds/FdfParser.py
@@ -51,12 +51,10 @@ from .GuidSection import GuidSection
 from .Capsule import EFI_CERT_TYPE_PKCS7_GUID, EFI_CERT_TYPE_RSA2048_SHA256_GUID, Capsule
 from .CapsuleData import CapsuleFfs, CapsulePayload, CapsuleFv, CapsuleFd, CapsuleAnyFile, CapsuleAfile
 from .RuleComplexFile import RuleComplexFile
 from .RuleSimpleFile import RuleSimpleFile
 from .EfiSection import EfiSection
-from .Vtf import Vtf
-from .ComponentStatement import ComponentStatement
 from .OptionRom import OPTIONROM
 from .OptRomInfStatement import OptRomInfStatement, OverrideAttribs
 from .OptRomFileStatement import OptRomFileStatement
 from .GenFdsGlobalVariable import GenFdsGlobalVariable
 
@@ -232,11 +230,10 @@ class FileProfile:
 
         self.FdDict = {}
         self.FdNameNotSet = False
         self.FvDict = {}
         self.CapsuleDict = {}
-        self.VtfList = []
         self.RuleDict = {}
         self.OptRomDict = {}
         self.FmpPayloadDict = {}
 
 ## The syntax parser for FDF
@@ -476,27 +473,20 @@ class FdfParser:
         # [Defines]
         # [FD.UiName]: use dummy instead if UI name is optional
         # [FV.UiName]
         # [Capsule.UiName]
         # [Rule]: don't take rule section into account, macro is not allowed in this section
-        # [VTF.arch.UiName, arch]
         # [OptionRom.DriverName]
         self._CurSection = []
         Section = Section.strip()[1:-1].upper().replace(' ', '').strip(TAB_SPLIT)
         ItemList = Section.split(TAB_SPLIT)
         Item = ItemList[0]
         if Item == '' or Item == 'RULE':
             return
 
         if Item == TAB_COMMON_DEFINES.upper():
             self._CurSection = [TAB_COMMON, TAB_COMMON, TAB_COMMON]
-        elif Item == 'VTF' and len(ItemList) == 3:
-            UiName = ItemList[2]
-            Pos = UiName.find(TAB_COMMA_SPLIT)
-            if Pos != -1:
-                UiName = UiName[:Pos]
-            self._CurSection = ['VTF', UiName, ItemList[1]]
         elif len(ItemList) > 1:
             self._CurSection = [ItemList[0], ItemList[1], TAB_COMMON]
         elif len(ItemList) > 0:
             self._CurSection = [ItemList[0], 'DUMMY', TAB_COMMON]
 
@@ -1328,11 +1318,11 @@ class FdfParser:
             self.Preprocess()
             self._GetError()
             #
             # Keep processing sections of the FDF until no new sections or a syntax error is found
             #
-            while self._GetFd() or self._GetFv() or self._GetFmp() or self._GetCapsule() or self._GetVtf() or self._GetRule() or self._GetOptionRom():
+            while self._GetFd() or self._GetFv() or self._GetFmp() or self._GetCapsule() or self._GetRule() or self._GetOptionRom():
                 pass
 
         except Warning as X:
             self._UndoToken()
             #'\n\tGot Token: \"%s\" from File %s\n' % (self._Token, FileLineTuple[0]) + \
@@ -1356,12 +1346,12 @@ class FdfParser:
     #   @param  section       The section string
 
     def SectionParser(self, section):
         S = section.upper()
         if not S.startswith("[DEFINES") and not S.startswith("[FD.") and not S.startswith("[FV.") and not S.startswith("[CAPSULE.") \
-            and not S.startswith("[VTF.") and not S.startswith("[RULE.") and not S.startswith("[OPTIONROM.") and not S.startswith('[FMPPAYLOAD.'):
-            raise Warning("Unknown section or section appear sequence error (The correct sequence should be [DEFINES], [FD.], [FV.], [Capsule.], [VTF.], [Rule.], [OptionRom.], [FMPPAYLOAD.])", self.FileName, self.CurrentLineNumber)
+             and not S.startswith("[RULE.") and not S.startswith("[OPTIONROM.") and not S.startswith('[FMPPAYLOAD.'):
+            raise Warning("Unknown section or section appear sequence error (The correct sequence should be [DEFINES], [FD.], [FV.], [Capsule.], [Rule.], [OptionRom.], [FMPPAYLOAD.])", self.FileName, self.CurrentLineNumber)
 
     ## _GetDefines() method
     #
     #   Get Defines section contents and store its data into AllMacrosList
     #
@@ -1430,11 +1420,11 @@ class FdfParser:
             return False
 
         S = self._Token.upper()
         if S.startswith(TAB_SECTION_START) and not S.startswith("[FD."):
             if not S.startswith("[FV.") and not S.startswith('[FMPPAYLOAD.') and not S.startswith("[CAPSULE.") \
-                and not S.startswith("[VTF.") and not S.startswith("[RULE.") and not S.startswith("[OPTIONROM."):
+                and not S.startswith("[RULE.") and not S.startswith("[OPTIONROM."):
                 raise Warning("Unknown section", self.FileName, self.CurrentLineNumber)
             self._UndoToken()
             return False
 
         self._UndoToken()
@@ -4079,215 +4069,10 @@ class FdfParser:
 
             return True
 
         return False
 
-    ## _GetVtf() method
-    #
-    #   Get VTF section contents and store its data into VTF list of self.Profile
-    #
-    #   @param  self        The object pointer
-    #   @retval True        Successfully find a VTF
-    #   @retval False       Not able to find a VTF
-    #
-    def _GetVtf(self):
-        HW_ARCH_SET = {TAB_ARCH_IA32, TAB_ARCH_X64, TAB_ARCH_IPF, TAB_ARCH_ARM, TAB_ARCH_AARCH64}
-        if not self._GetNextToken():
-            return False
-
-        S = self._Token.upper()
-        if S.startswith(TAB_SECTION_START) and not S.startswith("[VTF."):
-            self.SectionParser(S)
-            self._UndoToken()
-            return False
-
-        self._UndoToken()
-        if not self._IsToken("[VTF.", True):
-            FileLineTuple = GetRealFileLine(self.FileName, self.CurrentLineNumber)
-            #print 'Parsing String: %s in File %s, At line: %d, Offset Within Line: %d' \
-            #        % (self.Profile.FileLinesList[self.CurrentLineNumber - 1][self.CurrentOffsetWithinLine:], FileLineTuple[0], FileLineTuple[1], self.CurrentOffsetWithinLine)
-            raise Warning.Expected("[VTF.]", self.FileName, self.CurrentLineNumber)
-
-        if not self._SkipToToken(TAB_SPLIT):
-            raise Warning.Expected("'.'", self.FileName, self.CurrentLineNumber)
-
-        Arch = self._SkippedChars.rstrip(TAB_SPLIT).upper()
-        if Arch not in HW_ARCH_SET:
-            raise Warning("Unknown Arch '%s'" % Arch, self.FileName, self.CurrentLineNumber)
-
-        if not self._GetNextWord():
-            raise Warning.Expected("VTF name", self.FileName, self.CurrentLineNumber)
-        Name = self._Token.upper()
-
-        VtfObj = Vtf()
-        VtfObj.UiName = Name
-        VtfObj.KeyArch = Arch
-
-        if self._IsToken(TAB_COMMA_SPLIT):
-            if not self._GetNextWord():
-                raise Warning.Expected("Arch list", self.FileName, self.CurrentLineNumber)
-            if self._Token.upper() not in HW_ARCH_SET:
-                raise Warning("Unknown Arch '%s'" % self._Token, self.FileName, self.CurrentLineNumber)
-            VtfObj.ArchList = self._Token.upper()
-
-        if not self._IsToken(TAB_SECTION_END):
-            raise Warning.ExpectedBracketClose(self.FileName, self.CurrentLineNumber)
-
-        if self._IsKeyword("IA32_RST_BIN"):
-            if not self._IsToken(TAB_EQUAL_SPLIT):
-                raise Warning.ExpectedEquals(self.FileName, self.CurrentLineNumber)
-
-            if not self._GetNextToken():
-                raise Warning.Expected("Reset file", self.FileName, self.CurrentLineNumber)
-
-            VtfObj.ResetBin = self._Token
-            if VtfObj.ResetBin.replace(TAB_WORKSPACE, '').find('$') == -1:
-                #check for file path
-                ErrorCode, ErrorInfo = PathClass(NormPath(VtfObj.ResetBin), GenFdsGlobalVariable.WorkSpaceDir).Validate()
-                if ErrorCode != 0:
-                    EdkLogger.error("GenFds", ErrorCode, ExtraData=ErrorInfo)
-
-        while self._GetComponentStatement(VtfObj):
-            pass
-
-        self.Profile.VtfList.append(VtfObj)
-        return True
-
-    ## _GetComponentStatement() method
-    #
-    #   Get components in VTF
-    #
-    #   @param  self        The object pointer
-    #   @param  VtfObj         for whom component is got
-    #   @retval True        Successfully find a component
-    #   @retval False       Not able to find a component
-    #
-    def _GetComponentStatement(self, VtfObj):
-        if not self._IsKeyword("COMP_NAME"):
-            return False
-
-        if not self._IsToken(TAB_EQUAL_SPLIT):
-            raise Warning.ExpectedEquals(self.FileName, self.CurrentLineNumber)
-
-        if not self._GetNextWord():
-            raise Warning.Expected("Component Name", self.FileName, self.CurrentLineNumber)
-
-        CompStatementObj = ComponentStatement()
-        CompStatementObj.CompName = self._Token
-
-        if not self._IsKeyword("COMP_LOC"):
-            raise Warning.Expected("COMP_LOC", self.FileName, self.CurrentLineNumber)
-
-        if not self._IsToken(TAB_EQUAL_SPLIT):
-            raise Warning.ExpectedEquals(self.FileName, self.CurrentLineNumber)
-
-        CompStatementObj.CompLoc = ""
-        if self._GetNextWord():
-            CompStatementObj.CompLoc = self._Token
-            if self._IsToken(TAB_VALUE_SPLIT):
-                if not self._GetNextWord():
-                    raise Warning.Expected("Region Name", self.FileName, self.CurrentLineNumber)
-
-                if self._Token not in {"F", "N", "S"}:    #, "H", "L", "PH", "PL"): not support
-                    raise Warning("Unknown location type '%s'" % self._Token, self.FileName, self.CurrentLineNumber)
-
-                CompStatementObj.FilePos = self._Token
-        else:
-            self.CurrentLineNumber += 1
-            self.CurrentOffsetWithinLine = 0
-
-        if not self._IsKeyword("COMP_TYPE"):
-            raise Warning.Expected("COMP_TYPE", self.FileName, self.CurrentLineNumber)
-
-        if not self._IsToken(TAB_EQUAL_SPLIT):
-            raise Warning.ExpectedEquals(self.FileName, self.CurrentLineNumber)
-
-        if not self._GetNextToken():
-            raise Warning.Expected("Component type", self.FileName, self.CurrentLineNumber)
-        if self._Token not in {"FIT", "PAL_B", "PAL_A", "OEM"}:
-            if not self._Token.startswith("0x") or len(self._Token) < 3 or len(self._Token) > 4 or \
-                not self._Token[2] in hexdigits or not self._Token[-1] in hexdigits:
-                raise Warning("Unknown location type '%s'" % self._Token, self.FileName, self.CurrentLineNumber)
-        CompStatementObj.CompType = self._Token
-
-        if not self._IsKeyword("COMP_VER"):
-            raise Warning.Expected("COMP_VER", self.FileName, self.CurrentLineNumber)
-
-        if not self._IsToken(TAB_EQUAL_SPLIT):
-            raise Warning.ExpectedEquals(self.FileName, self.CurrentLineNumber)
-
-        if not self._GetNextToken():
-            raise Warning.Expected("Component version", self.FileName, self.CurrentLineNumber)
-
-        Pattern = compile('-$|[0-9a-fA-F]{1,2}\.[0-9a-fA-F]{1,2}$', DOTALL)
-        if Pattern.match(self._Token) is None:
-            raise Warning("Unknown version format '%s'" % self._Token, self.FileName, self.CurrentLineNumber)
-        CompStatementObj.CompVer = self._Token
-
-        if not self._IsKeyword("COMP_CS"):
-            raise Warning.Expected("COMP_CS", self.FileName, self.CurrentLineNumber)
-
-        if not self._IsToken(TAB_EQUAL_SPLIT):
-            raise Warning.ExpectedEquals(self.FileName, self.CurrentLineNumber)
-
-        if not self._GetNextToken():
-            raise Warning.Expected("Component CS", self.FileName, self.CurrentLineNumber)
-        if self._Token not in {"1", "0"}:
-            raise Warning("Unknown Component CS '%s'" % self._Token, self.FileName, self.CurrentLineNumber)
-        CompStatementObj.CompCs = self._Token
-
-
-        if not self._IsKeyword("COMP_BIN"):
-            raise Warning.Expected("COMP_BIN", self.FileName, self.CurrentLineNumber)
-
-        if not self._IsToken(TAB_EQUAL_SPLIT):
-            raise Warning.ExpectedEquals(self.FileName, self.CurrentLineNumber)
-
-        if not self._GetNextToken():
-            raise Warning.Expected("Component file", self.FileName, self.CurrentLineNumber)
-
-        CompStatementObj.CompBin = self._Token
-        if CompStatementObj.CompBin != '-' and CompStatementObj.CompBin.replace(TAB_WORKSPACE, '').find('$') == -1:
-            #check for file path
-            ErrorCode, ErrorInfo = PathClass(NormPath(CompStatementObj.CompBin), GenFdsGlobalVariable.WorkSpaceDir).Validate()
-            if ErrorCode != 0:
-                EdkLogger.error("GenFds", ErrorCode, ExtraData=ErrorInfo)
-
-        if not self._IsKeyword("COMP_SYM"):
-            raise Warning.Expected("COMP_SYM", self.FileName, self.CurrentLineNumber)
-
-        if not self._IsToken(TAB_EQUAL_SPLIT):
-            raise Warning.ExpectedEquals(self.FileName, self.CurrentLineNumber)
-
-        if not self._GetNextToken():
-            raise Warning.Expected("Component symbol file", self.FileName, self.CurrentLineNumber)
-
-        CompStatementObj.CompSym = self._Token
-        if CompStatementObj.CompSym != '-' and CompStatementObj.CompSym.replace(TAB_WORKSPACE, '').find('$') == -1:
-            #check for file path
-            ErrorCode, ErrorInfo = PathClass(NormPath(CompStatementObj.CompSym), GenFdsGlobalVariable.WorkSpaceDir).Validate()
-            if ErrorCode != 0:
-                EdkLogger.error("GenFds", ErrorCode, ExtraData=ErrorInfo)
-
-        if not self._IsKeyword("COMP_SIZE"):
-            raise Warning.Expected("COMP_SIZE", self.FileName, self.CurrentLineNumber)
-
-        if not self._IsToken(TAB_EQUAL_SPLIT):
-            raise Warning.ExpectedEquals(self.FileName, self.CurrentLineNumber)
-
-        if self._IsToken("-"):
-            CompStatementObj.CompSize = self._Token
-        elif self._GetNextDecimalNumber():
-            CompStatementObj.CompSize = self._Token
-        elif self._GetNextHexNumber():
-            CompStatementObj.CompSize = self._Token
-        else:
-            raise Warning("Unknown size '%s'" % self._Token, self.FileName, self.CurrentLineNumber)
-
-        VtfObj.ComponentStatementList.append(CompStatementObj)
-        return True
-
     ## _GetOptionRom() method
     #
     #   Get OptionROM section contents and store its data into OptionROM list of self.Profile
     #
     #   @param  self        The object pointer
diff --git a/BaseTools/Source/Python/GenFds/Fv.py b/BaseTools/Source/Python/GenFds/Fv.py
index d89e7bfbdd..bd5c259348 100644
--- a/BaseTools/Source/Python/GenFds/Fv.py
+++ b/BaseTools/Source/Python/GenFds/Fv.py
@@ -72,15 +72,14 @@ class FV (object):
     #   @param  Buffer      The buffer generated FV data will be put
     #   @param  BaseAddress base address of FV
     #   @param  BlockSize   block size of FV
     #   @param  BlockNum    How many blocks in FV
     #   @param  ErasePolarity      Flash erase polarity
-    #   @param  VtfDict     VTF objects
     #   @param  MacroDict   macro value pair
     #   @retval string      Generated FV file path
     #
-    def AddToBuffer (self, Buffer, BaseAddress=None, BlockSize= None, BlockNum=None, ErasePloarity='1', VtfDict=None, MacroDict = {}, Flag=False):
+    def AddToBuffer (self, Buffer, BaseAddress=None, BlockSize= None, BlockNum=None, ErasePloarity='1',  MacroDict = {}, Flag=False):
         if BaseAddress is None and self.UiFvName.upper() + 'fv' in GenFdsGlobalVariable.ImageBinDict:
             return GenFdsGlobalVariable.ImageBinDict[self.UiFvName.upper() + 'fv']
 
         #
         # Check whether FV in Capsule is in FD flash region.
@@ -103,11 +102,11 @@ class FV (object):
         FFSGuid = None
 
         if self.FvBaseAddress is not None:
             BaseAddress = self.FvBaseAddress
         if not Flag:
-            self._InitializeInf(BaseAddress, BlockSize, BlockNum, ErasePloarity, VtfDict)
+            self._InitializeInf(BaseAddress, BlockSize, BlockNum, ErasePloarity)
         #
         # First Process the Apriori section
         #
         MacroDict.update(self.DefineVarDict)
 
@@ -268,13 +267,12 @@ class FV (object):
     #   @param  self        The object pointer
     #   @param  BaseAddress base address of FV
     #   @param  BlockSize   block size of FV
     #   @param  BlockNum    How many blocks in FV
     #   @param  ErasePolarity      Flash erase polarity
-    #   @param  VtfDict     VTF objects
     #
-    def _InitializeInf (self, BaseAddress = None, BlockSize= None, BlockNum = None, ErasePloarity='1', VtfDict=None):
+    def _InitializeInf (self, BaseAddress = None, BlockSize= None, BlockNum = None, ErasePloarity='1'):
         #
         # Create FV inf file
         #
         self.InfFileName = os.path.join(GenFdsGlobalVariable.FvDir,
                                    self.UiFvName + '.inf')
@@ -433,9 +431,5 @@ class FV (object):
 
         #
         # Add [Files]
         #
         self.FvInfFile.writelines("[files]" + TAB_LINE_BREAK)
-        if VtfDict and self.UiFvName in VtfDict:
-            self.FvInfFile.writelines("EFI_FILE_NAME = "                   + \
-                                       VtfDict[self.UiFvName]              + \
-                                       TAB_LINE_BREAK)
diff --git a/BaseTools/Source/Python/GenFds/GenFds.py b/BaseTools/Source/Python/GenFds/GenFds.py
index 447aa7f5eb..ae67d0cb16 100644
--- a/BaseTools/Source/Python/GenFds/GenFds.py
+++ b/BaseTools/Source/Python/GenFds/GenFds.py
@@ -79,11 +79,10 @@ def resetFdsGlobalVariable():
     GenFdsGlobalVariable.OutputDirFromDscDict = {}
     GenFdsGlobalVariable.TargetName = ''
     GenFdsGlobalVariable.ToolChainTag = ''
     GenFdsGlobalVariable.RuleDict = {}
     GenFdsGlobalVariable.ArchList = None
-    GenFdsGlobalVariable.VtfDict = {}
     GenFdsGlobalVariable.ActivePlatform = None
     GenFdsGlobalVariable.FvAddressFileName = ''
     GenFdsGlobalVariable.VerboseMode = False
     GenFdsGlobalVariable.DebugLevel = -1
     GenFdsGlobalVariable.SharpCounter = 0
@@ -249,19 +248,11 @@ def GenFdsApi(FdsCommandDict, WorkSpaceDataBase=None):
                     Pair = Pair[:-1]
                 List = Pair.split('=')
                 if len(List) == 2:
                     if not List[1].strip():
                         EdkLogger.error("GenFds", OPTION_VALUE_INVALID, ExtraData="No Value given for Macro %s" %List[0])
-                    if List[0].strip() == "EFI_SOURCE":
-                        GlobalData.gEfiSource = List[1].strip()
-                        GlobalData.gGlobalDefines["EFI_SOURCE"] = GlobalData.gEfiSource
-                        continue
-                    elif List[0].strip() == "EDK_SOURCE":
-                        GlobalData.gEdkSource = List[1].strip()
-                        GlobalData.gGlobalDefines["EDK_SOURCE"] = GlobalData.gEdkSource
-                        continue
-                    elif List[0].strip() in ["WORKSPACE", "TARGET", "TOOLCHAIN"]:
+                    if List[0].strip() in ["WORKSPACE", "TARGET", "TOOLCHAIN"]:
                         GlobalData.gGlobalDefines[List[0].strip()] = List[1].strip()
                     else:
                         GlobalData.gCommandLineDefines[List[0].strip()] = List[1].strip()
                 else:
                     GlobalData.gCommandLineDefines[List[0].strip()] = "TRUE"
diff --git a/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py b/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
index 0812c56bda..51c9ab046c 100644
--- a/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
+++ b/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
@@ -54,11 +54,10 @@ class GenFdsGlobalVariable:
     OutputDirFromDscDict = {}
     TargetName = ''
     ToolChainTag = ''
     RuleDict = {}
     ArchList = None
-    VtfDict = {}
     ActivePlatform = None
     FvAddressFileName = ''
     VerboseMode = False
     DebugLevel = -1
     SharpCounter = 0
diff --git a/BaseTools/Source/Python/GenFds/Region.py b/BaseTools/Source/Python/GenFds/Region.py
index 9aeaa45d45..8ca61254b0 100644
--- a/BaseTools/Source/Python/GenFds/Region.py
+++ b/BaseTools/Source/Python/GenFds/Region.py
@@ -73,16 +73,15 @@ class Region(object):
     #   @param  Buffer      The buffer generated region data will be put
     #   @param  BaseAddress base address of region
     #   @param  BlockSize   block size of region
     #   @param  BlockNum    How many blocks in region
     #   @param  ErasePolarity      Flash erase polarity
-    #   @param  VtfDict     VTF objects
     #   @param  MacroDict   macro value pair
     #   @retval string      Generated FV file path
     #
 
-    def AddToBuffer(self, Buffer, BaseAddress, BlockSizeList, ErasePolarity, ImageBinDict, vtfDict=None, MacroDict={}, Flag=False):
+    def AddToBuffer(self, Buffer, BaseAddress, BlockSizeList, ErasePolarity, ImageBinDict,  MacroDict={}, Flag=False):
         Size = self.Size
         if not Flag:
             GenFdsGlobalVariable.InfLogger('\nGenerate Region at Offset 0x%X' % self.Offset)
             GenFdsGlobalVariable.InfLogger("   Region Size = 0x%X" % Size)
         GenFdsGlobalVariable.SharpCounter = 0
@@ -134,11 +133,11 @@ class Region(object):
                                             "FV (%s) is NOT %s Aligned!" % (FvObj.UiFvName, FvObj.FvAlignment))
                         FvBuffer = BytesIO('')
                         FvBaseAddress = '0x%X' % self.FvAddress
                         BlockSize = None
                         BlockNum = None
-                        FvObj.AddToBuffer(FvBuffer, FvBaseAddress, BlockSize, BlockNum, ErasePolarity, vtfDict, Flag=Flag)
+                        FvObj.AddToBuffer(FvBuffer, FvBaseAddress, BlockSize, BlockNum, ErasePolarity, Flag=Flag)
                         if Flag:
                             continue
 
                         FvBufferLen = len(FvBuffer.getvalue())
                         if FvBufferLen > Size:
diff --git a/BaseTools/Source/Python/GenFds/Vtf.py b/BaseTools/Source/Python/GenFds/Vtf.py
deleted file mode 100644
index 9dcd48b2d8..0000000000
--- a/BaseTools/Source/Python/GenFds/Vtf.py
+++ /dev/null
@@ -1,200 +0,0 @@
-## @file
-# process VTF generation
-#
-#  Copyright (c) 2007 - 2018, 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.
-#
-
-##
-# Import Modules
-#
-from __future__ import absolute_import
-from .GenFdsGlobalVariable import GenFdsGlobalVariable
-import Common.LongFilePathOs as os
-from Common.LongFilePathSupport import OpenLongFilePath as open
-from Common.DataType import TAB_LINE_BREAK
-
-## generate VTF
-#
-#
-class Vtf (object):
-
-    ## The constructor
-    #
-    #   @param  self        The object pointer
-    #
-    def __init__(self):
-        self.KeyArch = None
-        self.ArchList = None
-        self.UiName = None
-        self.ResetBin = None
-        self.ComponentStatementList = []
-
-    ## GenVtf() method
-    #
-    #   Generate VTF
-    #
-    #   @param  self        The object pointer
-    #   @param  FdAddressDict   dictionary contains FV name and its base address
-    #   @retval Dict        FV and corresponding VTF file name
-    #
-    def GenVtf(self, FdAddressDict) :
-        self.GenBsfInf()
-        BaseAddArg = self.GetBaseAddressArg(FdAddressDict)
-        OutputArg, VtfRawDict = self.GenOutputArg()
-
-        Cmd = (
-            'GenVtf',
-            ) + OutputArg + (
-            '-f', self.BsfInfName,
-            ) + BaseAddArg
-
-        GenFdsGlobalVariable.CallExternalTool(Cmd, "GenFv -Vtf Failed!")
-        GenFdsGlobalVariable.SharpCounter = 0
-
-        return VtfRawDict
-
-    ## GenBsfInf() method
-    #
-    #   Generate inf used to generate VTF
-    #
-    #   @param  self        The object pointer
-    #
-    def GenBsfInf (self):
-        FvList = self.GetFvList()
-        self.BsfInfName = os.path.join(GenFdsGlobalVariable.FvDir, self.UiName + '.inf')
-        BsfInf = open(self.BsfInfName, 'w+')
-        if self.ResetBin:
-            BsfInf.writelines ("[OPTIONS]" + TAB_LINE_BREAK)
-            BsfInf.writelines ("IA32_RST_BIN" + \
-                               " = " + \
-                               GenFdsGlobalVariable.MacroExtend(GenFdsGlobalVariable.ReplaceWorkspaceMacro(self.ResetBin)) + \
-                               TAB_LINE_BREAK)
-            BsfInf.writelines (TAB_LINE_BREAK)
-
-        BsfInf.writelines ("[COMPONENTS]" + TAB_LINE_BREAK)
-
-        for ComponentObj in self.ComponentStatementList :
-            BsfInf.writelines ("COMP_NAME" + \
-                               " = " + \
-                               ComponentObj.CompName + \
-                               TAB_LINE_BREAK)
-            if ComponentObj.CompLoc.upper() == 'NONE':
-                BsfInf.writelines ("COMP_LOC" + \
-                                   " = " + \
-                                   'N' + \
-                                   TAB_LINE_BREAK)
-
-            elif ComponentObj.FilePos:
-                BsfInf.writelines ("COMP_LOC" + \
-                                   " = " + \
-                                   ComponentObj.FilePos + \
-                                   TAB_LINE_BREAK)
-            else:
-                Index = FvList.index(ComponentObj.CompLoc.upper())
-                if Index == 0:
-                    BsfInf.writelines ("COMP_LOC" + \
-                                       " = " + \
-                                       'F' + \
-                                       TAB_LINE_BREAK)
-                elif Index == 1:
-                    BsfInf.writelines ("COMP_LOC" + \
-                                       " = " + \
-                                       'S' + \
-                                       TAB_LINE_BREAK)
-
-            BsfInf.writelines ("COMP_TYPE" + \
-                               " = " + \
-                               ComponentObj.CompType + \
-                               TAB_LINE_BREAK)
-            BsfInf.writelines ("COMP_VER" + \
-                               " = " + \
-                               ComponentObj.CompVer + \
-                               TAB_LINE_BREAK)
-            BsfInf.writelines ("COMP_CS" + \
-                               " = " + \
-                               ComponentObj.CompCs + \
-                               TAB_LINE_BREAK)
-
-            BinPath = ComponentObj.CompBin
-            if BinPath != '-':
-                BinPath = GenFdsGlobalVariable.MacroExtend(GenFdsGlobalVariable.ReplaceWorkspaceMacro(BinPath))
-            BsfInf.writelines ("COMP_BIN" + \
-                               " = " + \
-                               BinPath + \
-                               TAB_LINE_BREAK)
-
-            SymPath = ComponentObj.CompSym
-            if SymPath != '-':
-                SymPath = GenFdsGlobalVariable.MacroExtend(GenFdsGlobalVariable.ReplaceWorkspaceMacro(SymPath))
-            BsfInf.writelines ("COMP_SYM" + \
-                               " = " + \
-                               SymPath + \
-                               TAB_LINE_BREAK)
-            BsfInf.writelines ("COMP_SIZE" + \
-                               " = " + \
-                               ComponentObj.CompSize + \
-                               TAB_LINE_BREAK)
-            BsfInf.writelines (TAB_LINE_BREAK)
-
-        BsfInf.close()
-
-    ## GenFvList() method
-    #
-    #   Get FV list referenced by VTF components
-    #
-    #   @param  self        The object pointer
-    #
-    def GetFvList(self):
-        FvList = []
-        for component in self.ComponentStatementList :
-            if component.CompLoc.upper() != 'NONE' and not (component.CompLoc.upper() in FvList):
-                FvList.append(component.CompLoc.upper())
-
-        return FvList
-
-    ## GetBaseAddressArg() method
-    #
-    #   Get base address arguments for GenVtf
-    #
-    #   @param  self        The object pointer
-    #
-    def GetBaseAddressArg(self, FdAddressDict):
-        FvList = self.GetFvList()
-        CmdStr = tuple()
-        for i in FvList:
-            (BaseAddress, Size) = FdAddressDict.get(i)
-            CmdStr += (
-                '-r', '0x%x' % BaseAddress,
-                '-s', '0x%x' % Size,
-                )
-        return CmdStr
-
-    ## GenOutputArg() method
-    #
-    #   Get output arguments for GenVtf
-    #
-    #   @param  self        The object pointer
-    #
-    def GenOutputArg(self):
-        FvVtfDict = {}
-        OutputFileName = ''
-        FvList = self.GetFvList()
-        Index = 0
-        Arg = tuple()
-        for FvObj in FvList:
-            Index = Index + 1
-            OutputFileName = 'Vtf%d.raw' % Index
-            OutputFileName = os.path.join(GenFdsGlobalVariable.FvDir, OutputFileName)
-            Arg += ('-o', OutputFileName)
-            FvVtfDict[FvObj.upper()] = OutputFileName
-
-        return Arg, FvVtfDict
-
diff --git a/BaseTools/Source/Python/TargetTool/TargetTool.py b/BaseTools/Source/Python/TargetTool/TargetTool.py
index 8d523a6ab8..a49a01f9e3 100644
--- a/BaseTools/Source/Python/TargetTool/TargetTool.py
+++ b/BaseTools/Source/Python/TargetTool/TargetTool.py
@@ -201,12 +201,12 @@ def RangeCheckCallback(option, opt_str, value, parser):
     else:
         parser.error("Option %s only allows one instance in command line!" % option)
 
 def MyOptionParser():
     parser = OptionParser(version=__version__, prog="TargetTool.exe", usage=__usage__, description=__copyright__)
-    parser.add_option("-a", "--arch", action="append", type="choice", choices=['IA32', 'X64', 'IPF', 'EBC', 'ARM', 'AARCH64', '0'], dest="TARGET_ARCH",
-        help="ARCHS is one of list: IA32, X64, IPF, ARM, AARCH64 or EBC, which replaces target.txt's TARGET_ARCH definition. To specify more archs, please repeat this option. 0 will clear this setting in target.txt and can't combine with other value.")
+    parser.add_option("-a", "--arch", action="append", type="choice", choices=['IA32', 'X64', 'EBC', 'ARM', 'AARCH64', '0'], dest="TARGET_ARCH",
+        help="ARCHS is one of list: IA32, X64, ARM, AARCH64 or EBC, which replaces target.txt's TARGET_ARCH definition. To specify more archs, please repeat this option. 0 will clear this setting in target.txt and can't combine with other value.")
     parser.add_option("-p", "--platform", action="callback", type="string", dest="DSCFILE", callback=SingleCheckCallback,
         help="Specify a DSC file, which replace target.txt's ACTIVE_PLATFORM definition. 0 will clear this setting in target.txt and can't combine with other value.")
     parser.add_option("-c", "--tooldef", action="callback", type="string", dest="TOOL_DEFINITION_FILE", callback=SingleCheckCallback,
         help="Specify the WORKSPACE relative path of tool_def.txt file, which replace target.txt's TOOL_CHAIN_CONF definition. 0 will clear this setting in target.txt and can't combine with other value.")
     parser.add_option("-t", "--target", action="append", type="choice", choices=['DEBUG', 'RELEASE', '0'], dest="TARGET",
diff --git a/BaseTools/Source/Python/build/build.py b/BaseTools/Source/Python/build/build.py
index b550bbc3b2..06977002e8 100644
--- a/BaseTools/Source/Python/build/build.py
+++ b/BaseTools/Source/Python/build/build.py
@@ -1396,15 +1396,11 @@ class Build():
                     if len (StrList) > 4:
                         if StrList[3] == 'f' or StrList[3] == 'F':
                             Name = StrList[1]
                             RelativeAddress = int (StrList[2], 16) - OrigImageBaseAddress
                             FunctionList.append ((Name, RelativeAddress))
-                            if ModuleInfo.Arch == 'IPF' and Name.endswith('_ModuleEntryPoint'):
-                                #
-                                # Get the real entry point address for IPF image.
-                                #
-                                ModuleInfo.Image.EntryPoint = RelativeAddress
+
                 ImageMap.close()
             #
             # Add general information.
             #
             if ModeIsSmm:
@@ -1498,13 +1494,10 @@ class Build():
         PeiSize = 0
         BtSize  = 0
         RtSize  = 0
         # reserve 4K size in SMRAM to make SMM module address not from 0.
         SmmSize = 0x1000
-        IsIpfPlatform = False
-        if 'IPF' in self.ArchList:
-            IsIpfPlatform = True
         for ModuleGuid in ModuleList:
             Module = ModuleList[ModuleGuid]
             GlobalData.gProcessingFile = "%s [%s, %s, %s]" % (Module.MetaFile, Module.Arch, Module.ToolChain, Module.BuildTarget)
 
             OutputImageFile = ''
@@ -1524,13 +1517,10 @@ class Build():
                     elif Module.ModuleType in [EDK_COMPONENT_TYPE_BS_DRIVER, SUP_MODULE_DXE_DRIVER, SUP_MODULE_UEFI_DRIVER]:
                         BtModuleList[Module.MetaFile] = ImageInfo
                         BtSize += ImageInfo.Image.Size
                     elif Module.ModuleType in [SUP_MODULE_DXE_RUNTIME_DRIVER, EDK_COMPONENT_TYPE_RT_DRIVER, SUP_MODULE_DXE_SAL_DRIVER, EDK_COMPONENT_TYPE_SAL_RT_DRIVER]:
                         RtModuleList[Module.MetaFile] = ImageInfo
-                        #IPF runtime driver needs to be at 2 page alignment.
-                        if IsIpfPlatform and ImageInfo.Image.Size % 0x2000 != 0:
-                            ImageInfo.Image.Size = (ImageInfo.Image.Size / 0x2000 + 1) * 0x2000
                         RtSize += ImageInfo.Image.Size
                     elif Module.ModuleType in [SUP_MODULE_SMM_CORE, SUP_MODULE_DXE_SMM_DRIVER, SUP_MODULE_MM_STANDALONE, SUP_MODULE_MM_CORE_STANDALONE]:
                         SmmModuleList[Module.MetaFile] = ImageInfo
                         SmmSize += ImageInfo.Image.Size
                         if Module.ModuleType == SUP_MODULE_DXE_SMM_DRIVER:
@@ -1573,14 +1563,10 @@ class Build():
             TopMemoryAddress = 0
         else:
             TopMemoryAddress = self.LoadFixAddress
             if TopMemoryAddress < RtSize + BtSize + PeiSize:
                 EdkLogger.error("build", PARAMETER_INVALID, "FIX_LOAD_TOP_MEMORY_ADDRESS is too low to load driver")
-            # Make IPF runtime driver at 2 page alignment.
-            if IsIpfPlatform:
-                ReservedRuntimeMemorySize = TopMemoryAddress % 0x2000
-                RtSize = RtSize + ReservedRuntimeMemorySize
 
         #
         # Patch FixAddress related PCDs into EFI image
         #
         for EfiImage in PatchEfiImageList:
@@ -2236,12 +2222,12 @@ def LogBuildTime(Time):
 #   @retval Opt   A optparse.Values object containing the parsed options
 #   @retval Args  Target of build command
 #
 def MyOptionParser():
     Parser = OptionParser(description=__copyright__, version=__version__, prog="build.exe", usage="%prog [options] [all|fds|genc|genmake|clean|cleanall|cleanlib|modules|libraries|run]")
-    Parser.add_option("-a", "--arch", action="append", type="choice", choices=['IA32', 'X64', 'IPF', 'EBC', 'ARM', 'AARCH64'], dest="TargetArch",
-        help="ARCHS is one of list: IA32, X64, IPF, ARM, AARCH64 or EBC, which overrides target.txt's TARGET_ARCH definition. To specify more archs, please repeat this option.")
+    Parser.add_option("-a", "--arch", action="append", type="choice", choices=['IA32', 'X64', 'EBC', 'ARM', 'AARCH64'], dest="TargetArch",
+        help="ARCHS is one of list: IA32, X64, ARM, AARCH64 or EBC, which overrides target.txt's TARGET_ARCH definition. To specify more archs, please repeat this option.")
     Parser.add_option("-p", "--platform", action="callback", type="string", dest="PlatformFile", callback=SingleCheckCallback,
         help="Build the platform specified by the DSC file name argument, overriding target.txt's ACTIVE_PLATFORM definition.")
     Parser.add_option("-m", "--module", action="callback", type="string", dest="ModuleFile", callback=SingleCheckCallback,
         help="Build the module specified by the INF file name argument.")
     Parser.add_option("-b", "--buildtarget", type="string", dest="BuildTarget", help="Using the TARGET to build the platform, overriding target.txt's TARGET definition.",
-- 
2.19.1.windows.1



^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [Patch 2/3] BaseTools: Remove unused logic for IPF
  2019-01-09  6:44 [Patch 2/3] BaseTools: Remove unused logic for IPF BobCF
@ 2019-01-14  0:12 ` Gao, Liming
  0 siblings, 0 replies; 2+ messages in thread
From: Gao, Liming @ 2019-01-14  0:12 UTC (permalink / raw)
  To: Feng, Bob C, edk2-devel@lists.01.org; +Cc: Carsey, Jaben

Bob:
  The code change is good.  Reviewed-by: Liming Gao <liming.gao@intel.com>

  Besides, I create another BZ (https://bugzilla.tianocore.org/show_bug.cgi?id=1453) to remove EDK module type and IPF arch in EDKII INF/DEC/DSC/FDF spec. Please work on it. 

>-----Original Message-----
>From: Feng, Bob C
>Sent: Wednesday, January 09, 2019 2:45 PM
>To: edk2-devel@lists.01.org
>Cc: Feng, Bob C <bob.c.feng@intel.com>; Gao, Liming
><liming.gao@intel.com>; Carsey, Jaben <jaben.carsey@intel.com>
>Subject: [Patch 2/3] BaseTools: Remove unused logic for IPF
>
>From: "Feng, Bob C" <bob.c.feng@intel.com>
>
>Remove IPF support from BaseTools C code.
>
>Contributed-under: TianoCore Contribution Agreement 1.1
>Signed-off-by: Bob Feng <bob.c.feng@intel.com>
>Cc: Liming Gao <liming.gao@intel.com>
>Cc: Jaben Carsey <jaben.carsey@intel.com>
>---
> BaseTools/Source/Python/Common/DataType.py    |  19 +-
> .../Source/Python/CommonDataClass/FdfClass.py |  20 --
> BaseTools/Source/Python/Eot/EotMain.py        |   2 -
> .../Python/GenFds/ComponentStatement.py       |  29 ---
> BaseTools/Source/Python/GenFds/Fd.py          |  56 +----
> BaseTools/Source/Python/GenFds/FdfParser.py   | 223 +-----------------
> BaseTools/Source/Python/GenFds/Fv.py          |  12 +-
> BaseTools/Source/Python/GenFds/GenFds.py      |  11 +-
> .../Python/GenFds/GenFdsGlobalVariable.py     |   1 -
> BaseTools/Source/Python/GenFds/Region.py      |   5 +-
> BaseTools/Source/Python/GenFds/Vtf.py         | 200 ----------------
> .../Source/Python/TargetTool/TargetTool.py    |   4 +-
> BaseTools/Source/Python/build/build.py        |  20 +-
> 13 files changed, 20 insertions(+), 582 deletions(-)
> delete mode 100644
>BaseTools/Source/Python/GenFds/ComponentStatement.py
> delete mode 100644 BaseTools/Source/Python/GenFds/Vtf.py
>
>diff --git a/BaseTools/Source/Python/Common/DataType.py
>b/BaseTools/Source/Python/Common/DataType.py
>index ec0a4f3d59..798c0e353d 100644
>--- a/BaseTools/Source/Python/Common/DataType.py
>+++ b/BaseTools/Source/Python/Common/DataType.py
>@@ -52,16 +52,15 @@ TAB_FV_DIRECTORY = 'FV'
>
> TAB_ARCH_NULL = ''
> TAB_ARCH_COMMON = 'COMMON'
> TAB_ARCH_IA32 = 'IA32'
> TAB_ARCH_X64 = 'X64'
>-TAB_ARCH_IPF = 'IPF'
> TAB_ARCH_ARM = 'ARM'
> TAB_ARCH_EBC = 'EBC'
> TAB_ARCH_AARCH64 = 'AARCH64'
>
>-ARCH_SET_FULL = {TAB_ARCH_IA32, TAB_ARCH_X64, TAB_ARCH_IPF,
>TAB_ARCH_ARM, TAB_ARCH_EBC, TAB_ARCH_AARCH64,
>TAB_ARCH_COMMON}
>+ARCH_SET_FULL = {TAB_ARCH_IA32, TAB_ARCH_X64, TAB_ARCH_ARM,
>TAB_ARCH_EBC, TAB_ARCH_AARCH64, TAB_ARCH_COMMON}
>
> SUP_MODULE_BASE = 'BASE'
> SUP_MODULE_SEC = 'SEC'
> SUP_MODULE_PEI_CORE = 'PEI_CORE'
> SUP_MODULE_PEIM = 'PEIM'
>@@ -134,74 +133,66 @@ PLATFORM_COMPONENT_TYPE_MODULE =
>'MODULE'
>
> TAB_SOURCES = 'Sources'
> TAB_SOURCES_COMMON = TAB_SOURCES + TAB_SPLIT +
>TAB_ARCH_COMMON
> TAB_SOURCES_IA32 = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_IA32
> TAB_SOURCES_X64 = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_X64
>-TAB_SOURCES_IPF = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_IPF
> TAB_SOURCES_ARM = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_ARM
> TAB_SOURCES_EBC = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_EBC
> TAB_SOURCES_AARCH64 = TAB_SOURCES + TAB_SPLIT +
>TAB_ARCH_AARCH64
>
> TAB_BINARIES = 'Binaries'
> TAB_BINARIES_COMMON = TAB_BINARIES + TAB_SPLIT +
>TAB_ARCH_COMMON
> TAB_BINARIES_IA32 = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_IA32
> TAB_BINARIES_X64 = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_X64
>-TAB_BINARIES_IPF = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_IPF
> TAB_BINARIES_ARM = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_ARM
> TAB_BINARIES_EBC = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_EBC
> TAB_BINARIES_AARCH64 = TAB_BINARIES + TAB_SPLIT +
>TAB_ARCH_AARCH64
>
> TAB_INCLUDES = 'Includes'
> TAB_INCLUDES_COMMON = TAB_INCLUDES + TAB_SPLIT +
>TAB_ARCH_COMMON
> TAB_INCLUDES_IA32 = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_IA32
> TAB_INCLUDES_X64 = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_X64
>-TAB_INCLUDES_IPF = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_IPF
> TAB_INCLUDES_ARM = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_ARM
> TAB_INCLUDES_EBC = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_EBC
> TAB_INCLUDES_AARCH64 = TAB_INCLUDES + TAB_SPLIT +
>TAB_ARCH_AARCH64
>
> TAB_GUIDS = 'Guids'
> TAB_GUIDS_COMMON = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_COMMON
> TAB_GUIDS_IA32 = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_IA32
> TAB_GUIDS_X64 = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_X64
>-TAB_GUIDS_IPF = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_IPF
> TAB_GUIDS_ARM = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_ARM
> TAB_GUIDS_EBC = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_EBC
> TAB_GUIDS_AARCH64 = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_AARCH64
>
> TAB_PROTOCOLS = 'Protocols'
> TAB_PROTOCOLS_COMMON = TAB_PROTOCOLS + TAB_SPLIT +
>TAB_ARCH_COMMON
> TAB_PROTOCOLS_IA32 = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_IA32
> TAB_PROTOCOLS_X64 = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_X64
>-TAB_PROTOCOLS_IPF = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_IPF
> TAB_PROTOCOLS_ARM = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_ARM
> TAB_PROTOCOLS_EBC = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_EBC
> TAB_PROTOCOLS_AARCH64 = TAB_PROTOCOLS + TAB_SPLIT +
>TAB_ARCH_AARCH64
>
> TAB_PPIS = 'Ppis'
> TAB_PPIS_COMMON = TAB_PPIS + TAB_SPLIT + TAB_ARCH_COMMON
> TAB_PPIS_IA32 = TAB_PPIS + TAB_SPLIT + TAB_ARCH_IA32
> TAB_PPIS_X64 = TAB_PPIS + TAB_SPLIT + TAB_ARCH_X64
>-TAB_PPIS_IPF = TAB_PPIS + TAB_SPLIT + TAB_ARCH_IPF
> TAB_PPIS_ARM = TAB_PPIS + TAB_SPLIT + TAB_ARCH_ARM
> TAB_PPIS_EBC = TAB_PPIS + TAB_SPLIT + TAB_ARCH_EBC
> TAB_PPIS_AARCH64 = TAB_PPIS + TAB_SPLIT + TAB_ARCH_AARCH64
>
> TAB_LIBRARY_CLASSES = 'LibraryClasses'
> TAB_LIBRARY_CLASSES_COMMON = TAB_LIBRARY_CLASSES + TAB_SPLIT +
>TAB_ARCH_COMMON
> TAB_LIBRARY_CLASSES_IA32 = TAB_LIBRARY_CLASSES + TAB_SPLIT +
>TAB_ARCH_IA32
> TAB_LIBRARY_CLASSES_X64 = TAB_LIBRARY_CLASSES + TAB_SPLIT +
>TAB_ARCH_X64
>-TAB_LIBRARY_CLASSES_IPF = TAB_LIBRARY_CLASSES + TAB_SPLIT +
>TAB_ARCH_IPF
> TAB_LIBRARY_CLASSES_ARM = TAB_LIBRARY_CLASSES + TAB_SPLIT +
>TAB_ARCH_ARM
> TAB_LIBRARY_CLASSES_EBC = TAB_LIBRARY_CLASSES + TAB_SPLIT +
>TAB_ARCH_EBC
> TAB_LIBRARY_CLASSES_AARCH64 = TAB_LIBRARY_CLASSES + TAB_SPLIT +
>TAB_ARCH_AARCH64
>
> TAB_PACKAGES = 'Packages'
> TAB_PACKAGES_COMMON = TAB_PACKAGES + TAB_SPLIT +
>TAB_ARCH_COMMON
> TAB_PACKAGES_IA32 = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_IA32
> TAB_PACKAGES_X64 = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_X64
>-TAB_PACKAGES_IPF = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_IPF
> TAB_PACKAGES_ARM = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_ARM
> TAB_PACKAGES_EBC = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_EBC
> TAB_PACKAGES_AARCH64 = TAB_PACKAGES + TAB_SPLIT +
>TAB_ARCH_AARCH64
>
> TAB_PCDS = 'Pcds'
>@@ -225,29 +216,26 @@ PCD_TYPE_LIST = [TAB_PCDS_FIXED_AT_BUILD,
>TAB_PCDS_PATCHABLE_IN_MODULE, TAB_PCDS
>
> TAB_PCDS_FIXED_AT_BUILD_NULL = TAB_PCDS +
>TAB_PCDS_FIXED_AT_BUILD
> TAB_PCDS_FIXED_AT_BUILD_COMMON = TAB_PCDS +
>TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_COMMON
> TAB_PCDS_FIXED_AT_BUILD_IA32 = TAB_PCDS +
>TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_IA32
> TAB_PCDS_FIXED_AT_BUILD_X64 = TAB_PCDS +
>TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_X64
>-TAB_PCDS_FIXED_AT_BUILD_IPF = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD
>+ TAB_SPLIT + TAB_ARCH_IPF
> TAB_PCDS_FIXED_AT_BUILD_ARM = TAB_PCDS +
>TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_ARM
> TAB_PCDS_FIXED_AT_BUILD_EBC = TAB_PCDS +
>TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_EBC
> TAB_PCDS_FIXED_AT_BUILD_AARCH64 = TAB_PCDS +
>TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_AARCH64
>
> TAB_PCDS_PATCHABLE_IN_MODULE_NULL = TAB_PCDS +
>TAB_PCDS_PATCHABLE_IN_MODULE
> TAB_PCDS_PATCHABLE_IN_MODULE_COMMON = TAB_PCDS +
>TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_COMMON
> TAB_PCDS_PATCHABLE_IN_MODULE_IA32 = TAB_PCDS +
>TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_IA32
> TAB_PCDS_PATCHABLE_IN_MODULE_X64 = TAB_PCDS +
>TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_X64
>-TAB_PCDS_PATCHABLE_IN_MODULE_IPF = TAB_PCDS +
>TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_IPF
> TAB_PCDS_PATCHABLE_IN_MODULE_ARM = TAB_PCDS +
>TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_ARM
> TAB_PCDS_PATCHABLE_IN_MODULE_EBC = TAB_PCDS +
>TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_EBC
> TAB_PCDS_PATCHABLE_IN_MODULE_AARCH64 = TAB_PCDS +
>TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_AARCH64
>
> TAB_PCDS_FEATURE_FLAG_NULL = TAB_PCDS + TAB_PCDS_FEATURE_FLAG
> TAB_PCDS_FEATURE_FLAG_COMMON = TAB_PCDS +
>TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + TAB_ARCH_COMMON
> TAB_PCDS_FEATURE_FLAG_IA32 = TAB_PCDS + TAB_PCDS_FEATURE_FLAG +
>TAB_SPLIT + TAB_ARCH_IA32
> TAB_PCDS_FEATURE_FLAG_X64 = TAB_PCDS + TAB_PCDS_FEATURE_FLAG +
>TAB_SPLIT + TAB_ARCH_X64
>-TAB_PCDS_FEATURE_FLAG_IPF = TAB_PCDS + TAB_PCDS_FEATURE_FLAG +
>TAB_SPLIT + TAB_ARCH_IPF
> TAB_PCDS_FEATURE_FLAG_ARM = TAB_PCDS + TAB_PCDS_FEATURE_FLAG
>+ TAB_SPLIT + TAB_ARCH_ARM
> TAB_PCDS_FEATURE_FLAG_EBC = TAB_PCDS + TAB_PCDS_FEATURE_FLAG +
>TAB_SPLIT + TAB_ARCH_EBC
> TAB_PCDS_FEATURE_FLAG_AARCH64 = TAB_PCDS +
>TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + TAB_ARCH_AARCH64
>
> TAB_PCDS_DYNAMIC_EX_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_EX
>@@ -255,11 +243,10 @@ TAB_PCDS_DYNAMIC_EX_DEFAULT_NULL =
>TAB_PCDS + TAB_PCDS_DYNAMIC_EX_DEFAULT
> TAB_PCDS_DYNAMIC_EX_HII_NULL = TAB_PCDS +
>TAB_PCDS_DYNAMIC_EX_HII
> TAB_PCDS_DYNAMIC_EX_VPD_NULL = TAB_PCDS +
>TAB_PCDS_DYNAMIC_EX_VPD
> TAB_PCDS_DYNAMIC_EX_COMMON = TAB_PCDS +
>TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + TAB_ARCH_COMMON
> TAB_PCDS_DYNAMIC_EX_IA32 = TAB_PCDS + TAB_PCDS_DYNAMIC_EX +
>TAB_SPLIT + TAB_ARCH_IA32
> TAB_PCDS_DYNAMIC_EX_X64 = TAB_PCDS + TAB_PCDS_DYNAMIC_EX +
>TAB_SPLIT + TAB_ARCH_X64
>-TAB_PCDS_DYNAMIC_EX_IPF = TAB_PCDS + TAB_PCDS_DYNAMIC_EX +
>TAB_SPLIT + TAB_ARCH_IPF
> TAB_PCDS_DYNAMIC_EX_ARM = TAB_PCDS + TAB_PCDS_DYNAMIC_EX +
>TAB_SPLIT + TAB_ARCH_ARM
> TAB_PCDS_DYNAMIC_EX_EBC = TAB_PCDS + TAB_PCDS_DYNAMIC_EX +
>TAB_SPLIT + TAB_ARCH_EBC
> TAB_PCDS_DYNAMIC_EX_AARCH64 = TAB_PCDS + TAB_PCDS_DYNAMIC_EX
>+ TAB_SPLIT + TAB_ARCH_AARCH64
>
> TAB_PCDS_DYNAMIC_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC
>@@ -267,11 +254,10 @@ TAB_PCDS_DYNAMIC_DEFAULT_NULL = TAB_PCDS
>+ TAB_PCDS_DYNAMIC_DEFAULT
> TAB_PCDS_DYNAMIC_HII_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_HII
> TAB_PCDS_DYNAMIC_VPD_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_VPD
> TAB_PCDS_DYNAMIC_COMMON = TAB_PCDS + TAB_PCDS_DYNAMIC +
>TAB_SPLIT + TAB_ARCH_COMMON
> TAB_PCDS_DYNAMIC_IA32 = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT
>+ TAB_ARCH_IA32
> TAB_PCDS_DYNAMIC_X64 = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT
>+ TAB_ARCH_X64
>-TAB_PCDS_DYNAMIC_IPF = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT
>+ TAB_ARCH_IPF
> TAB_PCDS_DYNAMIC_ARM = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT
>+ TAB_ARCH_ARM
> TAB_PCDS_DYNAMIC_EBC = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT
>+ TAB_ARCH_EBC
> TAB_PCDS_DYNAMIC_AARCH64 = TAB_PCDS + TAB_PCDS_DYNAMIC +
>TAB_SPLIT + TAB_ARCH_AARCH64
>
> TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_PEI_PAGE_SIZE =
>'PcdLoadFixAddressPeiCodePageNumber'
>@@ -294,11 +280,10 @@ MAX_SIZE_TYPE = {"BOOLEAN":1, TAB_UINT8:1,
>TAB_UINT16:2, TAB_UINT32:4, TAB_UINT6
>
> TAB_DEPEX = 'Depex'
> TAB_DEPEX_COMMON = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_COMMON
> TAB_DEPEX_IA32 = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_IA32
> TAB_DEPEX_X64 = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_X64
>-TAB_DEPEX_IPF = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_IPF
> TAB_DEPEX_ARM = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_ARM
> TAB_DEPEX_EBC = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_EBC
> TAB_DEPEX_AARCH64 = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_AARCH64
>
> TAB_SKUIDS = 'SkuIds'
>@@ -307,20 +292,18 @@ TAB_DEFAULT_STORES_DEFAULT = 'STANDARD'
>
> TAB_LIBRARIES = 'Libraries'
> TAB_LIBRARIES_COMMON = TAB_LIBRARIES + TAB_SPLIT +
>TAB_ARCH_COMMON
> TAB_LIBRARIES_IA32 = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_IA32
> TAB_LIBRARIES_X64 = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_X64
>-TAB_LIBRARIES_IPF = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_IPF
> TAB_LIBRARIES_ARM = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_ARM
> TAB_LIBRARIES_EBC = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_EBC
> TAB_LIBRARIES_AARCH64 = TAB_LIBRARIES + TAB_SPLIT +
>TAB_ARCH_AARCH64
>
> TAB_COMPONENTS = 'Components'
> TAB_COMPONENTS_COMMON = TAB_COMPONENTS + TAB_SPLIT +
>TAB_ARCH_COMMON
> TAB_COMPONENTS_IA32 = TAB_COMPONENTS + TAB_SPLIT +
>TAB_ARCH_IA32
> TAB_COMPONENTS_X64 = TAB_COMPONENTS + TAB_SPLIT +
>TAB_ARCH_X64
>-TAB_COMPONENTS_IPF = TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_IPF
> TAB_COMPONENTS_ARM = TAB_COMPONENTS + TAB_SPLIT +
>TAB_ARCH_ARM
> TAB_COMPONENTS_EBC = TAB_COMPONENTS + TAB_SPLIT +
>TAB_ARCH_EBC
> TAB_COMPONENTS_AARCH64 = TAB_COMPONENTS + TAB_SPLIT +
>TAB_ARCH_AARCH64
>
> TAB_COMPONENTS_SOURCE_OVERRIDE_PATH = 'SOURCE_OVERRIDE_PATH'
>diff --git a/BaseTools/Source/Python/CommonDataClass/FdfClass.py
>b/BaseTools/Source/Python/CommonDataClass/FdfClass.py
>index 3df8208245..0fb54d8914 100644
>--- a/BaseTools/Source/Python/CommonDataClass/FdfClass.py
>+++ b/BaseTools/Source/Python/CommonDataClass/FdfClass.py
>@@ -33,11 +33,10 @@ class FDClassObject:
>         # DefineVarDict[var] = value
>         self.DefineVarDict = {}
>         # SetVarDict[var] = value
>         self.SetVarDict = {}
>         self.RegionList = []
>-        self.vtfRawDict = {}
>
> ## FFS data in FDF
> #
> #
> class FfsClassObject:
>@@ -303,29 +302,10 @@ class CapsuleClassObject :
>         # TokensDict[var] = value
>         self.TokensDict = {}
>         self.CapsuleDataList = []
>         self.FmpPayloadList = []
>
>-## VTF component data in FDF
>-#
>-#
>-class ComponentStatementClassObject :
>-    ## The constructor
>-    #
>-    #   @param  self        The object pointer
>-    #
>-    def __init__(self):
>-        self.CompName = None
>-        self.CompLoc = None
>-        self.CompType = None
>-        self.CompVer = None
>-        self.CompCs = None
>-        self.CompBin = None
>-        self.CompSym = None
>-        self.CompSize = None
>-        self.FilePos = None
>-
> ## OptionROM data in FDF
> #
> #
> class OptionRomClassObject:
>     ## The constructor
>diff --git a/BaseTools/Source/Python/Eot/EotMain.py
>b/BaseTools/Source/Python/Eot/EotMain.py
>index 7eae4ac672..fd4bee6f90 100644
>--- a/BaseTools/Source/Python/Eot/EotMain.py
>+++ b/BaseTools/Source/Python/Eot/EotMain.py
>@@ -927,12 +927,10 @@ class Ffs(Image):
>     _TYPE_      = struct.Struct("18x 1B")
>     _ATTR_      = struct.Struct("19x 1B")
>     _SIZE_      = struct.Struct("20x 3B")
>     _STATE_     = struct.Struct("23x 1B")
>
>-    VTF_GUID = "1BA0062E-C779-4582-8566-336AE8F78F09"
>-
>     FFS_ATTRIB_FIXED              = 0x04
>     FFS_ATTRIB_DATA_ALIGNMENT     = 0x38
>     FFS_ATTRIB_CHECKSUM           = 0x40
>
>     _TypeName = {
>diff --git a/BaseTools/Source/Python/GenFds/ComponentStatement.py
>b/BaseTools/Source/Python/GenFds/ComponentStatement.py
>deleted file mode 100644
>index 1cf926155b..0000000000
>--- a/BaseTools/Source/Python/GenFds/ComponentStatement.py
>+++ /dev/null
>@@ -1,29 +0,0 @@
>-## @file
>-# VTF components
>-#
>-#  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
>-#
>-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
>BASIS,
>-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
>EXPRESS OR IMPLIED.
>-#
>-
>-##
>-# Import Modules
>-#
>-from CommonDataClass.FdfClass import ComponentStatementClassObject
>-
>-## VTF components
>-#
>-#
>-class ComponentStatement (ComponentStatementClassObject) :
>-    ## The constructor
>-    #
>-    #   @param  self        The object pointer
>-    #
>-    def __init__(self):
>-          ComponentStatementClassObject.__init__(self)
>diff --git a/BaseTools/Source/Python/GenFds/Fd.py
>b/BaseTools/Source/Python/GenFds/Fd.py
>index bfae121798..9c43a62cc3 100644
>--- a/BaseTools/Source/Python/GenFds/Fd.py
>+++ b/BaseTools/Source/Python/GenFds/Fd.py
>@@ -64,13 +64,10 @@ class FD(FDClassObject):
>             EdkLogger.error("GenFds", GENFDS_ERROR, 'FD %s Size not consistent
>with block array' % self.FdUiName)
>         GenFdsGlobalVariable.VerboseLogger('Following Fv will be add to Fd !!!')
>         for FvObj in GenFdsGlobalVariable.FdfParser.Profile.FvDict:
>             GenFdsGlobalVariable.VerboseLogger(FvObj)
>
>-        GenFdsGlobalVariable.VerboseLogger('################### Gen
>VTF ####################')
>-        self.GenVtfFile()
>-
>         HasCapsuleRegion = False
>         for RegionObj in self.RegionList:
>             if RegionObj.RegionType == 'CAPSULE':
>                 HasCapsuleRegion = True
>                 break
>@@ -91,20 +88,20 @@ class FD(FDClassObject):
>                         GenFdsGlobalVariable.InfLogger('Padding region starting from
>offset 0x%X, with size 0x%X' %(PreviousRegionStart + PreviousRegionSize,
>RegionObj.Offset - (PreviousRegionStart + PreviousRegionSize)))
>                     PadRegion = Region.Region()
>                     PadRegion.Offset = PreviousRegionStart + PreviousRegionSize
>                     PadRegion.Size = RegionObj.Offset - PadRegion.Offset
>                     if not Flag:
>-                        PadRegion.AddToBuffer(TempFdBuffer, self.BaseAddress,
>self.BlockSizeList, self.ErasePolarity, GenFdsGlobalVariable.ImageBinDict,
>self.vtfRawDict, self.DefineVarDict)
>+                        PadRegion.AddToBuffer(TempFdBuffer, self.BaseAddress,
>self.BlockSizeList, self.ErasePolarity, GenFdsGlobalVariable.ImageBinDict,
>self.DefineVarDict)
>                 PreviousRegionStart = RegionObj.Offset
>                 PreviousRegionSize = RegionObj.Size
>                 #
>                 # Call each region's AddToBuffer function
>                 #
>                 if PreviousRegionSize > self.Size:
>                     pass
>                 GenFdsGlobalVariable.VerboseLogger('Call each region\'s
>AddToBuffer function')
>-                RegionObj.AddToBuffer (TempFdBuffer, self.BaseAddress,
>self.BlockSizeList, self.ErasePolarity, GenFdsGlobalVariable.ImageBinDict,
>self.vtfRawDict, self.DefineVarDict)
>+                RegionObj.AddToBuffer (TempFdBuffer, self.BaseAddress,
>self.BlockSizeList, self.ErasePolarity, GenFdsGlobalVariable.ImageBinDict,
>self.DefineVarDict)
>
>         FdBuffer = BytesIO('')
>         PreviousRegionStart = -1
>         PreviousRegionSize = 1
>         for RegionObj in self.RegionList :
>@@ -121,11 +118,11 @@ class FD(FDClassObject):
>                     GenFdsGlobalVariable.InfLogger('Padding region starting from
>offset 0x%X, with size 0x%X' %(PreviousRegionStart + PreviousRegionSize,
>RegionObj.Offset - (PreviousRegionStart + PreviousRegionSize)))
>                 PadRegion = Region.Region()
>                 PadRegion.Offset = PreviousRegionStart + PreviousRegionSize
>                 PadRegion.Size = RegionObj.Offset - PadRegion.Offset
>                 if not Flag:
>-                    PadRegion.AddToBuffer(FdBuffer, self.BaseAddress,
>self.BlockSizeList, self.ErasePolarity, GenFdsGlobalVariable.ImageBinDict,
>self.vtfRawDict, self.DefineVarDict)
>+                    PadRegion.AddToBuffer(FdBuffer, self.BaseAddress,
>self.BlockSizeList, self.ErasePolarity, GenFdsGlobalVariable.ImageBinDict,
>self.DefineVarDict)
>             PreviousRegionStart = RegionObj.Offset
>             PreviousRegionSize = RegionObj.Size
>             #
>             # Verify current region fits within allocated FD section Size
>             #
>@@ -135,66 +132,21 @@ class FD(FDClassObject):
>                                 % (self.FdUiName, PreviousRegionStart, PreviousRegionSize))
>             #
>             # Call each region's AddToBuffer function
>             #
>             GenFdsGlobalVariable.VerboseLogger('Call each region\'s AddToBuffer
>function')
>-            RegionObj.AddToBuffer (FdBuffer, self.BaseAddress, self.BlockSizeList,
>self.ErasePolarity, GenFdsGlobalVariable.ImageBinDict, self.vtfRawDict,
>self.DefineVarDict, Flag=Flag)
>+            RegionObj.AddToBuffer (FdBuffer, self.BaseAddress, self.BlockSizeList,
>self.ErasePolarity, GenFdsGlobalVariable.ImageBinDict, self.DefineVarDict,
>Flag=Flag)
>         #
>         # Write the buffer contents to Fd file
>         #
>         GenFdsGlobalVariable.VerboseLogger('Write the buffer contents to Fd
>file')
>         if not Flag:
>             SaveFileOnChange(FdFileName, FdBuffer.getvalue())
>         FdBuffer.close()
>         GenFdsGlobalVariable.ImageBinDict[self.FdUiName.upper() + 'fd'] =
>FdFileName
>         return FdFileName
>
>-    ## generate VTF
>-    #
>-    #   @param  self        The object pointer
>-    #
>-    def GenVtfFile (self) :
>-        #
>-        # Get this Fd's all Fv name
>-        #
>-        FvAddDict ={}
>-        FvList = []
>-        for RegionObj in self.RegionList:
>-            if RegionObj.RegionType == BINARY_FILE_TYPE_FV:
>-                if len(RegionObj.RegionDataList) == 1:
>-                    RegionData = RegionObj.RegionDataList[0]
>-                    FvList.append(RegionData.upper())
>-                    FvAddDict[RegionData.upper()] = (int(self.BaseAddress, 16) + \
>-                                                RegionObj.Offset, RegionObj.Size)
>-                else:
>-                    Offset = RegionObj.Offset
>-                    for RegionData in RegionObj.RegionDataList:
>-                        FvList.append(RegionData.upper())
>-                        FvObj =
>GenFdsGlobalVariable.FdfParser.Profile.FvDict.get(RegionData.upper())
>-                        if len(FvObj.BlockSizeList) < 1:
>-                            EdkLogger.error("GenFds", GENFDS_ERROR,
>-                                            'FV.%s must point out FVs blocksize and Fv BlockNum' \
>-                                            % FvObj.UiFvName)
>-                        else:
>-                            Size = 0
>-                            for blockStatement in FvObj.BlockSizeList:
>-                                Size = Size + blockStatement[0] * blockStatement[1]
>-                            FvAddDict[RegionData.upper()] = (int(self.BaseAddress, 16) + \
>-                                                             Offset, Size)
>-                            Offset = Offset + Size
>-        #
>-        # Check whether this Fd need VTF
>-        #
>-        Flag = False
>-        for VtfObj in GenFdsGlobalVariable.FdfParser.Profile.VtfList:
>-            compLocList = VtfObj.GetFvList()
>-            if set(compLocList).issubset(FvList):
>-                Flag = True
>-                break
>-        if Flag == True:
>-            self.vtfRawDict = VtfObj.GenVtf(FvAddDict)
>-
>     ## generate flash map file
>     #
>     #   @param  self        The object pointer
>     #
>     def GenFlashMap (self):
>diff --git a/BaseTools/Source/Python/GenFds/FdfParser.py
>b/BaseTools/Source/Python/GenFds/FdfParser.py
>index de0b166030..5e1390e4b4 100644
>--- a/BaseTools/Source/Python/GenFds/FdfParser.py
>+++ b/BaseTools/Source/Python/GenFds/FdfParser.py
>@@ -51,12 +51,10 @@ from .GuidSection import GuidSection
> from .Capsule import EFI_CERT_TYPE_PKCS7_GUID,
>EFI_CERT_TYPE_RSA2048_SHA256_GUID, Capsule
> from .CapsuleData import CapsuleFfs, CapsulePayload, CapsuleFv, CapsuleFd,
>CapsuleAnyFile, CapsuleAfile
> from .RuleComplexFile import RuleComplexFile
> from .RuleSimpleFile import RuleSimpleFile
> from .EfiSection import EfiSection
>-from .Vtf import Vtf
>-from .ComponentStatement import ComponentStatement
> from .OptionRom import OPTIONROM
> from .OptRomInfStatement import OptRomInfStatement, OverrideAttribs
> from .OptRomFileStatement import OptRomFileStatement
> from .GenFdsGlobalVariable import GenFdsGlobalVariable
>
>@@ -232,11 +230,10 @@ class FileProfile:
>
>         self.FdDict = {}
>         self.FdNameNotSet = False
>         self.FvDict = {}
>         self.CapsuleDict = {}
>-        self.VtfList = []
>         self.RuleDict = {}
>         self.OptRomDict = {}
>         self.FmpPayloadDict = {}
>
> ## The syntax parser for FDF
>@@ -476,27 +473,20 @@ class FdfParser:
>         # [Defines]
>         # [FD.UiName]: use dummy instead if UI name is optional
>         # [FV.UiName]
>         # [Capsule.UiName]
>         # [Rule]: don't take rule section into account, macro is not allowed in this
>section
>-        # [VTF.arch.UiName, arch]
>         # [OptionRom.DriverName]
>         self._CurSection = []
>         Section = Section.strip()[1:-1].upper().replace(' ', '').strip(TAB_SPLIT)
>         ItemList = Section.split(TAB_SPLIT)
>         Item = ItemList[0]
>         if Item == '' or Item == 'RULE':
>             return
>
>         if Item == TAB_COMMON_DEFINES.upper():
>             self._CurSection = [TAB_COMMON, TAB_COMMON, TAB_COMMON]
>-        elif Item == 'VTF' and len(ItemList) == 3:
>-            UiName = ItemList[2]
>-            Pos = UiName.find(TAB_COMMA_SPLIT)
>-            if Pos != -1:
>-                UiName = UiName[:Pos]
>-            self._CurSection = ['VTF', UiName, ItemList[1]]
>         elif len(ItemList) > 1:
>             self._CurSection = [ItemList[0], ItemList[1], TAB_COMMON]
>         elif len(ItemList) > 0:
>             self._CurSection = [ItemList[0], 'DUMMY', TAB_COMMON]
>
>@@ -1328,11 +1318,11 @@ class FdfParser:
>             self.Preprocess()
>             self._GetError()
>             #
>             # Keep processing sections of the FDF until no new sections or a syntax
>error is found
>             #
>-            while self._GetFd() or self._GetFv() or self._GetFmp() or
>self._GetCapsule() or self._GetVtf() or self._GetRule() or
>self._GetOptionRom():
>+            while self._GetFd() or self._GetFv() or self._GetFmp() or
>self._GetCapsule() or self._GetRule() or self._GetOptionRom():
>                 pass
>
>         except Warning as X:
>             self._UndoToken()
>             #'\n\tGot Token: \"%s\" from File %s\n' % (self._Token,
>FileLineTuple[0]) + \
>@@ -1356,12 +1346,12 @@ class FdfParser:
>     #   @param  section       The section string
>
>     def SectionParser(self, section):
>         S = section.upper()
>         if not S.startswith("[DEFINES") and not S.startswith("[FD.") and not
>S.startswith("[FV.") and not S.startswith("[CAPSULE.") \
>-            and not S.startswith("[VTF.") and not S.startswith("[RULE.") and not
>S.startswith("[OPTIONROM.") and not S.startswith('[FMPPAYLOAD.'):
>-            raise Warning("Unknown section or section appear sequence error
>(The correct sequence should be [DEFINES], [FD.], [FV.], [Capsule.], [VTF.],
>[Rule.], [OptionRom.], [FMPPAYLOAD.])", self.FileName,
>self.CurrentLineNumber)
>+             and not S.startswith("[RULE.") and not S.startswith("[OPTIONROM.")
>and not S.startswith('[FMPPAYLOAD.'):
>+            raise Warning("Unknown section or section appear sequence error
>(The correct sequence should be [DEFINES], [FD.], [FV.], [Capsule.], [Rule.],
>[OptionRom.], [FMPPAYLOAD.])", self.FileName, self.CurrentLineNumber)
>
>     ## _GetDefines() method
>     #
>     #   Get Defines section contents and store its data into AllMacrosList
>     #
>@@ -1430,11 +1420,11 @@ class FdfParser:
>             return False
>
>         S = self._Token.upper()
>         if S.startswith(TAB_SECTION_START) and not S.startswith("[FD."):
>             if not S.startswith("[FV.") and not S.startswith('[FMPPAYLOAD.') and
>not S.startswith("[CAPSULE.") \
>-                and not S.startswith("[VTF.") and not S.startswith("[RULE.") and not
>S.startswith("[OPTIONROM."):
>+                and not S.startswith("[RULE.") and not S.startswith("[OPTIONROM."):
>                 raise Warning("Unknown section", self.FileName,
>self.CurrentLineNumber)
>             self._UndoToken()
>             return False
>
>         self._UndoToken()
>@@ -4079,215 +4069,10 @@ class FdfParser:
>
>             return True
>
>         return False
>
>-    ## _GetVtf() method
>-    #
>-    #   Get VTF section contents and store its data into VTF list of self.Profile
>-    #
>-    #   @param  self        The object pointer
>-    #   @retval True        Successfully find a VTF
>-    #   @retval False       Not able to find a VTF
>-    #
>-    def _GetVtf(self):
>-        HW_ARCH_SET = {TAB_ARCH_IA32, TAB_ARCH_X64, TAB_ARCH_IPF,
>TAB_ARCH_ARM, TAB_ARCH_AARCH64}
>-        if not self._GetNextToken():
>-            return False
>-
>-        S = self._Token.upper()
>-        if S.startswith(TAB_SECTION_START) and not S.startswith("[VTF."):
>-            self.SectionParser(S)
>-            self._UndoToken()
>-            return False
>-
>-        self._UndoToken()
>-        if not self._IsToken("[VTF.", True):
>-            FileLineTuple = GetRealFileLine(self.FileName, self.CurrentLineNumber)
>-            #print 'Parsing String: %s in File %s, At line: %d, Offset Within Line: %d' \
>-            #        % (self.Profile.FileLinesList[self.CurrentLineNumber -
>1][self.CurrentOffsetWithinLine:], FileLineTuple[0], FileLineTuple[1],
>self.CurrentOffsetWithinLine)
>-            raise Warning.Expected("[VTF.]", self.FileName,
>self.CurrentLineNumber)
>-
>-        if not self._SkipToToken(TAB_SPLIT):
>-            raise Warning.Expected("'.'", self.FileName, self.CurrentLineNumber)
>-
>-        Arch = self._SkippedChars.rstrip(TAB_SPLIT).upper()
>-        if Arch not in HW_ARCH_SET:
>-            raise Warning("Unknown Arch '%s'" % Arch, self.FileName,
>self.CurrentLineNumber)
>-
>-        if not self._GetNextWord():
>-            raise Warning.Expected("VTF name", self.FileName,
>self.CurrentLineNumber)
>-        Name = self._Token.upper()
>-
>-        VtfObj = Vtf()
>-        VtfObj.UiName = Name
>-        VtfObj.KeyArch = Arch
>-
>-        if self._IsToken(TAB_COMMA_SPLIT):
>-            if not self._GetNextWord():
>-                raise Warning.Expected("Arch list", self.FileName,
>self.CurrentLineNumber)
>-            if self._Token.upper() not in HW_ARCH_SET:
>-                raise Warning("Unknown Arch '%s'" % self._Token, self.FileName,
>self.CurrentLineNumber)
>-            VtfObj.ArchList = self._Token.upper()
>-
>-        if not self._IsToken(TAB_SECTION_END):
>-            raise Warning.ExpectedBracketClose(self.FileName,
>self.CurrentLineNumber)
>-
>-        if self._IsKeyword("IA32_RST_BIN"):
>-            if not self._IsToken(TAB_EQUAL_SPLIT):
>-                raise Warning.ExpectedEquals(self.FileName,
>self.CurrentLineNumber)
>-
>-            if not self._GetNextToken():
>-                raise Warning.Expected("Reset file", self.FileName,
>self.CurrentLineNumber)
>-
>-            VtfObj.ResetBin = self._Token
>-            if VtfObj.ResetBin.replace(TAB_WORKSPACE, '').find('$') == -1:
>-                #check for file path
>-                ErrorCode, ErrorInfo = PathClass(NormPath(VtfObj.ResetBin),
>GenFdsGlobalVariable.WorkSpaceDir).Validate()
>-                if ErrorCode != 0:
>-                    EdkLogger.error("GenFds", ErrorCode, ExtraData=ErrorInfo)
>-
>-        while self._GetComponentStatement(VtfObj):
>-            pass
>-
>-        self.Profile.VtfList.append(VtfObj)
>-        return True
>-
>-    ## _GetComponentStatement() method
>-    #
>-    #   Get components in VTF
>-    #
>-    #   @param  self        The object pointer
>-    #   @param  VtfObj         for whom component is got
>-    #   @retval True        Successfully find a component
>-    #   @retval False       Not able to find a component
>-    #
>-    def _GetComponentStatement(self, VtfObj):
>-        if not self._IsKeyword("COMP_NAME"):
>-            return False
>-
>-        if not self._IsToken(TAB_EQUAL_SPLIT):
>-            raise Warning.ExpectedEquals(self.FileName, self.CurrentLineNumber)
>-
>-        if not self._GetNextWord():
>-            raise Warning.Expected("Component Name", self.FileName,
>self.CurrentLineNumber)
>-
>-        CompStatementObj = ComponentStatement()
>-        CompStatementObj.CompName = self._Token
>-
>-        if not self._IsKeyword("COMP_LOC"):
>-            raise Warning.Expected("COMP_LOC", self.FileName,
>self.CurrentLineNumber)
>-
>-        if not self._IsToken(TAB_EQUAL_SPLIT):
>-            raise Warning.ExpectedEquals(self.FileName, self.CurrentLineNumber)
>-
>-        CompStatementObj.CompLoc = ""
>-        if self._GetNextWord():
>-            CompStatementObj.CompLoc = self._Token
>-            if self._IsToken(TAB_VALUE_SPLIT):
>-                if not self._GetNextWord():
>-                    raise Warning.Expected("Region Name", self.FileName,
>self.CurrentLineNumber)
>-
>-                if self._Token not in {"F", "N", "S"}:    #, "H", "L", "PH", "PL"): not
>support
>-                    raise Warning("Unknown location type '%s'" % self._Token,
>self.FileName, self.CurrentLineNumber)
>-
>-                CompStatementObj.FilePos = self._Token
>-        else:
>-            self.CurrentLineNumber += 1
>-            self.CurrentOffsetWithinLine = 0
>-
>-        if not self._IsKeyword("COMP_TYPE"):
>-            raise Warning.Expected("COMP_TYPE", self.FileName,
>self.CurrentLineNumber)
>-
>-        if not self._IsToken(TAB_EQUAL_SPLIT):
>-            raise Warning.ExpectedEquals(self.FileName, self.CurrentLineNumber)
>-
>-        if not self._GetNextToken():
>-            raise Warning.Expected("Component type", self.FileName,
>self.CurrentLineNumber)
>-        if self._Token not in {"FIT", "PAL_B", "PAL_A", "OEM"}:
>-            if not self._Token.startswith("0x") or len(self._Token) < 3 or
>len(self._Token) > 4 or \
>-                not self._Token[2] in hexdigits or not self._Token[-1] in hexdigits:
>-                raise Warning("Unknown location type '%s'" % self._Token,
>self.FileName, self.CurrentLineNumber)
>-        CompStatementObj.CompType = self._Token
>-
>-        if not self._IsKeyword("COMP_VER"):
>-            raise Warning.Expected("COMP_VER", self.FileName,
>self.CurrentLineNumber)
>-
>-        if not self._IsToken(TAB_EQUAL_SPLIT):
>-            raise Warning.ExpectedEquals(self.FileName, self.CurrentLineNumber)
>-
>-        if not self._GetNextToken():
>-            raise Warning.Expected("Component version", self.FileName,
>self.CurrentLineNumber)
>-
>-        Pattern = compile('-$|[0-9a-fA-F]{1,2}\.[0-9a-fA-F]{1,2}$', DOTALL)
>-        if Pattern.match(self._Token) is None:
>-            raise Warning("Unknown version format '%s'" % self._Token,
>self.FileName, self.CurrentLineNumber)
>-        CompStatementObj.CompVer = self._Token
>-
>-        if not self._IsKeyword("COMP_CS"):
>-            raise Warning.Expected("COMP_CS", self.FileName,
>self.CurrentLineNumber)
>-
>-        if not self._IsToken(TAB_EQUAL_SPLIT):
>-            raise Warning.ExpectedEquals(self.FileName, self.CurrentLineNumber)
>-
>-        if not self._GetNextToken():
>-            raise Warning.Expected("Component CS", self.FileName,
>self.CurrentLineNumber)
>-        if self._Token not in {"1", "0"}:
>-            raise Warning("Unknown Component CS '%s'" % self._Token,
>self.FileName, self.CurrentLineNumber)
>-        CompStatementObj.CompCs = self._Token
>-
>-
>-        if not self._IsKeyword("COMP_BIN"):
>-            raise Warning.Expected("COMP_BIN", self.FileName,
>self.CurrentLineNumber)
>-
>-        if not self._IsToken(TAB_EQUAL_SPLIT):
>-            raise Warning.ExpectedEquals(self.FileName, self.CurrentLineNumber)
>-
>-        if not self._GetNextToken():
>-            raise Warning.Expected("Component file", self.FileName,
>self.CurrentLineNumber)
>-
>-        CompStatementObj.CompBin = self._Token
>-        if CompStatementObj.CompBin != '-' and
>CompStatementObj.CompBin.replace(TAB_WORKSPACE, '').find('$') == -1:
>-            #check for file path
>-            ErrorCode, ErrorInfo =
>PathClass(NormPath(CompStatementObj.CompBin),
>GenFdsGlobalVariable.WorkSpaceDir).Validate()
>-            if ErrorCode != 0:
>-                EdkLogger.error("GenFds", ErrorCode, ExtraData=ErrorInfo)
>-
>-        if not self._IsKeyword("COMP_SYM"):
>-            raise Warning.Expected("COMP_SYM", self.FileName,
>self.CurrentLineNumber)
>-
>-        if not self._IsToken(TAB_EQUAL_SPLIT):
>-            raise Warning.ExpectedEquals(self.FileName, self.CurrentLineNumber)
>-
>-        if not self._GetNextToken():
>-            raise Warning.Expected("Component symbol file", self.FileName,
>self.CurrentLineNumber)
>-
>-        CompStatementObj.CompSym = self._Token
>-        if CompStatementObj.CompSym != '-' and
>CompStatementObj.CompSym.replace(TAB_WORKSPACE, '').find('$') == -1:
>-            #check for file path
>-            ErrorCode, ErrorInfo =
>PathClass(NormPath(CompStatementObj.CompSym),
>GenFdsGlobalVariable.WorkSpaceDir).Validate()
>-            if ErrorCode != 0:
>-                EdkLogger.error("GenFds", ErrorCode, ExtraData=ErrorInfo)
>-
>-        if not self._IsKeyword("COMP_SIZE"):
>-            raise Warning.Expected("COMP_SIZE", self.FileName,
>self.CurrentLineNumber)
>-
>-        if not self._IsToken(TAB_EQUAL_SPLIT):
>-            raise Warning.ExpectedEquals(self.FileName, self.CurrentLineNumber)
>-
>-        if self._IsToken("-"):
>-            CompStatementObj.CompSize = self._Token
>-        elif self._GetNextDecimalNumber():
>-            CompStatementObj.CompSize = self._Token
>-        elif self._GetNextHexNumber():
>-            CompStatementObj.CompSize = self._Token
>-        else:
>-            raise Warning("Unknown size '%s'" % self._Token, self.FileName,
>self.CurrentLineNumber)
>-
>-        VtfObj.ComponentStatementList.append(CompStatementObj)
>-        return True
>-
>     ## _GetOptionRom() method
>     #
>     #   Get OptionROM section contents and store its data into OptionROM list
>of self.Profile
>     #
>     #   @param  self        The object pointer
>diff --git a/BaseTools/Source/Python/GenFds/Fv.py
>b/BaseTools/Source/Python/GenFds/Fv.py
>index d89e7bfbdd..bd5c259348 100644
>--- a/BaseTools/Source/Python/GenFds/Fv.py
>+++ b/BaseTools/Source/Python/GenFds/Fv.py
>@@ -72,15 +72,14 @@ class FV (object):
>     #   @param  Buffer      The buffer generated FV data will be put
>     #   @param  BaseAddress base address of FV
>     #   @param  BlockSize   block size of FV
>     #   @param  BlockNum    How many blocks in FV
>     #   @param  ErasePolarity      Flash erase polarity
>-    #   @param  VtfDict     VTF objects
>     #   @param  MacroDict   macro value pair
>     #   @retval string      Generated FV file path
>     #
>-    def AddToBuffer (self, Buffer, BaseAddress=None, BlockSize= None,
>BlockNum=None, ErasePloarity='1', VtfDict=None, MacroDict = {}, Flag=False):
>+    def AddToBuffer (self, Buffer, BaseAddress=None, BlockSize= None,
>BlockNum=None, ErasePloarity='1',  MacroDict = {}, Flag=False):
>         if BaseAddress is None and self.UiFvName.upper() + 'fv' in
>GenFdsGlobalVariable.ImageBinDict:
>             return GenFdsGlobalVariable.ImageBinDict[self.UiFvName.upper() +
>'fv']
>
>         #
>         # Check whether FV in Capsule is in FD flash region.
>@@ -103,11 +102,11 @@ class FV (object):
>         FFSGuid = None
>
>         if self.FvBaseAddress is not None:
>             BaseAddress = self.FvBaseAddress
>         if not Flag:
>-            self._InitializeInf(BaseAddress, BlockSize, BlockNum, ErasePloarity,
>VtfDict)
>+            self._InitializeInf(BaseAddress, BlockSize, BlockNum, ErasePloarity)
>         #
>         # First Process the Apriori section
>         #
>         MacroDict.update(self.DefineVarDict)
>
>@@ -268,13 +267,12 @@ class FV (object):
>     #   @param  self        The object pointer
>     #   @param  BaseAddress base address of FV
>     #   @param  BlockSize   block size of FV
>     #   @param  BlockNum    How many blocks in FV
>     #   @param  ErasePolarity      Flash erase polarity
>-    #   @param  VtfDict     VTF objects
>     #
>-    def _InitializeInf (self, BaseAddress = None, BlockSize= None, BlockNum =
>None, ErasePloarity='1', VtfDict=None):
>+    def _InitializeInf (self, BaseAddress = None, BlockSize= None, BlockNum =
>None, ErasePloarity='1'):
>         #
>         # Create FV inf file
>         #
>         self.InfFileName = os.path.join(GenFdsGlobalVariable.FvDir,
>                                    self.UiFvName + '.inf')
>@@ -433,9 +431,5 @@ class FV (object):
>
>         #
>         # Add [Files]
>         #
>         self.FvInfFile.writelines("[files]" + TAB_LINE_BREAK)
>-        if VtfDict and self.UiFvName in VtfDict:
>-            self.FvInfFile.writelines("EFI_FILE_NAME = "                   + \
>-                                       VtfDict[self.UiFvName]              + \
>-                                       TAB_LINE_BREAK)
>diff --git a/BaseTools/Source/Python/GenFds/GenFds.py
>b/BaseTools/Source/Python/GenFds/GenFds.py
>index 447aa7f5eb..ae67d0cb16 100644
>--- a/BaseTools/Source/Python/GenFds/GenFds.py
>+++ b/BaseTools/Source/Python/GenFds/GenFds.py
>@@ -79,11 +79,10 @@ def resetFdsGlobalVariable():
>     GenFdsGlobalVariable.OutputDirFromDscDict = {}
>     GenFdsGlobalVariable.TargetName = ''
>     GenFdsGlobalVariable.ToolChainTag = ''
>     GenFdsGlobalVariable.RuleDict = {}
>     GenFdsGlobalVariable.ArchList = None
>-    GenFdsGlobalVariable.VtfDict = {}
>     GenFdsGlobalVariable.ActivePlatform = None
>     GenFdsGlobalVariable.FvAddressFileName = ''
>     GenFdsGlobalVariable.VerboseMode = False
>     GenFdsGlobalVariable.DebugLevel = -1
>     GenFdsGlobalVariable.SharpCounter = 0
>@@ -249,19 +248,11 @@ def GenFdsApi(FdsCommandDict,
>WorkSpaceDataBase=None):
>                     Pair = Pair[:-1]
>                 List = Pair.split('=')
>                 if len(List) == 2:
>                     if not List[1].strip():
>                         EdkLogger.error("GenFds", OPTION_VALUE_INVALID,
>ExtraData="No Value given for Macro %s" %List[0])
>-                    if List[0].strip() == "EFI_SOURCE":
>-                        GlobalData.gEfiSource = List[1].strip()
>-                        GlobalData.gGlobalDefines["EFI_SOURCE"] =
>GlobalData.gEfiSource
>-                        continue
>-                    elif List[0].strip() == "EDK_SOURCE":
>-                        GlobalData.gEdkSource = List[1].strip()
>-                        GlobalData.gGlobalDefines["EDK_SOURCE"] =
>GlobalData.gEdkSource
>-                        continue
>-                    elif List[0].strip() in ["WORKSPACE", "TARGET", "TOOLCHAIN"]:
>+                    if List[0].strip() in ["WORKSPACE", "TARGET", "TOOLCHAIN"]:
>                         GlobalData.gGlobalDefines[List[0].strip()] = List[1].strip()
>                     else:
>                         GlobalData.gCommandLineDefines[List[0].strip()] = List[1].strip()
>                 else:
>                     GlobalData.gCommandLineDefines[List[0].strip()] = "TRUE"
>diff --git a/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
>b/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
>index 0812c56bda..51c9ab046c 100644
>--- a/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
>+++ b/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
>@@ -54,11 +54,10 @@ class GenFdsGlobalVariable:
>     OutputDirFromDscDict = {}
>     TargetName = ''
>     ToolChainTag = ''
>     RuleDict = {}
>     ArchList = None
>-    VtfDict = {}
>     ActivePlatform = None
>     FvAddressFileName = ''
>     VerboseMode = False
>     DebugLevel = -1
>     SharpCounter = 0
>diff --git a/BaseTools/Source/Python/GenFds/Region.py
>b/BaseTools/Source/Python/GenFds/Region.py
>index 9aeaa45d45..8ca61254b0 100644
>--- a/BaseTools/Source/Python/GenFds/Region.py
>+++ b/BaseTools/Source/Python/GenFds/Region.py
>@@ -73,16 +73,15 @@ class Region(object):
>     #   @param  Buffer      The buffer generated region data will be put
>     #   @param  BaseAddress base address of region
>     #   @param  BlockSize   block size of region
>     #   @param  BlockNum    How many blocks in region
>     #   @param  ErasePolarity      Flash erase polarity
>-    #   @param  VtfDict     VTF objects
>     #   @param  MacroDict   macro value pair
>     #   @retval string      Generated FV file path
>     #
>
>-    def AddToBuffer(self, Buffer, BaseAddress, BlockSizeList, ErasePolarity,
>ImageBinDict, vtfDict=None, MacroDict={}, Flag=False):
>+    def AddToBuffer(self, Buffer, BaseAddress, BlockSizeList, ErasePolarity,
>ImageBinDict,  MacroDict={}, Flag=False):
>         Size = self.Size
>         if not Flag:
>             GenFdsGlobalVariable.InfLogger('\nGenerate Region at Offset 0x%X' %
>self.Offset)
>             GenFdsGlobalVariable.InfLogger("   Region Size = 0x%X" % Size)
>         GenFdsGlobalVariable.SharpCounter = 0
>@@ -134,11 +133,11 @@ class Region(object):
>                                             "FV (%s) is NOT %s Aligned!" % (FvObj.UiFvName,
>FvObj.FvAlignment))
>                         FvBuffer = BytesIO('')
>                         FvBaseAddress = '0x%X' % self.FvAddress
>                         BlockSize = None
>                         BlockNum = None
>-                        FvObj.AddToBuffer(FvBuffer, FvBaseAddress, BlockSize,
>BlockNum, ErasePolarity, vtfDict, Flag=Flag)
>+                        FvObj.AddToBuffer(FvBuffer, FvBaseAddress, BlockSize,
>BlockNum, ErasePolarity, Flag=Flag)
>                         if Flag:
>                             continue
>
>                         FvBufferLen = len(FvBuffer.getvalue())
>                         if FvBufferLen > Size:
>diff --git a/BaseTools/Source/Python/GenFds/Vtf.py
>b/BaseTools/Source/Python/GenFds/Vtf.py
>deleted file mode 100644
>index 9dcd48b2d8..0000000000
>--- a/BaseTools/Source/Python/GenFds/Vtf.py
>+++ /dev/null
>@@ -1,200 +0,0 @@
>-## @file
>-# process VTF generation
>-#
>-#  Copyright (c) 2007 - 2018, 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.
>-#
>-
>-##
>-# Import Modules
>-#
>-from __future__ import absolute_import
>-from .GenFdsGlobalVariable import GenFdsGlobalVariable
>-import Common.LongFilePathOs as os
>-from Common.LongFilePathSupport import OpenLongFilePath as open
>-from Common.DataType import TAB_LINE_BREAK
>-
>-## generate VTF
>-#
>-#
>-class Vtf (object):
>-
>-    ## The constructor
>-    #
>-    #   @param  self        The object pointer
>-    #
>-    def __init__(self):
>-        self.KeyArch = None
>-        self.ArchList = None
>-        self.UiName = None
>-        self.ResetBin = None
>-        self.ComponentStatementList = []
>-
>-    ## GenVtf() method
>-    #
>-    #   Generate VTF
>-    #
>-    #   @param  self        The object pointer
>-    #   @param  FdAddressDict   dictionary contains FV name and its base
>address
>-    #   @retval Dict        FV and corresponding VTF file name
>-    #
>-    def GenVtf(self, FdAddressDict) :
>-        self.GenBsfInf()
>-        BaseAddArg = self.GetBaseAddressArg(FdAddressDict)
>-        OutputArg, VtfRawDict = self.GenOutputArg()
>-
>-        Cmd = (
>-            'GenVtf',
>-            ) + OutputArg + (
>-            '-f', self.BsfInfName,
>-            ) + BaseAddArg
>-
>-        GenFdsGlobalVariable.CallExternalTool(Cmd, "GenFv -Vtf Failed!")
>-        GenFdsGlobalVariable.SharpCounter = 0
>-
>-        return VtfRawDict
>-
>-    ## GenBsfInf() method
>-    #
>-    #   Generate inf used to generate VTF
>-    #
>-    #   @param  self        The object pointer
>-    #
>-    def GenBsfInf (self):
>-        FvList = self.GetFvList()
>-        self.BsfInfName = os.path.join(GenFdsGlobalVariable.FvDir, self.UiName
>+ '.inf')
>-        BsfInf = open(self.BsfInfName, 'w+')
>-        if self.ResetBin:
>-            BsfInf.writelines ("[OPTIONS]" + TAB_LINE_BREAK)
>-            BsfInf.writelines ("IA32_RST_BIN" + \
>-                               " = " + \
>-
>GenFdsGlobalVariable.MacroExtend(GenFdsGlobalVariable.ReplaceWorkspac
>eMacro(self.ResetBin)) + \
>-                               TAB_LINE_BREAK)
>-            BsfInf.writelines (TAB_LINE_BREAK)
>-
>-        BsfInf.writelines ("[COMPONENTS]" + TAB_LINE_BREAK)
>-
>-        for ComponentObj in self.ComponentStatementList :
>-            BsfInf.writelines ("COMP_NAME" + \
>-                               " = " + \
>-                               ComponentObj.CompName + \
>-                               TAB_LINE_BREAK)
>-            if ComponentObj.CompLoc.upper() == 'NONE':
>-                BsfInf.writelines ("COMP_LOC" + \
>-                                   " = " + \
>-                                   'N' + \
>-                                   TAB_LINE_BREAK)
>-
>-            elif ComponentObj.FilePos:
>-                BsfInf.writelines ("COMP_LOC" + \
>-                                   " = " + \
>-                                   ComponentObj.FilePos + \
>-                                   TAB_LINE_BREAK)
>-            else:
>-                Index = FvList.index(ComponentObj.CompLoc.upper())
>-                if Index == 0:
>-                    BsfInf.writelines ("COMP_LOC" + \
>-                                       " = " + \
>-                                       'F' + \
>-                                       TAB_LINE_BREAK)
>-                elif Index == 1:
>-                    BsfInf.writelines ("COMP_LOC" + \
>-                                       " = " + \
>-                                       'S' + \
>-                                       TAB_LINE_BREAK)
>-
>-            BsfInf.writelines ("COMP_TYPE" + \
>-                               " = " + \
>-                               ComponentObj.CompType + \
>-                               TAB_LINE_BREAK)
>-            BsfInf.writelines ("COMP_VER" + \
>-                               " = " + \
>-                               ComponentObj.CompVer + \
>-                               TAB_LINE_BREAK)
>-            BsfInf.writelines ("COMP_CS" + \
>-                               " = " + \
>-                               ComponentObj.CompCs + \
>-                               TAB_LINE_BREAK)
>-
>-            BinPath = ComponentObj.CompBin
>-            if BinPath != '-':
>-                BinPath =
>GenFdsGlobalVariable.MacroExtend(GenFdsGlobalVariable.ReplaceWorkspac
>eMacro(BinPath))
>-            BsfInf.writelines ("COMP_BIN" + \
>-                               " = " + \
>-                               BinPath + \
>-                               TAB_LINE_BREAK)
>-
>-            SymPath = ComponentObj.CompSym
>-            if SymPath != '-':
>-                SymPath =
>GenFdsGlobalVariable.MacroExtend(GenFdsGlobalVariable.ReplaceWorkspac
>eMacro(SymPath))
>-            BsfInf.writelines ("COMP_SYM" + \
>-                               " = " + \
>-                               SymPath + \
>-                               TAB_LINE_BREAK)
>-            BsfInf.writelines ("COMP_SIZE" + \
>-                               " = " + \
>-                               ComponentObj.CompSize + \
>-                               TAB_LINE_BREAK)
>-            BsfInf.writelines (TAB_LINE_BREAK)
>-
>-        BsfInf.close()
>-
>-    ## GenFvList() method
>-    #
>-    #   Get FV list referenced by VTF components
>-    #
>-    #   @param  self        The object pointer
>-    #
>-    def GetFvList(self):
>-        FvList = []
>-        for component in self.ComponentStatementList :
>-            if component.CompLoc.upper() != 'NONE' and not
>(component.CompLoc.upper() in FvList):
>-                FvList.append(component.CompLoc.upper())
>-
>-        return FvList
>-
>-    ## GetBaseAddressArg() method
>-    #
>-    #   Get base address arguments for GenVtf
>-    #
>-    #   @param  self        The object pointer
>-    #
>-    def GetBaseAddressArg(self, FdAddressDict):
>-        FvList = self.GetFvList()
>-        CmdStr = tuple()
>-        for i in FvList:
>-            (BaseAddress, Size) = FdAddressDict.get(i)
>-            CmdStr += (
>-                '-r', '0x%x' % BaseAddress,
>-                '-s', '0x%x' % Size,
>-                )
>-        return CmdStr
>-
>-    ## GenOutputArg() method
>-    #
>-    #   Get output arguments for GenVtf
>-    #
>-    #   @param  self        The object pointer
>-    #
>-    def GenOutputArg(self):
>-        FvVtfDict = {}
>-        OutputFileName = ''
>-        FvList = self.GetFvList()
>-        Index = 0
>-        Arg = tuple()
>-        for FvObj in FvList:
>-            Index = Index + 1
>-            OutputFileName = 'Vtf%d.raw' % Index
>-            OutputFileName = os.path.join(GenFdsGlobalVariable.FvDir,
>OutputFileName)
>-            Arg += ('-o', OutputFileName)
>-            FvVtfDict[FvObj.upper()] = OutputFileName
>-
>-        return Arg, FvVtfDict
>-
>diff --git a/BaseTools/Source/Python/TargetTool/TargetTool.py
>b/BaseTools/Source/Python/TargetTool/TargetTool.py
>index 8d523a6ab8..a49a01f9e3 100644
>--- a/BaseTools/Source/Python/TargetTool/TargetTool.py
>+++ b/BaseTools/Source/Python/TargetTool/TargetTool.py
>@@ -201,12 +201,12 @@ def RangeCheckCallback(option, opt_str, value,
>parser):
>     else:
>         parser.error("Option %s only allows one instance in command line!" %
>option)
>
> def MyOptionParser():
>     parser = OptionParser(version=__version__, prog="TargetTool.exe",
>usage=__usage__, description=__copyright__)
>-    parser.add_option("-a", "--arch", action="append", type="choice",
>choices=['IA32', 'X64', 'IPF', 'EBC', 'ARM', 'AARCH64', '0'], dest="TARGET_ARCH",
>-        help="ARCHS is one of list: IA32, X64, IPF, ARM, AARCH64 or EBC, which
>replaces target.txt's TARGET_ARCH definition. To specify more archs, please
>repeat this option. 0 will clear this setting in target.txt and can't combine with
>other value.")
>+    parser.add_option("-a", "--arch", action="append", type="choice",
>choices=['IA32', 'X64', 'EBC', 'ARM', 'AARCH64', '0'], dest="TARGET_ARCH",
>+        help="ARCHS is one of list: IA32, X64, ARM, AARCH64 or EBC, which
>replaces target.txt's TARGET_ARCH definition. To specify more archs, please
>repeat this option. 0 will clear this setting in target.txt and can't combine with
>other value.")
>     parser.add_option("-p", "--platform", action="callback", type="string",
>dest="DSCFILE", callback=SingleCheckCallback,
>         help="Specify a DSC file, which replace target.txt's ACTIVE_PLATFORM
>definition. 0 will clear this setting in target.txt and can't combine with other
>value.")
>     parser.add_option("-c", "--tooldef", action="callback", type="string",
>dest="TOOL_DEFINITION_FILE", callback=SingleCheckCallback,
>         help="Specify the WORKSPACE relative path of tool_def.txt file, which
>replace target.txt's TOOL_CHAIN_CONF definition. 0 will clear this setting in
>target.txt and can't combine with other value.")
>     parser.add_option("-t", "--target", action="append", type="choice",
>choices=['DEBUG', 'RELEASE', '0'], dest="TARGET",
>diff --git a/BaseTools/Source/Python/build/build.py
>b/BaseTools/Source/Python/build/build.py
>index b550bbc3b2..06977002e8 100644
>--- a/BaseTools/Source/Python/build/build.py
>+++ b/BaseTools/Source/Python/build/build.py
>@@ -1396,15 +1396,11 @@ class Build():
>                     if len (StrList) > 4:
>                         if StrList[3] == 'f' or StrList[3] == 'F':
>                             Name = StrList[1]
>                             RelativeAddress = int (StrList[2], 16) - OrigImageBaseAddress
>                             FunctionList.append ((Name, RelativeAddress))
>-                            if ModuleInfo.Arch == 'IPF' and
>Name.endswith('_ModuleEntryPoint'):
>-                                #
>-                                # Get the real entry point address for IPF image.
>-                                #
>-                                ModuleInfo.Image.EntryPoint = RelativeAddress
>+
>                 ImageMap.close()
>             #
>             # Add general information.
>             #
>             if ModeIsSmm:
>@@ -1498,13 +1494,10 @@ class Build():
>         PeiSize = 0
>         BtSize  = 0
>         RtSize  = 0
>         # reserve 4K size in SMRAM to make SMM module address not from 0.
>         SmmSize = 0x1000
>-        IsIpfPlatform = False
>-        if 'IPF' in self.ArchList:
>-            IsIpfPlatform = True
>         for ModuleGuid in ModuleList:
>             Module = ModuleList[ModuleGuid]
>             GlobalData.gProcessingFile = "%s [%s, %s, %s]" % (Module.MetaFile,
>Module.Arch, Module.ToolChain, Module.BuildTarget)
>
>             OutputImageFile = ''
>@@ -1524,13 +1517,10 @@ class Build():
>                     elif Module.ModuleType in [EDK_COMPONENT_TYPE_BS_DRIVER,
>SUP_MODULE_DXE_DRIVER, SUP_MODULE_UEFI_DRIVER]:
>                         BtModuleList[Module.MetaFile] = ImageInfo
>                         BtSize += ImageInfo.Image.Size
>                     elif Module.ModuleType in
>[SUP_MODULE_DXE_RUNTIME_DRIVER,
>EDK_COMPONENT_TYPE_RT_DRIVER, SUP_MODULE_DXE_SAL_DRIVER,
>EDK_COMPONENT_TYPE_SAL_RT_DRIVER]:
>                         RtModuleList[Module.MetaFile] = ImageInfo
>-                        #IPF runtime driver needs to be at 2 page alignment.
>-                        if IsIpfPlatform and ImageInfo.Image.Size % 0x2000 != 0:
>-                            ImageInfo.Image.Size = (ImageInfo.Image.Size / 0x2000 + 1) *
>0x2000
>                         RtSize += ImageInfo.Image.Size
>                     elif Module.ModuleType in [SUP_MODULE_SMM_CORE,
>SUP_MODULE_DXE_SMM_DRIVER, SUP_MODULE_MM_STANDALONE,
>SUP_MODULE_MM_CORE_STANDALONE]:
>                         SmmModuleList[Module.MetaFile] = ImageInfo
>                         SmmSize += ImageInfo.Image.Size
>                         if Module.ModuleType == SUP_MODULE_DXE_SMM_DRIVER:
>@@ -1573,14 +1563,10 @@ class Build():
>             TopMemoryAddress = 0
>         else:
>             TopMemoryAddress = self.LoadFixAddress
>             if TopMemoryAddress < RtSize + BtSize + PeiSize:
>                 EdkLogger.error("build", PARAMETER_INVALID,
>"FIX_LOAD_TOP_MEMORY_ADDRESS is too low to load driver")
>-            # Make IPF runtime driver at 2 page alignment.
>-            if IsIpfPlatform:
>-                ReservedRuntimeMemorySize = TopMemoryAddress % 0x2000
>-                RtSize = RtSize + ReservedRuntimeMemorySize
>
>         #
>         # Patch FixAddress related PCDs into EFI image
>         #
>         for EfiImage in PatchEfiImageList:
>@@ -2236,12 +2222,12 @@ def LogBuildTime(Time):
> #   @retval Opt   A optparse.Values object containing the parsed options
> #   @retval Args  Target of build command
> #
> def MyOptionParser():
>     Parser = OptionParser(description=__copyright__, version=__version__,
>prog="build.exe", usage="%prog [options]
>[all|fds|genc|genmake|clean|cleanall|cleanlib|modules|libraries|run]")
>-    Parser.add_option("-a", "--arch", action="append", type="choice",
>choices=['IA32', 'X64', 'IPF', 'EBC', 'ARM', 'AARCH64'], dest="TargetArch",
>-        help="ARCHS is one of list: IA32, X64, IPF, ARM, AARCH64 or EBC, which
>overrides target.txt's TARGET_ARCH definition. To specify more archs, please
>repeat this option.")
>+    Parser.add_option("-a", "--arch", action="append", type="choice",
>choices=['IA32', 'X64', 'EBC', 'ARM', 'AARCH64'], dest="TargetArch",
>+        help="ARCHS is one of list: IA32, X64, ARM, AARCH64 or EBC, which
>overrides target.txt's TARGET_ARCH definition. To specify more archs, please
>repeat this option.")
>     Parser.add_option("-p", "--platform", action="callback", type="string",
>dest="PlatformFile", callback=SingleCheckCallback,
>         help="Build the platform specified by the DSC file name argument,
>overriding target.txt's ACTIVE_PLATFORM definition.")
>     Parser.add_option("-m", "--module", action="callback", type="string",
>dest="ModuleFile", callback=SingleCheckCallback,
>         help="Build the module specified by the INF file name argument.")
>     Parser.add_option("-b", "--buildtarget", type="string", dest="BuildTarget",
>help="Using the TARGET to build the platform, overriding target.txt's TARGET
>definition.",
>--
>2.19.1.windows.1



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-01-14  0:12 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-01-09  6:44 [Patch 2/3] BaseTools: Remove unused logic for IPF BobCF
2019-01-14  0:12 ` Gao, Liming

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox