* [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