mirror of https://github.com/acidanthera/audk.git
BaseTools: Remove unused logic for IPF
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1350 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> Reviewed-by: Jaben Carsey <jaben.carsey@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
parent
8229250132
commit
39879ef267
|
@ -54,12 +54,11 @@ 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'
|
||||
|
@ -136,7 +135,6 @@ 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
|
||||
|
@ -145,7 +143,6 @@ 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
|
||||
|
@ -154,7 +151,6 @@ 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
|
||||
|
@ -163,7 +159,6 @@ 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
|
||||
|
@ -172,7 +167,6 @@ 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
|
||||
|
@ -181,7 +175,6 @@ 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
|
||||
|
@ -190,7 +183,6 @@ 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
|
||||
|
@ -199,7 +191,6 @@ 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
|
||||
|
@ -227,7 +218,6 @@ 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
|
||||
|
@ -236,7 +226,6 @@ 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
|
||||
|
@ -245,7 +234,6 @@ 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
|
||||
|
@ -257,7 +245,6 @@ 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
|
||||
|
@ -269,7 +256,6 @@ 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
|
||||
|
@ -296,7 +282,6 @@ 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
|
||||
|
@ -309,7 +294,6 @@ 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
|
||||
|
@ -318,7 +302,6 @@ 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
|
||||
|
|
|
@ -35,7 +35,6 @@ class FDClassObject:
|
|||
# SetVarDict[var] = value
|
||||
self.SetVarDict = {}
|
||||
self.RegionList = []
|
||||
self.vtfRawDict = {}
|
||||
|
||||
## FFS data in FDF
|
||||
#
|
||||
|
@ -305,25 +304,6 @@ class CapsuleClassObject :
|
|||
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
|
||||
#
|
||||
#
|
||||
|
|
|
@ -929,8 +929,6 @@ class Ffs(Image):
|
|||
_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
|
||||
|
|
|
@ -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)
|
|
@ -66,9 +66,6 @@ class FD(FDClassObject):
|
|||
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':
|
||||
|
@ -93,7 +90,7 @@ class FD(FDClassObject):
|
|||
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
|
||||
#
|
||||
|
@ -102,7 +99,7 @@ class FD(FDClassObject):
|
|||
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
|
||||
|
@ -123,7 +120,7 @@ class FD(FDClassObject):
|
|||
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
|
||||
#
|
||||
|
@ -137,7 +134,7 @@ class FD(FDClassObject):
|
|||
# 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
|
||||
#
|
||||
|
@ -148,51 +145,6 @@ class FD(FDClassObject):
|
|||
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
|
||||
|
|
|
@ -53,8 +53,6 @@ from .CapsuleData import CapsuleFfs, CapsulePayload, CapsuleFv, CapsuleFd, Capsu
|
|||
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
|
||||
|
@ -234,7 +232,6 @@ class FileProfile:
|
|||
self.FdNameNotSet = False
|
||||
self.FvDict = {}
|
||||
self.CapsuleDict = {}
|
||||
self.VtfList = []
|
||||
self.RuleDict = {}
|
||||
self.OptRomDict = {}
|
||||
self.FmpPayloadDict = {}
|
||||
|
@ -478,7 +475,6 @@ class FdfParser:
|
|||
# [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)
|
||||
|
@ -489,12 +485,6 @@ class FdfParser:
|
|||
|
||||
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:
|
||||
|
@ -1330,7 +1320,7 @@ class FdfParser:
|
|||
#
|
||||
# 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:
|
||||
|
@ -1358,8 +1348,8 @@ class FdfParser:
|
|||
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
|
||||
#
|
||||
|
@ -1432,7 +1422,7 @@ class FdfParser:
|
|||
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
|
||||
|
@ -4081,211 +4071,6 @@ class FdfParser:
|
|||
|
||||
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
|
||||
|
|
|
@ -74,11 +74,10 @@ class FV (object):
|
|||
# @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']
|
||||
|
||||
|
@ -105,7 +104,7 @@ class FV (object):
|
|||
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
|
||||
#
|
||||
|
@ -270,9 +269,8 @@ class FV (object):
|
|||
# @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
|
||||
#
|
||||
|
@ -435,7 +433,3 @@ 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)
|
||||
|
|
|
@ -81,7 +81,6 @@ def resetFdsGlobalVariable():
|
|||
GenFdsGlobalVariable.ToolChainTag = ''
|
||||
GenFdsGlobalVariable.RuleDict = {}
|
||||
GenFdsGlobalVariable.ArchList = None
|
||||
GenFdsGlobalVariable.VtfDict = {}
|
||||
GenFdsGlobalVariable.ActivePlatform = None
|
||||
GenFdsGlobalVariable.FvAddressFileName = ''
|
||||
GenFdsGlobalVariable.VerboseMode = False
|
||||
|
@ -251,15 +250,7 @@ def GenFdsApi(FdsCommandDict, WorkSpaceDataBase=None):
|
|||
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()
|
||||
|
|
|
@ -56,7 +56,6 @@ class GenFdsGlobalVariable:
|
|||
ToolChainTag = ''
|
||||
RuleDict = {}
|
||||
ArchList = None
|
||||
VtfDict = {}
|
||||
ActivePlatform = None
|
||||
FvAddressFileName = ''
|
||||
VerboseMode = False
|
||||
|
|
|
@ -75,12 +75,11 @@ class Region(object):
|
|||
# @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)
|
||||
|
@ -136,7 +135,7 @@ class Region(object):
|
|||
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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
@ -203,8 +203,8 @@ def RangeCheckCallback(option, opt_str, value, parser):
|
|||
|
||||
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,
|
||||
|
|
|
@ -1398,11 +1398,7 @@ class Build():
|
|||
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.
|
||||
|
@ -1500,9 +1496,6 @@ class Build():
|
|||
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)
|
||||
|
@ -1526,9 +1519,6 @@ class Build():
|
|||
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
|
||||
|
@ -1575,10 +1565,6 @@ class Build():
|
|||
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
|
||||
|
@ -2238,8 +2224,8 @@ def LogBuildTime(Time):
|
|||
#
|
||||
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,
|
||||
|
|
Loading…
Reference in New Issue