From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.24; helo=mga09.intel.com; envelope-from=liming.gao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 498F72117D764 for ; Sun, 13 Jan 2019 16:12:51 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Jan 2019 16:12:50 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,475,1539673200"; d="scan'208";a="311516603" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga005.fm.intel.com with ESMTP; 13 Jan 2019 16:12:50 -0800 Received: from fmsmsx113.amr.corp.intel.com (10.18.116.7) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.408.0; Sun, 13 Jan 2019 16:12:50 -0800 Received: from shsmsx107.ccr.corp.intel.com (10.239.4.96) by FMSMSX113.amr.corp.intel.com (10.18.116.7) with Microsoft SMTP Server (TLS) id 14.3.408.0; Sun, 13 Jan 2019 16:12:49 -0800 Received: from shsmsx152.ccr.corp.intel.com ([169.254.6.44]) by SHSMSX107.ccr.corp.intel.com ([169.254.9.239]) with mapi id 14.03.0415.000; Mon, 14 Jan 2019 08:12:46 +0800 From: "Gao, Liming" To: "Feng, Bob C" , "edk2-devel@lists.01.org" CC: "Carsey, Jaben" Thread-Topic: [Patch 2/3] BaseTools: Remove unused logic for IPF Thread-Index: AQHUp+bWSrVkTbPF6kqvISQ6IWF8lKWt6iNw Date: Mon, 14 Jan 2019 00:12:45 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E3B0E1E@SHSMSX152.ccr.corp.intel.com> References: <20190109064436.61664-1-bob.c.feng@intel.com> In-Reply-To: <20190109064436.61664-1-bob.c.feng@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [Patch 2/3] BaseTools: Remove unused logic for IPF X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jan 2019 00:12:51 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Bob: The code change is good. Reviewed-by: Liming Gao Besides, I create another BZ (https://bugzilla.tianocore.org/show_bug.cgi= ?id=3D1453) to remove EDK module type and IPF arch in EDKII INF/DEC/DSC/FDF= spec. Please work on it.=20 >-----Original Message----- >From: Feng, Bob C >Sent: Wednesday, January 09, 2019 2:45 PM >To: edk2-devel@lists.01.org >Cc: Feng, Bob C ; Gao, Liming >; Carsey, Jaben >Subject: [Patch 2/3] BaseTools: Remove unused logic for IPF > >From: "Feng, Bob C" > >Remove IPF support from BaseTools C code. > >Contributed-under: TianoCore Contribution Agreement 1.1 >Signed-off-by: Bob Feng >Cc: Liming Gao >Cc: Jaben Carsey >--- > 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 =3D 'FV' > > TAB_ARCH_NULL =3D '' > TAB_ARCH_COMMON =3D 'COMMON' > TAB_ARCH_IA32 =3D 'IA32' > TAB_ARCH_X64 =3D 'X64' >-TAB_ARCH_IPF =3D 'IPF' > TAB_ARCH_ARM =3D 'ARM' > TAB_ARCH_EBC =3D 'EBC' > TAB_ARCH_AARCH64 =3D 'AARCH64' > >-ARCH_SET_FULL =3D {TAB_ARCH_IA32, TAB_ARCH_X64, TAB_ARCH_IPF, >TAB_ARCH_ARM, TAB_ARCH_EBC, TAB_ARCH_AARCH64, >TAB_ARCH_COMMON} >+ARCH_SET_FULL =3D {TAB_ARCH_IA32, TAB_ARCH_X64, TAB_ARCH_ARM, >TAB_ARCH_EBC, TAB_ARCH_AARCH64, TAB_ARCH_COMMON} > > SUP_MODULE_BASE =3D 'BASE' > SUP_MODULE_SEC =3D 'SEC' > SUP_MODULE_PEI_CORE =3D 'PEI_CORE' > SUP_MODULE_PEIM =3D 'PEIM' >@@ -134,74 +133,66 @@ PLATFORM_COMPONENT_TYPE_MODULE =3D >'MODULE' > > TAB_SOURCES =3D 'Sources' > TAB_SOURCES_COMMON =3D TAB_SOURCES + TAB_SPLIT + >TAB_ARCH_COMMON > TAB_SOURCES_IA32 =3D TAB_SOURCES + TAB_SPLIT + TAB_ARCH_IA32 > TAB_SOURCES_X64 =3D TAB_SOURCES + TAB_SPLIT + TAB_ARCH_X64 >-TAB_SOURCES_IPF =3D TAB_SOURCES + TAB_SPLIT + TAB_ARCH_IPF > TAB_SOURCES_ARM =3D TAB_SOURCES + TAB_SPLIT + TAB_ARCH_ARM > TAB_SOURCES_EBC =3D TAB_SOURCES + TAB_SPLIT + TAB_ARCH_EBC > TAB_SOURCES_AARCH64 =3D TAB_SOURCES + TAB_SPLIT + >TAB_ARCH_AARCH64 > > TAB_BINARIES =3D 'Binaries' > TAB_BINARIES_COMMON =3D TAB_BINARIES + TAB_SPLIT + >TAB_ARCH_COMMON > TAB_BINARIES_IA32 =3D TAB_BINARIES + TAB_SPLIT + TAB_ARCH_IA32 > TAB_BINARIES_X64 =3D TAB_BINARIES + TAB_SPLIT + TAB_ARCH_X64 >-TAB_BINARIES_IPF =3D TAB_BINARIES + TAB_SPLIT + TAB_ARCH_IPF > TAB_BINARIES_ARM =3D TAB_BINARIES + TAB_SPLIT + TAB_ARCH_ARM > TAB_BINARIES_EBC =3D TAB_BINARIES + TAB_SPLIT + TAB_ARCH_EBC > TAB_BINARIES_AARCH64 =3D TAB_BINARIES + TAB_SPLIT + >TAB_ARCH_AARCH64 > > TAB_INCLUDES =3D 'Includes' > TAB_INCLUDES_COMMON =3D TAB_INCLUDES + TAB_SPLIT + >TAB_ARCH_COMMON > TAB_INCLUDES_IA32 =3D TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_IA32 > TAB_INCLUDES_X64 =3D TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_X64 >-TAB_INCLUDES_IPF =3D TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_IPF > TAB_INCLUDES_ARM =3D TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_ARM > TAB_INCLUDES_EBC =3D TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_EBC > TAB_INCLUDES_AARCH64 =3D TAB_INCLUDES + TAB_SPLIT + >TAB_ARCH_AARCH64 > > TAB_GUIDS =3D 'Guids' > TAB_GUIDS_COMMON =3D TAB_GUIDS + TAB_SPLIT + TAB_ARCH_COMMON > TAB_GUIDS_IA32 =3D TAB_GUIDS + TAB_SPLIT + TAB_ARCH_IA32 > TAB_GUIDS_X64 =3D TAB_GUIDS + TAB_SPLIT + TAB_ARCH_X64 >-TAB_GUIDS_IPF =3D TAB_GUIDS + TAB_SPLIT + TAB_ARCH_IPF > TAB_GUIDS_ARM =3D TAB_GUIDS + TAB_SPLIT + TAB_ARCH_ARM > TAB_GUIDS_EBC =3D TAB_GUIDS + TAB_SPLIT + TAB_ARCH_EBC > TAB_GUIDS_AARCH64 =3D TAB_GUIDS + TAB_SPLIT + TAB_ARCH_AARCH64 > > TAB_PROTOCOLS =3D 'Protocols' > TAB_PROTOCOLS_COMMON =3D TAB_PROTOCOLS + TAB_SPLIT + >TAB_ARCH_COMMON > TAB_PROTOCOLS_IA32 =3D TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_IA32 > TAB_PROTOCOLS_X64 =3D TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_X64 >-TAB_PROTOCOLS_IPF =3D TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_IPF > TAB_PROTOCOLS_ARM =3D TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_ARM > TAB_PROTOCOLS_EBC =3D TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_EBC > TAB_PROTOCOLS_AARCH64 =3D TAB_PROTOCOLS + TAB_SPLIT + >TAB_ARCH_AARCH64 > > TAB_PPIS =3D 'Ppis' > TAB_PPIS_COMMON =3D TAB_PPIS + TAB_SPLIT + TAB_ARCH_COMMON > TAB_PPIS_IA32 =3D TAB_PPIS + TAB_SPLIT + TAB_ARCH_IA32 > TAB_PPIS_X64 =3D TAB_PPIS + TAB_SPLIT + TAB_ARCH_X64 >-TAB_PPIS_IPF =3D TAB_PPIS + TAB_SPLIT + TAB_ARCH_IPF > TAB_PPIS_ARM =3D TAB_PPIS + TAB_SPLIT + TAB_ARCH_ARM > TAB_PPIS_EBC =3D TAB_PPIS + TAB_SPLIT + TAB_ARCH_EBC > TAB_PPIS_AARCH64 =3D TAB_PPIS + TAB_SPLIT + TAB_ARCH_AARCH64 > > TAB_LIBRARY_CLASSES =3D 'LibraryClasses' > TAB_LIBRARY_CLASSES_COMMON =3D TAB_LIBRARY_CLASSES + TAB_SPLIT + >TAB_ARCH_COMMON > TAB_LIBRARY_CLASSES_IA32 =3D TAB_LIBRARY_CLASSES + TAB_SPLIT + >TAB_ARCH_IA32 > TAB_LIBRARY_CLASSES_X64 =3D TAB_LIBRARY_CLASSES + TAB_SPLIT + >TAB_ARCH_X64 >-TAB_LIBRARY_CLASSES_IPF =3D TAB_LIBRARY_CLASSES + TAB_SPLIT + >TAB_ARCH_IPF > TAB_LIBRARY_CLASSES_ARM =3D TAB_LIBRARY_CLASSES + TAB_SPLIT + >TAB_ARCH_ARM > TAB_LIBRARY_CLASSES_EBC =3D TAB_LIBRARY_CLASSES + TAB_SPLIT + >TAB_ARCH_EBC > TAB_LIBRARY_CLASSES_AARCH64 =3D TAB_LIBRARY_CLASSES + TAB_SPLIT + >TAB_ARCH_AARCH64 > > TAB_PACKAGES =3D 'Packages' > TAB_PACKAGES_COMMON =3D TAB_PACKAGES + TAB_SPLIT + >TAB_ARCH_COMMON > TAB_PACKAGES_IA32 =3D TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_IA32 > TAB_PACKAGES_X64 =3D TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_X64 >-TAB_PACKAGES_IPF =3D TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_IPF > TAB_PACKAGES_ARM =3D TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_ARM > TAB_PACKAGES_EBC =3D TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_EBC > TAB_PACKAGES_AARCH64 =3D TAB_PACKAGES + TAB_SPLIT + >TAB_ARCH_AARCH64 > > TAB_PCDS =3D 'Pcds' >@@ -225,29 +216,26 @@ PCD_TYPE_LIST =3D [TAB_PCDS_FIXED_AT_BUILD, >TAB_PCDS_PATCHABLE_IN_MODULE, TAB_PCDS > > TAB_PCDS_FIXED_AT_BUILD_NULL =3D TAB_PCDS + >TAB_PCDS_FIXED_AT_BUILD > TAB_PCDS_FIXED_AT_BUILD_COMMON =3D TAB_PCDS + >TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_COMMON > TAB_PCDS_FIXED_AT_BUILD_IA32 =3D TAB_PCDS + >TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_IA32 > TAB_PCDS_FIXED_AT_BUILD_X64 =3D TAB_PCDS + >TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_X64 >-TAB_PCDS_FIXED_AT_BUILD_IPF =3D TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD >+ TAB_SPLIT + TAB_ARCH_IPF > TAB_PCDS_FIXED_AT_BUILD_ARM =3D TAB_PCDS + >TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_ARM > TAB_PCDS_FIXED_AT_BUILD_EBC =3D TAB_PCDS + >TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_EBC > TAB_PCDS_FIXED_AT_BUILD_AARCH64 =3D TAB_PCDS + >TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_AARCH64 > > TAB_PCDS_PATCHABLE_IN_MODULE_NULL =3D TAB_PCDS + >TAB_PCDS_PATCHABLE_IN_MODULE > TAB_PCDS_PATCHABLE_IN_MODULE_COMMON =3D TAB_PCDS + >TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_COMMON > TAB_PCDS_PATCHABLE_IN_MODULE_IA32 =3D TAB_PCDS + >TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_IA32 > TAB_PCDS_PATCHABLE_IN_MODULE_X64 =3D TAB_PCDS + >TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_X64 >-TAB_PCDS_PATCHABLE_IN_MODULE_IPF =3D TAB_PCDS + >TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_IPF > TAB_PCDS_PATCHABLE_IN_MODULE_ARM =3D TAB_PCDS + >TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_ARM > TAB_PCDS_PATCHABLE_IN_MODULE_EBC =3D TAB_PCDS + >TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_EBC > TAB_PCDS_PATCHABLE_IN_MODULE_AARCH64 =3D TAB_PCDS + >TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_AARCH64 > > TAB_PCDS_FEATURE_FLAG_NULL =3D TAB_PCDS + TAB_PCDS_FEATURE_FLAG > TAB_PCDS_FEATURE_FLAG_COMMON =3D TAB_PCDS + >TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + TAB_ARCH_COMMON > TAB_PCDS_FEATURE_FLAG_IA32 =3D TAB_PCDS + TAB_PCDS_FEATURE_FLAG + >TAB_SPLIT + TAB_ARCH_IA32 > TAB_PCDS_FEATURE_FLAG_X64 =3D TAB_PCDS + TAB_PCDS_FEATURE_FLAG + >TAB_SPLIT + TAB_ARCH_X64 >-TAB_PCDS_FEATURE_FLAG_IPF =3D TAB_PCDS + TAB_PCDS_FEATURE_FLAG + >TAB_SPLIT + TAB_ARCH_IPF > TAB_PCDS_FEATURE_FLAG_ARM =3D TAB_PCDS + TAB_PCDS_FEATURE_FLAG >+ TAB_SPLIT + TAB_ARCH_ARM > TAB_PCDS_FEATURE_FLAG_EBC =3D TAB_PCDS + TAB_PCDS_FEATURE_FLAG + >TAB_SPLIT + TAB_ARCH_EBC > TAB_PCDS_FEATURE_FLAG_AARCH64 =3D TAB_PCDS + >TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + TAB_ARCH_AARCH64 > > TAB_PCDS_DYNAMIC_EX_NULL =3D TAB_PCDS + TAB_PCDS_DYNAMIC_EX >@@ -255,11 +243,10 @@ TAB_PCDS_DYNAMIC_EX_DEFAULT_NULL =3D >TAB_PCDS + TAB_PCDS_DYNAMIC_EX_DEFAULT > TAB_PCDS_DYNAMIC_EX_HII_NULL =3D TAB_PCDS + >TAB_PCDS_DYNAMIC_EX_HII > TAB_PCDS_DYNAMIC_EX_VPD_NULL =3D TAB_PCDS + >TAB_PCDS_DYNAMIC_EX_VPD > TAB_PCDS_DYNAMIC_EX_COMMON =3D TAB_PCDS + >TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + TAB_ARCH_COMMON > TAB_PCDS_DYNAMIC_EX_IA32 =3D TAB_PCDS + TAB_PCDS_DYNAMIC_EX + >TAB_SPLIT + TAB_ARCH_IA32 > TAB_PCDS_DYNAMIC_EX_X64 =3D TAB_PCDS + TAB_PCDS_DYNAMIC_EX + >TAB_SPLIT + TAB_ARCH_X64 >-TAB_PCDS_DYNAMIC_EX_IPF =3D TAB_PCDS + TAB_PCDS_DYNAMIC_EX + >TAB_SPLIT + TAB_ARCH_IPF > TAB_PCDS_DYNAMIC_EX_ARM =3D TAB_PCDS + TAB_PCDS_DYNAMIC_EX + >TAB_SPLIT + TAB_ARCH_ARM > TAB_PCDS_DYNAMIC_EX_EBC =3D TAB_PCDS + TAB_PCDS_DYNAMIC_EX + >TAB_SPLIT + TAB_ARCH_EBC > TAB_PCDS_DYNAMIC_EX_AARCH64 =3D TAB_PCDS + TAB_PCDS_DYNAMIC_EX >+ TAB_SPLIT + TAB_ARCH_AARCH64 > > TAB_PCDS_DYNAMIC_NULL =3D TAB_PCDS + TAB_PCDS_DYNAMIC >@@ -267,11 +254,10 @@ TAB_PCDS_DYNAMIC_DEFAULT_NULL =3D TAB_PCDS >+ TAB_PCDS_DYNAMIC_DEFAULT > TAB_PCDS_DYNAMIC_HII_NULL =3D TAB_PCDS + TAB_PCDS_DYNAMIC_HII > TAB_PCDS_DYNAMIC_VPD_NULL =3D TAB_PCDS + TAB_PCDS_DYNAMIC_VPD > TAB_PCDS_DYNAMIC_COMMON =3D TAB_PCDS + TAB_PCDS_DYNAMIC + >TAB_SPLIT + TAB_ARCH_COMMON > TAB_PCDS_DYNAMIC_IA32 =3D TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT >+ TAB_ARCH_IA32 > TAB_PCDS_DYNAMIC_X64 =3D TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT >+ TAB_ARCH_X64 >-TAB_PCDS_DYNAMIC_IPF =3D TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT >+ TAB_ARCH_IPF > TAB_PCDS_DYNAMIC_ARM =3D TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT >+ TAB_ARCH_ARM > TAB_PCDS_DYNAMIC_EBC =3D TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT >+ TAB_ARCH_EBC > TAB_PCDS_DYNAMIC_AARCH64 =3D TAB_PCDS + TAB_PCDS_DYNAMIC + >TAB_SPLIT + TAB_ARCH_AARCH64 > > TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_PEI_PAGE_SIZE =3D >'PcdLoadFixAddressPeiCodePageNumber' >@@ -294,11 +280,10 @@ MAX_SIZE_TYPE =3D {"BOOLEAN":1, TAB_UINT8:1, >TAB_UINT16:2, TAB_UINT32:4, TAB_UINT6 > > TAB_DEPEX =3D 'Depex' > TAB_DEPEX_COMMON =3D TAB_DEPEX + TAB_SPLIT + TAB_ARCH_COMMON > TAB_DEPEX_IA32 =3D TAB_DEPEX + TAB_SPLIT + TAB_ARCH_IA32 > TAB_DEPEX_X64 =3D TAB_DEPEX + TAB_SPLIT + TAB_ARCH_X64 >-TAB_DEPEX_IPF =3D TAB_DEPEX + TAB_SPLIT + TAB_ARCH_IPF > TAB_DEPEX_ARM =3D TAB_DEPEX + TAB_SPLIT + TAB_ARCH_ARM > TAB_DEPEX_EBC =3D TAB_DEPEX + TAB_SPLIT + TAB_ARCH_EBC > TAB_DEPEX_AARCH64 =3D TAB_DEPEX + TAB_SPLIT + TAB_ARCH_AARCH64 > > TAB_SKUIDS =3D 'SkuIds' >@@ -307,20 +292,18 @@ TAB_DEFAULT_STORES_DEFAULT =3D 'STANDARD' > > TAB_LIBRARIES =3D 'Libraries' > TAB_LIBRARIES_COMMON =3D TAB_LIBRARIES + TAB_SPLIT + >TAB_ARCH_COMMON > TAB_LIBRARIES_IA32 =3D TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_IA32 > TAB_LIBRARIES_X64 =3D TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_X64 >-TAB_LIBRARIES_IPF =3D TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_IPF > TAB_LIBRARIES_ARM =3D TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_ARM > TAB_LIBRARIES_EBC =3D TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_EBC > TAB_LIBRARIES_AARCH64 =3D TAB_LIBRARIES + TAB_SPLIT + >TAB_ARCH_AARCH64 > > TAB_COMPONENTS =3D 'Components' > TAB_COMPONENTS_COMMON =3D TAB_COMPONENTS + TAB_SPLIT + >TAB_ARCH_COMMON > TAB_COMPONENTS_IA32 =3D TAB_COMPONENTS + TAB_SPLIT + >TAB_ARCH_IA32 > TAB_COMPONENTS_X64 =3D TAB_COMPONENTS + TAB_SPLIT + >TAB_ARCH_X64 >-TAB_COMPONENTS_IPF =3D TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_IPF > TAB_COMPONENTS_ARM =3D TAB_COMPONENTS + TAB_SPLIT + >TAB_ARCH_ARM > TAB_COMPONENTS_EBC =3D TAB_COMPONENTS + TAB_SPLIT + >TAB_ARCH_EBC > TAB_COMPONENTS_AARCH64 =3D TAB_COMPONENTS + TAB_SPLIT + >TAB_ARCH_AARCH64 > > TAB_COMPONENTS_SOURCE_OVERRIDE_PATH =3D '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] =3D value > self.DefineVarDict =3D {} > # SetVarDict[var] =3D value > self.SetVarDict =3D {} > self.RegionList =3D [] >- self.vtfRawDict =3D {} > > ## FFS data in FDF > # > # > class FfsClassObject: >@@ -303,29 +302,10 @@ class CapsuleClassObject : > # TokensDict[var] =3D value > self.TokensDict =3D {} > self.CapsuleDataList =3D [] > self.FmpPayloadList =3D [] > >-## VTF component data in FDF >-# >-# >-class ComponentStatementClassObject : >- ## The constructor >- # >- # @param self The object pointer >- # >- def __init__(self): >- self.CompName =3D None >- self.CompLoc =3D None >- self.CompType =3D None >- self.CompVer =3D None >- self.CompCs =3D None >- self.CompBin =3D None >- self.CompSym =3D None >- self.CompSize =3D None >- self.FilePos =3D 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_ =3D struct.Struct("18x 1B") > _ATTR_ =3D struct.Struct("19x 1B") > _SIZE_ =3D struct.Struct("20x 3B") > _STATE_ =3D struct.Struct("23x 1B") > >- VTF_GUID =3D "1BA0062E-C779-4582-8566-336AE8F78F09" >- > FFS_ATTRIB_FIXED =3D 0x04 > FFS_ATTRIB_DATA_ALIGNMENT =3D 0x38 > FFS_ATTRIB_CHECKSUM =3D 0x40 > > _TypeName =3D { >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.
>-# >-# 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 consi= stent >with block array' % self.FdUiName) > GenFdsGlobalVariable.VerboseLogger('Following Fv will be add to F= d !!!') > for FvObj in GenFdsGlobalVariable.FdfParser.Profile.FvDict: > GenFdsGlobalVariable.VerboseLogger(FvObj) > >- GenFdsGlobalVariable.VerboseLogger('################### Gen >VTF ####################') >- self.GenVtfFile() >- > HasCapsuleRegion =3D False > for RegionObj in self.RegionList: > if RegionObj.RegionType =3D=3D 'CAPSULE': > HasCapsuleRegion =3D True > break >@@ -91,20 +88,20 @@ class FD(FDClassObject): > GenFdsGlobalVariable.InfLogger('Padding region st= arting from >offset 0x%X, with size 0x%X' %(PreviousRegionStart + PreviousRegionSize, >RegionObj.Offset - (PreviousRegionStart + PreviousRegionSize))) > PadRegion =3D Region.Region() > PadRegion.Offset =3D PreviousRegionStart + PreviousRe= gionSize > PadRegion.Size =3D RegionObj.Offset - PadRegion.Offse= t > if not Flag: >- PadRegion.AddToBuffer(TempFdBuffer, self.BaseAddr= ess, >self.BlockSizeList, self.ErasePolarity, GenFdsGlobalVariable.ImageBinDict, >self.vtfRawDict, self.DefineVarDict) >+ PadRegion.AddToBuffer(TempFdBuffer, self.BaseAddr= ess, >self.BlockSizeList, self.ErasePolarity, GenFdsGlobalVariable.ImageBinDict, >self.DefineVarDict) > PreviousRegionStart =3D RegionObj.Offset > PreviousRegionSize =3D 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 =3D BytesIO('') > PreviousRegionStart =3D -1 > PreviousRegionSize =3D 1 > for RegionObj in self.RegionList : >@@ -121,11 +118,11 @@ class FD(FDClassObject): > GenFdsGlobalVariable.InfLogger('Padding region starti= ng from >offset 0x%X, with size 0x%X' %(PreviousRegionStart + PreviousRegionSize, >RegionObj.Offset - (PreviousRegionStart + PreviousRegionSize))) > PadRegion =3D Region.Region() > PadRegion.Offset =3D PreviousRegionStart + PreviousRegion= Size > PadRegion.Size =3D 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 =3D RegionObj.Offset > PreviousRegionSize =3D RegionObj.Size > # > # Verify current region fits within allocated FD section Size > # >@@ -135,66 +132,21 @@ class FD(FDClassObject): > % (self.FdUiName, PreviousRegionStart, Pr= eviousRegionSize)) > # > # Call each region's AddToBuffer function > # > GenFdsGlobalVariable.VerboseLogger('Call each region\'s AddTo= Buffer >function') >- RegionObj.AddToBuffer (FdBuffer, self.BaseAddress, self.Block= SizeList, >self.ErasePolarity, GenFdsGlobalVariable.ImageBinDict, self.vtfRawDict, >self.DefineVarDict, Flag=3DFlag) >+ RegionObj.AddToBuffer (FdBuffer, self.BaseAddress, self.Block= SizeList, >self.ErasePolarity, GenFdsGlobalVariable.ImageBinDict, self.DefineVarDict, >Flag=3DFlag) > # > # 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'] = =3D >FdFileName > return FdFileName > >- ## generate VTF >- # >- # @param self The object pointer >- # >- def GenVtfFile (self) : >- # >- # Get this Fd's all Fv name >- # >- FvAddDict =3D{} >- FvList =3D [] >- for RegionObj in self.RegionList: >- if RegionObj.RegionType =3D=3D BINARY_FILE_TYPE_FV: >- if len(RegionObj.RegionDataList) =3D=3D 1: >- RegionData =3D RegionObj.RegionDataList[0] >- FvList.append(RegionData.upper()) >- FvAddDict[RegionData.upper()] =3D (int(self.BaseAddre= ss, 16) + \ >- RegionObj.Offset, RegionO= bj.Size) >- else: >- Offset =3D RegionObj.Offset >- for RegionData in RegionObj.RegionDataList: >- FvList.append(RegionData.upper()) >- FvObj =3D >GenFdsGlobalVariable.FdfParser.Profile.FvDict.get(RegionData.upper()) >- if len(FvObj.BlockSizeList) < 1: >- EdkLogger.error("GenFds", GENFDS_ERROR, >- 'FV.%s must point out FVs blo= cksize and Fv BlockNum' \ >- % FvObj.UiFvName) >- else: >- Size =3D 0 >- for blockStatement in FvObj.BlockSizeList: >- Size =3D Size + blockStatement[0] * block= Statement[1] >- FvAddDict[RegionData.upper()] =3D (int(self.B= aseAddress, 16) + \ >- Offset, Size= ) >- Offset =3D Offset + Size >- # >- # Check whether this Fd need VTF >- # >- Flag =3D False >- for VtfObj in GenFdsGlobalVariable.FdfParser.Profile.VtfList: >- compLocList =3D VtfObj.GetFvList() >- if set(compLocList).issubset(FvList): >- Flag =3D True >- break >- if Flag =3D=3D True: >- self.vtfRawDict =3D 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 =3D {} > self.FdNameNotSet =3D False > self.FvDict =3D {} > self.CapsuleDict =3D {} >- self.VtfList =3D [] > self.RuleDict =3D {} > self.OptRomDict =3D {} > self.FmpPayloadDict =3D {} > > ## 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 allo= wed in this >section >- # [VTF.arch.UiName, arch] > # [OptionRom.DriverName] > self._CurSection =3D [] > Section =3D Section.strip()[1:-1].upper().replace(' ', '').strip(= TAB_SPLIT) > ItemList =3D Section.split(TAB_SPLIT) > Item =3D ItemList[0] > if Item =3D=3D '' or Item =3D=3D 'RULE': > return > > if Item =3D=3D TAB_COMMON_DEFINES.upper(): > self._CurSection =3D [TAB_COMMON, TAB_COMMON, TAB_COMMON] >- elif Item =3D=3D 'VTF' and len(ItemList) =3D=3D 3: >- UiName =3D ItemList[2] >- Pos =3D UiName.find(TAB_COMMA_SPLIT) >- if Pos !=3D -1: >- UiName =3D UiName[:Pos] >- self._CurSection =3D ['VTF', UiName, ItemList[1]] > elif len(ItemList) > 1: > self._CurSection =3D [ItemList[0], ItemList[1], TAB_COMMON] > elif len(ItemList) > 0: > self._CurSection =3D [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 o= r 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 =3D 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 err= or >(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("[OPTION= ROM.") >and not S.startswith('[FMPPAYLOAD.'): >+ raise Warning("Unknown section or section appear sequence err= or >(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 AllMacrosLis= t > # >@@ -1430,11 +1420,11 @@ class FdfParser: > return False > > S =3D 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("[OPT= IONROM."): > 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 =3D {TAB_ARCH_IA32, TAB_ARCH_X64, TAB_ARCH_IPF, >TAB_ARCH_ARM, TAB_ARCH_AARCH64} >- if not self._GetNextToken(): >- return False >- >- S =3D 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 =3D GetRealFileLine(self.FileName, self.Current= LineNumber) >- #print 'Parsing String: %s in File %s, At line: %d, Offset Wi= thin 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.CurrentLine= Number) >- >- Arch =3D 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 =3D self._Token.upper() >- >- VtfObj =3D Vtf() >- VtfObj.UiName =3D Name >- VtfObj.KeyArch =3D 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.Fil= eName, >self.CurrentLineNumber) >- VtfObj.ArchList =3D 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 =3D self._Token >- if VtfObj.ResetBin.replace(TAB_WORKSPACE, '').find('$') =3D= =3D -1: >- #check for file path >- ErrorCode, ErrorInfo =3D PathClass(NormPath(VtfObj.ResetB= in), >GenFdsGlobalVariable.WorkSpaceDir).Validate() >- if ErrorCode !=3D 0: >- EdkLogger.error("GenFds", ErrorCode, ExtraData=3DErro= rInfo) >- >- 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.CurrentLineN= umber) >- >- if not self._GetNextWord(): >- raise Warning.Expected("Component Name", self.FileName, >self.CurrentLineNumber) >- >- CompStatementObj =3D ComponentStatement() >- CompStatementObj.CompName =3D 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.CurrentLineN= umber) >- >- CompStatementObj.CompLoc =3D "" >- if self._GetNextWord(): >- CompStatementObj.CompLoc =3D 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", "P= H", "PL"): not >support >- raise Warning("Unknown location type '%s'" % self._To= ken, >self.FileName, self.CurrentLineNumber) >- >- CompStatementObj.FilePos =3D self._Token >- else: >- self.CurrentLineNumber +=3D 1 >- self.CurrentOffsetWithinLine =3D 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.CurrentLineN= umber) >- >- 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 o= r >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 =3D 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.CurrentLineN= umber) >- >- if not self._GetNextToken(): >- raise Warning.Expected("Component version", self.FileName, >self.CurrentLineNumber) >- >- Pattern =3D compile('-$|[0-9a-fA-F]{1,2}\.[0-9a-fA-F]{1,2}$', DOT= ALL) >- if Pattern.match(self._Token) is None: >- raise Warning("Unknown version format '%s'" % self._Token, >self.FileName, self.CurrentLineNumber) >- CompStatementObj.CompVer =3D 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.CurrentLineN= umber) >- >- 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 =3D 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.CurrentLineN= umber) >- >- if not self._GetNextToken(): >- raise Warning.Expected("Component file", self.FileName, >self.CurrentLineNumber) >- >- CompStatementObj.CompBin =3D self._Token >- if CompStatementObj.CompBin !=3D '-' and >CompStatementObj.CompBin.replace(TAB_WORKSPACE, '').find('$') =3D=3D -1: >- #check for file path >- ErrorCode, ErrorInfo =3D >PathClass(NormPath(CompStatementObj.CompBin), >GenFdsGlobalVariable.WorkSpaceDir).Validate() >- if ErrorCode !=3D 0: >- EdkLogger.error("GenFds", ErrorCode, ExtraData=3DErrorInf= o) >- >- 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.CurrentLineN= umber) >- >- if not self._GetNextToken(): >- raise Warning.Expected("Component symbol file", self.FileName= , >self.CurrentLineNumber) >- >- CompStatementObj.CompSym =3D self._Token >- if CompStatementObj.CompSym !=3D '-' and >CompStatementObj.CompSym.replace(TAB_WORKSPACE, '').find('$') =3D=3D -1: >- #check for file path >- ErrorCode, ErrorInfo =3D >PathClass(NormPath(CompStatementObj.CompSym), >GenFdsGlobalVariable.WorkSpaceDir).Validate() >- if ErrorCode !=3D 0: >- EdkLogger.error("GenFds", ErrorCode, ExtraData=3DErrorInf= o) >- >- 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.CurrentLineN= umber) >- >- if self._IsToken("-"): >- CompStatementObj.CompSize =3D self._Token >- elif self._GetNextDecimalNumber(): >- CompStatementObj.CompSize =3D self._Token >- elif self._GetNextHexNumber(): >- CompStatementObj.CompSize =3D self._Token >- else: >- raise Warning("Unknown size '%s'" % self._Token, self.FileNam= e, >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=3DNone, BlockSize=3D None, >BlockNum=3DNone, ErasePloarity=3D'1', VtfDict=3DNone, MacroDict =3D {}, Fl= ag=3DFalse): >+ def AddToBuffer (self, Buffer, BaseAddress=3DNone, BlockSize=3D None, >BlockNum=3DNone, ErasePloarity=3D'1', MacroDict =3D {}, Flag=3DFalse): > 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 =3D None > > if self.FvBaseAddress is not None: > BaseAddress =3D self.FvBaseAddress > if not Flag: >- self._InitializeInf(BaseAddress, BlockSize, BlockNum, ErasePl= oarity, >VtfDict) >+ self._InitializeInf(BaseAddress, BlockSize, BlockNum, ErasePl= oarity) > # > # 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 =3D None, BlockSize=3D None, Bl= ockNum =3D >None, ErasePloarity=3D'1', VtfDict=3DNone): >+ def _InitializeInf (self, BaseAddress =3D None, BlockSize=3D None, Bl= ockNum =3D >None, ErasePloarity=3D'1'): > # > # Create FV inf file > # > self.InfFileName =3D 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 =3D " = + \ >- 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 =3D {} > GenFdsGlobalVariable.TargetName =3D '' > GenFdsGlobalVariable.ToolChainTag =3D '' > GenFdsGlobalVariable.RuleDict =3D {} > GenFdsGlobalVariable.ArchList =3D None >- GenFdsGlobalVariable.VtfDict =3D {} > GenFdsGlobalVariable.ActivePlatform =3D None > GenFdsGlobalVariable.FvAddressFileName =3D '' > GenFdsGlobalVariable.VerboseMode =3D False > GenFdsGlobalVariable.DebugLevel =3D -1 > GenFdsGlobalVariable.SharpCounter =3D 0 >@@ -249,19 +248,11 @@ def GenFdsApi(FdsCommandDict, >WorkSpaceDataBase=3DNone): > Pair =3D Pair[:-1] > List =3D Pair.split('=3D') > if len(List) =3D=3D 2: > if not List[1].strip(): > EdkLogger.error("GenFds", OPTION_VALUE_INVALID, >ExtraData=3D"No Value given for Macro %s" %List[0]) >- if List[0].strip() =3D=3D "EFI_SOURCE": >- GlobalData.gEfiSource =3D List[1].strip() >- GlobalData.gGlobalDefines["EFI_SOURCE"] =3D >GlobalData.gEfiSource >- continue >- elif List[0].strip() =3D=3D "EDK_SOURCE": >- GlobalData.gEdkSource =3D List[1].strip() >- GlobalData.gGlobalDefines["EDK_SOURCE"] =3D >GlobalData.gEdkSource >- continue >- elif List[0].strip() in ["WORKSPACE", "TARGET", "TOOL= CHAIN"]: >+ if List[0].strip() in ["WORKSPACE", "TARGET", "TOOLCH= AIN"]: > GlobalData.gGlobalDefines[List[0].strip()] =3D Li= st[1].strip() > else: > GlobalData.gCommandLineDefines[List[0].strip()] = =3D List[1].strip() > else: > GlobalData.gCommandLineDefines[List[0].strip()] =3D "= 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 =3D {} > TargetName =3D '' > ToolChainTag =3D '' > RuleDict =3D {} > ArchList =3D None >- VtfDict =3D {} > ActivePlatform =3D None > FvAddressFileName =3D '' > VerboseMode =3D False > DebugLevel =3D -1 > SharpCounter =3D 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, ErasePolari= ty, >ImageBinDict, vtfDict=3DNone, MacroDict=3D{}, Flag=3DFalse): >+ def AddToBuffer(self, Buffer, BaseAddress, BlockSizeList, ErasePolari= ty, >ImageBinDict, MacroDict=3D{}, Flag=3DFalse): > Size =3D self.Size > if not Flag: > GenFdsGlobalVariable.InfLogger('\nGenerate Region at Offset 0= x%X' % >self.Offset) > GenFdsGlobalVariable.InfLogger(" Region Size =3D 0x%X" % Si= ze) > GenFdsGlobalVariable.SharpCounter =3D 0 >@@ -134,11 +133,11 @@ class Region(object): > "FV (%s) is NOT %s Aligned!" = % (FvObj.UiFvName, >FvObj.FvAlignment)) > FvBuffer =3D BytesIO('') > FvBaseAddress =3D '0x%X' % self.FvAddress > BlockSize =3D None > BlockNum =3D None >- FvObj.AddToBuffer(FvBuffer, FvBaseAddress, BlockS= ize, >BlockNum, ErasePolarity, vtfDict, Flag=3DFlag) >+ FvObj.AddToBuffer(FvBuffer, FvBaseAddress, BlockS= ize, >BlockNum, ErasePolarity, Flag=3DFlag) > if Flag: > continue > > FvBufferLen =3D 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.
>-# >-# 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 =3D None >- self.ArchList =3D None >- self.UiName =3D None >- self.ResetBin =3D None >- self.ComponentStatementList =3D [] >- >- ## 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 =3D self.GetBaseAddressArg(FdAddressDict) >- OutputArg, VtfRawDict =3D self.GenOutputArg() >- >- Cmd =3D ( >- 'GenVtf', >- ) + OutputArg + ( >- '-f', self.BsfInfName, >- ) + BaseAddArg >- >- GenFdsGlobalVariable.CallExternalTool(Cmd, "GenFv -Vtf Failed!") >- GenFdsGlobalVariable.SharpCounter =3D 0 >- >- return VtfRawDict >- >- ## GenBsfInf() method >- # >- # Generate inf used to generate VTF >- # >- # @param self The object pointer >- # >- def GenBsfInf (self): >- FvList =3D self.GetFvList() >- self.BsfInfName =3D os.path.join(GenFdsGlobalVariable.FvDir, self= .UiName >+ '.inf') >- BsfInf =3D open(self.BsfInfName, 'w+') >- if self.ResetBin: >- BsfInf.writelines ("[OPTIONS]" + TAB_LINE_BREAK) >- BsfInf.writelines ("IA32_RST_BIN" + \ >- " =3D " + \ >- >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" + \ >- " =3D " + \ >- ComponentObj.CompName + \ >- TAB_LINE_BREAK) >- if ComponentObj.CompLoc.upper() =3D=3D 'NONE': >- BsfInf.writelines ("COMP_LOC" + \ >- " =3D " + \ >- 'N' + \ >- TAB_LINE_BREAK) >- >- elif ComponentObj.FilePos: >- BsfInf.writelines ("COMP_LOC" + \ >- " =3D " + \ >- ComponentObj.FilePos + \ >- TAB_LINE_BREAK) >- else: >- Index =3D FvList.index(ComponentObj.CompLoc.upper()) >- if Index =3D=3D 0: >- BsfInf.writelines ("COMP_LOC" + \ >- " =3D " + \ >- 'F' + \ >- TAB_LINE_BREAK) >- elif Index =3D=3D 1: >- BsfInf.writelines ("COMP_LOC" + \ >- " =3D " + \ >- 'S' + \ >- TAB_LINE_BREAK) >- >- BsfInf.writelines ("COMP_TYPE" + \ >- " =3D " + \ >- ComponentObj.CompType + \ >- TAB_LINE_BREAK) >- BsfInf.writelines ("COMP_VER" + \ >- " =3D " + \ >- ComponentObj.CompVer + \ >- TAB_LINE_BREAK) >- BsfInf.writelines ("COMP_CS" + \ >- " =3D " + \ >- ComponentObj.CompCs + \ >- TAB_LINE_BREAK) >- >- BinPath =3D ComponentObj.CompBin >- if BinPath !=3D '-': >- BinPath =3D >GenFdsGlobalVariable.MacroExtend(GenFdsGlobalVariable.ReplaceWorkspac >eMacro(BinPath)) >- BsfInf.writelines ("COMP_BIN" + \ >- " =3D " + \ >- BinPath + \ >- TAB_LINE_BREAK) >- >- SymPath =3D ComponentObj.CompSym >- if SymPath !=3D '-': >- SymPath =3D >GenFdsGlobalVariable.MacroExtend(GenFdsGlobalVariable.ReplaceWorkspac >eMacro(SymPath)) >- BsfInf.writelines ("COMP_SYM" + \ >- " =3D " + \ >- SymPath + \ >- TAB_LINE_BREAK) >- BsfInf.writelines ("COMP_SIZE" + \ >- " =3D " + \ >- 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 =3D [] >- for component in self.ComponentStatementList : >- if component.CompLoc.upper() !=3D '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 =3D self.GetFvList() >- CmdStr =3D tuple() >- for i in FvList: >- (BaseAddress, Size) =3D FdAddressDict.get(i) >- CmdStr +=3D ( >- '-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 =3D {} >- OutputFileName =3D '' >- FvList =3D self.GetFvList() >- Index =3D 0 >- Arg =3D tuple() >- for FvObj in FvList: >- Index =3D Index + 1 >- OutputFileName =3D 'Vtf%d.raw' % Index >- OutputFileName =3D os.path.join(GenFdsGlobalVariable.FvDir, >OutputFileName) >- Arg +=3D ('-o', OutputFileName) >- FvVtfDict[FvObj.upper()] =3D 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 =3D OptionParser(version=3D__version__, prog=3D"TargetTool.exe= ", >usage=3D__usage__, description=3D__copyright__) >- parser.add_option("-a", "--arch", action=3D"append", type=3D"choice", >choices=3D['IA32', 'X64', 'IPF', 'EBC', 'ARM', 'AARCH64', '0'], dest=3D"TA= RGET_ARCH", >- help=3D"ARCHS is one of list: IA32, X64, IPF, ARM, AARCH64 or EBC= , which >replaces target.txt's TARGET_ARCH definition. To specify more archs, pleas= e >repeat this option. 0 will clear this setting in target.txt and can't comb= ine with >other value.") >+ parser.add_option("-a", "--arch", action=3D"append", type=3D"choice", >choices=3D['IA32', 'X64', 'EBC', 'ARM', 'AARCH64', '0'], dest=3D"TARGET_AR= CH", >+ help=3D"ARCHS is one of list: IA32, X64, ARM, AARCH64 or EBC, whi= ch >replaces target.txt's TARGET_ARCH definition. To specify more archs, pleas= e >repeat this option. 0 will clear this setting in target.txt and can't comb= ine with >other value.") > parser.add_option("-p", "--platform", action=3D"callback", type=3D"st= ring", >dest=3D"DSCFILE", callback=3DSingleCheckCallback, > help=3D"Specify a DSC file, which replace target.txt's ACTIVE_PLA= TFORM >definition. 0 will clear this setting in target.txt and can't combine with= other >value.") > parser.add_option("-c", "--tooldef", action=3D"callback", type=3D"str= ing", >dest=3D"TOOL_DEFINITION_FILE", callback=3DSingleCheckCallback, > help=3D"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=3D"append", type=3D"choice= ", >choices=3D['DEBUG', 'RELEASE', '0'], dest=3D"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] =3D=3D 'f' or StrList[3] =3D=3D 'F'= : > Name =3D StrList[1] > RelativeAddress =3D int (StrList[2], 16) - Or= igImageBaseAddress > FunctionList.append ((Name, RelativeAddress)) >- if ModuleInfo.Arch =3D=3D 'IPF' and >Name.endswith('_ModuleEntryPoint'): >- # >- # Get the real entry point address for IP= F image. >- # >- ModuleInfo.Image.EntryPoint =3D RelativeA= ddress >+ > ImageMap.close() > # > # Add general information. > # > if ModeIsSmm: >@@ -1498,13 +1494,10 @@ class Build(): > PeiSize =3D 0 > BtSize =3D 0 > RtSize =3D 0 > # reserve 4K size in SMRAM to make SMM module address not from 0. > SmmSize =3D 0x1000 >- IsIpfPlatform =3D False >- if 'IPF' in self.ArchList: >- IsIpfPlatform =3D True > for ModuleGuid in ModuleList: > Module =3D ModuleList[ModuleGuid] > GlobalData.gProcessingFile =3D "%s [%s, %s, %s]" % (Module.Me= taFile, >Module.Arch, Module.ToolChain, Module.BuildTarget) > > OutputImageFile =3D '' >@@ -1524,13 +1517,10 @@ class Build(): > elif Module.ModuleType in [EDK_COMPONENT_TYPE_BS_DRIV= ER, >SUP_MODULE_DXE_DRIVER, SUP_MODULE_UEFI_DRIVER]: > BtModuleList[Module.MetaFile] =3D ImageInfo > BtSize +=3D 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] =3D ImageInfo >- #IPF runtime driver needs to be at 2 page alignme= nt. >- if IsIpfPlatform and ImageInfo.Image.Size % 0x200= 0 !=3D 0: >- ImageInfo.Image.Size =3D (ImageInfo.Image.Siz= e / 0x2000 + 1) * >0x2000 > RtSize +=3D 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] =3D ImageInfo > SmmSize +=3D ImageInfo.Image.Size > if Module.ModuleType =3D=3D SUP_MODULE_DXE_SMM_DR= IVER: >@@ -1573,14 +1563,10 @@ class Build(): > TopMemoryAddress =3D 0 > else: > TopMemoryAddress =3D 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 =3D TopMemoryAddress % 0x2000 >- RtSize =3D 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 =3D OptionParser(description=3D__copyright__, version=3D__vers= ion__, >prog=3D"build.exe", usage=3D"%prog [options] >[all|fds|genc|genmake|clean|cleanall|cleanlib|modules|libraries|run]") >- Parser.add_option("-a", "--arch", action=3D"append", type=3D"choice", >choices=3D['IA32', 'X64', 'IPF', 'EBC', 'ARM', 'AARCH64'], dest=3D"TargetA= rch", >- help=3D"ARCHS is one of list: IA32, X64, IPF, ARM, AARCH64 or EBC= , which >overrides target.txt's TARGET_ARCH definition. To specify more archs, plea= se >repeat this option.") >+ Parser.add_option("-a", "--arch", action=3D"append", type=3D"choice", >choices=3D['IA32', 'X64', 'EBC', 'ARM', 'AARCH64'], dest=3D"TargetArch", >+ help=3D"ARCHS is one of list: IA32, X64, ARM, AARCH64 or EBC, whi= ch >overrides target.txt's TARGET_ARCH definition. To specify more archs, plea= se >repeat this option.") > Parser.add_option("-p", "--platform", action=3D"callback", type=3D"st= ring", >dest=3D"PlatformFile", callback=3DSingleCheckCallback, > help=3D"Build the platform specified by the DSC file name argumen= t, >overriding target.txt's ACTIVE_PLATFORM definition.") > Parser.add_option("-m", "--module", action=3D"callback", type=3D"stri= ng", >dest=3D"ModuleFile", callback=3DSingleCheckCallback, > help=3D"Build the module specified by the INF file name argument.= ") > Parser.add_option("-b", "--buildtarget", type=3D"string", dest=3D"Bui= ldTarget", >help=3D"Using the TARGET to build the platform, overriding target.txt's TA= RGET >definition.", >-- >2.19.1.windows.1