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.31; helo=mga06.intel.com; envelope-from=liming.gao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (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 B80A320336AC9 for ; Tue, 10 Jul 2018 00:09:02 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Jul 2018 00:09:02 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,333,1526367600"; d="scan'208";a="214768259" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga004.jf.intel.com with ESMTP; 10 Jul 2018 00:08:31 -0700 Received: from fmsmsx157.amr.corp.intel.com (10.18.116.73) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 10 Jul 2018 00:08:30 -0700 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by FMSMSX157.amr.corp.intel.com (10.18.116.73) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 10 Jul 2018 00:08:28 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.81]) by shsmsx102.ccr.corp.intel.com ([169.254.2.124]) with mapi id 14.03.0319.002; Tue, 10 Jul 2018 15:08:26 +0800 From: "Gao, Liming" To: "Zeng, Star" , "Chen, Chen A" , "edk2-devel@lists.01.org" CC: "Dong, Eric" , "Kinney, Michael D" Thread-Topic: [PATCH V2 2/4] MdeModulePkg: Removing ipf which is no longer supported from edk2. Thread-Index: AQHUF2mCTcSU9Nd0ZEOy1i5+0i/vl6SICqvA Date: Tue, 10 Jul 2018 07:08:26 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E2B93C2@SHSMSX104.ccr.corp.intel.com> References: <20180709060331.12052-1-chen.a.chen@intel.com> <20180709060331.12052-2-chen.a.chen@intel.com> <0C09AFA07DD0434D9E2A0C6AEB0483103BB7D4F2@shsmsx102.ccr.corp.intel.com> In-Reply-To: <0C09AFA07DD0434D9E2A0C6AEB0483103BB7D4F2@shsmsx102.ccr.corp.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 V2 2/4] MdeModulePkg: Removing ipf which is no longer supported from edk2. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Jul 2018 07:09:03 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable You can run BaseTools\Scripts\PatchCheck.py to check those style issues.=20 >-----Original Message----- >From: Zeng, Star >Sent: Monday, July 09, 2018 5:45 PM >To: Chen, Chen A ; edk2-devel@lists.01.org >Cc: Dong, Eric ; Kinney, Michael D >; Gao, Liming ; Zeng, >Star >Subject: RE: [PATCH V2 2/4] MdeModulePkg: Removing ipf which is no longer >supported from edk2. > >Please do not add trailing space at the end of line. >For example the change in RegularExpressionDxe.inf: >- MSFT:DEBUG_*_IA32_CC_FLAGS =3D=3D /nologo /c /WX /GS- /W4 /Gs32768 /D >UNICODE /O1b2 /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm >- MSFT:RELEASE_*_IA32_CC_FLAGS =3D=3D /nologo /c /WX /GS- /W4 /Gs32768 /D >UNICODE /O1b2 /FIAutoGen.h /EHs-c- /GR- /GF >- MSFT:DEBUG_*_X64_CC_FLAGS =3D=3D /nologo /c /WX /GS- /W4 /Gs32768 /D >UNICODE /O1b2s /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /X >- MSFT:RELEASE_*_X64_CC_FLAGS =3D=3D /nologo /c /WX /GS- /W4 /Gs32768 /D >UNICODE /O1b2s /FIAutoGen.h /EHs-c- /GR- /GF /Gy /X >- MSFT:DEBUG_*_IPF_CC_FLAGS =3D=3D /nologo /c /WX /GS- /W4 /EHs-c- /GR= - >/Gy /Os /FIAutoGen.h /QIPF_fr32 /Zi /X >- MSFT:RELEASE_*_IPF_CC_FLAGS =3D=3D /nologo /c /WX /GS- /W4 /EHs-c- /GR= - >/Gy /Os /FIAutoGen.h /QIPF_fr32 /X >+ MSFT:DEBUG_*_IA32_CC_FLAGS =3D=3D /nologo /c /WX /GS- /W4 /Gs32768 >/D UNICODE /O1b2 /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm >+ MSFT:RELEASE_*_IA32_CC_FLAGS =3D=3D /nologo /c /WX /GS- /W4 /Gs32768 >/D UNICODE /O1b2 /FIAutoGen.h /EHs-c- /GR- /GF >+ MSFT:DEBUG_*_X64_CC_FLAGS =3D=3D /nologo /c /WX /GS- /W4 /Gs32768 /D >UNICODE /O1b2s /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /X >+ MSFT:RELEASE_*_X64_CC_FLAGS =3D=3D /nologo /c /WX /GS- /W4 /Gs32768 /D >UNICODE /O1b2s /FIAutoGen.h /EHs-c- /GR- /GF /Gy /X > > >Please double confirm other changes for same case, Reviewed-by: Star Zeng > with them corrected. > > >Thanks, >Star >-----Original Message----- >From: Chen, Chen A >Sent: Monday, July 9, 2018 2:03 PM >To: edk2-devel@lists.01.org >Cc: Chen, Chen A ; Zeng, Star >; Dong, Eric ; Kinney, Michael D > >Subject: [PATCH V2 2/4] MdeModulePkg: Removing ipf which is no longer >supported from edk2. > >Removing rules for Ipf sources file: >* Remove the source file which path with "ipf" and also listed in > [Sources.IPF] section of INF file. >* Remove the source file which listed in [Components.IPF] section > of DSC file and not listed in any other [Components] section. >* Remove the embedded Ipf code for MDE_CPU_IPF. > >Removing rules for Inf file: >* Remove IPF from VALID_ARCHITECTURES comments. >* Remove DXE_SAL_DRIVER from LIBRARY_CLASS in [Defines] section. >* Remove the INF which only listed in [Components.IPF] section in DSC. >* Remove statements from [BuildOptions] that provide IPF specific flags. >* Remove any IPF sepcific sections. > >Removing rules for Dec file: >* Remove [Includes.IPF] section from Dec. > >Removing rules for Dsc file: >* Remove IPF from SUPPORTED_ARCHITECTURES in [Defines] section of DSC. >* Remove any IPF specific sections. >* Remove statements from [BuildOptions] that provide IPF specific flags. > >Cc: Star Zeng >Cc: Eric Dong >Cc: Michael D Kinney >Contributed-under: TianoCore Contribution Agreement 1.1 >Signed-off-by: Chen A Chen >--- > .../BootManagerMenuApp/BootManagerMenuApp.inf | 2 +- > MdeModulePkg/Application/HelloWorld/HelloWorld.inf | 4 +- > .../MemoryProfileInfo/MemoryProfileInfo.inf | 4 +- > MdeModulePkg/Application/UiApp/UiApp.inf | 2 +- > .../Application/VariableInfo/VariableInfo.inf | 4 +- > .../Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf | 2 +- > MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf | 4 +- > MdeModulePkg/Bus/I2c/I2cDxe/I2cBusDxe.inf | 4 +- > MdeModulePkg/Bus/I2c/I2cDxe/I2cDxe.inf | 4 +- > MdeModulePkg/Bus/I2c/I2cDxe/I2cHostDxe.inf | 4 +- > MdeModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf | 2 +- > .../Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf | 4 +- > MdeModulePkg/Bus/Isa/Ps2MouseDxe/Ps2MouseDxe.inf | 4 +- > MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf | 2 +- > MdeModulePkg/Bus/Pci/EhciPei/EhciPei.inf | 2 +- > MdeModulePkg/Bus/Pci/IdeBusPei/IdeBusPei.inf | 4 +- > .../IncompatiblePciDeviceSupportDxe.inf | 2 +- > .../Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf | 2 +- > MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf | 2 +- > .../Bus/Pci/PciSioSerialDxe/PciSioSerialDxe.inf | 4 +- > .../Pci/SataControllerDxe/SataControllerDxe.inf | 2 +- > .../Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.inf | 4 +- > .../Bus/Pci/SdMmcPciHcPei/SdMmcPciHcPei.inf | 2 +- > MdeModulePkg/Bus/Pci/UfsPciHcDxe/UfsPciHcDxe.inf | 2 +- > MdeModulePkg/Bus/Pci/UfsPciHcPei/UfsPciHcPei.inf | 2 +- > MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf | 2 +- > MdeModulePkg/Bus/Pci/UhciPei/UhciPei.inf | 4 +- > MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf | 2 +- > MdeModulePkg/Bus/Pci/XhciPei/XhciPei.inf | 4 +- > MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf | 2 +- > MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf | 2 +- > .../Bus/Sd/EmmcBlockIoPei/EmmcBlockIoPei.inf | 4 +- > MdeModulePkg/Bus/Sd/EmmcDxe/EmmcDxe.inf | 4 +- > MdeModulePkg/Bus/Sd/SdBlockIoPei/SdBlockIoPei.inf | 4 +- > MdeModulePkg/Bus/Sd/SdDxe/SdDxe.inf | 4 +- > .../Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.inf | 4 +- > .../Bus/Ufs/UfsPassThruDxe/UfsPassThruDxe.inf | 2 +- > MdeModulePkg/Bus/Usb/UsbBotPei/UsbBotPei.inf | 4 +- > MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf | 2 +- > MdeModulePkg/Bus/Usb/UsbBusPei/UsbBusPei.inf | 2 +- > MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf | 2 +- > .../Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf | 2 +- > .../UsbMouseAbsolutePointerDxe.inf | 2 +- > MdeModulePkg/Bus/Usb/UsbMouseDxe/UsbMouseDxe.inf | 2 +- > MdeModulePkg/Core/Dxe/DxeMain.inf | 2 +- > MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf | 5 +- > MdeModulePkg/Core/DxeIplPeim/Ipf/DxeLoadFunc.c | 85 -- > MdeModulePkg/Core/Pei/PeiMain.inf | 2 +- > MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf | 2 +- > MdeModulePkg/Include/Guid/VariableFormat.h | 7 +- > .../BasePlatformHookLibNull.inf | 4 +- > .../BaseResetSystemLibNull.inf | 4 +- > MdeModulePkg/Library/BaseSortLib/BaseSortLib.inf | 4 +- > MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf | 2 +- > .../BootMaintenanceManagerUiLib.inf | 2 +- > .../Library/BootManagerUiLib/BootManagerUiLib.inf | 2 +- > .../CpuExceptionHandlerLibNull.inf | 4 +- > .../CustomizedDisplayLib/CustomizedDisplayLib.inf | 2 +- > .../DebugAgentLibNull/DebugAgentLibNull.inf | 4 +- > .../DeviceManagerUiLib/DeviceManagerUiLib.inf | 2 +- > .../DisplayUpdateProgressLibGraphics.inf | 2 +- > .../DisplayUpdateProgressLibText.inf | 2 +- > .../Library/DxeCapsuleLibFmp/DxeCapsuleLib.inf | 2 +- > .../DxeCapsuleLibFmp/DxeRuntimeCapsuleLib.inf | 2 +- > .../DxeCapsuleLibNull/DxeCapsuleLibNull.inf | 4 +- > .../DxeCoreMemoryAllocationLib.inf | 4 +- > .../DxeCoreMemoryAllocationProfileLib.inf | 4 +- > .../DxeCorePerformanceLib.inf | 2 +- > .../DxeCrc32GuidedSectionExtractLib.inf | 4 +- > .../DxeDebugPrintErrorLevelLib.inf | 4 +- > MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf | 6 +- > .../DxeFileExplorerProtocol.inf | 2 +- > MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf | 4 +- > MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf | 6 +- > MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf | 4 +- > .../DxePerformanceLib/DxePerformanceLib.inf | 4 +- > .../DxePrintLibPrint2Protocol.inf | 4 +- > .../DxeReportStatusCodeLib.inf | 6 +- > .../DxeResetSystemLib/DxeResetSystemLib.inf | 2 +- > .../DxeSecurityManagementLib.inf | 4 +- > MdeModulePkg/Library/DxeTcpIoLib/DxeTcpIoLib.inf | 4 +- > MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf | 4 +- > .../Library/FileExplorerLib/FileExplorerLib.inf | 2 +- > .../FmpAuthenticationLibNull.inf | 4 +- > .../LzmaCustomDecompressLib.inf | 4 +- > .../OemHookStatusCodeLibNull.inf | 2 +- > .../PciHostBridgeLibNull/PciHostBridgeLibNull.inf | 4 +- > .../PeiCrc32GuidedSectionExtractLib.inf | 2 +- > .../PeiDxeDebugLibReportStatusCode.inf | 4 +- > .../PeiPerformanceLib/PeiPerformanceLib.inf | 2 +- > .../PeiRecoveryLibNull/PeiRecoveryLibNull.inf | 2 +- > .../PeiReportStatusCodeLib.inf | 2 +- > .../PeiResetSystemLib/PeiResetSystemLib.inf | 2 +- > MdeModulePkg/Library/PeiS3LibNull/PeiS3LibNull.inf | 2 +- > .../PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf | 6 +- > .../PlatformHookLibSerialPortPpi.inf | 6 +- > .../PlatformVarCleanupLib.inf | 4 +- > .../RuntimeDxeReportStatusCodeLib.inf | 4 +- > .../TpmMeasurementLibNull.inf | 6 +- > .../UefiBootManagerLib/UefiBootManagerLib.inf | 2 +- > MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf | 6 +- > .../UefiHiiServicesLib/UefiHiiServicesLib.inf | 4 +- > .../UefiMemoryAllocationProfileLib.inf | 6 +- > MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf | 4 +- > MdeModulePkg/Logo/Logo.inf | 4 +- > MdeModulePkg/MdeModulePkg.dsc | 10 +- > .../Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf | 2 +- > .../Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf | 2 +- > .../BootGraphicsResourceTableDxe.inf | 2 +- > .../FirmwarePerformanceDxe.inf | 2 +- > .../FirmwarePerformancePei.inf | 2 +- > .../Acpi/S3SaveStateDxe/S3SaveStateDxe.inf | 2 +- > .../Acpi/SmmS3SaveState/SmmS3SaveState.inf | 2 +- > MdeModulePkg/Universal/BdsDxe/BdsDxe.inf | 2 +- > .../BootManagerPolicyDxe/BootManagerPolicyDxe.inf | 2 +- > MdeModulePkg/Universal/CapsulePei/CapsulePei.inf | 2 +- > .../CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf | 6 +- > .../Console/ConPlatformDxe/ConPlatformDxe.inf | 2 +- > .../Console/ConSplitterDxe/ConSplitterDxe.inf | 2 +- > .../GraphicsConsoleDxe/GraphicsConsoleDxe.inf | 2 +- > .../Universal/Console/TerminalDxe/TerminalDxe.inf | 4 +- > .../Universal/DebugPortDxe/DebugPortDxe.inf | 4 +- > .../Universal/DebugSupportDxe/DebugSupportDxe.inf | 10 +- > .../Universal/DebugSupportDxe/Ipf/AsmFuncs.s | 1382 ---------------= ----- > .../Universal/DebugSupportDxe/Ipf/Common.i | 29 - > .../Universal/DebugSupportDxe/Ipf/Ds64Macros.i | 78 -- > .../Universal/DebugSupportDxe/Ipf/PlDebugSupport.c | 467 ------- > .../Universal/DebugSupportDxe/Ipf/PlDebugSupport.h | 324 ----- > .../Universal/DevicePathDxe/DevicePathDxe.inf | 2 +- > .../Universal/Disk/CdExpressPei/CdExpressPei.inf | 2 +- > .../Universal/Disk/DiskIoDxe/DiskIoDxe.inf | 2 +- > .../Universal/Disk/PartitionDxe/PartitionDxe.inf | 2 +- > MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf | 3 +- > .../UnicodeCollation/EnglishDxe/EnglishDxe.inf | 2 +- > .../DisplayEngineDxe/DisplayEngineDxe.inf | 2 +- > .../DriverHealthManagerDxe.inf | 2 +- > .../Universal/DriverSampleDxe/DriverSampleDxe.inf | 2 +- > MdeModulePkg/Universal/EbcDxe/EbcDebugger.inf | 7 +- > .../Universal/EbcDxe/EbcDebuggerConfig.inf | 4 +- > MdeModulePkg/Universal/EbcDxe/EbcDxe.inf | 7 +- > MdeModulePkg/Universal/EbcDxe/Ipf/EbcLowLevel.s | 206 --- > MdeModulePkg/Universal/EbcDxe/Ipf/EbcSupport.c | 884 ------------- > MdeModulePkg/Universal/EbcDxe/Ipf/EbcSupport.h | 41 - > MdeModulePkg/Universal/EsrtDxe/EsrtDxe.inf | 2 +- > .../FaultTolerantWriteDxe.inf | 2 +- > .../FaultTolerantWritePei.inf | 4 +- > .../Universal/FileExplorerDxe/FileExplorerDxe.inf | 2 +- > .../Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf | 2 +- > .../HiiResourcesSampleDxe.inf | 2 +- > .../LegacyRegion2Dxe/LegacyRegion2Dxe.inf | 2 +- > .../Universal/LoadFileOnFv2/LoadFileOnFv2.inf | 4 +- > .../GenericMemoryTestDxe/GenericMemoryTestDxe.inf | 4 +- > .../NullMemoryTestDxe/NullMemoryTestDxe.inf | 2 +- > MdeModulePkg/Universal/Metronome/Metronome.inf | 2 +- > .../MonotonicCounterRuntimeDxe.inf | 4 +- > MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf | 2 +- > .../Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf | 2 +- > MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf | 4 +- > .../Universal/Network/IScsiDxe/IScsiDxe.inf | 2 +- > MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf | 2 +- > MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf | 2 +- > .../Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf | 2 +- > MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf | 2 +- > MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf | 2 +- > MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf | 2 +- > .../Network/UefiPxeBcDxe/UefiPxeBcDxe.inf | 2 +- > .../Network/VlanConfigDxe/VlanConfigDxe.inf | 4 +- > MdeModulePkg/Universal/PCD/Dxe/Pcd.inf | 2 +- > MdeModulePkg/Universal/PCD/Pei/Pcd.inf | 2 +- > .../PcatSingleSegmentPciCfg2Pei.inf | 4 +- > .../PlatformDriOverrideDxe.inf | 2 +- > MdeModulePkg/Universal/PrintDxe/PrintDxe.inf | 4 +- > .../PropertiesTableAttributesDxe.inf | 4 +- > .../RegularExpressionDxe/RegularExpressionDxe.inf | 11 +- > .../Pei/ReportStatusCodeRouterPei.inf | 4 +- > .../ReportStatusCodeRouterRuntimeDxe.inf | 2 +- > .../SectionExtractionPei/SectionExtractionPei.inf | 2 +- > .../Universal/SecurityStubDxe/SecurityStubDxe.inf | 4 +- > .../Universal/SetupBrowserDxe/SetupBrowserDxe.inf | 2 +- > MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf | 2 +- > .../SmbiosMeasurementDxe/SmbiosMeasurementDxe.inf | 2 +- > .../StatusCodeHandler/Pei/StatusCodeHandlerPei.inf | 2 +- > .../RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf | 2 +- > .../Universal/TimestampDxe/TimestampDxe.inf | 2 +- > .../Universal/Variable/Pei/VariablePei.inf | 4 +- > .../Universal/WatchdogTimerDxe/WatchdogTimer.inf | 2 +- > 186 files changed, 263 insertions(+), 3789 deletions(-) > delete mode 100644 MdeModulePkg/Core/DxeIplPeim/Ipf/DxeLoadFunc.c > delete mode 100644 >MdeModulePkg/Universal/DebugSupportDxe/Ipf/AsmFuncs.s > delete mode 100644 >MdeModulePkg/Universal/DebugSupportDxe/Ipf/Common.i > delete mode 100644 >MdeModulePkg/Universal/DebugSupportDxe/Ipf/Ds64Macros.i > delete mode 100644 >MdeModulePkg/Universal/DebugSupportDxe/Ipf/PlDebugSupport.c > delete mode 100644 >MdeModulePkg/Universal/DebugSupportDxe/Ipf/PlDebugSupport.h > delete mode 100644 MdeModulePkg/Universal/EbcDxe/Ipf/EbcLowLevel.s > delete mode 100644 MdeModulePkg/Universal/EbcDxe/Ipf/EbcSupport.c > delete mode 100644 MdeModulePkg/Universal/EbcDxe/Ipf/EbcSupport.h > >diff --git >a/MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuA >pp.inf >b/MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuA >pp.inf >index 3dc1bab9a0..b10da3742e 100644 >--- >a/MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuA >pp.inf >+++ >b/MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuA >pp.inf >@@ -27,7 +27,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Application/HelloWorld/HelloWorld.inf >b/MdeModulePkg/Application/HelloWorld/HelloWorld.inf >index 1cfed2d85c..d5cd9d4855 100644 >--- a/MdeModulePkg/Application/HelloWorld/HelloWorld.inf >+++ b/MdeModulePkg/Application/HelloWorld/HelloWorld.inf >@@ -6,7 +6,7 @@ > # > # It demos how to use EDKII PCD mechanism to make code more flexible. > # >-# Copyright (c) 2008 - 2017, Intel Corporation. All rights reserved.
>+# Copyright (c) 2008 - 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 >@@ -35,7 +35,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Application/MemoryProfileInfo/MemoryProfileInfo.inf >b/MdeModulePkg/Application/MemoryProfileInfo/MemoryProfileInfo.inf >index 4bb7a9df1d..96b9dac0c7 100644 >--- a/MdeModulePkg/Application/MemoryProfileInfo/MemoryProfileInfo.inf >+++ >b/MdeModulePkg/Application/MemoryProfileInfo/MemoryProfileInfo.inf >@@ -4,7 +4,7 @@ > # Note that if the feature is not enabled by setting >PcdMemoryProfilePropertyMask, > # the application will not display memory profile information. > # >-# Copyright (c) 2014 - 2016, Intel Corporation. All rights reserved.
>+# Copyright (c) 2014 - 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 >@@ -26,7 +26,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Application/UiApp/UiApp.inf >b/MdeModulePkg/Application/UiApp/UiApp.inf >index 417f1a3ec9..66372befbf 100644 >--- a/MdeModulePkg/Application/UiApp/UiApp.inf >+++ b/MdeModulePkg/Application/UiApp/UiApp.inf >@@ -24,7 +24,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Application/VariableInfo/VariableInfo.inf >b/MdeModulePkg/Application/VariableInfo/VariableInfo.inf >index 484ad32a4e..762e776e2d 100644 >--- a/MdeModulePkg/Application/VariableInfo/VariableInfo.inf >+++ b/MdeModulePkg/Application/VariableInfo/VariableInfo.inf >@@ -6,7 +6,7 @@ > # Note that if Variable Dxe/Smm driver doesn't enable the feature by set= ting >PcdVariableCollectStatistics > # as TRUE, the application will not display variable statistical informa= tion. > # >-# Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.
>+# 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 >@@ -28,7 +28,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf >b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf >index 74e62649ce..1c8d144bbd 100644 >--- a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf >+++ b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf >@@ -27,7 +27,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gAtaAtapiPassThruDriverBinding > # COMPONENT_NAME =3D gAtaAtapiPassThruComponentName >diff --git a/MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf >b/MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf >index 4aab75bab7..446c2f9dee 100644 >--- a/MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf >+++ b/MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf >@@ -5,7 +5,7 @@ > # in UEFI spec 2.2. It installs Block IO and Disk Info protocol for each= ATA >device > # it enumerates and identifies successfully. > # >-# Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.
>+# Copyright (c) 2009 - 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 >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gAtaBusDriverBinding > # COMPONENT_NAME =3D gAtaBusComponentName >diff --git a/MdeModulePkg/Bus/I2c/I2cDxe/I2cBusDxe.inf >b/MdeModulePkg/Bus/I2c/I2cDxe/I2cBusDxe.inf >index 4dbe2f5e68..bce3b521e3 100644 >--- a/MdeModulePkg/Bus/I2c/I2cDxe/I2cBusDxe.inf >+++ b/MdeModulePkg/Bus/I2c/I2cDxe/I2cBusDxe.inf >@@ -1,7 +1,7 @@ > ## @file > # This driver enumerates I2C devices on I2C bus and produce I2C IO Proto= col >on I2C devices. > # >-# Copyright (c) 2013 - 2014, Intel Corporation. All rights reserved.
>+# Copyright (c) 2013 - 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 >@@ -26,7 +26,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources.common] >diff --git a/MdeModulePkg/Bus/I2c/I2cDxe/I2cDxe.inf >b/MdeModulePkg/Bus/I2c/I2cDxe/I2cDxe.inf >index 5cd53b2fc4..feab323360 100644 >--- a/MdeModulePkg/Bus/I2c/I2cDxe/I2cDxe.inf >+++ b/MdeModulePkg/Bus/I2c/I2cDxe/I2cDxe.inf >@@ -4,7 +4,7 @@ > # This driver produce I2C Host Protocol on I2C controller handle, enumer= ate >I2C > # devices on I2C bus and produce I2C IO Protocol on I2C devices. > # >-# Copyright (c) 2013 - 2014, Intel Corporation. All rights reserved.
>+# Copyright (c) 2013 - 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 >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources.common] >diff --git a/MdeModulePkg/Bus/I2c/I2cDxe/I2cHostDxe.inf >b/MdeModulePkg/Bus/I2c/I2cDxe/I2cHostDxe.inf >index 2fb1085c6d..c40bf7d909 100644 >--- a/MdeModulePkg/Bus/I2c/I2cDxe/I2cHostDxe.inf >+++ b/MdeModulePkg/Bus/I2c/I2cDxe/I2cHostDxe.inf >@@ -1,7 +1,7 @@ > ## @file > # This driver produce I2C Host Protocol on I2C controller handle. > # >-# Copyright (c) 2013 - 2014, Intel Corporation. All rights reserved.
>+# Copyright (c) 2013 - 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 >@@ -26,7 +26,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources.common] >diff --git a/MdeModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf >b/MdeModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf >index b257e99dba..464720b1f9 100644 >--- a/MdeModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf >+++ b/MdeModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf >@@ -30,7 +30,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gIsaBusDriverBinding > # COMPONENT_NAME =3D gIsaBusComponentName >diff --git a/MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf >b/MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf >index a0172eabf8..8b6847eeac 100644 >--- a/MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf >+++ b/MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf >@@ -4,7 +4,7 @@ > # Ps2 Keyboard Driver for UEFI. The keyboard type implemented follows IBM > # compatible PS2 protocol using Scan Code Set 1. > # >-# Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.
>+# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
> # > # This program and the accompanying materials > # are licensed and made available under the terms and conditions of the B= SD >License >@@ -27,7 +27,7 @@ > ENTRY_POINT =3D InitializePs2Keyboard > > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # DRIVER_BINDING =3D gKeyboardControllerDriver; > # COMPONENT_NAME =3D gPs2KeyboardComponentName; > # COMPONENT_NAME2 =3D gPs2KeyboardComponentName2; >diff --git a/MdeModulePkg/Bus/Isa/Ps2MouseDxe/Ps2MouseDxe.inf >b/MdeModulePkg/Bus/Isa/Ps2MouseDxe/Ps2MouseDxe.inf >index 2c7688a051..a631aaad2e 100644 >--- a/MdeModulePkg/Bus/Isa/Ps2MouseDxe/Ps2MouseDxe.inf >+++ b/MdeModulePkg/Bus/Isa/Ps2MouseDxe/Ps2MouseDxe.inf >@@ -3,7 +3,7 @@ > # > # This dirver provides support for PS2 based mice. > # >-# Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.
>+# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
> # > # This program and the accompanying materials > # are licensed and made available under the terms and conditions of the B= SD >License >@@ -26,7 +26,7 @@ > ENTRY_POINT =3D InitializePs2Mouse > > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # DRIVER_BINDING =3D gPS2MouseDriver; > # COMPONENT_NAME =3D gPs2MouseComponentName; > # COMPONENT_NAME2 =3D gPs2MouseComponentName2; >diff --git a/MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf >b/MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf >index bc6bd4ce29..d1db212002 100644 >--- a/MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf >+++ b/MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf >@@ -34,7 +34,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC ARM AARCH64 >+# VALID_ARCHITECTURES =3D IA32 X64 EBC ARM AARCH64 > # > # DRIVER_BINDING =3D gEhciDriverBinding > # COMPONENT_NAME =3D gEhciComponentName >diff --git a/MdeModulePkg/Bus/Pci/EhciPei/EhciPei.inf >b/MdeModulePkg/Bus/Pci/EhciPei/EhciPei.inf >index 74c13db1c1..4fa3213479 100644 >--- a/MdeModulePkg/Bus/Pci/EhciPei/EhciPei.inf >+++ b/MdeModulePkg/Bus/Pci/EhciPei/EhciPei.inf >@@ -30,7 +30,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Bus/Pci/IdeBusPei/IdeBusPei.inf >b/MdeModulePkg/Bus/Pci/IdeBusPei/IdeBusPei.inf >index 8bcef7bc6a..3686b43af4 100644 >--- a/MdeModulePkg/Bus/Pci/IdeBusPei/IdeBusPei.inf >+++ b/MdeModulePkg/Bus/Pci/IdeBusPei/IdeBusPei.inf >@@ -4,7 +4,7 @@ > # for Atapi CD ROM device. > # > # This module discovers CDROM devices in Legacy and native mode and >installs block IO ppis for them. >-# Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.
>+# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
> # > # This program and the accompanying materials > # are licensed and made available under the terms and conditions >@@ -30,7 +30,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Bus/Pci/IncompatiblePciDeviceSupportDxe/IncompatibleP >ciDeviceSupportDxe.inf >b/MdeModulePkg/Bus/Pci/IncompatiblePciDeviceSupportDxe/IncompatibleP >ciDeviceSupportDxe.inf >index fa3e012cc7..6bc5f9fcbf 100644 >--- >a/MdeModulePkg/Bus/Pci/IncompatiblePciDeviceSupportDxe/IncompatibleP >ciDeviceSupportDxe.inf >+++ >b/MdeModulePkg/Bus/Pci/IncompatiblePciDeviceSupportDxe/IncompatibleP >ciDeviceSupportDxe.inf >@@ -28,7 +28,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf >b/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf >index bfb783205c..aca625b3b0 100644 >--- a/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf >+++ b/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf >@@ -28,7 +28,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gNvmExpressDriverBinding > # COMPONENT_NAME =3D gNvmExpressComponentName >diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf >b/MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf >index a21dd2b5ed..82233e0c7b 100644 >--- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf >+++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf >@@ -26,7 +26,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC ARM AARCH64 >+# VALID_ARCHITECTURES =3D IA32 X64 EBC ARM AARCH64 > # > # DRIVER_BINDING =3D gPciBusDriverBinding > # COMPONENT_NAME =3D gPciBusComponentName >diff --git a/MdeModulePkg/Bus/Pci/PciSioSerialDxe/PciSioSerialDxe.inf >b/MdeModulePkg/Bus/Pci/PciSioSerialDxe/PciSioSerialDxe.inf >index 03fddfe75e..461f2bf5d4 100644 >--- a/MdeModulePkg/Bus/Pci/PciSioSerialDxe/PciSioSerialDxe.inf >+++ b/MdeModulePkg/Bus/Pci/PciSioSerialDxe/PciSioSerialDxe.inf >@@ -3,7 +3,7 @@ > # > # Produces the Serial I/O protocol for standard UARTS using Super I/O or = PCI >I/O. > # >-# Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.
>+# 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 B= SD >License >@@ -27,7 +27,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gSerialControllerDriver > # COMPONENT_NAME =3D gPciSioSerialComponentName >diff --git a/MdeModulePkg/Bus/Pci/SataControllerDxe/SataControllerDxe.inf >b/MdeModulePkg/Bus/Pci/SataControllerDxe/SataControllerDxe.inf >index 4fcb9678aa..51d95da346 100644 >--- a/MdeModulePkg/Bus/Pci/SataControllerDxe/SataControllerDxe.inf >+++ b/MdeModulePkg/Bus/Pci/SataControllerDxe/SataControllerDxe.inf >@@ -24,7 +24,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC ARM AARCH64 >+# VALID_ARCHITECTURES =3D IA32 X64 EBC ARM AARCH64 > # > # DRIVER_BINDING =3D gSataControllerDriverBinding > # COMPONENT_NAME =3D gSataControllerComponentName >diff --git a/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.inf >b/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.inf >index 154ce45d82..b0425e9886 100644 >--- a/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.inf >+++ b/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.inf >@@ -5,7 +5,7 @@ > # It will produce EFI_SD_MMC_PASS_THRU_PROTOCOL to allow sending >SD/MMC/eMMC cmds > # to specified devices from upper layer. > # >-# Copyright (c) 2015, Intel Corporation. All rights reserved.
>+# Copyright (c) 2015 - 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 >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gSdMmcPciHcDxeDriverBinding > # COMPONENT_NAME =3D gSdMmcPciHcDxeComponentName >diff --git a/MdeModulePkg/Bus/Pci/SdMmcPciHcPei/SdMmcPciHcPei.inf >b/MdeModulePkg/Bus/Pci/SdMmcPciHcPei/SdMmcPciHcPei.inf >index 51675f5bfb..261fc1191a 100644 >--- a/MdeModulePkg/Bus/Pci/SdMmcPciHcPei/SdMmcPciHcPei.inf >+++ b/MdeModulePkg/Bus/Pci/SdMmcPciHcPei/SdMmcPciHcPei.inf >@@ -25,7 +25,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Bus/Pci/UfsPciHcDxe/UfsPciHcDxe.inf >b/MdeModulePkg/Bus/Pci/UfsPciHcDxe/UfsPciHcDxe.inf >index 525235635a..aa9c11f51b 100644 >--- a/MdeModulePkg/Bus/Pci/UfsPciHcDxe/UfsPciHcDxe.inf >+++ b/MdeModulePkg/Bus/Pci/UfsPciHcDxe/UfsPciHcDxe.inf >@@ -24,7 +24,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gUfsHcDriverBinding > # COMPONENT_NAME =3D gUfsHcComponentName >diff --git a/MdeModulePkg/Bus/Pci/UfsPciHcPei/UfsPciHcPei.inf >b/MdeModulePkg/Bus/Pci/UfsPciHcPei/UfsPciHcPei.inf >index 3535da17f0..75029183ab 100644 >--- a/MdeModulePkg/Bus/Pci/UfsPciHcPei/UfsPciHcPei.inf >+++ b/MdeModulePkg/Bus/Pci/UfsPciHcPei/UfsPciHcPei.inf >@@ -25,7 +25,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf >b/MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf >index 5dccd3b22e..e6eb351ead 100644 >--- a/MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf >+++ b/MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC ARM AARCH64 >+# VALID_ARCHITECTURES =3D IA32 X64 EBC ARM AARCH64 > # > # DRIVER_BINDING =3D gUhciDriverBinding > # COMPONENT_NAME =3D gUhciComponentName >diff --git a/MdeModulePkg/Bus/Pci/UhciPei/UhciPei.inf >b/MdeModulePkg/Bus/Pci/UhciPei/UhciPei.inf >index 95ddea2162..1995d73984 100644 >--- a/MdeModulePkg/Bus/Pci/UhciPei/UhciPei.inf >+++ b/MdeModulePkg/Bus/Pci/UhciPei/UhciPei.inf >@@ -4,7 +4,7 @@ > # It produces gPeiUsbHostControllerPpiGuid based on >gPeiUsbControllerPpiGuid which is used > # to enable recovery function from USB Drivers. > # >-# Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.
>+# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
> # > # This program and the accompanying materials > # are licensed and made available under the terms and conditions >@@ -30,7 +30,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf >b/MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf >index 9bdabd10bc..4f9025b724 100644 >--- a/MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf >+++ b/MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC ARM AARCH64 >+# VALID_ARCHITECTURES =3D IA32 X64 EBC ARM AARCH64 > # > # DRIVER_BINDING =3D gXhciDriverBinding > # COMPONENT_NAME =3D gXhciComponentName >diff --git a/MdeModulePkg/Bus/Pci/XhciPei/XhciPei.inf >b/MdeModulePkg/Bus/Pci/XhciPei/XhciPei.inf >index f307ea7646..c6c48f7349 100644 >--- a/MdeModulePkg/Bus/Pci/XhciPei/XhciPei.inf >+++ b/MdeModulePkg/Bus/Pci/XhciPei/XhciPei.inf >@@ -4,7 +4,7 @@ > # It produces gPeiUsb2HostControllerPpiGuid based on >gPeiUsbControllerPpiGuid > # which is used to enable recovery function from USB Drivers. > # >-# Copyright (c) 2014, Intel Corporation. All rights reserved.
>+# Copyright (c) 2014 - 2018, Intel Corporation. All rights reserved.
> # > # This program and the accompanying materials > # are licensed and made available under the terms and conditions >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf >b/MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf >index abcd267668..fb1ef3a8f5 100644 >--- a/MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf >+++ b/MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf >@@ -27,7 +27,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gSCSIBusDriverBinding > # COMPONENT_NAME =3D gScsiBusComponentName >diff --git a/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf >b/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf >index 397d314272..ffe9ee9dad 100644 >--- a/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf >+++ b/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf >@@ -27,7 +27,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gScsiDiskDriverBinding > # COMPONENT_NAME =3D gScsiDiskComponentName >diff --git a/MdeModulePkg/Bus/Sd/EmmcBlockIoPei/EmmcBlockIoPei.inf >b/MdeModulePkg/Bus/Sd/EmmcBlockIoPei/EmmcBlockIoPei.inf >index b4127b791d..86c3631c82 100644 >--- a/MdeModulePkg/Bus/Sd/EmmcBlockIoPei/EmmcBlockIoPei.inf >+++ b/MdeModulePkg/Bus/Sd/EmmcBlockIoPei/EmmcBlockIoPei.inf >@@ -1,7 +1,7 @@ > ## @file > # Description file for the Embedded MMC (eMMC) Peim driver. > # >-# Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.
>+# Copyright (c) 2015 - 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 >@@ -26,7 +26,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Bus/Sd/EmmcDxe/EmmcDxe.inf >b/MdeModulePkg/Bus/Sd/EmmcDxe/EmmcDxe.inf >index 3f27bdbcaf..b7e38098e6 100644 >--- a/MdeModulePkg/Bus/Sd/EmmcDxe/EmmcDxe.inf >+++ b/MdeModulePkg/Bus/Sd/EmmcDxe/EmmcDxe.inf >@@ -4,7 +4,7 @@ > # It produces BlockIo, BlockIo2 and StorageSecurity protocols to allow u= pper >layer > # access the EMMC device. > # >-# Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.
>+# Copyright (c) 2015 - 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 >@@ -28,7 +28,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gEmmcDxeDriverBinding > # COMPONENT_NAME =3D gEmmcDxeComponentName >diff --git a/MdeModulePkg/Bus/Sd/SdBlockIoPei/SdBlockIoPei.inf >b/MdeModulePkg/Bus/Sd/SdBlockIoPei/SdBlockIoPei.inf >index 1530f1efdb..0a31661aed 100644 >--- a/MdeModulePkg/Bus/Sd/SdBlockIoPei/SdBlockIoPei.inf >+++ b/MdeModulePkg/Bus/Sd/SdBlockIoPei/SdBlockIoPei.inf >@@ -1,7 +1,7 @@ > ## @file > # Description file for the SD memory card Peim driver. > # >-# Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.
>+# Copyright (c) 2015 - 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 >@@ -26,7 +26,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Bus/Sd/SdDxe/SdDxe.inf >b/MdeModulePkg/Bus/Sd/SdDxe/SdDxe.inf >index a763314275..1ce801ffcb 100644 >--- a/MdeModulePkg/Bus/Sd/SdDxe/SdDxe.inf >+++ b/MdeModulePkg/Bus/Sd/SdDxe/SdDxe.inf >@@ -4,7 +4,7 @@ > # It produces BlockIo and BlockIo2 protocols to allow upper layer > # access the SD memory card device. > # >-# Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.
>+# Copyright (c) 2015 - 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 >@@ -28,7 +28,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gSdDxeDriverBinding > # COMPONENT_NAME =3D gSdDxeComponentName >diff --git a/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.inf >b/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.inf >index 28daf67ffc..daa8b6b573 100644 >--- a/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.inf >+++ b/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.inf >@@ -1,7 +1,7 @@ > ## @file > # Description file for the Universal Flash Storage (UFS) Peim driver. > # >-# Copyright (c) 2014 - 2017, Intel Corporation. All rights reserved.
>+# Copyright (c) 2014 - 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 >@@ -26,7 +26,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruDxe.inf >b/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruDxe.inf >index 93b6424020..a8a3f7c4c5 100644 >--- a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruDxe.inf >+++ b/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruDxe.inf >@@ -26,7 +26,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gUfsPassThruDriverBinding > # COMPONENT_NAME =3D gUfsPassThruComponentName >diff --git a/MdeModulePkg/Bus/Usb/UsbBotPei/UsbBotPei.inf >b/MdeModulePkg/Bus/Usb/UsbBotPei/UsbBotPei.inf >index 977bef5c8b..1cd8286ad3 100644 >--- a/MdeModulePkg/Bus/Usb/UsbBotPei/UsbBotPei.inf >+++ b/MdeModulePkg/Bus/Usb/UsbBotPei/UsbBotPei.inf >@@ -1,7 +1,7 @@ > ## @file > # The Usb mass storage device Peim driver is used to support recovery fro= m >USB device. > # >-# Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.
>+# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
> # > # This program and the accompanying materials > # are licensed and made available under the terms and conditions >@@ -27,7 +27,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf >b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf >index 30d59adb34..e9baefdcff 100644 >--- a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf >+++ b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf >@@ -27,7 +27,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC ARM AARCH64 >+# VALID_ARCHITECTURES =3D IA32 X64 EBC ARM AARCH64 > # > # DRIVER_BINDING =3D mUsbBusDriverBinding > # COMPONENT_NAME =3D mUsbBusComponentName >diff --git a/MdeModulePkg/Bus/Usb/UsbBusPei/UsbBusPei.inf >b/MdeModulePkg/Bus/Usb/UsbBusPei/UsbBusPei.inf >index 0d81bf8dc2..8781adc6a8 100644 >--- a/MdeModulePkg/Bus/Usb/UsbBusPei/UsbBusPei.inf >+++ b/MdeModulePkg/Bus/Usb/UsbBusPei/UsbBusPei.inf >@@ -27,7 +27,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf >b/MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf >index 41f0d9ab9b..b994ea3e24 100644 >--- a/MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf >+++ b/MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf >@@ -37,7 +37,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC ARM AARCH64 >+# VALID_ARCHITECTURES =3D IA32 X64 EBC ARM AARCH64 > # > # DRIVER_BINDING =3D gUsbKeyboardDriverBinding > # COMPONENT_NAME =3D gUsbKeyboardComponentName >diff --git >a/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf >b/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf >index 1fdd43443f..91953b35bc 100644 >--- a/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf >+++ >b/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf >@@ -38,7 +38,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gUSBMassDriverBinding > # COMPONENT_NAME =3D gUsbMassStorageComponentName >diff --git >a/MdeModulePkg/Bus/Usb/UsbMouseAbsolutePointerDxe/UsbMouseAbsol >utePointerDxe.inf >b/MdeModulePkg/Bus/Usb/UsbMouseAbsolutePointerDxe/UsbMouseAbsol >utePointerDxe.inf >index 10e74b9783..aacd8fe3fe 100644 >--- >a/MdeModulePkg/Bus/Usb/UsbMouseAbsolutePointerDxe/UsbMouseAbsol >utePointerDxe.inf >+++ >b/MdeModulePkg/Bus/Usb/UsbMouseAbsolutePointerDxe/UsbMouseAbsol >utePointerDxe.inf >@@ -34,7 +34,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gUsbMouseAbsolutePointerDriverBindi= ng > # COMPONENT_NAME =3D >gUsbMouseAbsolutePointerComponentName >diff --git a/MdeModulePkg/Bus/Usb/UsbMouseDxe/UsbMouseDxe.inf >b/MdeModulePkg/Bus/Usb/UsbMouseDxe/UsbMouseDxe.inf >index 5bea024d20..6da3debb96 100644 >--- a/MdeModulePkg/Bus/Usb/UsbMouseDxe/UsbMouseDxe.inf >+++ b/MdeModulePkg/Bus/Usb/UsbMouseDxe/UsbMouseDxe.inf >@@ -34,7 +34,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gUsbMouseDriverBinding > # COMPONENT_NAME =3D gUsbMouseComponentName >diff --git a/MdeModulePkg/Core/Dxe/DxeMain.inf >b/MdeModulePkg/Core/Dxe/DxeMain.inf >index 68fa0a01d9..404f924764 100644 >--- a/MdeModulePkg/Core/Dxe/DxeMain.inf >+++ b/MdeModulePkg/Core/Dxe/DxeMain.inf >@@ -28,7 +28,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC (EBC is for build o= nly) >+# VALID_ARCHITECTURES =3D IA32 X64 EBC (EBC is for build only) > # > > [Sources] >diff --git a/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf >b/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf >index 7deeb8f270..2ea429c215 100644 >--- a/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf >+++ b/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf >@@ -31,7 +31,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC (EBC is for build o= nly) >AARCH64 >+# VALID_ARCHITECTURES =3D IA32 X64 EBC (EBC is for build only) >AARCH64 > # > > [Sources] >@@ -49,9 +49,6 @@ > X64/VirtualMemory.c > X64/DxeLoadFunc.c > >-[Sources.IPF] >- Ipf/DxeLoadFunc.c >- > [Sources.EBC] > Ebc/DxeLoadFunc.c > >diff --git a/MdeModulePkg/Core/DxeIplPeim/Ipf/DxeLoadFunc.c >b/MdeModulePkg/Core/DxeIplPeim/Ipf/DxeLoadFunc.c >deleted file mode 100644 >index 7443648017..0000000000 >--- a/MdeModulePkg/Core/DxeIplPeim/Ipf/DxeLoadFunc.c >+++ /dev/null >@@ -1,85 +0,0 @@ >-/** @file >- Ipf-specific functionality for DxeLoad. >- >-Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
>-This program and the accompanying materials >-are licensed and made available under the terms and conditions of the BSD >License >-which accompanies this distribution. The full text of the license may be >found at >-http://opensource.org/licenses/bsd-license.php >- >-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, >-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER >EXPRESS OR IMPLIED. >- >-**/ >- >-#include "DxeIpl.h" >- >- >- >-/** >- Transfers control to DxeCore. >- >- This function performs a CPU architecture specific operations to execu= te >- the entry point of DxeCore with the parameters of HobList. >- It also installs EFI_END_OF_PEI_PPI to signal the end of PEI phase. >- >- @param DxeCoreEntryPoint The entry point of DxeCore. >- @param HobList The start of HobList passed to DxeCor= e. >- >-**/ >-VOID >-HandOffToDxeCore ( >- IN EFI_PHYSICAL_ADDRESS DxeCoreEntryPoint, >- IN EFI_PEI_HOB_POINTERS HobList >- ) >-{ >- VOID *BaseOfStack; >- VOID *TopOfStack; >- VOID *BspStore; >- EFI_STATUS Status; >- >- // >- // Allocate 128KB for the Stack >- // >- BaseOfStack =3D AllocatePages (EFI_SIZE_TO_PAGES (STACK_SIZE)); >- ASSERT (BaseOfStack !=3D NULL); >- >- // >- // Allocate 16KB for the BspStore >- // >- BspStore =3D AllocatePages (EFI_SIZE_TO_PAGES (BSP_STORE_SIZE)); >- ASSERT (BspStore !=3D NULL); >- // >- // Build BspStoreHob >- // >- BuildBspStoreHob ((EFI_PHYSICAL_ADDRESS) (UINTN) BspStore, >BSP_STORE_SIZE, EfiBootServicesData); >- >- // >- // Compute the top of the stack we were allocated. Pre-allocate a UINTN >- // for safety. >- // >- TopOfStack =3D (VOID *) ((UINTN) BaseOfStack + EFI_SIZE_TO_PAGES >(STACK_SIZE) * EFI_PAGE_SIZE - CPU_STACK_ALIGNMENT); >- TopOfStack =3D ALIGN_POINTER (TopOfStack, CPU_STACK_ALIGNMENT); >- >- // >- // End of PEI phase signal >- // >- Status =3D PeiServicesInstallPpi (&gEndOfPeiSignalPpi); >- ASSERT_EFI_ERROR (Status); >- >- // >- // Update the contents of BSP stack HOB to reflect the real stack info = passed >to DxeCore. >- // >- UpdateStackHob ((EFI_PHYSICAL_ADDRESS)(UINTN) BaseOfStack, >STACK_SIZE); >- >- // >- // Transfer the control to the entry point of DxeCore. >- // >- SwitchStack ( >- (SWITCH_STACK_ENTRY_POINT)(UINTN)DxeCoreEntryPoint, >- HobList.Raw, >- NULL, >- TopOfStack, >- BspStore >- ); >-} >diff --git a/MdeModulePkg/Core/Pei/PeiMain.inf >b/MdeModulePkg/Core/Pei/PeiMain.inf >index 2fb01958e5..18f46e1bd4 100644 >--- a/MdeModulePkg/Core/Pei/PeiMain.inf >+++ b/MdeModulePkg/Core/Pei/PeiMain.inf >@@ -30,7 +30,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC (EBC is for build o= nly) >+# VALID_ARCHITECTURES =3D IA32 X64 EBC (EBC is for build only) > # > > [Sources] >diff --git a/MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf >b/MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf >index d66c8b9f09..980efad3dd 100644 >--- a/MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf >+++ b/MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf >@@ -31,7 +31,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Include/Guid/VariableFormat.h >b/MdeModulePkg/Include/Guid/VariableFormat.h >index b0c2616c4d..52214f1b6c 100644 >--- a/MdeModulePkg/Include/Guid/VariableFormat.h >+++ b/MdeModulePkg/Include/Guid/VariableFormat.h >@@ -2,7 +2,7 @@ > The variable data structures are related to EDK II-specific implementat= ion of >UEFI variables. > VariableFormat.h defines variable data headers and variable storage reg= ion >headers. > >-Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.
>+Copyright (c) 2006 - 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 that accompanies this >distribution. > The full text of the license may be found at >@@ -28,13 +28,8 @@ extern EFI_GUID gEfiAuthenticatedVariableGuid; > /// > /// Alignment of variable name and data, according to the architecture: > /// * For IA-32 and Intel(R) 64 architectures: 1. >-/// * For IA-64 architecture: 8. > /// >-#if defined (MDE_CPU_IPF) >-#define ALIGNMENT 8 >-#else > #define ALIGNMENT 1 >-#endif > > // > // GET_PAD_SIZE calculates the miminal pad bytes needed to make the >current pad size satisfy the alignment requirement. >diff --git >a/MdeModulePkg/Library/BasePlatformHookLibNull/BasePlatformHookLibNu >ll.inf >b/MdeModulePkg/Library/BasePlatformHookLibNull/BasePlatformHookLibNu >ll.inf >index 6d5195576f..7a004005f0 100644 >--- >a/MdeModulePkg/Library/BasePlatformHookLibNull/BasePlatformHookLibNu >ll.inf >+++ >b/MdeModulePkg/Library/BasePlatformHookLibNull/BasePlatformHookLibNu >ll.inf >@@ -1,7 +1,7 @@ > ## @file > # Null Platform Hook Library instance. > # >-# Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.
>+# Copyright (c) 2010 - 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 >@@ -24,7 +24,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/BaseResetSystemLibNull/BaseResetSystemLibNull. >inf >b/MdeModulePkg/Library/BaseResetSystemLibNull/BaseResetSystemLibNull. >inf >index 96e0ebb212..b744b0767f 100644 >--- >a/MdeModulePkg/Library/BaseResetSystemLibNull/BaseResetSystemLibNull. >inf >+++ >b/MdeModulePkg/Library/BaseResetSystemLibNull/BaseResetSystemLibNull. >inf >@@ -1,7 +1,7 @@ > ## @file > # Null Reset System Library instance that only generates ASSERT() condit= ions. > # >-# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
>+# 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 >@@ -24,7 +24,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Library/BaseSortLib/BaseSortLib.inf >b/MdeModulePkg/Library/BaseSortLib/BaseSortLib.inf >index 4b493f4eb6..d9b781cbe1 100644 >--- a/MdeModulePkg/Library/BaseSortLib/BaseSortLib.inf >+++ b/MdeModulePkg/Library/BaseSortLib/BaseSortLib.inf >@@ -1,7 +1,7 @@ > ## @file > # Library used for sorting routines. > # >-# Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved. >+# Copyright (c) 2009 - 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 >@@ -23,7 +23,7 @@ > LIBRARY_CLASS =3D SortLib|DXE_DRIVER DXE_RUNTIME_DRIVE= R >UEFI_APPLICATION UEFI_DRIVER > > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources.common] >diff --git a/MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf >b/MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf >index a2afc9e089..310254510d 100644 >--- a/MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf >+++ b/MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf >@@ -26,7 +26,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenance >ManagerUiLib.inf >b/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanc >eManagerUiLib.inf >index aad9d7678e..d23f71ff28 100644 >--- >a/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenance >ManagerUiLib.inf >+++ >b/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanc >eManagerUiLib.inf >@@ -24,7 +24,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf >b/MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf >index f6fc074b9d..5ae0f174b6 100644 >--- a/MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf >+++ b/MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf >@@ -24,7 +24,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandler >LibNull.inf >b/MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandle >rLibNull.inf >index c79c5a76ee..4dbbe410d5 100644 >--- >a/MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandler >LibNull.inf >+++ >b/MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandle >rLibNull.inf >@@ -1,7 +1,7 @@ > ## @file > # Null instance of CPU Exception Handler Library with empty functions. > # >-# Copyright (c) 2012 - 2014, Intel Corporation. All rights reserved.
>+# Copyright (c) 2012 - 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 >@@ -24,7 +24,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources.common] >diff --git >a/MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf >b/MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf >index 4b1f6b4404..6ce2e59957 100644 >--- a/MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf >+++ >b/MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf >@@ -25,7 +25,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf >b/MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf >index ce1eab2623..8318f1e4ca 100644 >--- a/MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf >+++ b/MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf >@@ -1,7 +1,7 @@ > ## @file > # Null instance of Debug Agent Library with empty functions. > # >-# Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.
>+# Copyright (c) 2010 - 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 >@@ -24,7 +24,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources.common] >diff --git >a/MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf >b/MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf >index d493b37baa..2e61a3debd 100644 >--- a/MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf >+++ b/MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf >@@ -24,7 +24,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/DisplayUpdateProgressLibGraphics/DisplayUpdate >ProgressLibGraphics.inf >b/MdeModulePkg/Library/DisplayUpdateProgressLibGraphics/DisplayUpdate >ProgressLibGraphics.inf >index ada6076770..6ba073f21f 100644 >--- >a/MdeModulePkg/Library/DisplayUpdateProgressLibGraphics/DisplayUpdate >ProgressLibGraphics.inf >+++ >b/MdeModulePkg/Library/DisplayUpdateProgressLibGraphics/DisplayUpdate >ProgressLibGraphics.inf >@@ -37,7 +37,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/DisplayUpdateProgressLibText/DisplayUpdateProg >ressLibText.inf >b/MdeModulePkg/Library/DisplayUpdateProgressLibText/DisplayUpdateProg >ressLibText.inf >index c3134439e4..df8624a77e 100644 >--- >a/MdeModulePkg/Library/DisplayUpdateProgressLibText/DisplayUpdateProg >ressLibText.inf >+++ >b/MdeModulePkg/Library/DisplayUpdateProgressLibText/DisplayUpdateProg >ressLibText.inf >@@ -37,7 +37,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.inf >b/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.inf >index 8367264f76..74f23f97ff 100644 >--- a/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.inf >+++ b/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.inf >@@ -28,7 +28,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeRuntimeCapsuleLib.inf >b/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeRuntimeCapsuleLib.inf >index 342df9e99c..5a80cbef3f 100644 >--- a/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeRuntimeCapsuleLib.inf >+++ b/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeRuntimeCapsuleLib.inf >@@ -30,7 +30,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf >b/MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf >index b836607aae..42cb306655 100644 >--- a/MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf >+++ b/MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf >@@ -2,7 +2,7 @@ > # NULL Dxe Capsule library instance. > # It can make core modules pass package level build. > # >-# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
>+# Copyright (c) 2006 - 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 >@@ -26,7 +26,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAll >ocationLib.inf >b/MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAll >ocationLib.inf >index caba8cd4a4..a7df08b520 100644 >--- >a/MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAll >ocationLib.inf >+++ >b/MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAll >ocationLib.inf >@@ -4,7 +4,7 @@ > # for memory allocation instead of using UEFI boot services in an indirec= t way. > # It is assumed that this library instance must be linked with DxeCore in= this >package. > # >-# Copyright (c) 2008 - 2016, Intel Corporation. All rights reserved.
>+# Copyright (c) 2008 - 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 >@@ -28,7 +28,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAll >ocationProfileLib.inf >b/MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAll >ocationProfileLib.inf >index a2b5f8c102..823ca7127d 100644 >--- >a/MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAll >ocationProfileLib.inf >+++ >b/MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAll >ocationProfileLib.inf >@@ -4,7 +4,7 @@ > # for memory allocation/profile instead of using UEFI boot services or >memory profile protocol in an indirect way. > # It is assumed that this library instance must be linked with DxeCore in= this >package. > # >-# Copyright (c) 2008 - 2016, Intel Corporation. All rights reserved.
>+# Copyright (c) 2008 - 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 >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib. >inf >b/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib. >inf >index 8fab47ff02..e19a74bbe6 100644 >--- >a/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib. >inf >+++ >b/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib. >inf >@@ -35,7 +35,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32Guide >dSectionExtractLib.inf >b/MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32Guide >dSectionExtractLib.inf >index 7a8efbf8cf..176d9d984a 100644 >--- >a/MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32Guide >dSectionExtractLib.inf >+++ >b/MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32Guide >dSectionExtractLib.inf >@@ -25,14 +25,14 @@ > FILE_GUID =3D 387A2490-81FC-4E7C-8E0A-3E58C30FCD0B > MODULE_TYPE =3D DXE_DRIVER > VERSION_STRING =3D 1.0 >- LIBRARY_CLASS =3D NULL|DXE_CORE DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER >UEFI_APPLICATION UEFI_DRIVER >+ LIBRARY_CLASS =3D NULL|DXE_CORE DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER > > CONSTRUCTOR =3D DxeCrc32GuidedSectionExtractLibConst= ructor > > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/DxeDebugPrintErrorLevelLib/DxeDebugPrintErrorL >evelLib.inf >b/MdeModulePkg/Library/DxeDebugPrintErrorLevelLib/DxeDebugPrintErrorL >evelLib.inf >index 69a41f40c7..47f8681f2f 100644 >--- >a/MdeModulePkg/Library/DxeDebugPrintErrorLevelLib/DxeDebugPrintErrorL >evelLib.inf >+++ >b/MdeModulePkg/Library/DxeDebugPrintErrorLevelLib/DxeDebugPrintErrorL >evelLib.inf >@@ -22,12 +22,12 @@ > FILE_GUID =3D 1D564EC9-9373-49a4-9E3F-E4D7B9974C84 > MODULE_TYPE =3D DXE_DRIVER > VERSION_STRING =3D 1.0 >- LIBRARY_CLASS =3D DebugPrintErrorLevelLib|DXE_CORE DXE= _DRIVER >DXE_RUNTIME_DRIVER DXE_SAL_DRIVER UEFI_APPLICATION UEFI_DRIVER >+ LIBRARY_CLASS =3D DebugPrintErrorLevelLib|DXE_CORE DXE= _DRIVER >DXE_RUNTIME_DRIVER UEFI_APPLICATION UEFI_DRIVER > CONSTRUCTOR =3D DxeDebugPrintErrorLevelLibConstructo= r > DESTRUCTOR =3D DxeDebugPrintErrorLevelLibDestructor > > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf >b/MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf >index d541acd5a9..091f0a0465 100644 >--- a/MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf >+++ b/MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf >@@ -1,7 +1,7 @@ > ## @file > # This library instance provides DPC service by consuming EFI DPC Protoc= ol. > # >-# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
>+# 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 >@@ -19,13 +19,13 @@ > FILE_GUID =3D 38897D86-FF36-4472-AE64-1DB9AE715C81 > MODULE_TYPE =3D DXE_DRIVER > VERSION_STRING =3D 1.0 >- LIBRARY_CLASS =3D DpcLib|DXE_CORE DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER >UEFI_APPLICATION UEFI_DRIVER >+ LIBRARY_CLASS =3D DpcLib|DXE_CORE DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER > CONSTRUCTOR =3D DpcLibConstructor > > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/DxeFileExplorerProtocol/DxeFileExplorerProtocol.i >nf >b/MdeModulePkg/Library/DxeFileExplorerProtocol/DxeFileExplorerProtocol.i >nf >index 9db58cb8f6..bfa18d7bdd 100644 >--- >a/MdeModulePkg/Library/DxeFileExplorerProtocol/DxeFileExplorerProtocol.i >nf >+++ >b/MdeModulePkg/Library/DxeFileExplorerProtocol/DxeFileExplorerProtocol.i >nf >@@ -20,7 +20,7 @@ > FILE_GUID =3D 6806C45F-13C4-4274-B8A3-055EF641A060 > MODULE_TYPE =3D DXE_DRIVER > VERSION_STRING =3D 1.0 >- LIBRARY_CLASS =3D FileExplorerLib|DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER >UEFI_APPLICATION UEFI_DRIVER >+ LIBRARY_CLASS =3D FileExplorerLib|DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER > CONSTRUCTOR =3D FileExplorerConstructor > > [Sources] >diff --git a/MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf >b/MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf >index d6d5391b3a..dbcb67f9ab 100644 >--- a/MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf >+++ b/MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf >@@ -21,12 +21,12 @@ > FILE_GUID =3D ABBAB4CD-EA88-45b9-8234-C8A7450531FC > MODULE_TYPE =3D DXE_DRIVER > VERSION_STRING =3D 1.0 >- LIBRARY_CLASS =3D HttpLib|DXE_CORE DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER >UEFI_APPLICATION UEFI_DRIVER >+ LIBRARY_CLASS =3D HttpLib|DXE_CORE DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER > > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf >b/MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf >index 086c74d1f1..c8e7a516a9 100644 >--- a/MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf >+++ b/MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf >@@ -1,7 +1,7 @@ > ## @file > # This library instance provides IP services upon EFI IPv4/IPv6 Protocol= s. > # >-# Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.
>+# Copyright (c) 2006 - 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 >@@ -20,12 +20,12 @@ > FILE_GUID =3D A302F877-8625-425c-B1EC-7487B62C4FDA > MODULE_TYPE =3D DXE_DRIVER > VERSION_STRING =3D 1.0 >- LIBRARY_CLASS =3D IpIoLib|DXE_CORE DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER >UEFI_APPLICATION UEFI_DRIVER >+ LIBRARY_CLASS =3D IpIoLib|DXE_CORE DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER > > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf >b/MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf >index c31a04bb72..290b865e09 100644 >--- a/MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf >+++ b/MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf >@@ -21,12 +21,12 @@ > FILE_GUID =3D db6dcef3-9f4e-4340-9351-fc35aa8a5888 > MODULE_TYPE =3D DXE_DRIVER > VERSION_STRING =3D 1.0 >- LIBRARY_CLASS =3D NetLib|DXE_CORE DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER >UEFI_APPLICATION UEFI_DRIVER >+ LIBRARY_CLASS =3D NetLib|DXE_CORE DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER > > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf >b/MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf >index d9c7e833b5..3f10a4234f 100644 >--- a/MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf >+++ b/MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf >@@ -24,12 +24,12 @@ > FILE_GUID =3D 8B8B4CCC-65FC-41a5-8067-308B8E42CCF2 > MODULE_TYPE =3D DXE_DRIVER > VERSION_STRING =3D 1.0 >- LIBRARY_CLASS =3D PerformanceLib|DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER >UEFI_APPLICATION UEFI_DRIVER >+ LIBRARY_CLASS =3D PerformanceLib|DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER > > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/DxePrintLibPrint2Protocol/DxePrintLibPrint2Protoc >ol.inf >b/MdeModulePkg/Library/DxePrintLibPrint2Protocol/DxePrintLibPrint2Protoc >ol.inf >index 1cda2dc5cf..e1b05986ca 100644 >--- >a/MdeModulePkg/Library/DxePrintLibPrint2Protocol/DxePrintLibPrint2Protoc >ol.inf >+++ >b/MdeModulePkg/Library/DxePrintLibPrint2Protocol/DxePrintLibPrint2Protoc >ol.inf >@@ -1,7 +1,7 @@ > ## @file > # Library instance that implements Print Library class based on protocol >gEfiPrint2ProtocolGuid. > # >-# Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.
>+# Copyright (c) 2009 - 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 >@@ -20,7 +20,7 @@ > FILE_GUID =3D 55D460DB-8FEA-415a-B95D-70145AE0675C > MODULE_TYPE =3D DXE_DRIVER > VERSION_STRING =3D 1.0 >- LIBRARY_CLASS =3D PrintLib|DXE_DRIVER DXE_RUNTIME_DRIV= ER >DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER >+ LIBRARY_CLASS =3D PrintLib|DXE_DRIVER DXE_RUNTIME_DRIV= ER >DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER > CONSTRUCTOR =3D PrintLibConstructor > > [Sources] >diff --git >a/MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLi >b.inf >b/MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLi >b.inf >index 962cf8b05b..d833b667e5 100644 >--- >a/MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLi >b.inf >+++ >b/MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLi >b.inf >@@ -3,7 +3,7 @@ > # > # Retrieve status code and report status code in DXE phase. > # >-# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
>+# Copyright (c) 2006 - 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 >@@ -22,12 +22,12 @@ > FILE_GUID =3D EBF144C8-70F5-4e09-ADE2-F41F5C59AFDA > MODULE_TYPE =3D DXE_DRIVER > VERSION_STRING =3D 1.0 >- LIBRARY_CLASS =3D ReportStatusCodeLib|DXE_CORE DXE_DRI= VER >DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER >UEFI_APPLICATION UEFI_DRIVER SMM_CORE >+ LIBRARY_CLASS =3D ReportStatusCodeLib|DXE_CORE DXE_DRI= VER >DXE_RUNTIME_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER >SMM_CORE > > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf >b/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf >index 5cd52d8859..be1a01518f 100644 >--- a/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf >+++ b/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf >@@ -24,7 +24,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManage >mentLib.inf >b/MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManage >mentLib.inf >index 41d8ff8fd1..023b7fd88d 100644 >--- >a/MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManage >mentLib.inf >+++ >b/MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManage >mentLib.inf >@@ -22,12 +22,12 @@ > FILE_GUID =3D 7F61122C-19DF-47c3-BA0D-6C1149E30FA1 > MODULE_TYPE =3D DXE_DRIVER > VERSION_STRING =3D 1.0 >- LIBRARY_CLASS =3D SecurityManagementLib|DXE_CORE DXE_D= RIVER >DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER >UEFI_APPLICATION UEFI_DRIVER >+ LIBRARY_CLASS =3D SecurityManagementLib|DXE_CORE DXE_D= RIVER >DXE_RUNTIME_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER > > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Library/DxeTcpIoLib/DxeTcpIoLib.inf >b/MdeModulePkg/Library/DxeTcpIoLib/DxeTcpIoLib.inf >index 2dc74a73e2..78465d5826 100644 >--- a/MdeModulePkg/Library/DxeTcpIoLib/DxeTcpIoLib.inf >+++ b/MdeModulePkg/Library/DxeTcpIoLib/DxeTcpIoLib.inf >@@ -20,12 +20,12 @@ > FILE_GUID =3D D4608509-1AB0-4cc7-827A-AB8E1E7BD3E6 > MODULE_TYPE =3D DXE_DRIVER > VERSION_STRING =3D 1.0 >- LIBRARY_CLASS =3D TcpIoLib|DXE_CORE DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER >UEFI_APPLICATION UEFI_DRIVER >+ LIBRARY_CLASS =3D TcpIoLib|DXE_CORE DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER > > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf >b/MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf >index 3e541ee6ee..3a10a7945d 100644 >--- a/MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf >+++ b/MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf >@@ -20,12 +20,12 @@ > FILE_GUID =3D 7E615AA1-41EE-49d4-B7E9-1D7A60AA5C8D > MODULE_TYPE =3D DXE_DRIVER > VERSION_STRING =3D 1.0 >- LIBRARY_CLASS =3D UdpIoLib|DXE_CORE DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER >UEFI_APPLICATION UEFI_DRIVER >+ LIBRARY_CLASS =3D UdpIoLib|DXE_CORE DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER > > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf >b/MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf >index 5d9822d95f..d5a4732dd3 100644 >--- a/MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf >+++ b/MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf >@@ -25,7 +25,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/FmpAuthenticationLibNull/FmpAuthenticationLibN >ull.inf >b/MdeModulePkg/Library/FmpAuthenticationLibNull/FmpAuthenticationLibN >ull.inf >index f9b87ca53a..5c4e9d0958 100644 >--- >a/MdeModulePkg/Library/FmpAuthenticationLibNull/FmpAuthenticationLibN >ull.inf >+++ >b/MdeModulePkg/Library/FmpAuthenticationLibNull/FmpAuthenticationLibN >ull.inf >@@ -3,7 +3,7 @@ > # > # NULL Instance of FmpAuthentication Library. > # >-# Copyright (c) 2016, Intel Corporation. All rights reserved.
>+# Copyright (c) 2016 - 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 >@@ -26,7 +26,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompr >essLib.inf >b/MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecomp >ressLib.inf >index 127c7ded86..9d3a51a383 100644 >--- >a/MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompr >essLib.inf >+++ >b/MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecomp >ressLib.inf >@@ -5,7 +5,7 @@ > # LZMA SDK 16.04 was placed in the public domain on 2016-10-04. > # It was released on the http://www.7-zip.org/sdk.html website. > # >-# Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.
>+# Copyright (c) 2009 - 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 >@@ -30,7 +30,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCode >LibNull.inf >b/MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCod >eLibNull.inf >index 34555761a0..1d49f5e379 100644 >--- >a/MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCode >LibNull.inf >+++ >b/MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCod >eLibNull.inf >@@ -25,7 +25,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridgeLibNull.inf >b/MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridgeLibNull.inf >index 8df14924ad..42da8d93c1 100644 >--- a/MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridgeLibNull.inf >+++ b/MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridgeLibNull.inf >@@ -1,7 +1,7 @@ > ## @file > # Null instance of PCI Host Bridge Library with empty functions. > # >-# Copyright (c) 2016, Intel Corporation. All rights reserved.
>+# Copyright (c) 2016 - 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 th= is >@@ -27,7 +27,7 @@ > # The following information is for reference only and not required by the >build > # tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/PeiCrc32GuidedSectionExtractLib/PeiCrc32GuidedS >ectionExtractLib.inf >b/MdeModulePkg/Library/PeiCrc32GuidedSectionExtractLib/PeiCrc32Guided >SectionExtractLib.inf >index c1d6f27992..eaa2f2c931 100644 >--- >a/MdeModulePkg/Library/PeiCrc32GuidedSectionExtractLib/PeiCrc32GuidedS >ectionExtractLib.inf >+++ >b/MdeModulePkg/Library/PeiCrc32GuidedSectionExtractLib/PeiCrc32Guided >SectionExtractLib.inf >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC (EBC is for build o= nly) >+# VALID_ARCHITECTURES =3D IA32 X64 EBC (EBC is for build only) > # > > [Sources] >diff --git >a/MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLi >bReportStatusCode.inf >b/MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLi >bReportStatusCode.inf >index 12a063f5b8..8d98982aed 100644 >--- >a/MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLi >bReportStatusCode.inf >+++ >b/MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLi >bReportStatusCode.inf >@@ -21,12 +21,12 @@ > FILE_GUID =3D bda39d3a-451b-4350-8266-81ab10fa0523 > MODULE_TYPE =3D PEIM > VERSION_STRING =3D 1.0 >- LIBRARY_CLASS =3D DebugLib|DXE_CORE DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER SMM_CORE >PEIM SEC PEI_CORE UEFI_APPLICATION UEFI_DRIVER >+ LIBRARY_CLASS =3D DebugLib|DXE_CORE DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SMM_DRIVER SMM_CORE PEIM SEC PEI_CORE >UEFI_APPLICATION UEFI_DRIVER > > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf >b/MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf >index cad3a120a2..96bc613949 100644 >--- a/MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf >+++ b/MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC (EBC is for build o= nly) >+# VALID_ARCHITECTURES =3D IA32 X64 EBC (EBC is for build only) > # > > [Sources] >diff --git >a/MdeModulePkg/Library/PeiRecoveryLibNull/PeiRecoveryLibNull.inf >b/MdeModulePkg/Library/PeiRecoveryLibNull/PeiRecoveryLibNull.inf >index 70c9a88491..a2b26855fb 100644 >--- a/MdeModulePkg/Library/PeiRecoveryLibNull/PeiRecoveryLibNull.inf >+++ b/MdeModulePkg/Library/PeiRecoveryLibNull/PeiRecoveryLibNull.inf >@@ -27,7 +27,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC (EBC is for build o= nly) >+# VALID_ARCHITECTURES =3D IA32 X64 EBC (EBC is for build only) > # > > [Sources] >diff --git >a/MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.i >nf >b/MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.i >nf >index 5b1df7e2bb..e1b89792ab 100644 >--- >a/MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.i >nf >+++ >b/MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.i >nf >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC (EBC is for build o= nly) >+# VALID_ARCHITECTURES =3D IA32 X64 EBC (EBC is for build only) > # > > [Sources] >diff --git a/MdeModulePkg/Library/PeiResetSystemLib/PeiResetSystemLib.inf >b/MdeModulePkg/Library/PeiResetSystemLib/PeiResetSystemLib.inf >index b1b9388c63..3d930e5d21 100644 >--- a/MdeModulePkg/Library/PeiResetSystemLib/PeiResetSystemLib.inf >+++ b/MdeModulePkg/Library/PeiResetSystemLib/PeiResetSystemLib.inf >@@ -24,7 +24,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Library/PeiS3LibNull/PeiS3LibNull.inf >b/MdeModulePkg/Library/PeiS3LibNull/PeiS3LibNull.inf >index f408d7f528..10525b0502 100644 >--- a/MdeModulePkg/Library/PeiS3LibNull/PeiS3LibNull.inf >+++ b/MdeModulePkg/Library/PeiS3LibNull/PeiS3LibNull.inf >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC (EBC is for build o= nly) >+# VALID_ARCHITECTURES =3D IA32 X64 EBC (EBC is for build only) > # > > [Sources] >diff --git >a/MdeModulePkg/Library/PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf >b/MdeModulePkg/Library/PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf >index 0feff36612..f66e46e58e 100644 >--- a/MdeModulePkg/Library/PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf >+++ b/MdeModulePkg/Library/PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf >@@ -1,7 +1,7 @@ > ## @file > # DXE S3 boot script Library. > # >-# Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.
>+# Copyright (c) 2006 - 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 >@@ -20,7 +20,7 @@ > FILE_GUID =3D 57F9967B-26CD-4262-837A-55B8AA158254 > MODULE_TYPE =3D DXE_DRIVER > VERSION_STRING =3D 1.0 >- LIBRARY_CLASS =3D S3BootScriptLib|DXE_CORE DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SMM_DRIVER DXE_SAL_DRIVER UEFI_DRIVER >UEFI_APPLICATION >+ LIBRARY_CLASS =3D S3BootScriptLib|DXE_CORE DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SMM_DRIVER UEFI_DRIVER UEFI_APPLICATION > > > CONSTRUCTOR =3D S3BootScriptLibInitialize >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/PlatformHookLibSerialPortPpi/PlatformHookLibSeri >alPortPpi.inf >b/MdeModulePkg/Library/PlatformHookLibSerialPortPpi/PlatformHookLibSer >ialPortPpi.inf >index d577506b26..10be353742 100644 >--- >a/MdeModulePkg/Library/PlatformHookLibSerialPortPpi/PlatformHookLibSeri >alPortPpi.inf >+++ >b/MdeModulePkg/Library/PlatformHookLibSerialPortPpi/PlatformHookLibSer >ialPortPpi.inf >@@ -1,7 +1,7 @@ > ## @file > # Null Platform Hook Library instance with dependency on >gPeiSerialPortPpiGuid > # >-# Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.
>+# Copyright (c) 2010 - 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 >@@ -18,13 +18,13 @@ > FILE_GUID =3D 621734D8-8B5E-4c01-B330-9F89A1081710 > MODULE_TYPE =3D PEIM > VERSION_STRING =3D 1.0 >- LIBRARY_CLASS =3D PlatformHookLib|DXE_CORE DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER SMM_CORE >PEIM SEC PEI_CORE UEFI_APPLICATION UEFI_DRIVER >+ LIBRARY_CLASS =3D PlatformHookLib|DXE_CORE DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SMM_DRIVER SMM_CORE PEIM SEC PEI_CORE >UEFI_APPLICATION UEFI_DRIVER > MODULE_UNI_FILE =3D PlatformHookLibSerialPortPpi.uni > > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/PlatformVarCleanupLib/PlatformVarCleanupLib.inf >b/MdeModulePkg/Library/PlatformVarCleanupLib/PlatformVarCleanupLib.inf >index 6e7fcb6a5c..26b99c178e 100644 >--- >a/MdeModulePkg/Library/PlatformVarCleanupLib/PlatformVarCleanupLib.inf >+++ >b/MdeModulePkg/Library/PlatformVarCleanupLib/PlatformVarCleanupLib.inf >@@ -1,7 +1,7 @@ > ## @file > # Sample platform variable cleanup library instance. > # >-# Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.
>+# Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.
> # > # This program and the accompanying materials > # are licensed and made available under the terms and conditions >@@ -21,7 +21,7 @@ > FILE_GUID =3D 9C9623EB-4EF3-44e0-A931-F3A340D1A0F9 > MODULE_TYPE =3D DXE_DRIVER > VERSION_STRING =3D 1.0 >- LIBRARY_CLASS =3D PlatformVarCleanupLib|DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER >UEFI_APPLICATION UEFI_DRIVER >+ LIBRARY_CLASS =3D PlatformVarCleanupLib|DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER > CONSTRUCTOR =3D PlatformVarCleanupLibConstructor > DESTRUCTOR =3D PlatformVarCleanupLibDestructor > >diff --git >a/MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeRep >ortStatusCodeLib.inf >b/MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeRe >portStatusCodeLib.inf >index 9f03e2a1ed..e350e1b577 100644 >--- >a/MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeRep >ortStatusCodeLib.inf >+++ >b/MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeRe >portStatusCodeLib.inf >@@ -20,13 +20,13 @@ > FILE_GUID =3D 07D25BBB-F832-41bb-BBA0-612E9F033067 > MODULE_TYPE =3D DXE_RUNTIME_DRIVER > VERSION_STRING =3D 1.0 >- LIBRARY_CLASS =3D ReportStatusCodeLib|DXE_RUNTIME_DRIV= ER >DXE_SAL_DRIVER >+ LIBRARY_CLASS =3D ReportStatusCodeLib|DXE_RUNTIME_DRIV= ER > CONSTRUCTOR =3D ReportStatusCodeLibConstructor > DESTRUCTOR =3D ReportStatusCodeLibDestructor > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibN >ull.inf >b/MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibN >ull.inf >index fef783a4f9..5e82b85656 100644 >--- >a/MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibN >ull.inf >+++ >b/MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibN >ull.inf >@@ -1,7 +1,7 @@ > ## @file > # Provides NULL TPM measurement function. > # >-# Copyright (c) 2015, Intel Corporation. All rights reserved.
>+# Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.
> # This program and the accompanying materials > # are licensed and made available under the terms and conditions of the B= SD >License > # which accompanies this distribution. The full text of the license may b= e >found at >@@ -17,13 +17,13 @@ > FILE_GUID =3D 6DFD6E9F-9278-48D8-8F45-B6CFF2C2B69C > MODULE_TYPE =3D UEFI_DRIVER > VERSION_STRING =3D 1.0 >- LIBRARY_CLASS =3D TpmMeasurementLib|DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER >UEFI_APPLICATION UEFI_DRIVER >+ LIBRARY_CLASS =3D TpmMeasurementLib|DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER > MODULE_UNI_FILE =3D TpmMeasurementLibNull.uni > > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF >+# VALID_ARCHITECTURES =3D IA32 X64 > # > > [Sources] >diff --git >a/MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf >b/MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf >index 72c5ca1cd5..408410872d 100644 >--- a/MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf >+++ b/MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf >b/MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf >index 7ee68428a1..44076dfcbd 100644 >--- a/MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf >+++ b/MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf >@@ -1,7 +1,7 @@ > ## @file > # HII Library implementation using UEFI HII protocols and services. > # >-# Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.
>+# Copyright (c) 2006 - 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 >@@ -21,10 +21,10 @@ > FILE_GUID =3D 3143687A-7C80-404e-B5FE-2D88980E1B1C > MODULE_TYPE =3D UEFI_DRIVER > VERSION_STRING =3D 1.0 >- LIBRARY_CLASS =3D HiiLib|DXE_DRIVER DXE_RUNTIME_DRIVER >DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER >+ LIBRARY_CLASS =3D HiiLib|DXE_DRIVER DXE_RUNTIME_DRIVER >DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER > > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.in= f >b/MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf >index fba1d6620e..8aee50527a 100644 >--- a/MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf >+++ b/MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf >@@ -20,12 +20,12 @@ > FILE_GUID =3D 894DC1B6-07A3-4a9d-8CDD-333580B3D4B1 > MODULE_TYPE =3D UEFI_DRIVER > VERSION_STRING =3D 1.0 >- LIBRARY_CLASS =3D UefiHiiServicesLib|DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER >UEFI_APPLICATION UEFI_DRIVER >+ LIBRARY_CLASS =3D UefiHiiServicesLib|DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER > > CONSTRUCTOR =3D UefiHiiServicesLibConstructor > > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Library/UefiMemoryAllocationProfileLib/UefiMemoryAlloc >ationProfileLib.inf >b/MdeModulePkg/Library/UefiMemoryAllocationProfileLib/UefiMemoryAlloc >ationProfileLib.inf >index c4954efb04..e7630209b0 100644 >--- >a/MdeModulePkg/Library/UefiMemoryAllocationProfileLib/UefiMemoryAlloc >ationProfileLib.inf >+++ >b/MdeModulePkg/Library/UefiMemoryAllocationProfileLib/UefiMemoryAlloc >ationProfileLib.inf >@@ -27,12 +27,12 @@ > FILE_GUID =3D 9E8A380A-231E-41E4-AD40-5E706196B853 > MODULE_TYPE =3D UEFI_DRIVER > VERSION_STRING =3D 1.0 >- LIBRARY_CLASS =3D MemoryAllocationLib|DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER >UEFI_APPLICATION UEFI_DRIVER >- LIBRARY_CLASS =3D MemoryProfileLib|DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER >UEFI_APPLICATION UEFI_DRIVER >+ LIBRARY_CLASS =3D MemoryAllocationLib|DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER >+ LIBRARY_CLASS =3D MemoryProfileLib|DXE_DRIVER >DXE_RUNTIME_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER > CONSTRUCTOR =3D MemoryProfileLibConstructor > > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf >b/MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf >index 4c3d5e0545..ddfeca3a4b 100644 >--- a/MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf >+++ b/MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf >@@ -1,7 +1,7 @@ > ## @file > # Library used for sorting routines. > # >-# Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved. >+# Copyright (c) 2009 - 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 >@@ -23,7 +23,7 @@ > LIBRARY_CLASS =3D SortLib|UEFI_APPLICATION UEFI_DRIVER >UEFI_DRIVER DXE_RUNTIME_DRIVER DXE_DRIVER > > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources.common] >diff --git a/MdeModulePkg/Logo/Logo.inf b/MdeModulePkg/Logo/Logo.inf >index e2e61c82c5..1a30fed80c 100644 >--- a/MdeModulePkg/Logo/Logo.inf >+++ b/MdeModulePkg/Logo/Logo.inf >@@ -1,7 +1,7 @@ > ## @file > # The default logo bitmap picture shown on setup screen, which is >corresponding to gEfiDefaultBmpLogoGuid. > # >-# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
>+# Copyright (c) 2006 - 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 >@@ -24,7 +24,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC ARM AARCH64 >+# VALID_ARCHITECTURES =3D IA32 X64 EBC ARM AARCH64 > # > > [Binaries] >diff --git a/MdeModulePkg/MdeModulePkg.dsc >b/MdeModulePkg/MdeModulePkg.dsc >index bb7744894a..b65ff5f4e6 100644 >--- a/MdeModulePkg/MdeModulePkg.dsc >+++ b/MdeModulePkg/MdeModulePkg.dsc >@@ -20,7 +20,7 @@ > PLATFORM_VERSION =3D 0.98 > DSC_SPECIFICATION =3D 0x00010005 > OUTPUT_DIRECTORY =3D Build/MdeModule >- SUPPORTED_ARCHITECTURES =3D IA32|IPF|X64|EBC|ARM|AARCH64 >+ SUPPORTED_ARCHITECTURES =3D IA32|X64|EBC|ARM|AARCH64 > BUILD_TARGETS =3D DEBUG|RELEASE|NOOPT > SKUID_IDENTIFIER =3D DEFAULT > >@@ -79,7 +79,6 @@ > >SerialPortLib|MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNull.i= nf > >CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf > PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf >- PalLib|MdePkg/Library/BasePalLibNull/BasePalLibNull.inf > >CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/Custom >izedDisplayLib.inf > >FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBl >tLib.inf > # >@@ -202,9 +201,6 @@ > gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizePopulateCapsule|0x0 > gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries|28 > >-[PcdsFixedAtBuild.IPF] >- gEfiMdePkgTokenSpaceGuid.PcdIoBlockBaseAddressForIpf|0x0ffffc000000 >- > >########################################################### >######################################## > # > # Components Section - list of the modules and components that will be >processed by compilation >@@ -445,14 +441,14 @@ > MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.inf > MdeModulePkg/Library/DxeCapsuleLibFmp/DxeRuntimeCapsuleLib.inf > >-[Components.IA32, Components.X64, Components.IPF, >Components.AARCH64] >+[Components.IA32, Components.X64, Components.AARCH64] > MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf > MdeModulePkg/Universal/DebugSupportDxe/DebugSupportDxe.inf > MdeModulePkg/Universal/EbcDxe/EbcDxe.inf > MdeModulePkg/Universal/EbcDxe/EbcDebugger.inf > MdeModulePkg/Universal/EbcDxe/EbcDebuggerConfig.inf > >-[Components.IA32, Components.X64, Components.IPF, Components.ARM, >Components.AARCH64] >+[Components.IA32, Components.X64, Components.ARM, >Components.AARCH64] > MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf > MdeModulePkg/Core/Dxe/DxeMain.inf { > >diff --git >a/MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf >b/MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf >index f4860cdc0b..a1241571e9 100644 >--- a/MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf >+++ b/MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf >@@ -24,7 +24,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf >b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf >index 32c66785d5..f81cf1cceb 100644 >--- a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf >+++ b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGrap >hicsResourceTableDxe.inf >b/MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGrap >hicsResourceTableDxe.inf >index 080a939cc0..968a3b11c5 100644 >--- >a/MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGrap >hicsResourceTableDxe.inf >+++ >b/MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGrap >hicsResourceTableDxe.inf >@@ -25,7 +25,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableDxe/Firm >warePerformanceDxe.inf >b/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableDxe/Firm >warePerformanceDxe.inf >index 843cda7021..b4ac04ee73 100644 >--- >a/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableDxe/Firm >warePerformanceDxe.inf >+++ >b/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableDxe/Firm >warePerformanceDxe.inf >@@ -28,7 +28,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTablePei/Firmw >arePerformancePei.inf >b/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTablePei/Firmw >arePerformancePei.inf >index 1b69e49cf9..9fec6cb5a0 100644 >--- >a/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTablePei/Firmw >arePerformancePei.inf >+++ >b/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTablePei/Firmw >arePerformancePei.inf >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf >b/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf >index a4184212bb..d208661b0c 100644 >--- a/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf >+++ b/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf >@@ -28,7 +28,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/Acpi/SmmS3SaveState/SmmS3SaveState.inf >b/MdeModulePkg/Universal/Acpi/SmmS3SaveState/SmmS3SaveState.inf >index 0742da60ca..d993a81883 100644 >--- a/MdeModulePkg/Universal/Acpi/SmmS3SaveState/SmmS3SaveState.inf >+++ >b/MdeModulePkg/Universal/Acpi/SmmS3SaveState/SmmS3SaveState.inf >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Universal/BdsDxe/BdsDxe.inf >b/MdeModulePkg/Universal/BdsDxe/BdsDxe.inf >index 7e644aa995..27b3914386 100644 >--- a/MdeModulePkg/Universal/BdsDxe/BdsDxe.inf >+++ b/MdeModulePkg/Universal/BdsDxe/BdsDxe.inf >@@ -28,7 +28,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe >.inf >b/MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe >.inf >index 33014723d0..e58407732f 100644 >--- >a/MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe >.inf >+++ >b/MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe >.inf >@@ -24,7 +24,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Universal/CapsulePei/CapsulePei.inf >b/MdeModulePkg/Universal/CapsulePei/CapsulePei.inf >index 02cf90c75d..587956eb5f 100644 >--- a/MdeModulePkg/Universal/CapsulePei/CapsulePei.inf >+++ b/MdeModulePkg/Universal/CapsulePei/CapsulePei.inf >@@ -33,7 +33,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf >b/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf >index 3849bc84a8..812b5a6427 100644 >--- a/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf >+++ >b/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf >@@ -27,14 +27,14 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC ARM AARCH64 >+# VALID_ARCHITECTURES =3D IA32 X64 EBC ARM AARCH64 > # > > [Sources] > CapsuleService.c > CapsuleService.h >- >-[Sources.Ia32, Sources.IPF, Sources.EBC] >+ >+[Sources.Ia32, Sources.EBC, Sources.ARM, Sources.AARCH64] > SaveLongModeContext.c > CapsuleReset.c > >diff --git >a/MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf >b/MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf >index bc57e2c8a1..0f8c5d6a49 100644 >--- >a/MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf >+++ >b/MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf >@@ -28,7 +28,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gConPlatformTextInDriverBinding > # COMPONENT_NAME =3D gConPlatformComponentName >diff --git >a/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf >b/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf >index a191ebcd9b..1f45e9cd55 100644 >--- a/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf >+++ b/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf >@@ -34,7 +34,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gConSplitterConInDriverBinding > # COMPONENT_NAME =3D gConSplitterConInComponentName >diff --git >a/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole >Dxe.inf >b/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole >Dxe.inf >index bf387cd97b..3645fad30a 100644 >--- >a/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole >Dxe.inf >+++ >b/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole >Dxe.inf >@@ -27,7 +27,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gGraphicsConsoleDriverBinding > # COMPONENT_NAME =3D gGraphicsConsoleComponentName >diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf >b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf >index 0780296798..cec5433f4e 100644 >--- a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf >+++ b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf >@@ -5,7 +5,7 @@ > # protocols based on Serial I/O protocol for serial devices including ho= tplug >serial > # devices. > # >-# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
>+# Copyright (c) 2006 - 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 >@@ -28,7 +28,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gTerminalDriverBinding > # COMPONENT_NAME =3D gTerminalComponentName >diff --git a/MdeModulePkg/Universal/DebugPortDxe/DebugPortDxe.inf >b/MdeModulePkg/Universal/DebugPortDxe/DebugPortDxe.inf >index b727cda3cf..6b26596491 100644 >--- a/MdeModulePkg/Universal/DebugPortDxe/DebugPortDxe.inf >+++ b/MdeModulePkg/Universal/DebugPortDxe/DebugPortDxe.inf >@@ -4,7 +4,7 @@ > # This driver binds exclusively to a standard UART serial port on the con= troller >handle, > # and initializes serial Io interface, publishs Debug Port and Device Pat= h >Protocol. > # >-# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
>+# Copyright (c) 2006 - 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 >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gDebugPortDriverBinding > # COMPONENT_NAME =3D gDebugPortComponentName >diff --git >a/MdeModulePkg/Universal/DebugSupportDxe/DebugSupportDxe.inf >b/MdeModulePkg/Universal/DebugSupportDxe/DebugSupportDxe.inf >index 0d37f5fb64..d0e2e45c7f 100644 >--- a/MdeModulePkg/Universal/DebugSupportDxe/DebugSupportDxe.inf >+++ b/MdeModulePkg/Universal/DebugSupportDxe/DebugSupportDxe.inf >@@ -30,7 +30,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF >+# VALID_ARCHITECTURES =3D IA32 X64 > # > > [Sources] >@@ -50,14 +50,6 @@ > X64/PlDebugSupportX64.c > X64/AsmFuncs.nasm > >-[Sources.IPF] >- Ipf/PlDebugSupport.h >- Ipf/PlDebugSupport.c >- Ipf/Ds64Macros.i >- Ipf/Common.i >- Ipf/AsmFuncs.s >- >- > [Packages] > MdePkg/MdePkg.dec > MdeModulePkg/MdeModulePkg.dec >diff --git a/MdeModulePkg/Universal/DebugSupportDxe/Ipf/AsmFuncs.s >b/MdeModulePkg/Universal/DebugSupportDxe/Ipf/AsmFuncs.s >deleted file mode 100644 >index db75fc088e..0000000000 >--- a/MdeModulePkg/Universal/DebugSupportDxe/Ipf/AsmFuncs.s >+++ /dev/null >@@ -1,1382 +0,0 @@ >-/// @file >-/// Low level IPF routines used by the debug support driver >-/// >-/// Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved. >-/// This program and the accompanying materials >-/// are licensed and made available under the terms and conditions of the >BSD License >-/// which accompanies this distribution. The full text of the license ma= y be >found at >-/// http://opensource.org/licenses/bsd-license.php >-/// >-/// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" >BASIS, >-/// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER >EXPRESS OR IMPLIED. >-/// >-/// >- >- >-#include "Common.i" >-#include "Ds64Macros.i" >- >-ASM_GLOBAL PatchSaveBuffer >-ASM_GLOBAL IpfContextBuf >-ASM_GLOBAL CommonHandler >-ASM_GLOBAL ExternalInterruptCount >- >- >-///////////////////////////////////////////// >-// >-// Name: >-// InstructionCacheFlush >-// >-// Description: >-// Flushes instruction cache for specified number of bytes >-// >- ASM_GLOBAL InstructionCacheFlush >- .proc InstructionCacheFlush >- .align 32 >-InstructionCacheFlush:: >- { .mii >- alloc r3=3D2, 0, 0, 0 >- cmp4.leu p0,p6=3D32, r33;; >- (p6) mov r33=3D32;; >- } >- { .mii >- nop.m 0 >- zxt4 r29=3Dr33;; >- dep.z r30=3Dr29, 0, 5;; >- } >- { .mii >- cmp4.eq p0,p7=3Dr0, r30 >- shr.u r28=3Dr29, 5;; >- (p7) adds r28=3D1, r28;; >- } >- { .mii >- nop.m 0 >- shl r27=3Dr28, 5;; >- zxt4 r26=3Dr27;; >- } >- { .mfb >- add r31=3Dr26, r32 >- nop.f 0 >- nop.b 0 >- } >-LoopBack: // $L143: >- { .mii >- fc r32 >- adds r32=3D32, r32;; >- cmp.ltu p14,p15=3Dr32, r31 >- } >- { .mfb >- nop.m 0 >- nop.f 0 >- //(p14) br.cond.dptk.few $L143#;; >- (p14) br.cond.dptk.few LoopBack;; >- } >- { .mmi >- sync.i;; >- srlz.i >- nop.i 0;; >- } >- { .mfb >- nop.m 0 >- nop.f 0 >- br.ret.sptk.few b0;; >- } >- .endp InstructionCacheFlush >- >- >-///////////////////////////////////////////// >-// >-// Name: >-// ChainHandler >-// >-// Description: >-// Chains an interrupt handler >-// >-// The purpose of this function is to enable chaining of the externa= l >interrupt. >-// Since there's no clean SAL abstraction for doing this, we must do= it >-// surreptitiously. >-// >-// The reserved IVT entry at offset 0x3400 is coopted for use by thi= s >handler. >-// According to Itanium architecture, it is reserved. Strictly spea= king, this is >-// not safe, as we're cheating and violating the Itanium architectur= e. >However, >-// as long as we're the only ones cheating, we should be OK. Withou= t >hooks in >-// the SAL to enable IVT management, there aren't many good options. >-// >-// The strategy is to replace the first bundle of the external inter= rupt >handler >-// with our own that will branch into a piece of code we've supplied= and >located >-// in the reserved IVT entry. Only the first bundle of the external= interrupt >-// IVT entry is modified. >-// >-// The original bundle is moved and relocated to space >-// allocated within the reserved IVT entry. The next bundle followi= ng is >-// is generated to go a hard coded branch back to the second bundle = of the >-// external interrupt IVT entry just in case the first bundle had no= branch. >-// >-// Our new code will execute our handler, and then fall through to t= he >-// original bundle after restoring all context appropriately. >-// >-// The following is a representation of what the IVT memory map look= s like >with >-// our chained handler installed: >-// >-// >-// >-// >-// >-// This IVT entry is Failsafe bundle >-// reserved by the >-// Itanium architecture Original bundle 0 >-// and is used for >-// for locating our >-// handler and the >-// original bundle Patch code... >-// zero of the ext >-// interrupt handler >-// >-// RSVD (3400) Unused >-// >-// >-// >-// >-// >-// >-// >-// >-// >-// >-// >-// >-// EXT_INT (3000) Bundle 0 Bundle zero - This = one is >-// modified, all other bundles >-// in the EXT_INT e= ntry are >-// untouched. >-// >-// >-// Arguments: >-// >-// Returns: >-// >-// Notes: >-// >-// >- ASM_GLOBAL ChainHandler >- .proc ChainHandler >-ChainHandler: >- >- NESTED_SETUP( 0,2+3,3,0 ) >- >- mov r8=3D1 // r8 =3D success >- mov r2=3Dcr.iva;; >-// >-// NOTE: There's a potential hazard here in that we're simply stealing a = bunch >of >-// bundles (memory) from the IVT and assuming there's no catastrophic sid= e >effect. >-// >-// First, save IVT area we're taking over with the patch so we can restor= e it >later >-// >- addl out0=3DPATCH_ENTRY_OFFSET, r2 // out0 =3D source b= uffer >- movl out1=3DPatchSaveBuffer // out1 =3D destinat= ion buffer >- mov out2=3D0x40;; // out2 =3D number o= f bundles to copy... >save entire IDT entry >- br.call.sptk.few b0 =3D CopyBundles >- >-// Next, copy the patch code into the IVT >- movl out0=3DPatchCode // out0 =3D source b= uffer of patch code >- addl out1=3DPATCH_OFFSET, r2 // out1 =3D destinat= ion buffer - in IVT >- mov out2=3DPATCH_CODE_SIZE;; >- shr out2=3Dout2, 4;; // out2 =3D number o= f bundles to copy >- br.call.sptk.few b0 =3D CopyBundles >- >- >-// copy original bundle 0 from the external interrupt handler to the >-// appropriate place in the reserved IVT interrupt slot >- addl out0=3DEXT_INT_ENTRY_OFFSET, r2 // out0 =3D source b= uffer >- addl out1=3DRELOCATED_EXT_INT, r2 // out1 =3D destinat= ion buffer - in >reserved IVT >- mov out2=3D1;; // out2 =3D copy 1 b= undle >- br.call.sptk.few b0 =3D CopyBundles >- >-// Now relocate it there because it very likely had a branch instruction = that >-// that must now be fixed up. >- addl out0=3DRELOCATED_EXT_INT, r2 // out0 =3D new runt= ime address >of bundle - in reserved IVT >- addl out1=3DEXT_INT_ENTRY_OFFSET, r2;;// out1 =3D IP addre= ss of >previous location >- mov out2=3Dout0;; // out2 =3D IP addre= ss of new location >- br.call.sptk.few b0 =3D RelocateBundle >- >-// Now copy into the failsafe branch into the next bundle just in case >-// the original ext int bundle 0 bundle did not contain a branch instruct= ion >- movl out0=3DFailsafeBranch // out0 =3D source b= uffer >- addl out1=3DFAILSAFE_BRANCH_OFFSET, r2 // out1 =3D destin= ation >buffer - in reserved IVT >- mov out2=3D1;; // out2 =3D copy 1 b= undle >- br.call.sptk.few b0 =3D CopyBundles >- >-// Last, copy in our replacement for the external interrupt IVT entry bun= dle 0 >- movl out0=3DPatchCodeNewBun0 // out0 =3D source b= uffer - our >replacement bundle 0 >- addl out1=3DEXT_INT_ENTRY_OFFSET, r2 // out1 =3D destinat= ion buffer - >bundle 0 of External interrupt entry >- mov out2=3D1;; // out2 =3D copy 1 b= undle >- br.call.sptk.few b0 =3D CopyBundles >- >-ChainHandlerDone: >- NESTED_RETURN >- >- .endp ChainHandler >- >- >-///////////////////////////////////////////// >-// >-// Name: >-// UnchainHandler >-// >-// Description: >-// Unchains an interrupt handler >-// >-// Arguments: >-// >-// Returns: >-// >-// Notes: >-// >-// >- ASM_GLOBAL UnchainHandler >- .proc UnchainHandler >- >-UnchainHandler: >- >- NESTED_SETUP( 0,2+3,3,0 ) >- >- mov r8=3D1 // r8 =3D success >- mov r2=3Dcr.iva;; // r2 =3D interrupt vec= tor address >- >-// First copy original Ext Int bundle 0 back to it's proper home... >- addl out0=3DRELOCATED_EXT_INT, r2 // out0 =3D source -= in reserved >IVT >- addl out1=3DEXT_INT_ENTRY_OFFSET, r2 // out1 =3D destinat= ion buffer - >first bundle of Ext Int entry >- mov out2=3D1;; // out2 =3D copy 1 b= undle >- br.call.sptk.few b0 =3D CopyBundles >- >-// Now, relocate it again... >- addl out0=3DEXT_INT_ENTRY_OFFSET, r2 // out1 =3D New runt= ime >address >- addl out1=3DRELOCATED_EXT_INT, r2;; // out0 =3D IP addre= ss of previous >location >- mov out2=3Dout0;; // out2 =3D IP addre= ss of new location >- br.call.sptk.few b0 =3D RelocateBundle >- >-// Last, restore the patch area >- movl out0=3DPatchSaveBuffer // out0 =3D source b= uffer >- addl out1=3DPATCH_ENTRY_OFFSET, r2 // out1 =3D destinat= ion buffer >- mov out2=3D0x40;; // out2 =3D number o= f bundles to copy... >save entire IDT entry >- br.call.sptk.few b0 =3D CopyBundles >- >-UnchainHandlerDone: >- NESTED_RETURN >- >- .endp UnchainHandler >- >- >-///////////////////////////////////////////// >-// >-// Name: >-// CopyBundles >-// >-// Description: >-// Copies instruction bundles - flushes icache as necessary >-// >-// Arguments: >-// in0 - Bundle source >-// in1 - Bundle destination >-// in2 - Bundle count >-// >-// Returns: >-// >-// Notes: >-// This procedure is a leaf routine >-// >- .proc CopyBundles >- >-CopyBundles: >- >- NESTED_SETUP(3,2+1,0,0) >- >- shl in2=3Din2, 1;; // in2 =3D count of 8 b= yte blocks to copy >- >-CopyBundlesLoop: >- >- cmp.eq p14, p15 =3D 0, in2;; // Check if done >-(p14) br.sptk.few CopyBundlesDone;; >- >- ld8 loc2=3D[in0], 0x8;; // loc2 =3D source byte= s >- st8 [in1]=3Dloc2;; // [in1] =3D destinatio= n bytes >- fc in1;; // Flush instruction cach= e >- sync.i;; // Ensure local and remot= e data/inst caches in sync >- srlz.i;; // Ensure sync has been o= bserved >- add in1=3D0x8, in1;; // in1 =3D next destina= tion >- add in2=3D-1, in2;; // in2 =3D decrement 8 = bytes blocks to copy >- br.sptk.few CopyBundlesLoop;; >- >-CopyBundlesDone: >- NESTED_RETURN >- >- .endp CopyBundles >- >- >-///////////////////////////////////////////// >-// >-// Name: >-// RelocateBundle >-// >-// Description: >-// Relocates an instruction bundle by updating any ip-relative branc= h >instructions. >-// >-// Arguments: >-// in0 - Runtime address of bundle >-// in1 - IP address of previous location of bundle >-// in2 - IP address of new location of bundle >-// >-// Returns: >-// in0 - 1 if successful or 0 if unsuccessful >-// >-// Notes: >-// This routine examines all slots in the given bundle that are dest= ined for >the >-// branch execution unit. If any of these slots contain an IP-relat= ive branch >-// namely instructions B1, B2, B3, or B6, the slot is fixed-up with = a new >relative >-// address. Errors can occur if a branch cannot be reached. >-// >- .proc RelocateBundle >- >-RelocateBundle: >- >- NESTED_SETUP(3,2+4,3,0) >- >- mov loc2=3DSLOT0 // loc2 =3D slot index >- mov loc5=3Din0;; // loc5 =3D runtime add= ress of bundle >- mov in0=3D1;; // in0 =3D success >- >-RelocateBundleNextSlot: >- >- cmp.ge p14, p15 =3D SLOT2, loc2;; // Check if maximum slo= t >-(p15) br.sptk.few RelocateBundleDone >- >- mov out0=3Dloc5;; // out0 =3D runtime add= ress of bundle >- br.call.sptk.few b0 =3D GetTemplate >- mov loc3=3Dout0;; // loc3 =3D instruction= template >- mov out0=3Dloc5 // out0 =3D runtime add= ress of bundle >- mov out1=3Dloc2;; // out1 =3D instruction= slot number >- br.call.sptk.few b0 =3D GetSlot >- mov loc4=3Dout0;; // loc4 =3D instruction= encoding >- mov out0=3Dloc4 // out0 =3D instuction = encoding >- mov out1=3Dloc2 // out1 =3D instruction= slot number >- mov out2=3Dloc3;; // out2 =3D instruction= template >- br.call.sptk.few b0 =3D IsSlotBranch >- cmp.eq p14, p15 =3D 1, out0;; // Check if branch slot >-(p15) add loc2=3D1,loc2 // Increment slot >-(p15) br.sptk.few RelocateBundleNextSlot >- mov out0=3Dloc4 // out0 =3D instuction = encoding >- mov out1=3Din1 // out1 =3D IP address = of previous location >- mov out2=3Din2;; // out2 =3D IP address = of new location >- br.call.sptk.few b0 =3D RelocateSlot >- cmp.eq p14, p15 =3D 1, out1;; // Check if relocated s= lot >-(p15) mov in0=3D0 // in0 =3D failure >-(p15) br.sptk.few RelocateBundleDone >- mov out2=3Dout0;; // out2 =3D instruction= encoding >- mov out0=3Dloc5 // out0 =3D runtime add= ress of bundle >- mov out1=3Dloc2;; // out1 =3D instruction= slot number >- br.call.sptk.few b0 =3D SetSlot >- add loc2=3D1,loc2;; // Increment slot >- br.sptk.few RelocateBundleNextSlot >- >-RelocateBundleDone: >- NESTED_RETURN >- >- .endp RelocateBundle >- >- >-///////////////////////////////////////////// >-// >-// Name: >-// RelocateSlot >-// >-// Description: >-// Relocates an instruction bundle by updating any ip-relative branc= h >instructions. >-// >-// Arguments: >-// in0 - Instruction encoding (41-bits, right justified) >-// in1 - IP address of previous location of bundle >-// in2 - IP address of new location of bundle >-// >-// Returns: >-// in0 - Instruction encoding (41-bits, right justified) >-// in1 - 1 if successful otherwise 0 >-// >-// Notes: >-// This procedure is a leaf routine >-// >- .proc RelocateSlot >- >-RelocateSlot: >- NESTED_SETUP(3,2+5,0,0) >- extr.u loc2=3Din0, 37, 4;; // loc2 =3D instruction= opcode >- cmp.eq p14, p15 =3D 4, loc2;; // IP-relative branch (= B1) or >- // IP-relative counted br= anch (B2) >-(p15) cmp.eq p14, p15 =3D 5, loc2;; // IP-relative call (B3= ) >-(p15) cmp.eq p14, p15 =3D 7, loc2;; // IP-relative predict = (B6) >-(p15) mov in1=3D1 // Instruction did not = need to be reencoded >-(p15) br.sptk.few RelocateSlotDone >- tbit.nz p14, p15 =3D in0, 36;; // put relative offset = sign bit in p14 >- extr.u loc2=3Din0, 13, 20;; // loc2 =3D relative of= fset in instruction >-(p14) movl loc3=3D0xfffffffffff00000;; // extend sign >-(p14) or loc2=3Dloc2, loc3;; >- shl loc2=3Dloc2,4;; // convert to byte offs= et instead of bundle >offset >- add loc3=3Dloc2, in1;; // loc3 =3D physical ad= dress of branch target >-(p14) sub loc2=3Dr0,loc2;; // flip sign in loc2 if= offset is negative >- sub loc4=3Dloc3,in2;; // loc4 =3D relative of= fset from new ip to >branch target >- cmp.lt p15, p14 =3D 0, loc4;; // get new sign bit >-(p14) sub loc5=3Dr0,loc4 // get absolute value o= f offset >-(p15) mov loc5=3Dloc4;; >- movl loc6=3D0x0FFFFFF;; // maximum offset in by= tes for ip-rel >branch >- cmp.gt p14, p15 =3D loc5, loc6;; // check to see we're n= ot out of range >for an ip-relative branch >-(p14) br.sptk.few RelocateSlotError >- cmp.lt p15, p14 =3D 0, loc4;; // store sign in p14 ag= ain >-(p14) dep in0=3D-1,in0,36,1 // store sign bit in i= nstruction >-(p15) dep in0=3D0,in0,36,1 >- shr loc4=3Dloc4, 4;; // convert back to bund= le offset >- dep in0=3Dloc4,in0,13,16;; // put first 16 bits of= new offset into >instruction >- shr loc4=3Dloc4,16;; >- dep in0=3Dloc4,in0,13+16,4 // put last 4 bits of n= ew offset into >instruction >- mov in1=3D1;; // in1 =3D success >- br.sptk.few RelocateSlotDone;; >- >-RelocateSlotError: >- mov in1=3D0;; // in1 =3D failure >- >-RelocateSlotDone: >- NESTED_RETURN >- >- .endp RelocateSlot >- >- >-///////////////////////////////////////////// >-// >-// Name: >-// IsSlotBranch >-// >-// Description: >-// Determines if the given instruction is a branch instruction. >-// >-// Arguments: >-// in0 - Instruction encoding (41-bits, right justified) >-// in1 - Instruction slot number >-// in2 - Bundle template >-// >-// Returns: >-// in0 - 1 if branch or 0 if not branch >-// >-// Notes: >-// This procedure is a leaf routine >-// >-// IsSlotBranch recognizes all branch instructions by looking at the= provided >template. >-// The instruction encoding is only passed to this routine for futur= e >expansion. >-// >- .proc IsSlotBranch >- >-IsSlotBranch: >- >- NESTED_SETUP (3,2+0,0,0) >- >- mov in0=3D1;; // in0 =3D 1 which dest= roys the instruction >- andcm in2=3Din2,in0;; // in2 =3D even templat= e to reduce compares >- mov in0=3D0;; // in0 =3D not a branch >- cmp.eq p14, p15 =3D 0x16, in2;; // Template 0x16 is BBB >-(p14) br.sptk.few IsSlotBranchTrue >- cmp.eq p14, p15 =3D SLOT0, in1;; // Slot 0 has no other = possiblities >-(p14) br.sptk.few IsSlotBranchDone >- cmp.eq p14, p15 =3D 0x12, in2;; // Template 0x12 is MBB >-(p14) br.sptk.few IsSlotBranchTrue >- cmp.eq p14, p15 =3D SLOT1, in1;; // Slot 1 has no other = possiblities >-(p14) br.sptk.few IsSlotBranchDone >- cmp.eq p14, p15 =3D 0x10, in2;; // Template 0x10 is MIB >-(p14) br.sptk.few IsSlotBranchTrue >- cmp.eq p14, p15 =3D 0x18, in2;; // Template 0x18 is MMB >-(p14) br.sptk.few IsSlotBranchTrue >- cmp.eq p14, p15 =3D 0x1C, in2;; // Template 0x1C is MFB >-(p14) br.sptk.few IsSlotBranchTrue >- br.sptk.few IsSlotBranchDone >- >-IsSlotBranchTrue: >- mov in0=3D1;; // in0 =3D branch >- >-IsSlotBranchDone: >- NESTED_RETURN >- >- .endp IsSlotBranch >- >- >-///////////////////////////////////////////// >-// >-// Name: >-// GetTemplate >-// >-// Description: >-// Retrieves the instruction template for an instruction bundle >-// >-// Arguments: >-// in0 - Runtime address of bundle >-// >-// Returns: >-// in0 - Instruction template (5-bits, right-justified) >-// >-// Notes: >-// This procedure is a leaf routine >-// >- .proc GetTemplate >- >-GetTemplate: >- >- NESTED_SETUP (1,2+2,0,0) >- >- ld8 loc2=3D[in0], 0x8 // loc2 =3D first 8 bytes o= f branch bundle >- movl loc3=3DMASK_0_4;; // loc3 =3D template mask >- and loc2=3Dloc2,loc3;; // loc2 =3D template, right= justified >- mov in0=3Dloc2;; // in0 =3D template, right = justified >- >- NESTED_RETURN >- >- .endp GetTemplate >- >- >-///////////////////////////////////////////// >-// >-// Name: >-// GetSlot >-// >-// Description: >-// Gets the instruction encoding for an instruction slot and bundle >-// >-// Arguments: >-// in0 - Runtime address of bundle >-// in1 - Instruction slot (either 0, 1, or 2) >-// >-// Returns: >-// in0 - Instruction encoding (41-bits, right justified) >-// >-// Notes: >-// This procedure is a leaf routine >-// >-// Slot0 - [in0 + 0x8] Bits 45-5 >-// Slot1 - [in0 + 0x8] Bits 63-46 and [in0] Bits 22-0 >-// Slot2 - [in0] Bits 63-23 >-// >- .proc GetSlot >- >-GetSlot: >- NESTED_SETUP (2,2+3,0,0) >- >- ld8 loc2=3D[in0], 0x8;; // loc2 =3D first 8 bytes o= f branch bundle >- ld8 loc3=3D[in0];; // loc3 =3D second 8 bytes = of branch bundle >- cmp.eq p14, p15 =3D 2, in1;; // check if slot 2 specifie= d >- (p14) br.cond.sptk.few GetSlot2;; // get slot 2 >- cmp.eq p14, p15 =3D 1, in1;; // check if slot 1 specifie= d >- (p14) br.cond.sptk.few GetSlot1;; // get slot 1 >- >-GetSlot0: >- extr.u in0=3Dloc2, 5, 45 // in0 =3D extracted slot 0 >- br.sptk.few GetSlotDone;; >- >-GetSlot1: >- extr.u in0=3Dloc2, 46, 18 // in0 =3D bits 63-46 of lo= c2 right-justified >- extr.u loc4=3Dloc3, 0, 23;; // loc4 =3D bits 22-0 of lo= c3 right-justified >- dep in0=3Dloc4, in0, 18, 15;; >- shr.u loc4=3Dloc4,15;; >- dep in0=3Dloc4, in0, 33, 8;; // in0 =3D extracted slot 1 >- br.sptk.few GetSlotDone;; >- >-GetSlot2: >- extr.u in0=3Dloc3, 23, 41;; // in0 =3D extracted slot 2 >- >-GetSlotDone: >- NESTED_RETURN >- >- .endp GetSlot >- >- >-///////////////////////////////////////////// >-// >-// Name: >-// SetSlot >-// >-// Description: >-// Sets the instruction encoding for an instruction slot and bundle >-// >-// Arguments: >-// in0 - Runtime address of bundle >-// in1 - Instruction slot (either 0, 1, or 2) >-// in2 - Instruction encoding (41-bits, right justified) >-// >-// Returns: >-// >-// Notes: >-// This procedure is a leaf routine >-// >- .proc SetSlot >- >-SetSlot: >- NESTED_SETUP (3,2+3,0,0) >- >- ld8 loc2=3D[in0], 0x8;; // loc2 =3D first 8 bytes o= f bundle >- ld8 loc3=3D[in0];; // loc3 =3D second 8 bytes = of bundle >- cmp.eq p14, p15 =3D 2, in1;; // check if slot 2 specifie= d >- (p14) br.cond.sptk.few SetSlot2;; // set slot 2 >- cmp.eq p14, p15 =3D 1, in1;; // check if slot 1 specifie= d >- (p14) br.cond.sptk.few SetSlot1;; // set slot 1 >- >-SetSlot0: >- dep loc2=3D0, loc2, 5, 41;; // remove old instruction f= rom slot 0 >- shl loc4=3Din2, 5;; // loc4 =3D new instruction= ready to be inserted >- or loc2=3Dloc2, loc4;; // loc2 =3D updated first 8= bytes of bundle >- add loc4=3D0x8,in0;; // loc4 =3D address to stor= e first 8 bytes of >bundle >- st8 [loc4]=3Dloc2 // [loc4] =3D updated bundl= e >- br.sptk.few SetSlotDone;; >- ;; >- >-SetSlot1: >- dep loc2=3D0, loc2, 46, 18 // remove old instruction f= rom slot 1 >- dep loc3=3D0, loc3, 0, 23;; >- shl loc4=3Din2, 46;; // loc4 =3D partial instruc= tion ready to be inserted >- or loc2=3Dloc2, loc4;; // loc2 =3D updated first 8= bytes of bundle >- add loc4=3D0x8,in0;; // loc4 =3D address to stor= e first 8 bytes of >bundle >- st8 [loc4]=3Dloc2;; // [loc4] =3D updated bundl= e >- shr.u loc4=3Din2, 18;; // loc4 =3D partial instruc= tion ready to be inserted >- or loc3=3Dloc3, loc4;; // loc3 =3D updated second = 8 bytes of bundle >- st8 [in0]=3Dloc3;; // [in0] =3D updated bundle >- br.sptk.few SetSlotDone;; >- >-SetSlot2: >- dep loc3=3D0, loc3, 23, 41;; // remove old instruction f= rom slot 2 >- shl loc4=3Din2, 23;; // loc4 =3D instruction rea= dy to be inserted >- or loc3=3Dloc3, loc4;; // loc3 =3D updated second = 8 bytes of bundle >- st8 [in0]=3Dloc3;; // [in0] =3D updated bundle >- >-SetSlotDone: >- >- NESTED_RETURN >- .endp SetSlot >- >- >-///////////////////////////////////////////// >-// >-// Name: >-// GetIva >-// >-// Description: >-// C callable function to obtain the current value of IVA >-// >-// Returns: >-// Current value if IVA >- >- ASM_GLOBAL GetIva >- .proc GetIva >-GetIva: >- mov r8=3Dcr2;; >- br.ret.sptk.many b0 >- >- .endp GetIva >- >- >-///////////////////////////////////////////// >-// >-// Name: >-// ProgramInterruptFlags >-// >-// Description: >-// C callable function to enable/disable interrupts >-// >-// Returns: >-// Previous state of psr.ic >-// >- ASM_GLOBAL ProgramInterruptFlags >- .proc ProgramInterruptFlags >-ProgramInterruptFlags: >- alloc loc0=3D1,2,0,0;; >- mov loc0=3Dpsr >- mov loc1=3D0x6000;; >- and r8=3Dloc0, loc1 // obtain current psr.ic an= d psr.i state >- and in0=3Din0, loc1 // insure no extra bits set= in input >- andcm loc0=3Dloc0,loc1;; // clear original psr.i and= psr.ic >- or loc0=3Dloc0,in0;; // OR in new psr.ic value >- mov psr.l=3Dloc0;; // write new psr >- srlz.d >- br.ret.sptk.many b0 // return >- >- .endp ProgramInterruptFlags >- >- >-///////////////////////////////////////////// >-// >-// Name: >-// SpillContext >-// >-// Description: >-// Saves system context to context record. >-// >-// Arguments: >-// in0 =3D 512 byte aligned context record address >-// in1 =3D original B0 >-// in2 =3D original ar.bsp >-// in3 =3D original ar.bspstore >-// in4 =3D original ar.rnat >-// in5 =3D original ar.pfs >-// >-// Notes: >-// loc0 - scratch >-// loc1 - scratch >-// loc2 - temporary application unat storage >-// loc3 - temporary exception handler unat storage >- >- .proc SpillContext >- >-SpillContext: >- alloc loc0=3D6,4,0,0;; // alloc 6 input, 4 locals,= 0 outs >- mov loc2=3Dar.unat;; // save application context= unat (spilled later) >- mov ar.unat=3Dr0;; // set UNAT=3D0 >- st8.spill [in0]=3Dr0,8;; >- st8.spill [in0]=3Dr1,8;; // save R1 - R31 >- st8.spill [in0]=3Dr2,8;; >- st8.spill [in0]=3Dr3,8;; >- st8.spill [in0]=3Dr4,8;; >- st8.spill [in0]=3Dr5,8;; >- st8.spill [in0]=3Dr6,8;; >- st8.spill [in0]=3Dr7,8;; >- st8.spill [in0]=3Dr8,8;; >- st8.spill [in0]=3Dr9,8;; >- st8.spill [in0]=3Dr10,8;; >- st8.spill [in0]=3Dr11,8;; >- st8.spill [in0]=3Dr12,8;; >- st8.spill [in0]=3Dr13,8;; >- st8.spill [in0]=3Dr14,8;; >- st8.spill [in0]=3Dr15,8;; >- st8.spill [in0]=3Dr16,8;; >- st8.spill [in0]=3Dr17,8;; >- st8.spill [in0]=3Dr18,8;; >- st8.spill [in0]=3Dr19,8;; >- st8.spill [in0]=3Dr20,8;; >- st8.spill [in0]=3Dr21,8;; >- st8.spill [in0]=3Dr22,8;; >- st8.spill [in0]=3Dr23,8;; >- st8.spill [in0]=3Dr24,8;; >- st8.spill [in0]=3Dr25,8;; >- st8.spill [in0]=3Dr26,8;; >- st8.spill [in0]=3Dr27,8;; >- st8.spill [in0]=3Dr28,8;; >- st8.spill [in0]=3Dr29,8;; >- st8.spill [in0]=3Dr30,8;; >- st8.spill [in0]=3Dr31,8;; >- mov loc3=3Dar.unat;; // save debugger context un= at (spilled later) >- stf.spill [in0]=3Df2,16;; // save f2 - f31 >- stf.spill [in0]=3Df3,16;; >- stf.spill [in0]=3Df4,16;; >- stf.spill [in0]=3Df5,16;; >- stf.spill [in0]=3Df6,16;; >- stf.spill [in0]=3Df7,16;; >- stf.spill [in0]=3Df8,16;; >- stf.spill [in0]=3Df9,16;; >- stf.spill [in0]=3Df10,16;; >- stf.spill [in0]=3Df11,16;; >- stf.spill [in0]=3Df12,16;; >- stf.spill [in0]=3Df13,16;; >- stf.spill [in0]=3Df14,16;; >- stf.spill [in0]=3Df15,16;; >- stf.spill [in0]=3Df16,16;; >- stf.spill [in0]=3Df17,16;; >- stf.spill [in0]=3Df18,16;; >- stf.spill [in0]=3Df19,16;; >- stf.spill [in0]=3Df20,16;; >- stf.spill [in0]=3Df21,16;; >- stf.spill [in0]=3Df22,16;; >- stf.spill [in0]=3Df23,16;; >- stf.spill [in0]=3Df24,16;; >- stf.spill [in0]=3Df25,16;; >- stf.spill [in0]=3Df26,16;; >- stf.spill [in0]=3Df27,16;; >- stf.spill [in0]=3Df28,16;; >- stf.spill [in0]=3Df29,16;; >- stf.spill [in0]=3Df30,16;; >- stf.spill [in0]=3Df31,16;; >- mov loc0=3Dpr;; // save predicates >- st8.spill [in0]=3Dloc0,8;; >- st8.spill [in0]=3Din1,8;; // save b0 - b7... in1 alre= ady equals saved b0 >- mov loc0=3Db1;; >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Db2;; >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Db3;; >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Db4;; >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Db5;; >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Db6;; >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Db7;; >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dar.rsc;; // save ar.rsc >- st8.spill [in0]=3Dloc0,8;; >- st8.spill [in0]=3Din2,8;; // save ar.bsp (in2) >- st8.spill [in0]=3Din3,8;; // save ar.bspstore (in3) >- st8.spill [in0]=3Din4,8;; // save ar.rnat (in4) >- mov loc0=3Dar.fcr;; // save ar.fcr (ar21 - IA32= floating-point control >register) >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dar.eflag;; // save ar.eflag (ar24) >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dar.csd;; // save ar.csd (ar25 - ia32= CS descriptor) >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dar.ssd;; // save ar.ssd (ar26 - ia32= ss descriptor) >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dar.cflg;; // save ar.cflg (ar27 - ia3= 2 cr0 and cr4) >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dar.fsr;; // save ar.fsr (ar28 - ia32= floating-point status >register) >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dar.fir;; // save ar.fir (ar29 - ia32= floating-point >instruction register) >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dar.fdr;; // save ar.fdr (ar30 - ia32= floating-point data >register) >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dar.ccv;; // save ar.ccv >- st8.spill [in0]=3Dloc0,8;; >- st8.spill [in0]=3Dloc2,8;; // save ar.unat (saved to l= oc2 earlier) >- mov loc0=3Dar.fpsr;; // save floating point stat= us register >- st8.spill [in0]=3Dloc0,8;; >- st8.spill [in0]=3Din5,8;; // save ar.pfs >- mov loc0=3Dar.lc;; // save ar.lc >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dar.ec;; // save ar.ec >- st8.spill [in0]=3Dloc0,8;; >- >- // save control registers >- mov loc0=3Dcr.dcr;; // save dcr >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dcr.itm;; // save itm >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dcr.iva;; // save iva >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dcr.pta;; // save pta >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dcr.ipsr;; // save ipsr >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dcr.isr;; // save isr >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dcr.iip;; // save iip >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dcr.ifa;; // save ifa >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dcr.itir;; // save itir >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dcr.iipa;; // save iipa >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dcr.ifs;; // save ifs >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dcr.iim;; // save iim >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dcr.iha;; // save iha >- st8.spill [in0]=3Dloc0,8;; >- >- // save debug registers >- mov loc0=3Ddbr[r0];; // save dbr0 - dbr7 >- st8.spill [in0]=3Dloc0,8;; >- movl loc1=3D1;; >- mov loc0=3Ddbr[loc1];; >- st8.spill [in0]=3Dloc0,8;; >- movl loc1=3D2;; >- mov loc0=3Ddbr[loc1];; >- st8.spill [in0]=3Dloc0,8;; >- movl loc1=3D3;; >- mov loc0=3Ddbr[loc1];; >- st8.spill [in0]=3Dloc0,8;; >- movl loc1=3D4;; >- mov loc0=3Ddbr[loc1];; >- st8.spill [in0]=3Dloc0,8;; >- movl loc1=3D5;; >- mov loc0=3Ddbr[loc1];; >- st8.spill [in0]=3Dloc0,8;; >- movl loc1=3D6;; >- mov loc0=3Ddbr[loc1];; >- st8.spill [in0]=3Dloc0,8;; >- movl loc1=3D7;; >- mov loc0=3Ddbr[loc1];; >- st8.spill [in0]=3Dloc0,8;; >- mov loc0=3Dibr[r0];; // save ibr0 - ibr7 >- st8.spill [in0]=3Dloc0,8;; >- movl loc1=3D1;; >- mov loc0=3Dibr[loc1];; >- st8.spill [in0]=3Dloc0,8;; >- movl loc1=3D2;; >- mov loc0=3Dibr[loc1];; >- st8.spill [in0]=3Dloc0,8;; >- movl loc1=3D3;; >- mov loc0=3Dibr[loc1];; >- st8.spill [in0]=3Dloc0,8;; >- movl loc1=3D4;; >- mov loc0=3Dibr[loc1];; >- st8.spill [in0]=3Dloc0,8;; >- movl loc1=3D5;; >- mov loc0=3Dibr[loc1];; >- st8.spill [in0]=3Dloc0,8;; >- movl loc1=3D6;; >- mov loc0=3Dibr[loc1];; >- st8.spill [in0]=3Dloc0,8;; >- movl loc1=3D7;; >- mov loc0=3Dibr[loc1];; >- st8.spill [in0]=3Dloc0,8;; >- st8.spill [in0]=3Dloc3;; >- >- br.ret.sptk.few b0 >- >- .endp SpillContext >- >- >-///////////////////////////////////////////// >-// >-// Name: >-// FillContext >-// >-// Description: >-// Restores register context from context record. >-// >-// Arguments: >-// in0 =3D address of last element 512 byte aligned context reco= rd address >-// in1 =3D modified B0 >-// in2 =3D modified ar.bsp >-// in3 =3D modified ar.bspstore >-// in4 =3D modified ar.rnat >-// in5 =3D modified ar.pfs >-// >-// Notes: >-// loc0 - scratch >-// loc1 - scratch >-// loc2 - temporary application unat storage >-// loc3 - temporary exception handler unat storage >- >- .proc FillContext >-FillContext: >- alloc loc0=3D6,4,0,0;; // alloc 6 inputs, 4 locals= , 0 outs >- ld8.fill loc3=3D[in0],-8;; // int_nat (nat bits for R1= -31) >- movl loc1=3D7;; // ibr7 >- ld8.fill loc0=3D[in0],-8;; >- mov ibr[loc1]=3Dloc0;; >- movl loc1=3D6;; // ibr6 >- ld8.fill loc0=3D[in0],-8;; >- mov ibr[loc1]=3Dloc0;; >- movl loc1=3D5;; // ibr5 >- ld8.fill loc0=3D[in0],-8;; >- mov ibr[loc1]=3Dloc0;; >- movl loc1=3D4;; // ibr4 >- ld8.fill loc0=3D[in0],-8;; >- mov ibr[loc1]=3Dloc0;; >- movl loc1=3D3;; // ibr3 >- ld8.fill loc0=3D[in0],-8;; >- mov ibr[loc1]=3Dloc0;; >- movl loc1=3D2;; // ibr2 >- ld8.fill loc0=3D[in0],-8;; >- mov ibr[loc1]=3Dloc0;; >- movl loc1=3D1;; // ibr1 >- ld8.fill loc0=3D[in0],-8;; >- mov ibr[loc1]=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // ibr0 >- mov ibr[r0]=3Dloc0;; >- movl loc1=3D7;; // dbr7 >- ld8.fill loc0=3D[in0],-8;; >- mov dbr[loc1]=3Dloc0;; >- movl loc1=3D6;; // dbr6 >- ld8.fill loc0=3D[in0],-8;; >- mov dbr[loc1]=3Dloc0;; >- movl loc1=3D5;; // dbr5 >- ld8.fill loc0=3D[in0],-8;; >- mov dbr[loc1]=3Dloc0;; >- movl loc1=3D4;; // dbr4 >- ld8.fill loc0=3D[in0],-8;; >- mov dbr[loc1]=3Dloc0;; >- movl loc1=3D3;; // dbr3 >- ld8.fill loc0=3D[in0],-8;; >- mov dbr[loc1]=3Dloc0;; >- movl loc1=3D2;; // dbr2 >- ld8.fill loc0=3D[in0],-8;; >- mov dbr[loc1]=3Dloc0;; >- movl loc1=3D1;; // dbr1 >- ld8.fill loc0=3D[in0],-8;; >- mov dbr[loc1]=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // dbr0 >- mov dbr[r0]=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // iha >- mov cr.iha=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // iim >- mov cr.iim=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // ifs >- mov cr.ifs=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // iipa >- mov cr.iipa=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // itir >- mov cr.itir=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // ifa >- mov cr.ifa=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // iip >- mov cr.iip=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // isr >- mov cr.isr=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // ipsr >- mov cr.ipsr=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // pta >- mov cr.pta=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // iva >- mov cr.iva=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // itm >- mov cr.itm=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // dcr >- mov cr.dcr=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // ec >- mov ar.ec=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // lc >- mov ar.lc=3Dloc0;; >- ld8.fill in5=3D[in0],-8;; // ar.pfs >- ld8.fill loc0=3D[in0],-8;; // ar.fpsr >- mov ar.fpsr=3Dloc0;; >- ld8.fill loc2=3D[in0],-8;; // ar.unat - restored later= ... >- ld8.fill loc0=3D[in0],-8;; // ar.ccv >- mov ar.ccv=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // ar.fdr >- mov ar.fdr=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // ar.fir >- mov ar.fir=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // ar.fsr >- mov ar.fsr=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // ar.cflg >- mov ar.cflg=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // ar.ssd >- mov ar.ssd=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // ar.csd >- mov ar.csd=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // ar.eflag >- mov ar.eflag=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // ar.fcr >- mov ar.fcr=3Dloc0;; >- ld8.fill in4=3D[in0],-8;; // ar.rnat >- ld8.fill in3=3D[in0],-8;; // bspstore >- ld8.fill in2=3D[in0],-8;; // bsp >- ld8.fill loc0=3D[in0],-8;; // ar.rsc >- mov ar.rsc=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; // B7 - B0 >- mov b7=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; >- mov b6=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; >- mov b5=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; >- mov b4=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; >- mov b3=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; >- mov b2=3Dloc0;; >- ld8.fill loc0=3D[in0],-8;; >- mov b1=3Dloc0;; >- ld8.fill in1=3D[in0],-8;; // b0 is temporarily stored= in in1 >- ld8.fill loc0=3D[in0],-16;; // predicates >- mov pr=3Dloc0;; >- ldf.fill f31=3D[in0],-16;; >- ldf.fill f30=3D[in0],-16;; >- ldf.fill f29=3D[in0],-16;; >- ldf.fill f28=3D[in0],-16;; >- ldf.fill f27=3D[in0],-16;; >- ldf.fill f26=3D[in0],-16;; >- ldf.fill f25=3D[in0],-16;; >- ldf.fill f24=3D[in0],-16;; >- ldf.fill f23=3D[in0],-16;; >- ldf.fill f22=3D[in0],-16;; >- ldf.fill f21=3D[in0],-16;; >- ldf.fill f20=3D[in0],-16;; >- ldf.fill f19=3D[in0],-16;; >- ldf.fill f18=3D[in0],-16;; >- ldf.fill f17=3D[in0],-16;; >- ldf.fill f16=3D[in0],-16;; >- ldf.fill f15=3D[in0],-16;; >- ldf.fill f14=3D[in0],-16;; >- ldf.fill f13=3D[in0],-16;; >- ldf.fill f12=3D[in0],-16;; >- ldf.fill f11=3D[in0],-16;; >- ldf.fill f10=3D[in0],-16;; >- ldf.fill f9=3D[in0],-16;; >- ldf.fill f8=3D[in0],-16;; >- ldf.fill f7=3D[in0],-16;; >- ldf.fill f6=3D[in0],-16;; >- ldf.fill f5=3D[in0],-16;; >- ldf.fill f4=3D[in0],-16;; >- ldf.fill f3=3D[in0],-16;; >- ldf.fill f2=3D[in0],-8;; >- mov ar.unat=3Dloc3;; // restore unat (int_nat) b= efore fill of general >registers >- ld8.fill r31=3D[in0],-8;; >- ld8.fill r30=3D[in0],-8;; >- ld8.fill r29=3D[in0],-8;; >- ld8.fill r28=3D[in0],-8;; >- ld8.fill r27=3D[in0],-8;; >- ld8.fill r26=3D[in0],-8;; >- ld8.fill r25=3D[in0],-8;; >- ld8.fill r24=3D[in0],-8;; >- ld8.fill r23=3D[in0],-8;; >- ld8.fill r22=3D[in0],-8;; >- ld8.fill r21=3D[in0],-8;; >- ld8.fill r20=3D[in0],-8;; >- ld8.fill r19=3D[in0],-8;; >- ld8.fill r18=3D[in0],-8;; >- ld8.fill r17=3D[in0],-8;; >- ld8.fill r16=3D[in0],-8;; >- ld8.fill r15=3D[in0],-8;; >- ld8.fill r14=3D[in0],-8;; >- ld8.fill r13=3D[in0],-8;; >- ld8.fill r12=3D[in0],-8;; >- ld8.fill r11=3D[in0],-8;; >- ld8.fill r10=3D[in0],-8;; >- ld8.fill r9=3D[in0],-8;; >- ld8.fill r8=3D[in0],-8;; >- ld8.fill r7=3D[in0],-8;; >- ld8.fill r6=3D[in0],-8;; >- ld8.fill r5=3D[in0],-8;; >- ld8.fill r4=3D[in0],-8;; >- ld8.fill r3=3D[in0],-8;; >- ld8.fill r2=3D[in0],-8;; >- ld8.fill r1=3D[in0],-8;; >- mov ar.unat=3Dloc2;; // restore application cont= ext unat >- >- br.ret.sptk.many b0 >- >- .endp FillContext >- >- >-///////////////////////////////////////////// >-// >-// Name: >-// HookHandler >-// >-// Description: >-// Common branch target from hooked IVT entries. Runs in interrupt >context. >-// Responsible for saving and restoring context and calling common C >-// handler. Banked registers running on bank 0 at entry. >-// >-// Arguments: >-// All arguments are passed in banked registers: >-// B0_REG =3D Original B0 >-// SCRATCH_REG1 =3D IVT entry index >-// >-// Returns: >-// Returns via rfi >-// >-// Notes: >-// loc0 - scratch >-// loc1 - scratch >-// loc2 - vector number / mask >-// loc3 - 16 byte aligned context record address >-// loc4 - temporary storage of last address in context record >- >-HookHandler: >- flushrs;; // Synch RSE with backing= store >- mov SCRATCH_REG2=3Dar.bsp // save interrupted con= text bsp >- mov SCRATCH_REG3=3Dar.bspstore // save interrupted con= text >bspstore >- mov SCRATCH_REG4=3Dar.rnat // save interrupted con= text rnat >- mov SCRATCH_REG6=3Dcr.ifs;; // save IFS in case we = need to chain... >- cover;; // creates new frame, mov= es old >- // CFM to IFS. >- alloc SCRATCH_REG5=3D0,5,6,0 // alloc 5 locals, 6 ou= ts >- ;; >- // save banked registers to locals >- mov out1=3DB0_REG // out1 =3D Original B0 >- mov out2=3DSCRATCH_REG2 // out2 =3D original ar= .bsp >- mov out3=3DSCRATCH_REG3 // out3 =3D original ar= .bspstore >- mov out4=3DSCRATCH_REG4 // out4 =3D original ar= .rnat >- mov out5=3DSCRATCH_REG5 // out5 =3D original ar= .pfs >- mov loc2=3DSCRATCH_REG1;; // loc2 =3D vector numb= er + chain flag >- bsw.1;; // switch banked register= s to bank 1 >- srlz.d // explicit serialize req= uired >- // now fill in context re= cord structure >- movl loc3=3DIpfContextBuf // Insure context recor= d is aligned >- add loc0=3D-0x200,r0;; // mask the lower 9 bit= s (align on 512 byte >boundary) >- and loc3=3Dloc3,loc0;; >- add loc3=3D0x200,loc3;; // move to next 512 byt= e boundary >- // loc3 now contains the = 512 byte aligned context >record >- // spill register context= into context record >- mov out0=3Dloc3;; // Context record base = in out0 >- // original B0 in out1 al= ready >- // original ar.bsp in out= 2 already >- // original ar.bspstore i= n out3 already >- br.call.sptk.few b0=3DSpillContext;; // spill context >- mov loc4=3Dout0 // save modified addres= s >- >- // At this point, the context has been saved to the context record an= d >we're >- // ready to call the C part of the handler... >- >- movl loc0=3DCommonHandler;; // obtain address of pl= abel >- ld8 loc1=3D[loc0];; // get entry point of C= ommonHandler >- mov b6=3Dloc1;; // put it in a branch r= egister >- adds loc1=3D 8, loc0;; // index to GP in plabe= l >- ld8 r1=3D[loc1];; // set up gp for C call >- mov loc1=3D0xfffff;; // mask off so only vec= tor bits are present >- and out0=3Dloc2,loc1;; // pass vector number (= exception type) >- mov out1=3Dloc3;; // pass context record = address >- br.call.sptk.few b0=3Db6;; // call C handler >- >- // We've returned from the C call, so restore the context and either = rfi >- // back to interrupted thread, or chain into the SAL if this was an e= xternal >interrupt >- mov out0=3Dloc4;; // pass address of last= element in context >record >- br.call.sptk.few b0=3DFillContext;; // Fill context >- mov b0=3Dout1 // fill in b0 >- mov ar.rnat=3Dout4 >- mov ar.pfs=3Dout5 >- >- // Loadrs is necessary because the debugger may have changed some >values in >- // the backing store. The processor, however may not be aware that the >- // stacked registers need to be reloaded from the backing store. There= fore, >- // we explicitly cause the RSE to refresh the stacked register's conten= ts >- // from the backing store. >- mov loc0=3Dar.rsc // get RSC value >- mov loc1=3Dar.rsc // save it so we can re= store it >- movl loc3=3D0xffffffffc000ffff;; // create mask for clea= ring RSC.loadrs >- and loc0=3Dloc0,loc3;; // create value for RSC= with RSC.loadrs=3D=3D0 >- mov ar.rsc=3Dloc0;; // modify RSC >- loadrs;; // invalidate register st= ack >- mov ar.rsc=3Dloc1;; // restore original RSC >- >- bsw.0;; // switch banked register= s back to bank 0 >- srlz.d;; // explicit serialize req= uired >- mov PR_REG=3Dpr // save predicates - to= be restored after >chaining decision >- mov B0_REG=3Db0 // save b0 - required b= y chain code >- mov loc2=3DEXCPT_EXTERNAL_INTERRUPT;; >- cmp.eq p7,p0=3DSCRATCH_REG1,loc2;; // check to see if this= is the timer >tick >- (p7) br.cond.dpnt.few DO_CHAIN;; >- >-NO_CHAIN: >- mov pr=3DPR_REG;; >- rfi;; // we're outa here. >- >-DO_CHAIN: >- mov pr=3DPR_REG >- mov SCRATCH_REG1=3Dcr.iva >- mov SCRATCH_REG2=3DPATCH_RETURN_OFFSET;; >- add SCRATCH_REG1=3DSCRATCH_REG1, SCRATCH_REG2;; >- mov b0=3DSCRATCH_REG1;; >- br.cond.sptk.few b0;; >- >-EndHookHandler: >- >- >-///////////////////////////////////////////// >-// >-// Name: >-// HookStub >-// >-// Description: >-// HookStub will be copied from it's loaded location into the IVT wh= en >-// an IVT entry is hooked. The IVT entry does an indirect jump via = B0 to >-// HookHandler, which in turn calls into the default C handler, whic= h calls >-// the user-installed C handler. The calls return and HookHandler e= xecutes >-// an rfi. >-// >-// Notes: >-// Saves B0 to B0_REG >-// Saves IVT index to SCRATCH_REG1 (immediate value is fixed up when >code is copied >-// to the IVT entry. >- >- ASM_GLOBAL HookStub >- .proc HookStub >-HookStub: >- >- mov B0_REG=3Db0 >- movl SCRATCH_REG1=3DHookHandler;; >- mov b0=3DSCRATCH_REG1;; >- mov SCRATCH_REG1=3D0;;// immediate value is fixed up duri= ng install >of handler to be the vector number >- br.cond.sptk.few b0 >- >- .endp HookStub >- >- >-///////////////////////////////////////////// >-// The following code is moved into IVT entry 14 (offset 3400) which is >reserved >-// in the Itanium architecture. The patch code is located at the end of = the >-// IVT entry. >- >-PatchCode: >- mov SCRATCH_REG0=3Dpsr >- mov SCRATCH_REG6=3Dcr.ipsr >- mov PR_REG=3Dpr >- mov B0_REG=3Db0;; >- >- // turn off any virtual translations >- movl SCRATCH_REG1 =3D ~( MASK(PSR_DT,1) | MASK(PSR_RT,1));; >- and SCRATCH_REG1 =3D SCRATCH_REG0, SCRATCH_REG1;; >- mov psr.l =3D SCRATCH_REG1;; >- srlz.d >- tbit.z p14, p15 =3D SCRATCH_REG6, PSR_IS;; // Check to see i= f we were >- // interrupted from= IA32 >- // context. If so,= bail out >- // and chain to SAL= immediately >- (p15) br.cond.sptk.few Stub_IVT_Passthru;; >- // we only want to take 1 out of 32 external interrupts to minimi= ze the >- // impact to system performance. Check our interrupt count and b= ail >- // out if we're not up to 32 >- movl SCRATCH_REG1=3DExternalInterruptCount;; >- ld8 SCRATCH_REG2=3D[SCRATCH_REG1];; // ExternalInterr= uptCount >- tbit.z p14, p15 =3D SCRATCH_REG2, 5;; // bit 5 set? >- (p14) add SCRATCH_REG2=3D1, SCRATCH_REG2;; // No? Then incr= ement >- // ExternalInterrup= tCount >- // and Chain to SAL >- // immediately >- (p14) st8 [SCRATCH_REG1]=3DSCRATCH_REG2;; >- (p14) br.cond.sptk.few Stub_IVT_Passthru;; >- (p15) mov SCRATCH_REG2=3D0;; // Yes? Then res= et >- // ExternalInterr= uptCount >- // and branch to >- // HookHandler >- (p15) st8 [SCRATCH_REG1]=3DSCRATCH_REG2;; >- mov pr=3DPR_REG >- movl SCRATCH_REG1=3DHookHandler;; // SCRATCH_REG1 = =3D >entrypoint of HookHandler >- mov b0=3DSCRATCH_REG1;; // b0 =3D entrypo= int of HookHandler >- mov SCRATCH_REG1=3DEXCPT_EXTERNAL_INTERRUPT;; >- br.sptk.few b0;; // branch to Hook= Handler >- >-PatchCodeRet: >- // fake-up an rfi to get RSE back to being coherent and insure ps= r has >- // original contents when interrupt occured, then exit to SAL >- // at this point: >- // cr.ifs has been modified by previous "cover" >- // SCRATCH_REG6 has original cr.ifs >- >- mov SCRATCH_REG5=3Dcr.ipsr >- mov SCRATCH_REG4=3Dcr.iip;; >- mov cr.ipsr=3DSCRATCH_REG0 >- mov SCRATCH_REG1=3Dip;; >- add SCRATCH_REG1=3D0x30, SCRATCH_REG1;; >- mov cr.iip=3DSCRATCH_REG1;; >- rfi;; // rfi to next instruction >- >-Stub_RfiTarget: >- mov cr.ifs=3DSCRATCH_REG6 >- mov cr.ipsr=3DSCRATCH_REG5 >- mov cr.iip=3DSCRATCH_REG4;; >- >-Stub_IVT_Passthru: >- mov pr=3DPR_REG // pr =3D saved pre= dicate registers >- mov b0=3DB0_REG;; // b0 =3D saved b0 >-EndPatchCode: >- >- >-///////////////////////////////////////////// >-// The following bundle is moved into IVT entry 14 (offset 0x3400) which = is >reserved >-// in the Itanium architecture. This bundle will be the last bundle and = will >-// be located at offset 0x37F0 in the IVT. >- >-FailsafeBranch: >-{ >- .mib >- nop.m 0 >- nop.i 0 >- br.sptk.few -(FAILSAFE_BRANCH_OFFSET - EXT_INT_ENTRY_OFFSET - >0x10) >-} >- >- >-///////////////////////////////////////////// >-// The following bundle is moved into IVT entry 13 (offset 0x3000) which = is >the >-// external interrupt. It branches to the patch code. >- >-PatchCodeNewBun0: >-{ >- .mib >- nop.m 0 >- nop.i 0 >- br.cond.sptk.few PATCH_BRANCH >-} >diff --git a/MdeModulePkg/Universal/DebugSupportDxe/Ipf/Common.i >b/MdeModulePkg/Universal/DebugSupportDxe/Ipf/Common.i >deleted file mode 100644 >index a11f780125..0000000000 >--- a/MdeModulePkg/Universal/DebugSupportDxe/Ipf/Common.i >+++ /dev/null >@@ -1,29 +0,0 @@ >-/// @file >-/// This is set of useful macros. >-/// >-/// Copyright (c) 2006, 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 ma= y 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. >-/// >-/// Module Name: Common.i >-/// >-/// >- >- >-#define NESTED_SETUP(i,l,o,r) \ >- alloc loc1=3Dar##.##pfs,i,l,o,r ; \ >- mov loc0=3Db0 ;; >- >- >-#define NESTED_RETURN \ >- mov b0=3Dloc0 ; \ >- mov ar##.##pfs=3Dloc1 ;; \ >- br##.##ret##.##dpnt b0 ;; >- >-#define MASK(bp,value) (value << bp) >- >diff --git a/MdeModulePkg/Universal/DebugSupportDxe/Ipf/Ds64Macros.i >b/MdeModulePkg/Universal/DebugSupportDxe/Ipf/Ds64Macros.i >deleted file mode 100644 >index 8ce97f32c2..0000000000 >--- a/MdeModulePkg/Universal/DebugSupportDxe/Ipf/Ds64Macros.i >+++ /dev/null >@@ -1,78 +0,0 @@ >-/// @file >-/// This is set of macros used in calculating offsets in the IVT. >-/// >-/// Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved. >-/// This program and the accompanying materials >-/// are licensed and made available under the terms and conditions of the >BSD License >-/// which accompanies this distribution. The full text of the license ma= y 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. >-/// >-/// >- >- >-#define EXCPT_EXTERNAL_INTERRUPT 12 >-#define MASK_0_4 0x000000000000001F // mask bits 0 through 4 >-#define SLOT0 0 >-#define SLOT1 1 >-#define SLOT2 2 >- >-#define PSR_DT 17 >-#define PSR_TB 26 >-#define PSR_RT 27 >-#define PSR_IS 34 >-#define PSR_IT 36 >-#define PSR_IC 13 >-#define PSR_I 14 >-#define PSR_SS 40 >-#define PSR_BN 44 >-#define PSR_RI_MASK 0x60000000000 >- >-#define EXCPT_EXTERNAL_INTERRUPT 12 >- >-#define SCRATCH_REG0 r23 >-#define SCRATCH_REG1 r24 >-#define SCRATCH_REG2 r25 >-#define SCRATCH_REG3 r26 >-#define SCRATCH_REG4 r27 >-#define SCRATCH_REG5 r28 >-#define SCRATCH_REG6 r29 >-#define PR_REG r30 >-#define B0_REG r31 >- >- >-// EXT_INT_OFFSET is the offset of the external interrupt entry in the IV= T >-#define EXT_INT_ENTRY_OFFSET 0x03000 >- >-// PATCH_ENTRY_OFFSET is the offset into the IVT of the entry that is >coopted (stolen) >-// for use by the handler. The entire entry is restored when the handler= is >-// unloaded. >-#define PATCH_ENTRY_OFFSET 0x03400 >- >-// PATCH_CODE_SIZE is the size of patch code >-#define PATCH_CODE_SIZE (EndPatchCode - PatchCode) >- >-// A hard coded branch back into the external interrupt IVT entry's secon= d >bundle >-// is put here, just in case the original bundle zero did not have a bran= ch >-// This is the last bundle in the reserved IVT entry >-#define FAILSAFE_BRANCH_OFFSET (PATCH_ENTRY_OFFSET + 0x400 - 0x10) >- >-// the original external interrupt IVT entry bundle zero is copied and >relocated >-// here... also in the reserved IVT entry >-// This is the second-to-last bundle in the reserved IVT entry >-#define RELOCATED_EXT_INT (PATCH_ENTRY_OFFSET + 0x400 - 0x20) >- >-// The patch is actually stored at the end of IVT:PATCH_ENTRY. The >PATCH_OFFSET >-// is the offset into IVT where the patch is actually stored. It is care= fully >-// located so that when we run out of patch code, the next bundle is the >-// relocated bundle 0 from the original external interrupt handler >-#define PATCH_OFFSET (PATCH_ENTRY_OFFSET + 0x400 - >( EndPatchCode - PatchCode ) - 0x20) >- >-#define PATCH_RETURN_OFFSET (PATCH_ENTRY_OFFSET + 0x400 - >( EndPatchCode - PatchCodeRet ) - 0x20) >- >-// PATCH_BRANCH is used only in the new bundle that is placed at the >beginning >-// of the external interrupt IVT entry. >-#define PATCH_BRANCH (PATCH_OFFSET - EXT_INT_ENTRY_OFFSET) >- >diff --git >a/MdeModulePkg/Universal/DebugSupportDxe/Ipf/PlDebugSupport.c >b/MdeModulePkg/Universal/DebugSupportDxe/Ipf/PlDebugSupport.c >deleted file mode 100644 >index 44f59e8ec8..0000000000 >--- a/MdeModulePkg/Universal/DebugSupportDxe/Ipf/PlDebugSupport.c >+++ /dev/null >@@ -1,467 +0,0 @@ >-/** @file >- IPF specific functions to support Debug Support protocol. >- >-Copyright (c) 2006 - 2010, 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. >- >-**/ >- >-#include "PlDebugSupport.h" >- >-BOOLEAN mInHandler =3D FALSE; >- >-// >-// number of bundles to swap in ivt >-// >-#define NUM_BUNDLES_IN_STUB 5 >-#define NUM_IVT_ENTRIES 64 >- >-typedef struct { >- BUNDLE OrigBundles[NUM_BUNDLES_IN_STUB]; >- CALLBACK_FUNC RegisteredCallback; >-} IVT_ENTRY; >- >-IVT_ENTRY IvtEntryTable[NUM_IVT_ENTRIES]; >- >-// >-// IPF context record is overallocated by 512 bytes to guarantee a 512 by= te >alignment exists >-// within the buffer and still have a large enough buffer to hold a whole= IPF >context record. >-// >-UINT8 IpfContextBuf[sizeof (EFI_SYSTEM_CONTEXT_IPF) + 512]; >- >-// >-// The PatchSaveBuffer is used to store the original bundles from the IVT >where it is patched >-// with the common handler. >-// >-UINT8 PatchSaveBuffer[0x400]; >-UINTN ExternalInterruptCount; >- >- >-/** >- IPF specific DebugSupport driver initialization. >- >- Must be public because it's referenced from DebugSupport.c >- >- @retval EFI_SUCCESS Always. >- >-**/ >-EFI_STATUS >-PlInitializeDebugSupportDriver ( >- VOID >- ) >-{ >- ZeroMem (IvtEntryTable, sizeof (IvtEntryTable)); >- ExternalInterruptCount =3D 0; >- return EFI_SUCCESS; >-} >- >-/** >- Unload handler that is called during UnloadImage() - deallocates pool >memory >- used by the driver. >- >- Must be public because it's referenced from DebugSuport.c >- >- @param ImageHandle The firmware allocated handle for the EFI image. >- >- @retval EFI_SUCCESS Always. >- >-**/ >-EFI_STATUS >-EFIAPI >-PlUnloadDebugSupportDriver ( >- IN EFI_HANDLE ImageHandle >- ) >-{ >- EFI_EXCEPTION_TYPE ExceptionType; >- >- for (ExceptionType =3D 0; ExceptionType < NUM_IVT_ENTRIES; >ExceptionType++) { >- ManageIvtEntryTable (ExceptionType, NULL, NULL); >- } >- >- return EFI_SUCCESS; >-} >- >-/** >- C routine that is called for all registered exceptions. This is the ma= in >- exception dispatcher. >- >- Must be public because it's referenced from AsmFuncs.s. >- >- @param ExceptionType Specifies which processor exception. >- @param Context System Context. >-**/ >-VOID >-CommonHandler ( >- IN EFI_EXCEPTION_TYPE ExceptionType, >- IN EFI_SYSTEM_CONTEXT Context >- ) >-{ >- DEBUG_CODE_BEGIN (); >- if (mInHandler) { >- DEBUG ((EFI_D_INFO, "ERROR: Re-entered debugger!\n" >- " ExceptionType =3D=3D %X\n" >- " Context =3D=3D %X\n" >- " Context.SystemContextIpf->CrI= ip =3D=3D %LX\n" >- " Context.SystemContextIpf->CrI= psr =3D=3D %LX\n" >- " mInHandler =3D=3D %X\n", >- (INT32)ExceptionType, >- Context, >- Context.SystemContextIpf->CrIip, >- Context.SystemContextIpf->CrIpsr, >- mInHandler)); >- } >- DEBUG_CODE_END (); >- >- ASSERT (!mInHandler); >- mInHandler =3D TRUE; >- if (IvtEntryTable[ExceptionType].RegisteredCallback !=3D NULL) { >- if (ExceptionType !=3D EXCEPT_IPF_EXTERNAL_INTERRUPT) { >- IvtEntryTable[ExceptionType].RegisteredCallback (ExceptionType, >Context.SystemContextIpf); >- } else { >- IvtEntryTable[ExceptionType].RegisteredCallback >(Context.SystemContextIpf); >- } >- } else { >- ASSERT (0); >- } >- >- mInHandler =3D FALSE; >-} >- >-/** >- Given an integer number, return the physical address of the entry point= in >the IFT. >- >- @param HandlerIndex Index of the Handler >- @param EntryPoint IFT Entrypoint >- >-**/ >-VOID >-GetHandlerEntryPoint ( >- UINTN HandlerIndex, >- VOID **EntryPoint >- ) >-{ >- UINT8 *TempPtr; >- >- // >- // get base address of IVT >- // >- TempPtr =3D GetIva (); >- >- if (HandlerIndex < 20) { >- // >- // first 20 provide 64 bundles per vector >- // >- TempPtr +=3D 0x400 * HandlerIndex; >- } else { >- // >- // the rest provide 16 bundles per vector >- // >- TempPtr +=3D 0x5000 + 0x100 * (HandlerIndex - 20); >- } >- >- *EntryPoint =3D (VOID *) TempPtr; >-} >- >-/** >- This is the worker function that uninstalls and removes all handlers. >- >- @param ExceptionType Specifies which processor exception. >- @param NewBundles New Boundles. >- @param NewCallback A pointer to the new function to be registere= d. >- >- @retval EFI_ALEADY_STARTED Ivt already hooked. >- @retval EFI_SUCCESS Successfully uninstalled. >- >-**/ >-EFI_STATUS >-ManageIvtEntryTable ( >- IN EFI_EXCEPTION_TYPE ExceptionType, >- IN BUNDLE NewBundles[NUM_BUNDLES_IN_STUB], >- IN CALLBACK_FUNC NewCallback >- ) >-{ >- BUNDLE *B0Ptr; >- UINT64 InterruptFlags; >- EFI_TPL OldTpl; >- >- // >- // Get address of bundle 0 >- // >- GetHandlerEntryPoint (ExceptionType, (VOID **) &B0Ptr); >- >- if (IvtEntryTable[ExceptionType].RegisteredCallback !=3D NULL) { >- // >- // we've already installed to this vector >- // >- if (NewCallback !=3D NULL) { >- // >- // if the input handler is non-null, error >- // >- return EFI_ALREADY_STARTED; >- } else { >- // >- // else remove the previously installed handler >- // >- OldTpl =3D gBS->RaiseTPL (TPL_HIGH_LEVEL); >- InterruptFlags =3D ProgramInterruptFlags (DISABLE_INTERRUPTS); >- if (ExceptionType =3D=3D EXCEPT_IPF_EXTERNAL_INTERRUPT) { >- UnchainExternalInterrupt (); >- } else { >- UnhookEntry (ExceptionType); >- } >- >- ProgramInterruptFlags (InterruptFlags); >- gBS->RestoreTPL (OldTpl); >- // >- // re-init IvtEntryTable >- // >- ZeroMem (&IvtEntryTable[ExceptionType], sizeof (IVT_ENTRY)); >- } >- } else { >- // >- // no user handler installed on this vector >- // >- if (NewCallback !=3D NULL) { >- OldTpl =3D gBS->RaiseTPL (TPL_HIGH_LEVEL); >- InterruptFlags =3D ProgramInterruptFlags (DISABLE_INTERRUPTS); >- if (ExceptionType =3D=3D EXCEPT_IPF_EXTERNAL_INTERRUPT) { >- ChainExternalInterrupt (NewCallback); >- } else { >- HookEntry (ExceptionType, NewBundles, NewCallback); >- } >- >- ProgramInterruptFlags (InterruptFlags); >- gBS->RestoreTPL (OldTpl); >- } >- } >- >- return EFI_SUCCESS; >-} >- >-/** >- Saves original IVT contents and inserts a few new bundles which are fix= ed >up >- to store the ExceptionType and then call the common handler. >- >- @param ExceptionType Specifies which processor exception. >- @param NewBundles New Boundles. >- @param NewCallback A pointer to the new function to be hooked. >- >-**/ >-VOID >-HookEntry ( >- IN EFI_EXCEPTION_TYPE ExceptionType, >- IN BUNDLE NewBundles[4], >- IN CALLBACK_FUNC NewCallback >- ) >-{ >- BUNDLE *FixupBundle; >- BUNDLE *B0Ptr; >- >- // >- // Get address of bundle 0 >- // >- GetHandlerEntryPoint (ExceptionType, (VOID **) &B0Ptr); >- >- // >- // copy original bundles from IVT to IvtEntryTable so we can restore th= em >later >- // >- CopyMem ( >- IvtEntryTable[ExceptionType].OrigBundles, >- B0Ptr, >- sizeof (BUNDLE) * NUM_BUNDLES_IN_STUB >- ); >- // >- // insert new B0 >- // >- CopyMem (B0Ptr, NewBundles, sizeof (BUNDLE) * >NUM_BUNDLES_IN_STUB); >- >- // >- // fixup IVT entry so it stores its index and whether or not to chain..= . >- // >- FixupBundle =3D B0Ptr + 2; >- FixupBundle->High |=3D ExceptionType << 36; >- >- InstructionCacheFlush (B0Ptr, 5); >- IvtEntryTable[ExceptionType].RegisteredCallback =3D NewCallback; >-} >- >-/** >- Restores original IVT contents when unregistering a callback function. >- >- @param ExceptionType Specifies which processor exception. >- >-**/ >-VOID >-UnhookEntry ( >- IN EFI_EXCEPTION_TYPE ExceptionType >- ) >-{ >- BUNDLE *B0Ptr; >- >- // >- // Get address of bundle 0 >- // >- GetHandlerEntryPoint (ExceptionType, (VOID **) &B0Ptr); >- // >- // restore original bundles in IVT >- // >- CopyMem ( >- B0Ptr, >- IvtEntryTable[ExceptionType].OrigBundles, >- sizeof (BUNDLE) * NUM_BUNDLES_IN_STUB >- ); >- InstructionCacheFlush (B0Ptr, 5); >-} >- >-/** >- Sets up cache flush and calls assembly function to chain external inter= rupt. >- >- Records new callback in IvtEntryTable. >- >- @param NewCallback A pointer to the interrupt handle. >- >-**/ >-VOID >-ChainExternalInterrupt ( >- IN CALLBACK_FUNC NewCallback >- ) >-{ >- VOID *Start; >- >- Start =3D (VOID *) ((UINT8 *) GetIva () + 0x400 * >EXCEPT_IPF_EXTERNAL_INTERRUPT + 0x400); >- IvtEntryTable[EXCEPT_IPF_EXTERNAL_INTERRUPT].RegisteredCallback =3D >NewCallback; >- ChainHandler (); >- InstructionCacheFlush (Start, 0x400); >-} >- >-/** >- Sets up cache flush and calls assembly function to restore external int= errupt. >- Removes registered callback from IvtEntryTable. >- >-**/ >-VOID >-UnchainExternalInterrupt ( >- VOID >- ) >-{ >- VOID *Start; >- >- Start =3D (VOID *) ((UINT8 *) GetIva () + 0x400 * >EXCEPT_IPF_EXTERNAL_INTERRUPT + 0x400); >- UnchainHandler (); >- InstructionCacheFlush (Start, 0x400); >- IvtEntryTable[EXCEPT_IPF_EXTERNAL_INTERRUPT].RegisteredCallback =3D >NULL; >-} >- >-/** >- Returns the maximum value that may be used for the ProcessorIndex >parameter in >- RegisterPeriodicCallback() and RegisterExceptionCallback(). >- >- Hard coded to support only 1 processor for now. >- >- @param This A pointer to the EFI_DEBUG_SUPPORT_PROTOC= OL >instance. >- @param MaxProcessorIndex Pointer to a caller-allocated UINTN in wh= ich >the maximum supported >- processor index is returned. Always 0 ret= urned. >- >- @retval EFI_SUCCESS Always returned with **MaxProcessorIndex = set >to 0. >- >-**/ >-EFI_STATUS >-EFIAPI >-GetMaximumProcessorIndex ( >- IN EFI_DEBUG_SUPPORT_PROTOCOL *This, >- OUT UINTN *MaxProcessorIndex >- ) >-{ >- *MaxProcessorIndex =3D 0; >- return (EFI_SUCCESS); >-} >- >-/** >- Registers a function to be called back periodically in interrupt contex= t. >- >- @param This A pointer to the EFI_DEBUG_SUPPORT_PROTOC= OL >instance. >- @param ProcessorIndex Specifies which processor the callback fu= nction >applies to. >- @param PeriodicCallback A pointer to a function of type >PERIODIC_CALLBACK that is the main >- periodic entry point of the debug agent. >- >- @retval EFI_SUCCESS The function completed successfully. >- @retval EFI_ALREADY_STARTED Non-NULL PeriodicCallback parameter >when a callback >- function was previously registered. >- @retval EFI_OUT_OF_RESOURCES System has insufficient memory >resources to register new callback >- function. >-**/ >-EFI_STATUS >-EFIAPI >-RegisterPeriodicCallback ( >- IN EFI_DEBUG_SUPPORT_PROTOCOL *This, >- IN UINTN ProcessorIndex, >- IN EFI_PERIODIC_CALLBACK PeriodicCallback >- ) >-{ >- return ManageIvtEntryTable (EXCEPT_IPF_EXTERNAL_INTERRUPT, NULL, >PeriodicCallback); >-} >- >-/** >- Registers a function to be called when a given processor exception occu= rs. >- >- This code executes in boot services context. >- >- @param This A pointer to the EFI_DEBUG_SUPPORT_PROTOC= OL >instance. >- @param ProcessorIndex Specifies which processor the callback fu= nction >applies to. >- @param ExceptionCallback A pointer to a function of type >EXCEPTION_CALLBACK that is called >- when the processor exception specified by= ExceptionType >occurs. >- @param ExceptionType Specifies which processor exception to ho= ok. >- >- @retval EFI_SUCCESS The function completed successfully. >- @retval EFI_ALREADY_STARTED Non-NULL PeriodicCallback parameter >when a callback >- function was previously registered. >- @retval EFI_OUT_OF_RESOURCES System has insufficient memory >resources to register new callback >- function. >-**/ >-EFI_STATUS >-EFIAPI >-RegisterExceptionCallback ( >- IN EFI_DEBUG_SUPPORT_PROTOCOL *This, >- IN UINTN ProcessorIndex, >- IN EFI_EXCEPTION_CALLBACK ExceptionCallback, >- IN EFI_EXCEPTION_TYPE ExceptionType >- ) >-{ >- return ManageIvtEntryTable ( >- ExceptionType, >- (BUNDLE *) ((EFI_PLABEL *) HookStub)->EntryPoint, >- ExceptionCallback >- ); >-} >- >-/** >- Invalidates processor instruction cache for a memory range. Subsequent >execution in this range >- causes a fresh memory fetch to retrieve code to be executed. >- >- @param This A pointer to the EFI_DEBUG_SUPPORT_PROTOC= OL >instance. >- @param ProcessorIndex Specifies which processor's instruction c= ache is >to be invalidated. >- @param Start Specifies the physical base of the memory= range to >be invalidated. >- @param Length Specifies the minimum number of bytes in = the >processor's instruction >- cache to invalidate. >- >- @retval EFI_SUCCESS Always returned. >- >-**/ >-EFI_STATUS >-EFIAPI >-InvalidateInstructionCache ( >- IN EFI_DEBUG_SUPPORT_PROTOCOL *This, >- IN UINTN ProcessorIndex, >- IN VOID *Start, >- IN UINTN Length >- ) >-{ >- InstructionCacheFlush (Start, Length); >- return EFI_SUCCESS; >-} >diff --git >a/MdeModulePkg/Universal/DebugSupportDxe/Ipf/PlDebugSupport.h >b/MdeModulePkg/Universal/DebugSupportDxe/Ipf/PlDebugSupport.h >deleted file mode 100644 >index 1701fbff42..0000000000 >--- a/MdeModulePkg/Universal/DebugSupportDxe/Ipf/PlDebugSupport.h >+++ /dev/null >@@ -1,324 +0,0 @@ >-/** @file >- IPF specific types, macros, and definitions for Debug Support Driver. >- >-Copyright (c) 2004 - 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. >- >-**/ >- >-#ifndef _PLDEBUG_SUPPORT_H_ >-#define _PLDEBUG_SUPPORT_H_ >- >-#include >- >-#include >-#include >- >-#include >-#include >-#include >-#include >-#include >- >-#define DISABLE_INTERRUPTS 0UL >- >-#define EFI_ISA IsaIpf >- >-typedef struct { >- UINT64 Low; >- UINT64 High; >-} BUNDLE; >- >-typedef >-VOID >-(*CALLBACK_FUNC) ( >- ); >- >-/** >- IPF specific DebugSupport driver initialization. >- >- Must be public because it's referenced from DebugSupport.c >- >- @retval EFI_SUCCESS Always. >- >-**/ >-EFI_STATUS >-PlInitializeDebugSupportDriver ( >- VOID >- ); >- >-/** >- Unload handler that is called during UnloadImage() - deallocates pool >memory >- used by the driver. >- >- Must be public because it's referenced from DebugSuport.c >- >- @param ImageHandle The firmware allocated handle for the EFI image. >- >- @retval EFI_SUCCESS Always. >- >-**/ >-EFI_STATUS >-EFIAPI >-PlUnloadDebugSupportDriver ( >- IN EFI_HANDLE ImageHandle >- ); >- >-/** >- C callable function to obtain the current value of IVA. >- >- @return Current value of IVA. >- >-**/ >-VOID * >-GetIva ( >- VOID >- ); >- >-/** >- C callable function that HookStub will be copied from it's loaded locat= ion into >the IVT when >- an IVT entry is hooked. >- >-**/ >-VOID >-HookStub ( >- VOID >- ); >- >-/** >- C callable function to chain an interrupt handler. >- >-**/ >-VOID >-ChainHandler ( >- VOID >- ); >- >-/** >- C callable function to unchain an interrupt handler. >- >-**/ >-VOID >-UnchainHandler ( >- VOID >- ); >- >-/** >- C callable function to enable/disable interrupts. >- >- @param NewInterruptState New Interrupt State. >- >- @return Previous state of psr.ic. >- >-**/ >-UINT64 >-ProgramInterruptFlags ( >- IN UINT64 NewInterruptState >- ); >- >-/** >- Flushes instruction cache for specified number of bytes. >- >- @param StartAddress Cache Start Address. >- @param SizeInBytes Cache Size. >- >-**/ >-VOID >-InstructionCacheFlush ( >- IN VOID *StartAddress, >- IN UINTN SizeInBytes >- ); >- >-/** >- Returns the maximum value that may be used for the ProcessorIndex >parameter in >- RegisterPeriodicCallback() and RegisterExceptionCallback(). >- >- Hard coded to support only 1 processor for now. >- >- @param This A pointer to the EFI_DEBUG_SUPPORT_PROTOC= OL >instance. >- @param MaxProcessorIndex Pointer to a caller-allocated UINTN in wh= ich >the maximum supported >- processor index is returned. Always 0 ret= urned. >- >- @retval EFI_SUCCESS Always returned with **MaxProcessorIndex = set >to 0. >- >-**/ >-EFI_STATUS >-EFIAPI >-GetMaximumProcessorIndex ( >- IN EFI_DEBUG_SUPPORT_PROTOCOL *This, >- OUT UINTN *MaxProcessorIndex >- ); >- >-/** >- Registers a function to be called back periodically in interrupt contex= t. >- >- @param This A pointer to the EFI_DEBUG_SUPPORT_PROTOC= OL >instance. >- @param ProcessorIndex Specifies which processor the callback fu= nction >applies to. >- @param PeriodicCallback A pointer to a function of type >PERIODIC_CALLBACK that is the main >- periodic entry point of the debug agent. >- >- @retval EFI_SUCCESS The function completed successfully. >- @retval EFI_ALREADY_STARTED Non-NULL PeriodicCallback parameter >when a callback >- function was previously registered. >- @retval EFI_OUT_OF_RESOURCES System has insufficient memory >resources to register new callback >- function. >-**/ >-EFI_STATUS >-EFIAPI >-RegisterPeriodicCallback ( >- IN EFI_DEBUG_SUPPORT_PROTOCOL *This, >- IN UINTN ProcessorIndex, >- IN EFI_PERIODIC_CALLBACK PeriodicCallback >- ); >- >-/** >- Registers a function to be called when a given processor exception occu= rs. >- >- This code executes in boot services context. >- >- @param This A pointer to the EFI_DEBUG_SUPPORT_PROTOC= OL >instance. >- @param ProcessorIndex Specifies which processor the callback fu= nction >applies to. >- @param ExceptionCallback A pointer to a function of type >EXCEPTION_CALLBACK that is called >- when the processor exception specified by= ExceptionType >occurs. >- @param ExceptionType Specifies which processor exception to ho= ok. >- >- @retval EFI_SUCCESS The function completed successfully. >- @retval EFI_ALREADY_STARTED Non-NULL PeriodicCallback parameter >when a callback >- function was previously registered. >- @retval EFI_OUT_OF_RESOURCES System has insufficient memory >resources to register new callback >- function. >-**/ >-EFI_STATUS >-EFIAPI >-RegisterExceptionCallback ( >- IN EFI_DEBUG_SUPPORT_PROTOCOL *This, >- IN UINTN ProcessorIndex, >- IN EFI_EXCEPTION_CALLBACK ExceptionCallback, >- IN EFI_EXCEPTION_TYPE ExceptionType >- ); >- >-/** >- Invalidates processor instruction cache for a memory range. Subsequent >execution in this range >- causes a fresh memory fetch to retrieve code to be executed. >- >- @param This A pointer to the EFI_DEBUG_SUPPORT_PROTOC= OL >instance. >- @param ProcessorIndex Specifies which processor's instruction c= ache is >to be invalidated. >- @param Start Specifies the physical base of the memory= range to >be invalidated. >- @param Length Specifies the minimum number of bytes in = the >processor's instruction >- cache to invalidate. >- >- @retval EFI_SUCCESS Always returned. >- >-**/ >-EFI_STATUS >-EFIAPI >-InvalidateInstructionCache ( >- IN EFI_DEBUG_SUPPORT_PROTOCOL *This, >- IN UINTN ProcessorIndex, >- IN VOID *Start, >- IN UINTN Length >- ); >- >-/** >- C routine that is called for all registered exceptions. This is the ma= in >- exception dispatcher. >- >- Must be public because it's referenced from AsmFuncs.s. >- >- @param ExceptionType Specifies which processor exception. >- @param Context System Context. >-**/ >-VOID >-CommonHandler ( >- IN EFI_EXCEPTION_TYPE ExceptionType, >- IN EFI_SYSTEM_CONTEXT Context >- ); >- >-/** >- This is the worker function that uninstalls and removes all handlers. >- >- @param ExceptionType Specifies which processor exception. >- @param NewBundles New Boundles. >- @param NewCallback A pointer to the new function to be registere= d. >- >- @retval EFI_ALEADY_STARTED Ivt already hooked. >- @retval EFI_SUCCESS Successfully uninstalled. >- >-**/ >-EFI_STATUS >-ManageIvtEntryTable ( >- IN EFI_EXCEPTION_TYPE ExceptionType, >- IN BUNDLE NewBundles[4], >- IN CALLBACK_FUNC NewCallback >- ); >- >-/** >- Saves original IVT contents and inserts a few new bundles which are fix= ed >up >- to store the ExceptionType and then call the common handler. >- >- @param ExceptionType Specifies which processor exception. >- @param NewBundles New Boundles. >- @param NewCallback A pointer to the new function to be hooked. >- >-**/ >-VOID >-HookEntry ( >- IN EFI_EXCEPTION_TYPE ExceptionType, >- IN BUNDLE NewBundles[4], >- IN CALLBACK_FUNC NewCallback >- ); >- >-/** >- Restores original IVT contents when unregistering a callback function. >- >- @param ExceptionType Specifies which processor exception. >- >-**/ >-VOID >-UnhookEntry ( >- IN EFI_EXCEPTION_TYPE ExceptionType >- ); >- >-/** >- Sets up cache flush and calls assembly function to chain external inter= rupt. >- >- Records new callback in IvtEntryTable. >- >- @param NewCallback A pointer to the interrupt handle. >- >-**/ >-VOID >-ChainExternalInterrupt ( >- IN CALLBACK_FUNC NewCallback >- ); >- >-/** >- Sets up cache flush and calls assembly function to restore external int= errupt. >- Removes registered callback from IvtEntryTable. >- >-**/ >-VOID >-UnchainExternalInterrupt ( >- VOID >- ); >- >-/** >- Given an integer number, return the physical address of the entry point= in >the IFT. >- >- @param HandlerIndex Index of the Handler >- @param EntryPoint IFT Entrypoint >- >-**/ >-VOID >-GetHandlerEntryPoint ( >- UINTN HandlerIndex, >- VOID **EntryPoint >- ); >- >-#endif >diff --git a/MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf >b/MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf >index 37bbe297e6..1fdd4dbe56 100644 >--- a/MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf >+++ b/MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Universal/Disk/CdExpressPei/CdExpressPei.inf >b/MdeModulePkg/Universal/Disk/CdExpressPei/CdExpressPei.inf >index e9ddecf967..8ed0023d81 100644 >--- a/MdeModulePkg/Universal/Disk/CdExpressPei/CdExpressPei.inf >+++ b/MdeModulePkg/Universal/Disk/CdExpressPei/CdExpressPei.inf >@@ -31,7 +31,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf >b/MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf >index 6c00f553aa..d9241879c0 100644 >--- a/MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf >+++ b/MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf >@@ -31,7 +31,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gDiskIoDriverBinding > # COMPONENT_NAME =3D gDiskIoComponentName >diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf >b/MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf >index 46e39129cf..39ad5aa2fb 100644 >--- a/MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf >+++ b/MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf >@@ -34,7 +34,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gPartitionDriverBinding > # COMPONENT_NAME =3D gPartitionComponentName >diff --git a/MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf >b/MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf >index 7fea6bd9dc..fb0bd9ee4c 100644 >--- a/MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf >+++ b/MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf >@@ -1,6 +1,7 @@ > ## @file > # UDF/ECMA-167 file system driver. > # >+# Copyright (c) 2018, Intel Corporation. All rights reserved.
> # Copyright (C) 2014-2017 Paulo Alcantara > # > # This program and the accompanying materials >@@ -23,7 +24,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gUdfDriverBinding > # COMPONENT_NAME =3D gUdfComponentName >diff --git >a/MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.in >f >b/MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.in >f >index ad763b1af4..01bc115da9 100644 >--- >a/MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.in >f >+++ >b/MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.in >f >@@ -30,7 +30,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf >b/MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf >index c1c1974c13..0e484b3ce6 100644 >--- a/MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf >+++ b/MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf >@@ -26,7 +26,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManager >Dxe.inf >b/MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManager >Dxe.inf >index d84c7cee15..a4d4e6e4f7 100644 >--- >a/MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManager >Dxe.inf >+++ >b/MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManager >Dxe.inf >@@ -33,7 +33,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > >diff --git a/MdeModulePkg/Universal/DriverSampleDxe/DriverSampleDxe.inf >b/MdeModulePkg/Universal/DriverSampleDxe/DriverSampleDxe.inf >index f856efebc7..6cc05eb293 100644 >--- a/MdeModulePkg/Universal/DriverSampleDxe/DriverSampleDxe.inf >+++ b/MdeModulePkg/Universal/DriverSampleDxe/DriverSampleDxe.inf >@@ -30,7 +30,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger.inf >b/MdeModulePkg/Universal/EbcDxe/EbcDebugger.inf >index 4554eb485d..fefdd2a5b1 100644 >--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger.inf >+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger.inf >@@ -25,7 +25,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF AARCH64 >+# VALID_ARCHITECTURES =3D IA32 X64 AARCH64 > # > > [Sources] >@@ -73,11 +73,6 @@ > X64/EbcSupport.c > X64/EbcLowLevel.nasm > >-[Sources.IPF] >- Ipf/EbcSupport.h >- Ipf/EbcSupport.c >- Ipf/EbcLowLevel.s >- > [Sources.AARCH64] > AArch64/EbcSupport.c > AArch64/EbcLowLevel.S >diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebuggerConfig.inf >b/MdeModulePkg/Universal/EbcDxe/EbcDebuggerConfig.inf >index 0d931a46f0..cdbad43aa7 100644 >--- a/MdeModulePkg/Universal/EbcDxe/EbcDebuggerConfig.inf >+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebuggerConfig.inf >@@ -1,7 +1,7 @@ > ## @file > # EBC Debugger configuration application. > # >-# Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.
>+# 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 >@@ -25,7 +25,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF AARCH64 >+# VALID_ARCHITECTURES =3D IA32 X64 AARCH64 > # > > [Sources] >diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDxe.inf >b/MdeModulePkg/Universal/EbcDxe/EbcDxe.inf >index 8f128b121d..849df7e0eb 100644 >--- a/MdeModulePkg/Universal/EbcDxe/EbcDxe.inf >+++ b/MdeModulePkg/Universal/EbcDxe/EbcDxe.inf >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF AARCH64 >+# VALID_ARCHITECTURES =3D IA32 X64 AARCH64 > # > > [Sources] >@@ -48,11 +48,6 @@ > X64/EbcSupport.c > X64/EbcLowLevel.nasm > >-[Sources.IPF] >- Ipf/EbcSupport.h >- Ipf/EbcSupport.c >- Ipf/EbcLowLevel.s >- > [Sources.AARCH64] > AArch64/EbcSupport.c > AArch64/EbcLowLevel.S >diff --git a/MdeModulePkg/Universal/EbcDxe/Ipf/EbcLowLevel.s >b/MdeModulePkg/Universal/EbcDxe/Ipf/EbcLowLevel.s >deleted file mode 100644 >index 4ae24dee7d..0000000000 >--- a/MdeModulePkg/Universal/EbcDxe/Ipf/EbcLowLevel.s >+++ /dev/null >@@ -1,206 +0,0 @@ >-///** @file >-// >-// Contains low level routines for the Virtual Machine implementation >-// on an Itanium-based platform. >-// >-// Copyright (c) 2006 - 2011, 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 ma= y 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. >-// >-//**/ >- >-.file "EbcLowLevel.s" >- >-#define PROCEDURE_ENTRY(name) .##text; \ >- .##type name, @function; \ >- .##proc name; \ >-name:: >- >-#define PROCEDURE_EXIT(name) .##endp name >- >-// Note: use of NESTED_SETUP requires number of locals (l) >=3D 3 >- >-#define NESTED_SETUP(i,l,o,r) \ >- alloc loc1=3Dar##.##pfs,i,l,o,r ;\ >- mov loc0=3Db0 >- >-#define NESTED_RETURN \ >- mov b0=3Dloc0 ;\ >- mov ar##.##pfs=3Dloc1 ;;\ >- br##.##ret##.##dpnt b0;; >- >-.type CopyMem, @function; >- >-//-----------------------------------------------------------------------= ------ >-//++ >-// EbcAsmLLCALLEX >-// >-// Implements the low level EBC CALLEX instruction. Sets up the >-// stack pointer, does the spill of function arguments, and >-// calls the native function. On return it restores the original >-// stack pointer and returns to the caller. >-// >-// Arguments : >-// >-// On Entry : >-// in0 =3D Address of native code to call >-// in1 =3D New stack pointer >-// >-// Return Value: >-// >-// As per static calling conventions. >-// >-//-- >-//-----------------------------------------------------------------------= ---- >-;// void EbcAsmLLCALLEX (UINTN FunctionAddr, UINTN EbcStackPointer) >-PROCEDURE_ENTRY(EbcAsmLLCALLEX) >- NESTED_SETUP (2,6,8,0) >- >- // NESTED_SETUP uses loc0 and loc1 for context save >- >- // >- // Save a copy of the EBC VM stack pointer >- // >- mov r8 =3D in1;; >- >- // >- // Copy stack arguments from EBC stack into registers. >- // Assume worst case and copy 8. >- // >- ld8 out0 =3D [r8], 8;; >- ld8 out1 =3D [r8], 8;; >- ld8 out2 =3D [r8], 8;; >- ld8 out3 =3D [r8], 8;; >- ld8 out4 =3D [r8], 8;; >- ld8 out5 =3D [r8], 8;; >- ld8 out6 =3D [r8], 8;; >- ld8 out7 =3D [r8], 8;; >- >- // >- // Save the original stack pointer >- // >- mov loc2 =3D r12; >- >- // >- // Save the gp >- // >- or loc3 =3D r1, r0 >- >- // >- // Set the new aligned stack pointer. Reserve space for the required >- // 16-bytes of scratch area as well. >- // >- add r12 =3D 48, in1 >- >- // >- // Now call the function. Load up the function address from the descrip= tor >- // pointed to by in0. Then get the gp from the descriptor at the follow= ing >- // address in the descriptor. >- // >- ld8 r31 =3D [in0], 8;; >- ld8 r30 =3D [in0];; >- mov b1 =3D r31 >- mov r1 =3D r30 >- (p0) br.call.dptk.many b0 =3D b1;; >- >- // >- // Restore the original stack pointer and gp >- // >- mov r12 =3D loc2 >- or r1 =3D loc3, r0 >- >- // >- // Now return >- // >- NESTED_RETURN >- >-PROCEDURE_EXIT(EbcAsmLLCALLEX) >- >-//-----------------------------------------------------------------------= ------ >-//++ >-// EbcLLCALLEXNative >-// >-// This function is called to execute an EBC CALLEX instruction. >-// This instruction requires that we thunk out to external native >-// code. On return, we restore the stack pointer to its original locatio= n. >-// Destroys no working registers. For IPF, at least 8 register slots >-// must be allocated on the stack frame to support any number of >-// arguments beiung passed to the external native function. The >-// size of the stack frame is FramePtr - EbcSp. If this size is less >-// than 64-bytes, the amount of stack frame allocated is rounded up >-// to 64-bytes >-// >-// Arguments On Entry : >-// in0 =3D CallAddr The function address. >-// in1 =3D EbcSp The new EBC stack pointer. >-// in2 =3D FramePtr The frame pointer. >-// >-// Return Value: >-// None >-// >-// C Function Prototype: >-// VOID >-// EFIAPI >-// EbcLLCALLEXNative ( >-// IN UINTN CallAddr, >-// IN UINTN EbcSp, >-// IN VOID *FramePtr >-// ); >-//-- >-//-----------------------------------------------------------------------= ---- >- >-PROCEDURE_ENTRY(EbcLLCALLEXNative) >- NESTED_SETUP (3,6,3,0) >- >- mov loc2 =3D in2;; // loc2 =3D in2 =3D FramePtr >- mov loc3 =3D in1;; // loc3 =3D in1 =3D EbcSp >- sub loc2 =3D loc2, loc3;; // loc2 =3D loc2 - loc3 =3D FramePtr = - EbcSp >- mov out2 =3D loc2;; // out2 =3D loc2 =3D FramePtr - EbcSp >- mov loc4 =3D 0x40;; // loc4 =3D 0x40 >- cmp.leu p6 =3D out2, loc4;; // IF out2 < loc4 THEN P6=3D1 ELSE P6= =3D0; IF >(FramePtr - EbcSp) < 0x40 THEN P6 =3D 1 ELSE P6=3D0 >- (p6) mov loc2 =3D loc4;; // IF P6=3D=3D1 THEN loc2 =3D loc4 = =3D 0x40 >- mov loc4 =3D r12;; // save sp >- or loc5 =3D r1, r0 // save gp >- >- sub r12 =3D r12, loc2;; // sp =3D sp - loc2 =3D sp - MAX (0x4= 0, FramePtr - EbcSp) >- >- and r12 =3D -0x10, r12 // Round sp down to the nearest 16-by= te >boundary >- mov out1 =3D in1;; // out1 =3D EbcSp >- mov out0 =3D r12;; // out0 =3D sp >- adds r12 =3D -0x8, r12 >- (p0) br.call.dptk.many b0 =3D CopyMem;; // CopyMem (sp, EbcSp, >(FramePtr - EbcSp)) >- adds r12 =3D 0x8, r12 >- >- mov out0 =3D in0;; // out0 =3D CallAddr >- mov out1 =3D r12;; // out1 =3D sp >- (p0) br.call.dptk.many b0 =3D EbcAsmLLCALLEX;; // EbcAsmLLCALLEX >(CallAddr, sp) >- mov r12 =3D loc4;; // restore sp >- or r1 =3D loc5, r0 // restore gp >- >- NESTED_RETURN >-PROCEDURE_EXIT(EbcLLCALLEXNative) >- >- >-// >-// UINTN EbcLLGetEbcEntryPoint(VOID) >-// >-// Description: >-// Simply return, so that the caller retrieves the return register >-// contents (R8). That's where the thunk-to-ebc code stuffed the >-// EBC entry point. >-// >-PROCEDURE_ENTRY(EbcLLGetEbcEntryPoint) >- br.ret.sptk b0 ;; >-PROCEDURE_EXIT(EbcLLGetEbcEntryPoint) >- >- >- >- >- >- >- >diff --git a/MdeModulePkg/Universal/EbcDxe/Ipf/EbcSupport.c >b/MdeModulePkg/Universal/EbcDxe/Ipf/EbcSupport.c >deleted file mode 100644 >index f99348f181..0000000000 >--- a/MdeModulePkg/Universal/EbcDxe/Ipf/EbcSupport.c >+++ /dev/null >@@ -1,884 +0,0 @@ >-/** @file >- This module contains EBC support routines that are customized based on >- the target processor. >- >-Copyright (c) 2006 - 2012, 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. >- >-**/ >- >-#include "EbcInt.h" >-#include "EbcExecute.h" >-#include "EbcSupport.h" >-#include "EbcDebuggerHook.h" >- >-/** >- Given raw bytes of Itanium based code, format them into a bundle and >- write them out. >- >- @param MemPtr pointer to memory location to write the = bundles >- to. >- @param Template 5-bit template. >- @param Slot0 Instruction slot 0 data for the bundle. >- @param Slot1 Instruction slot 1 data for the bundle. >- @param Slot2 Instruction slot 2 data for the bundle. >- >- @retval EFI_INVALID_PARAMETER Pointer is not aligned >- @retval EFI_INVALID_PARAMETER No more than 5 bits in template >- @retval EFI_INVALID_PARAMETER More than 41 bits used in code >- @retval EFI_SUCCESS All data is written. >- >-**/ >-EFI_STATUS >-WriteBundle ( >- IN VOID *MemPtr, >- IN UINT8 Template, >- IN UINT64 Slot0, >- IN UINT64 Slot1, >- IN UINT64 Slot2 >- ); >- >-/** >- Pushes a 64 bit unsigned value to the VM stack. >- >- @param VmPtr The pointer to current VM context. >- @param Arg The value to be pushed. >- >-**/ >-VOID >-PushU64 ( >- IN VM_CONTEXT *VmPtr, >- IN UINT64 Arg >- ) >-{ >- // >- // Advance the VM stack down, and then copy the argument to the stack. >- // Hope it's aligned. >- // >- VmPtr->Gpr[0] -=3D sizeof (UINT64); >- *(UINT64 *) VmPtr->Gpr[0] =3D Arg; >-} >- >-/** >- Begin executing an EBC image. The address of the entry point is passed >- in via a processor register, so we'll need to make a call to get the >- value. >- >- This is a thunk function. Microsoft x64 compiler only provide fast_call >- calling convention, so the first four arguments are passed by rcx, rdx, >- r8, and r9, while other arguments are passed in stack. >- >- @param Arg1 The 1st argument. >- @param ... The variable arguments list. >- >- @return The value returned by the EBC application we're going to run. >- >-**/ >-UINT64 >-EFIAPI >-EbcInterpret ( >- UINT64 Arg1, >- ... >- ) >-{ >- // >- // Create a new VM context on the stack >- // >- VM_CONTEXT VmContext; >- UINTN Addr; >- EFI_STATUS Status; >- UINTN StackIndex; >- VA_LIST List; >- UINT64 Arg2; >- UINT64 Arg3; >- UINT64 Arg4; >- UINT64 Arg5; >- UINT64 Arg6; >- UINT64 Arg7; >- UINT64 Arg8; >- UINT64 Arg9; >- UINT64 Arg10; >- UINT64 Arg11; >- UINT64 Arg12; >- UINT64 Arg13; >- UINT64 Arg14; >- UINT64 Arg15; >- UINT64 Arg16; >- // >- // Get the EBC entry point from the processor register. Make sure you d= on't >- // call any functions before this or you could mess up the register the >- // entry point is passed in. >- // >- Addr =3D EbcLLGetEbcEntryPoint (); >- // >- // Need the args off the stack. >- // >- VA_START (List, Arg1); >- Arg2 =3D VA_ARG (List, UINT64); >- Arg3 =3D VA_ARG (List, UINT64); >- Arg4 =3D VA_ARG (List, UINT64); >- Arg5 =3D VA_ARG (List, UINT64); >- Arg6 =3D VA_ARG (List, UINT64); >- Arg7 =3D VA_ARG (List, UINT64); >- Arg8 =3D VA_ARG (List, UINT64); >- Arg9 =3D VA_ARG (List, UINT64); >- Arg10 =3D VA_ARG (List, UINT64); >- Arg11 =3D VA_ARG (List, UINT64); >- Arg12 =3D VA_ARG (List, UINT64); >- Arg13 =3D VA_ARG (List, UINT64); >- Arg14 =3D VA_ARG (List, UINT64); >- Arg15 =3D VA_ARG (List, UINT64); >- Arg16 =3D VA_ARG (List, UINT64); >- VA_END (List); >- // >- // Now clear out our context >- // >- ZeroMem ((VOID *) &VmContext, sizeof (VM_CONTEXT)); >- // >- // Set the VM instruction pointer to the correct location in memory. >- // >- VmContext.Ip =3D (VMIP) Addr; >- // >- // Initialize the stack pointer for the EBC. Get the current system sta= ck >- // pointer and adjust it down by the max needed for the interpreter. >- // >- // >- // NOTE: Eventually we should have the interpreter allocate memory >- // for stack space which it will use during its execution. This >- // would likely improve performance because the interpreter would >- // no longer be required to test each memory access and adjust >- // those reading from the stack gap. >- // >- // For IPF, the stack looks like (assuming 10 args passed) >- // arg10 >- // arg9 (Bottom of high stack) >- // [ stack gap for interpreter execution ] >- // [ magic value for detection of stack corruption ] >- // arg8 (Top of low stack) >- // arg7.... >- // arg1 >- // [ 64-bit return address ] >- // [ ebc stack ] >- // If the EBC accesses memory in the stack gap, then we assume that it'= s >- // actually trying to access args9 and greater. Therefore we need to >- // adjust memory accesses in this region to point above the stack gap. >- // >- // >- // Now adjust the EBC stack pointer down to leave a gap for interpreter >- // execution. Then stuff a magic value there. >- // >- >- Status =3D GetEBCStack((EFI_HANDLE)(UINTN)-1, &VmContext.StackPool, >&StackIndex); >- if (EFI_ERROR(Status)) { >- return Status; >- } >- VmContext.StackTop =3D (UINT8*)VmContext.StackPool + >(STACK_REMAIN_SIZE); >- VmContext.Gpr[0] =3D (UINT64) ((UINT8*)VmContext.StackPool + >STACK_POOL_SIZE); >- VmContext.HighStackBottom =3D (UINTN) VmContext.Gpr[0]; >- VmContext.Gpr[0] -=3D sizeof (UINTN); >- >- >- PushU64 (&VmContext, (UINT64) VM_STACK_KEY_VALUE); >- VmContext.StackMagicPtr =3D (UINTN *) VmContext.Gpr[0]; >- VmContext.LowStackTop =3D (UINTN) VmContext.Gpr[0]; >- // >- // Push the EBC arguments on the stack. Does not matter that they may n= ot >- // all be valid. >- // >- PushU64 (&VmContext, Arg16); >- PushU64 (&VmContext, Arg15); >- PushU64 (&VmContext, Arg14); >- PushU64 (&VmContext, Arg13); >- PushU64 (&VmContext, Arg12); >- PushU64 (&VmContext, Arg11); >- PushU64 (&VmContext, Arg10); >- PushU64 (&VmContext, Arg9); >- PushU64 (&VmContext, Arg8); >- PushU64 (&VmContext, Arg7); >- PushU64 (&VmContext, Arg6); >- PushU64 (&VmContext, Arg5); >- PushU64 (&VmContext, Arg4); >- PushU64 (&VmContext, Arg3); >- PushU64 (&VmContext, Arg2); >- PushU64 (&VmContext, Arg1); >- // >- // Push a bogus return address on the EBC stack because the >- // interpreter expects one there. For stack alignment purposes on IPF, >- // EBC return addresses are always 16 bytes. Push a bogus value as well= . >- // >- PushU64 (&VmContext, 0); >- PushU64 (&VmContext, 0xDEADBEEFDEADBEEF); >- VmContext.StackRetAddr =3D (UINT64) VmContext.Gpr[0]; >- >- // >- // Begin executing the EBC code >- // >- EbcDebuggerHookEbcInterpret (&VmContext); >- EbcExecute (&VmContext); >- >- // >- // Return the value in Gpr[7] unless there was an error >- // >- ReturnEBCStack(StackIndex); >- return (UINT64) VmContext.Gpr[7]; >-} >- >- >-/** >- Begin executing an EBC image. The address of the entry point is passed >- in via a processor register, so we'll need to make a call to get the >- value. >- >- @param ImageHandle image handle for the EBC application we're >executing >- @param SystemTable standard system table passed into an driver's = entry >- point >- >- @return The value returned by the EBC application we're going to run. >- >-**/ >-UINT64 >-EFIAPI >-ExecuteEbcImageEntryPoint ( >- IN EFI_HANDLE ImageHandle, >- IN EFI_SYSTEM_TABLE *SystemTable >- ) >-{ >- // >- // Create a new VM context on the stack >- // >- VM_CONTEXT VmContext; >- UINTN Addr; >- EFI_STATUS Status; >- UINTN StackIndex; >- >- // >- // Get the EBC entry point from the processor register. Make sure you d= on't >- // call any functions before this or you could mess up the register the >- // entry point is passed in. >- // >- Addr =3D EbcLLGetEbcEntryPoint (); >- >- // >- // Now clear out our context >- // >- ZeroMem ((VOID *) &VmContext, sizeof (VM_CONTEXT)); >- >- // >- // Save the image handle so we can track the thunks created for this im= age >- // >- VmContext.ImageHandle =3D ImageHandle; >- VmContext.SystemTable =3D SystemTable; >- >- // >- // Set the VM instruction pointer to the correct location in memory. >- // >- VmContext.Ip =3D (VMIP) Addr; >- >- // >- // Get the stack pointer. This is the bottom of the upper stack. >- // >- >- Status =3D GetEBCStack(ImageHandle, &VmContext.StackPool, &StackIndex); >- if (EFI_ERROR(Status)) { >- return Status; >- } >- VmContext.StackTop =3D (UINT8*)VmContext.StackPool + >(STACK_REMAIN_SIZE); >- VmContext.Gpr[0] =3D (UINT64) ((UINT8*)VmContext.StackPool + >STACK_POOL_SIZE); >- VmContext.HighStackBottom =3D (UINTN) VmContext.Gpr[0]; >- VmContext.Gpr[0] -=3D sizeof (UINTN); >- >- >- // >- // Allocate stack space for the interpreter. Then put a magic value >- // at the bottom so we can detect stack corruption. >- // >- PushU64 (&VmContext, (UINT64) VM_STACK_KEY_VALUE); >- VmContext.StackMagicPtr =3D (UINTN *) (UINTN) VmContext.Gpr[0]; >- >- // >- // When we thunk to external native code, we copy the last 8 qwords fro= m >- // the EBC stack into the processor registers, and adjust the stack poi= nter >- // up. If the caller is not passing 8 parameters, then we've moved the >- // stack pointer up into the stack gap. If this happens, then the calle= r >- // can mess up the stack gap contents (in particular our magic value). >- // Therefore, leave another gap below the magic value. Pick 10 qwords >down, >- // just as a starting point. >- // >- VmContext.Gpr[0] -=3D 10 * sizeof (UINT64); >- >- // >- // Align the stack pointer such that after pushing the system table, >- // image handle, and return address on the stack, it's aligned on a 16-= byte >- // boundary as required for IPF. >- // >- VmContext.Gpr[0] &=3D (INT64)~0x0f; >- VmContext.LowStackTop =3D (UINTN) VmContext.Gpr[0]; >- // >- // Simply copy the image handle and system table onto the EBC stack. >- // Greatly simplifies things by not having to spill the args >- // >- PushU64 (&VmContext, (UINT64) SystemTable); >- PushU64 (&VmContext, (UINT64) ImageHandle); >- >- // >- // Interpreter assumes 64-bit return address is pushed on the stack. >- // IPF does not do this so pad the stack accordingly. Also, a >- // "return address" is 16 bytes as required for IPF stack alignments. >- // >- PushU64 (&VmContext, (UINT64) 0); >- PushU64 (&VmContext, (UINT64) 0x1234567887654321); >- VmContext.StackRetAddr =3D (UINT64) VmContext.Gpr[0]; >- >- // >- // Begin executing the EBC code >- // >- EbcDebuggerHookExecuteEbcImageEntryPoint (&VmContext); >- EbcExecute (&VmContext); >- >- // >- // Return the value in Gpr[7] unless there was an error >- // >- ReturnEBCStack(StackIndex); >- return (UINT64) VmContext.Gpr[7]; >-} >- >- >-/** >- Create thunks for an EBC image entry point, or an EBC protocol service. >- >- @param ImageHandle Image handle for the EBC image. If not nu= ll, >then >- we're creating a thunk for an image entry= point. >- @param EbcEntryPoint Address of the EBC code that the thunk is= to call >- @param Thunk Returned thunk we create here >- @param Flags Flags indicating options for creating the= thunk >- >- @retval EFI_SUCCESS The thunk was created successfully. >- @retval EFI_INVALID_PARAMETER The parameter of EbcEntryPoint is not >16-bit >- aligned. >- @retval EFI_OUT_OF_RESOURCES There is not enough memory to created >the EBC >- Thunk. >- @retval EFI_BUFFER_TOO_SMALL EBC_THUNK_SIZE is not larger enough. >- >-**/ >-EFI_STATUS >-EbcCreateThunks ( >- IN EFI_HANDLE ImageHandle, >- IN VOID *EbcEntryPoint, >- OUT VOID **Thunk, >- IN UINT32 Flags >- ) >-{ >- UINT8 *Ptr; >- UINT8 *ThunkBase; >- UINT64 Addr; >- UINT64 Code[3]; // Code in a bundle >- UINT64 RegNum; // register number for MOVL >- UINT64 BitI; // bits of MOVL immediate data >- UINT64 BitIc; // bits of MOVL immediate data >- UINT64 BitImm5c; // bits of MOVL immediate data >- UINT64 BitImm9d; // bits of MOVL immediate data >- UINT64 BitImm7b; // bits of MOVL immediate data >- UINT64 Br; // branch register for loading and jumping >- UINT64 *Data64Ptr; >- UINT32 ThunkSize; >- UINT32 Size; >- >- // >- // Check alignment of pointer to EBC code, which must always be aligned >- // on a 2-byte boundary. >- // >- if ((UINT32) (UINTN) EbcEntryPoint & 0x01) { >- return EFI_INVALID_PARAMETER; >- } >- // >- // Allocate memory for the thunk. Make the (most likely incorrect) >assumption >- // that the returned buffer is not aligned, so round up to the next >- // alignment size. >- // >- Size =3D EBC_THUNK_SIZE + EBC_THUNK_ALIGNMENT - 1; >- ThunkSize =3D Size; >- Ptr =3D EbcAllocatePoolForThunk (Size); >- >- if (Ptr =3D=3D NULL) { >- return EFI_OUT_OF_RESOURCES; >- } >- // >- // Save the start address of the buffer. >- // >- ThunkBase =3D Ptr; >- >- // >- // Make sure it's aligned for code execution. If not, then >- // round up. >- // >- if ((UINT32) (UINTN) Ptr & (EBC_THUNK_ALIGNMENT - 1)) { >- Ptr =3D (UINT8 *) (((UINTN) Ptr + (EBC_THUNK_ALIGNMENT - 1)) &~ (UINT= 64) >(EBC_THUNK_ALIGNMENT - 1)); >- } >- // >- // Return the pointer to the thunk to the caller to user as the >- // image entry point. >- // >- *Thunk =3D (VOID *) Ptr; >- >- // >- // Clear out the thunk entry >- // ZeroMem(Ptr, Size); >- // >- // For IPF, when you do a call via a function pointer, the function poi= nter >- // actually points to a function descriptor which consists of a 64-bit >- // address of the function, followed by a 64-bit gp for the function be= ing >- // called. See the the Software Conventions and Runtime Architecture >Guide >- // for details. >- // So first off in our thunk, create a descriptor for our actual thunk = code. >- // This means we need to create a pointer to the thunk code (which foll= ows >- // the descriptor we're going to create), followed by the gp of the Vm >- // interpret function we're going to eventually execute. >- // >- Data64Ptr =3D (UINT64 *) Ptr; >- >- // >- // Write the function's entry point (which is our thunk code that follo= ws >- // this descriptor we're creating). >- // >- *Data64Ptr =3D (UINT64) (Data64Ptr + 2); >- // >- // Get the gp from the descriptor for EbcInterpret and stuff it in our = thunk >- // descriptor. >- // >- *(Data64Ptr + 1) =3D *(UINT64 *) ((UINT64 *) (UINTN) EbcInterpret + 1); >- // >- // Advance our thunk data pointer past the descriptor. Since the >- // descriptor consists of 16 bytes, the pointer is still aligned for >- // IPF code execution (on 16-byte boundary). >- // >- Ptr +=3D sizeof (UINT64) * 2; >- >- // >- // *************************** MAGIC BUNDLE >******************************** >- // >- // Write magic code bundle for: movl r8 =3D 0xca112ebcca112ebc to help = the >VM >- // to recognize it is a thunk. >- // >- Addr =3D (UINT64) 0xCA112EBCCA112EBC; >- >- // >- // Now generate the code bytes. First is nop.m 0x0 >- // >- Code[0] =3D OPCODE_NOP; >- >- // >- // Next is simply Addr[62:22] (41 bits) of the address >- // >- Code[1] =3D RShiftU64 (Addr, 22) & 0x1ffffffffff; >- >- // >- // Extract bits from the address for insertion into the instruction >- // i =3D Addr[63:63] >- // >- BitI =3D RShiftU64 (Addr, 63) & 0x01; >- // >- // ic =3D Addr[21:21] >- // >- BitIc =3D RShiftU64 (Addr, 21) & 0x01; >- // >- // imm5c =3D Addr[20:16] for 5 bits >- // >- BitImm5c =3D RShiftU64 (Addr, 16) & 0x1F; >- // >- // imm9d =3D Addr[15:7] for 9 bits >- // >- BitImm9d =3D RShiftU64 (Addr, 7) & 0x1FF; >- // >- // imm7b =3D Addr[6:0] for 7 bits >- // >- BitImm7b =3D Addr & 0x7F; >- >- // >- // The EBC entry point will be put into r8, so r8 can be used here >- // temporary. R8 is general register and is auto-serialized. >- // >- RegNum =3D 8; >- >- // >- // Next is jumbled data, including opcode and rest of address >- // >- Code[2] =3D LShiftU64 (BitImm7b, 13); >- Code[2] =3D Code[2] | LShiftU64 (0x00, 20); // vc >- Code[2] =3D Code[2] | LShiftU64 (BitIc, 21); >- Code[2] =3D Code[2] | LShiftU64 (BitImm5c, 22); >- Code[2] =3D Code[2] | LShiftU64 (BitImm9d, 27); >- Code[2] =3D Code[2] | LShiftU64 (BitI, 36); >- Code[2] =3D Code[2] | LShiftU64 ((UINT64)MOVL_OPCODE, 37); >- Code[2] =3D Code[2] | LShiftU64 ((RegNum & 0x7F), 6); >- >- WriteBundle ((VOID *) Ptr, 0x05, Code[0], Code[1], Code[2]); >- >- // >- // *************************** FIRST BUNDLE >******************************** >- // >- // Write code bundle for: movl r8 =3D EBC_ENTRY_POINT so we pass >- // the ebc entry point in to the interpreter function via a processor >- // register. >- // Note -- we could easily change this to pass in a pointer to a struct= ure >- // that contained, among other things, the EBC image's entry point. But >- // for now pass it directly. >- // >- Ptr +=3D 16; >- Addr =3D (UINT64) EbcEntryPoint; >- >- // >- // Now generate the code bytes. First is nop.m 0x0 >- // >- Code[0] =3D OPCODE_NOP; >- >- // >- // Next is simply Addr[62:22] (41 bits) of the address >- // >- Code[1] =3D RShiftU64 (Addr, 22) & 0x1ffffffffff; >- >- // >- // Extract bits from the address for insertion into the instruction >- // i =3D Addr[63:63] >- // >- BitI =3D RShiftU64 (Addr, 63) & 0x01; >- // >- // ic =3D Addr[21:21] >- // >- BitIc =3D RShiftU64 (Addr, 21) & 0x01; >- // >- // imm5c =3D Addr[20:16] for 5 bits >- // >- BitImm5c =3D RShiftU64 (Addr, 16) & 0x1F; >- // >- // imm9d =3D Addr[15:7] for 9 bits >- // >- BitImm9d =3D RShiftU64 (Addr, 7) & 0x1FF; >- // >- // imm7b =3D Addr[6:0] for 7 bits >- // >- BitImm7b =3D Addr & 0x7F; >- >- // >- // Put the EBC entry point in r8, which is the location of the return v= alue >- // for functions. >- // >- RegNum =3D 8; >- >- // >- // Next is jumbled data, including opcode and rest of address >- // >- Code[2] =3D LShiftU64 (BitImm7b, 13); >- Code[2] =3D Code[2] | LShiftU64 (0x00, 20); // vc >- Code[2] =3D Code[2] | LShiftU64 (BitIc, 21); >- Code[2] =3D Code[2] | LShiftU64 (BitImm5c, 22); >- Code[2] =3D Code[2] | LShiftU64 (BitImm9d, 27); >- Code[2] =3D Code[2] | LShiftU64 (BitI, 36); >- Code[2] =3D Code[2] | LShiftU64 ((UINT64)MOVL_OPCODE, 37); >- Code[2] =3D Code[2] | LShiftU64 ((RegNum & 0x7F), 6); >- >- WriteBundle ((VOID *) Ptr, 0x05, Code[0], Code[1], Code[2]); >- >- // >- // *************************** NEXT BUNDLE >********************************* >- // >- // Write code bundle for: >- // movl rx =3D offset_of(EbcInterpret|ExecuteEbcImageEntryPoint) >- // >- // Advance pointer to next bundle, then compute the offset from this >bundle >- // to the address of the entry point of the interpreter. >- // >- Ptr +=3D 16; >- if ((Flags & FLAG_THUNK_ENTRY_POINT) !=3D 0) { >- Addr =3D (UINT64) ExecuteEbcImageEntryPoint; >- } else { >- Addr =3D (UINT64) EbcInterpret; >- } >- // >- // Indirection on Itanium-based systems >- // >- Addr =3D *(UINT64 *) Addr; >- >- // >- // Now write the code to load the offset into a register >- // >- Code[0] =3D OPCODE_NOP; >- >- // >- // Next is simply Addr[62:22] (41 bits) of the address >- // >- Code[1] =3D RShiftU64 (Addr, 22) & 0x1ffffffffff; >- >- // >- // Extract bits from the address for insertion into the instruction >- // i =3D Addr[63:63] >- // >- BitI =3D RShiftU64 (Addr, 63) & 0x01; >- // >- // ic =3D Addr[21:21] >- // >- BitIc =3D RShiftU64 (Addr, 21) & 0x01; >- // >- // imm5c =3D Addr[20:16] for 5 bits >- // >- BitImm5c =3D RShiftU64 (Addr, 16) & 0x1F; >- // >- // imm9d =3D Addr[15:7] for 9 bits >- // >- BitImm9d =3D RShiftU64 (Addr, 7) & 0x1FF; >- // >- // imm7b =3D Addr[6:0] for 7 bits >- // >- BitImm7b =3D Addr & 0x7F; >- >- // >- // Put it in r31, a scratch register >- // >- RegNum =3D 31; >- >- // >- // Next is jumbled data, including opcode and rest of address >- // >- Code[2] =3D LShiftU64(BitImm7b, 13); >- Code[2] =3D Code[2] | LShiftU64 (0x00, 20); // vc >- Code[2] =3D Code[2] | LShiftU64 (BitIc, 21); >- Code[2] =3D Code[2] | LShiftU64 (BitImm5c, 22); >- Code[2] =3D Code[2] | LShiftU64 (BitImm9d, 27); >- Code[2] =3D Code[2] | LShiftU64 (BitI, 36); >- Code[2] =3D Code[2] | LShiftU64 ((UINT64)MOVL_OPCODE, 37); >- Code[2] =3D Code[2] | LShiftU64 ((RegNum & 0x7F), 6); >- >- WriteBundle ((VOID *) Ptr, 0x05, Code[0], Code[1], Code[2]); >- >- // >- // *************************** NEXT BUNDLE >********************************* >- // >- // Load branch register with EbcInterpret() function offset from the bu= ndle >- // address: mov b6 =3D RegNum >- // >- // See volume 3 page 4-29 of the Arch. Software Developer's Manual. >- // >- // Advance pointer to next bundle >- // >- Ptr +=3D 16; >- Code[0] =3D OPCODE_NOP; >- Code[1] =3D OPCODE_NOP; >- Code[2] =3D OPCODE_MOV_BX_RX; >- >- // >- // Pick a branch register to use. Then fill in the bits for the branch >- // register and user register (same user register as previous bundle). >- // >- Br =3D 6; >- Code[2] |=3D LShiftU64 (Br, 6); >- Code[2] |=3D LShiftU64 (RegNum, 13); >- WriteBundle ((VOID *) Ptr, 0x0d, Code[0], Code[1], Code[2]); >- >- // >- // *************************** NEXT BUNDLE >********************************* >- // >- // Now do the branch: (p0) br.cond.sptk.few b6 >- // >- // Advance pointer to next bundle. >- // Fill in the bits for the branch register (same reg as previous bundl= e) >- // >- Ptr +=3D 16; >- Code[0] =3D OPCODE_NOP; >- Code[1] =3D OPCODE_NOP; >- Code[2] =3D OPCODE_BR_COND_SPTK_FEW; >- Code[2] |=3D LShiftU64 (Br, 13); >- WriteBundle ((VOID *) Ptr, 0x1d, Code[0], Code[1], Code[2]); >- >- // >- // Add the thunk to our list of allocated thunks so we can do some clea= nup >- // when the image is unloaded. Do this last since the Add function flus= hes >- // the instruction cache for us. >- // >- EbcAddImageThunk (ImageHandle, (VOID *) ThunkBase, ThunkSize); >- >- // >- // Done >- // >- return EFI_SUCCESS; >-} >- >- >-/** >- Given raw bytes of Itanium based code, format them into a bundle and >- write them out. >- >- @param MemPtr pointer to memory location to write the = bundles >- to. >- @param Template 5-bit template. >- @param Slot0 Instruction slot 0 data for the bundle. >- @param Slot1 Instruction slot 1 data for the bundle. >- @param Slot2 Instruction slot 2 data for the bundle. >- >- @retval EFI_INVALID_PARAMETER Pointer is not aligned >- @retval EFI_INVALID_PARAMETER No more than 5 bits in template >- @retval EFI_INVALID_PARAMETER More than 41 bits used in code >- @retval EFI_SUCCESS All data is written. >- >-**/ >-EFI_STATUS >-WriteBundle ( >- IN VOID *MemPtr, >- IN UINT8 Template, >- IN UINT64 Slot0, >- IN UINT64 Slot1, >- IN UINT64 Slot2 >- ) >-{ >- UINT8 *BPtr; >- UINT32 Index; >- UINT64 Low64; >- UINT64 High64; >- >- // >- // Verify pointer is aligned >- // >- if ((UINT64) MemPtr & 0xF) { >- return EFI_INVALID_PARAMETER; >- } >- // >- // Verify no more than 5 bits in template >- // >- if ((Template &~0x1F) !=3D 0) { >- return EFI_INVALID_PARAMETER; >- } >- // >- // Verify max of 41 bits used in code >- // >- if (((Slot0 | Slot1 | Slot2) &~0x1ffffffffff) !=3D 0) { >- return EFI_INVALID_PARAMETER; >- } >- >- Low64 =3D LShiftU64 (Slot1, 46); >- Low64 =3D Low64 | LShiftU64 (Slot0, 5) | Template; >- >- High64 =3D RShiftU64 (Slot1, 18); >- High64 =3D High64 | LShiftU64 (Slot2, 23); >- >- // >- // Now write it all out >- // >- BPtr =3D (UINT8 *) MemPtr; >- for (Index =3D 0; Index < 8; Index++) { >- *BPtr =3D (UINT8) Low64; >- Low64 =3D RShiftU64 (Low64, 8); >- BPtr++; >- } >- >- for (Index =3D 0; Index < 8; Index++) { >- *BPtr =3D (UINT8) High64; >- High64 =3D RShiftU64 (High64, 8); >- BPtr++; >- } >- >- return EFI_SUCCESS; >-} >- >- >-/** >- This function is called to execute an EBC CALLEX instruction. >- The function check the callee's content to see whether it is common nat= ive >- code or a thunk to another piece of EBC code. >- If the callee is common native code, use EbcLLCAllEXASM to manipulate, >- otherwise, set the VM->IP to target EBC code directly to avoid another = VM >- be startup which cost time and stack space. >- >- @param VmPtr Pointer to a VM context. >- @param FuncAddr Callee's address >- @param NewStackPointer New stack pointer after the call >- @param FramePtr New frame pointer after the call >- @param Size The size of call instruction >- >-**/ >-VOID >-EbcLLCALLEX ( >- IN VM_CONTEXT *VmPtr, >- IN UINTN FuncAddr, >- IN UINTN NewStackPointer, >- IN VOID *FramePtr, >- IN UINT8 Size >- ) >-{ >- UINTN IsThunk; >- UINTN TargetEbcAddr; >- UINTN CodeOne18; >- UINTN CodeOne23; >- UINTN CodeTwoI; >- UINTN CodeTwoIc; >- UINTN CodeTwo7b; >- UINTN CodeTwo5c; >- UINTN CodeTwo9d; >- UINTN CalleeAddr; >- >- IsThunk =3D 1; >- TargetEbcAddr =3D 0; >- >- // >- // FuncAddr points to the descriptor of the target instructions. >- // >- CalleeAddr =3D *((UINT64 *)FuncAddr); >- >- // >- // Processor specific code to check whether the callee is a thunk to EB= C. >- // >- if (*((UINT64 *)CalleeAddr) !=3D 0xBCCA000100000005) { >- IsThunk =3D 0; >- goto Action; >- } >- if (*((UINT64 *)CalleeAddr + 1) !=3D 0x697623C1004A112E) { >- IsThunk =3D 0; >- goto Action; >- } >- >- CodeOne18 =3D RShiftU64 (*((UINT64 *)CalleeAddr + 2), 46) & 0x3FFFF; >- CodeOne23 =3D (*((UINT64 *)CalleeAddr + 3)) & 0x7FFFFF; >- CodeTwoI =3D RShiftU64 (*((UINT64 *)CalleeAddr + 3), 59) & 0x1; >- CodeTwoIc =3D RShiftU64 (*((UINT64 *)CalleeAddr + 3), 44) & 0x1; >- CodeTwo7b =3D RShiftU64 (*((UINT64 *)CalleeAddr + 3), 36) & 0x7F; >- CodeTwo5c =3D RShiftU64 (*((UINT64 *)CalleeAddr + 3), 45) & 0x1F; >- CodeTwo9d =3D RShiftU64 (*((UINT64 *)CalleeAddr + 3), 50) & 0x1FF; >- >- TargetEbcAddr =3D CodeTwo7b; >- TargetEbcAddr =3D TargetEbcAddr | LShiftU64 (CodeTwo9d, 7); >- TargetEbcAddr =3D TargetEbcAddr | LShiftU64 (CodeTwo5c, 16); >- TargetEbcAddr =3D TargetEbcAddr | LShiftU64 (CodeTwoIc, 21); >- TargetEbcAddr =3D TargetEbcAddr | LShiftU64 (CodeOne18, 22); >- TargetEbcAddr =3D TargetEbcAddr | LShiftU64 (CodeOne23, 40); >- TargetEbcAddr =3D TargetEbcAddr | LShiftU64 (CodeTwoI, 63); >- >-Action: >- if (IsThunk =3D=3D 1){ >- // >- // The callee is a thunk to EBC, adjust the stack pointer down 16 byt= es and >- // put our return address and frame pointer on the VM stack. >- // Then set the VM's IP to new EBC code. >- // >- VmPtr->Gpr[0] -=3D 8; >- VmWriteMemN (VmPtr, (UINTN) VmPtr->Gpr[0], (UINTN) FramePtr); >- VmPtr->FramePtr =3D (VOID *) (UINTN) VmPtr->Gpr[0]; >- VmPtr->Gpr[0] -=3D 8; >- VmWriteMem64 (VmPtr, (UINTN) VmPtr->Gpr[0], (UINT64) (VmPtr->Ip + >Size)); >- >- VmPtr->Ip =3D (VMIP) (UINTN) TargetEbcAddr; >- } else { >- // >- // The callee is not a thunk to EBC, call native code, >- // and get return value. >- // >- VmPtr->Gpr[7] =3D EbcLLCALLEXNative (FuncAddr, NewStackPointer, >FramePtr); >- >- // >- // Advance the IP. >- // >- VmPtr->Ip +=3D Size; >- } >-} >diff --git a/MdeModulePkg/Universal/EbcDxe/Ipf/EbcSupport.h >b/MdeModulePkg/Universal/EbcDxe/Ipf/EbcSupport.h >deleted file mode 100644 >index d90ea82ad0..0000000000 >--- a/MdeModulePkg/Universal/EbcDxe/Ipf/EbcSupport.h >+++ /dev/null >@@ -1,41 +0,0 @@ >-/** @file >- Definition of EBC Support function. >- >-Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
>-This program and the accompanying materials >-are licensed and made available under the terms and conditions of the BSD >License >-which accompanies this distribution. The full text of the license may be >found at >-http://opensource.org/licenses/bsd-license.php >- >-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, >-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER >EXPRESS OR IMPLIED. >- >-**/ >- >-#ifndef _IPF_EBC_SUPPORT_H_ >-#define _IPF_EBC_SUPPORT_H_ >- >-#define VM_STACK_SIZE (1024 * 32) >- >-#define EBC_THUNK_SIZE 128 >-#define STACK_REMAIN_SIZE (1024 * 4) >- >-// >-// For code execution, thunks must be aligned on 16-byte boundary >-// >-#define EBC_THUNK_ALIGNMENT 16 >- >-// >-// Opcodes for IPF instructions. We'll need to hand-create thunk code >(stuffing >-// bits) to insert a jump to the interpreter. >-// >-#define OPCODE_NOP (UINT64) 0x00008000000 >-#define OPCODE_BR_COND_SPTK_FEW (UINT64) 0x00100000000 >-#define OPCODE_MOV_BX_RX (UINT64) 0x00E00100000 >- >-// >-// Opcode for MOVL instruction >-// >-#define MOVL_OPCODE 0x06 >- >-#endif >diff --git a/MdeModulePkg/Universal/EsrtDxe/EsrtDxe.inf >b/MdeModulePkg/Universal/EsrtDxe/EsrtDxe.inf >index 5eb7ef924a..066e0bbae7 100644 >--- a/MdeModulePkg/Universal/EsrtDxe/EsrtDxe.inf >+++ b/MdeModulePkg/Universal/EsrtDxe/EsrtDxe.inf >@@ -27,7 +27,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.i >nf >b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.i >nf >index 30a765c807..20396260ce 100644 >--- >a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.i >nf >+++ >b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.i >nf >@@ -28,7 +28,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.inf >b/MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.inf >index 12b26604e2..b5cab4bf55 100644 >--- >a/MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.inf >+++ >b/MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.inf >@@ -3,7 +3,7 @@ > # > # This module installs gEdkiiFaultTolerantWriteGuid PPI to inform the che= ck >for FTW last write data has been done. > # >-# Copyright (c) 2013 - 2014, Intel Corporation. All rights reserved.
>+# Copyright (c) 2013 - 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 >@@ -26,7 +26,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.inf >b/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.inf >index 8f8b8b4294..e00e581d63 100644 >--- a/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.inf >+++ b/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.inf >@@ -27,7 +27,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf >b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf >index 0593ff85bb..44bdf42344 100644 >--- a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf >+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/HiiResourcesSampleDxe/HiiResourcesSampleDx >e.inf >b/MdeModulePkg/Universal/HiiResourcesSampleDxe/HiiResourcesSampleDx >e.inf >index 7287ba5050..b925508434 100644 >--- >a/MdeModulePkg/Universal/HiiResourcesSampleDxe/HiiResourcesSampleDx >e.inf >+++ >b/MdeModulePkg/Universal/HiiResourcesSampleDxe/HiiResourcesSampleDx >e.inf >@@ -34,7 +34,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/LegacyRegion2Dxe/LegacyRegion2Dxe.inf >b/MdeModulePkg/Universal/LegacyRegion2Dxe/LegacyRegion2Dxe.inf >index 3a34cf210f..c7c2e0d03d 100644 >--- a/MdeModulePkg/Universal/LegacyRegion2Dxe/LegacyRegion2Dxe.inf >+++ b/MdeModulePkg/Universal/LegacyRegion2Dxe/LegacyRegion2Dxe.inf >@@ -34,7 +34,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Universal/LoadFileOnFv2/LoadFileOnFv2.inf >b/MdeModulePkg/Universal/LoadFileOnFv2/LoadFileOnFv2.inf >index a4ded94e7f..4f14b3a307 100644 >--- a/MdeModulePkg/Universal/LoadFileOnFv2/LoadFileOnFv2.inf >+++ b/MdeModulePkg/Universal/LoadFileOnFv2/LoadFileOnFv2.inf >@@ -5,7 +5,7 @@ > # version of the module only supports loading of files for the purpose o= f > # booting from the file. > # >-# Copyright (c) 2016, Intel Corporation. All rights reserved.
>+# Copyright (c) 2016 - 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 >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/MemoryTest/GenericMemoryTestDxe/Generic >MemoryTestDxe.inf >b/MdeModulePkg/Universal/MemoryTest/GenericMemoryTestDxe/Generic >MemoryTestDxe.inf >index 975dc4cd3a..85123ad223 100644 >--- >a/MdeModulePkg/Universal/MemoryTest/GenericMemoryTestDxe/Generic >MemoryTestDxe.inf >+++ >b/MdeModulePkg/Universal/MemoryTest/GenericMemoryTestDxe/Generic >MemoryTestDxe.inf >@@ -1,7 +1,7 @@ > ## @file > # This driver first constructs the non-tested memory range, then performs >the R/W/V memory test. > # >-# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
>+# Copyright (c) 2006 - 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 >@@ -26,7 +26,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemory >TestDxe.inf >b/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemor >yTestDxe.inf >index a0d2ce7a89..beb18bfce1 100644 >--- >a/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemory >TestDxe.inf >+++ >b/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemor >yTestDxe.inf >@@ -24,7 +24,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Universal/Metronome/Metronome.inf >b/MdeModulePkg/Universal/Metronome/Metronome.inf >index 3a633ed753..88a28afd0b 100644 >--- a/MdeModulePkg/Universal/Metronome/Metronome.inf >+++ b/MdeModulePkg/Universal/Metronome/Metronome.inf >@@ -34,7 +34,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Packages] >diff --git >a/MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCou >nterRuntimeDxe.inf >b/MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCou >nterRuntimeDxe.inf >index e44e268014..c73ec42994 100644 >--- >a/MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCou >nterRuntimeDxe.inf >+++ >b/MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCou >nterRuntimeDxe.inf >@@ -1,7 +1,7 @@ > ## @file > # This module produces the UEFI boot service GetNextMonotonicCount() >and runtime service GetNextHighMonotonicCount(). > # >-# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
>+# Copyright (c) 2006 - 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 >@@ -25,7 +25,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf >b/MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf >index 85f7982971..29f0c43592 100644 >--- a/MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf >+++ b/MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gArpDriverBinding > # COMPONENT_NAME =3D gArpComponentName >diff --git a/MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf >b/MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf >index e41bddb017..2d1008f894 100644 >--- a/MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf >+++ b/MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf >@@ -29,7 +29,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gDhcp4DriverBinding > # COMPONENT_NAME =3D gDhcp4ComponentName >diff --git a/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf >b/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf >index 8a1f8baf79..233339d7d3 100644 >--- a/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf >+++ b/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf >@@ -1,7 +1,7 @@ > ## @file > # This module produces Deferred Procedure Call Protocol. > # >-# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
>+# 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 >@@ -25,7 +25,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf >b/MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf >index dce39681d1..c2b9bd2c6f 100644 >--- a/MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf >+++ b/MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf >@@ -30,7 +30,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gIScsiDriverBinding > # COMPONENT_NAME =3D gIScsiComponentName >diff --git a/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf >b/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf >index b2b934a8c3..fb15c3fffa 100644 >--- a/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf >+++ b/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf >@@ -31,7 +31,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gIp4DriverBinding > # COMPONENT_NAME =3D gIp4ComponentName >diff --git a/MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf >b/MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf >index 090ab732b9..d3f74e199c 100644 >--- a/MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf >+++ b/MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf >@@ -28,7 +28,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gMnpDriverBinding > # COMPONENT_NAME =3D gMnpComponentName >diff --git a/MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf >b/MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf >index ad9e7abce6..1e8b12d500 100644 >--- a/MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf >+++ b/MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf >@@ -28,7 +28,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gMtftp4DriverBinding > # COMPONENT_NAME =3D gMtftp4ComponentName >diff --git a/MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf >b/MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf >index 021d45d44d..04ce74670c 100644 >--- a/MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf >+++ b/MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf >@@ -28,7 +28,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D mSimpleNetworkDriverBinding > # COMPONENT_NAME =3D gSimpleNetworkComponentName >diff --git a/MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf >b/MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf >index 5021cbc4b8..11a6425471 100644 >--- a/MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf >+++ b/MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf >@@ -28,7 +28,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D mTcp4DriverBinding > # COMPONENT_NAME =3D gTcp4ComponentName >diff --git a/MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf >b/MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf >index 69b6d5d943..7b7b6150d2 100644 >--- a/MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf >+++ b/MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf >@@ -28,7 +28,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > # DRIVER_BINDING =3D gUdp4DriverBinding > # COMPONENT_NAME =3D gUdp4ComponentName >diff --git >a/MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf >b/MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf >index 121d68ed26..de2c6ad72c 100644 >--- a/MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf >+++ b/MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf >@@ -32,7 +32,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF >+# VALID_ARCHITECTURES =3D IA32 X64 > # > # DRIVER_BINDING =3D gPxeBcDriverBinding > # COMPONENT_NAME =3D gPxeBcComponentName >diff --git >a/MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf >b/MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf >index a36c57871e..b344e4b729 100644 >--- a/MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf >+++ b/MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf >@@ -4,7 +4,7 @@ > # This module produces EFI HII Configuration Access Protocol to provide = one >way to > # configurate VALN setting > # >-# Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.
>+# Copyright (c) 2009 - 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 >@@ -27,7 +27,7 @@ > > > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Universal/PCD/Dxe/Pcd.inf >b/MdeModulePkg/Universal/PCD/Dxe/Pcd.inf >index e6b3e0d920..93c451bbd4 100644 >--- a/MdeModulePkg/Universal/PCD/Dxe/Pcd.inf >+++ b/MdeModulePkg/Universal/PCD/Dxe/Pcd.inf >@@ -303,7 +303,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Universal/PCD/Pei/Pcd.inf >b/MdeModulePkg/Universal/PCD/Pei/Pcd.inf >index c2a3ccbbc0..974a68c994 100644 >--- a/MdeModulePkg/Universal/PCD/Pei/Pcd.inf >+++ b/MdeModulePkg/Universal/PCD/Pei/Pcd.inf >@@ -302,7 +302,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC (EBC is for build o= nly) >+# VALID_ARCHITECTURES =3D IA32 X64 EBC (EBC is for build only) > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/PcatSingleSegmentPciCfg2Pei/PcatSingleSegme >ntPciCfg2Pei.inf >b/MdeModulePkg/Universal/PcatSingleSegmentPciCfg2Pei/PcatSingleSegme >ntPciCfg2Pei.inf >index 27bce7b7b7..748e0d7b29 100644 >--- >a/MdeModulePkg/Universal/PcatSingleSegmentPciCfg2Pei/PcatSingleSegme >ntPciCfg2Pei.inf >+++ >b/MdeModulePkg/Universal/PcatSingleSegmentPciCfg2Pei/PcatSingleSegme >ntPciCfg2Pei.inf >@@ -4,7 +4,7 @@ > # It installs SingleSegmentPciConfiguration2 PPI to provide read, write = and >modify access to Pci configuration space in PEI phase. > # To follow PI specification, these services also support access to the >unaligned Pci address. > # >-# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
>+# Copyright (c) 2006 - 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 >@@ -28,7 +28,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC (EBC is for build o= nly) >+# VALID_ARCHITECTURES =3D IA32 X64 EBC (EBC is for build only) > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatformDriOverrideDx >e.inf >b/MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatformDriOverrideDx >e.inf >index 5bd9e44edd..aeaceb050e 100644 >--- >a/MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatformDriOverrideDx >e.inf >+++ >b/MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatformDriOverrideDx >e.inf >@@ -43,7 +43,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Universal/PrintDxe/PrintDxe.inf >b/MdeModulePkg/Universal/PrintDxe/PrintDxe.inf >index 19eef5a8a8..50b24e75fc 100644 >--- a/MdeModulePkg/Universal/PrintDxe/PrintDxe.inf >+++ b/MdeModulePkg/Universal/PrintDxe/PrintDxe.inf >@@ -3,7 +3,7 @@ > # > # This driver produces Print2 protocols layered on top of the PrintLib f= rom >the MdePkg. > # >-# Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.
>+# Copyright (c) 2009 - 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 >@@ -26,7 +26,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/PropertiesTableAttributesDxe/PropertiesTableA >ttributesDxe.inf >b/MdeModulePkg/Universal/PropertiesTableAttributesDxe/PropertiesTable >AttributesDxe.inf >index 3f699f6b5a..9b78f07f13 100644 >--- >a/MdeModulePkg/Universal/PropertiesTableAttributesDxe/PropertiesTableA >ttributesDxe.inf >+++ >b/MdeModulePkg/Universal/PropertiesTableAttributesDxe/PropertiesTable >AttributesDxe.inf >@@ -4,7 +4,7 @@ > # This module sets EFI_MEMORY_XP for attributes of EfiACPIMemoryNVS >and EfiReservedMemoryType > # in UEFI memory map, if and only of PropertiesTable is published and has >BIT0 set. > # >-# Copyright (c) 2015, Intel Corporation. All rights reserved.
>+# Copyright (c) 2015 - 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 >@@ -28,7 +28,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.in >f >b/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.in >f >index d8a1490021..b35ec85b9b 100644 >--- >a/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.in >f >+++ >b/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.in >f >@@ -1,6 +1,7 @@ > ## @file > # EFI_REGULAR_EXPRESSION_PROTOCOL Implementation > # >+# Copyright (c) 2018, Intel Corporation. All rights reserved.
> # (C) Copyright 2015 Hewlett Packard Enterprise Development LP
> # > # This program and the accompanying materials are licensed and made >available >@@ -74,12 +75,10 @@ > > [BuildOptions] > # Override MSFT build option to remove /Oi and /GL >- MSFT:DEBUG_*_IA32_CC_FLAGS =3D=3D /nologo /c /WX /GS- /W4 /Gs32768 /D >UNICODE /O1b2 /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm >- MSFT:RELEASE_*_IA32_CC_FLAGS =3D=3D /nologo /c /WX /GS- /W4 /Gs32768 /D >UNICODE /O1b2 /FIAutoGen.h /EHs-c- /GR- /GF >- MSFT:DEBUG_*_X64_CC_FLAGS =3D=3D /nologo /c /WX /GS- /W4 /Gs32768 /D >UNICODE /O1b2s /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /X >- MSFT:RELEASE_*_X64_CC_FLAGS =3D=3D /nologo /c /WX /GS- /W4 /Gs32768 /D >UNICODE /O1b2s /FIAutoGen.h /EHs-c- /GR- /GF /Gy /X >- MSFT:DEBUG_*_IPF_CC_FLAGS =3D=3D /nologo /c /WX /GS- /W4 /EHs-c- /GR= - >/Gy /Os /FIAutoGen.h /QIPF_fr32 /Zi /X >- MSFT:RELEASE_*_IPF_CC_FLAGS =3D=3D /nologo /c /WX /GS- /W4 /EHs-c- /GR= - >/Gy /Os /FIAutoGen.h /QIPF_fr32 /X >+ MSFT:DEBUG_*_IA32_CC_FLAGS =3D=3D /nologo /c /WX /GS- /W4 /Gs32768 >/D UNICODE /O1b2 /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm >+ MSFT:RELEASE_*_IA32_CC_FLAGS =3D=3D /nologo /c /WX /GS- /W4 /Gs32768 >/D UNICODE /O1b2 /FIAutoGen.h /EHs-c- /GR- /GF >+ MSFT:DEBUG_*_X64_CC_FLAGS =3D=3D /nologo /c /WX /GS- /W4 /Gs32768 /D >UNICODE /O1b2s /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /X >+ MSFT:RELEASE_*_X64_CC_FLAGS =3D=3D /nologo /c /WX /GS- /W4 /Gs32768 /D >UNICODE /O1b2s /FIAutoGen.h /EHs-c- /GR- /GF /Gy /X > INTEL:*_*_*_CC_FLAGS =3D /Oi- > > # Oniguruma: potentially uninitialized local variable used >diff --git >a/MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCod >eRouterPei.inf >b/MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCod >eRouterPei.inf >index a3de382d00..ea53f32ff7 100644 >--- >a/MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCod >eRouterPei.inf >+++ >b/MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCod >eRouterPei.inf >@@ -1,7 +1,7 @@ > ## @file > # Report Status Code Router PEIM which produces Report Stataus Code >Handler PPI and Status Code PPI. > # >-# Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.
>+# Copyright (c) 2009 - 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 >@@ -25,7 +25,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC (EBC is only for bu= ild) >+# VALID_ARCHITECTURES =3D IA32 X64 EBC (EBC is only for build) > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportS >tatusCodeRouterRuntimeDxe.inf >b/MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportS >tatusCodeRouterRuntimeDxe.inf >index 9556260082..0671e895a8 100644 >--- >a/MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportS >tatusCodeRouterRuntimeDxe.inf >+++ >b/MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportS >tatusCodeRouterRuntimeDxe.inf >@@ -25,7 +25,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/SectionExtractionPei/SectionExtractionPei.inf >b/MdeModulePkg/Universal/SectionExtractionPei/SectionExtractionPei.inf >index 91800cec01..ba6bd9584b 100644 >--- a/MdeModulePkg/Universal/SectionExtractionPei/SectionExtractionPei.inf >+++ >b/MdeModulePkg/Universal/SectionExtractionPei/SectionExtractionPei.inf >@@ -26,7 +26,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf >b/MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf >index c5553a38e0..5bddc885b5 100644 >--- a/MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf >+++ b/MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf >@@ -1,7 +1,7 @@ > ## @file > # This driver produces security2 and security architectural protocol bas= ed on >SecurityManagementLib. > # >-# Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.
>+# Copyright (c) 2006 - 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 >@@ -24,7 +24,7 @@ > > > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf >b/MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf >index 4f847d4061..e7618350dc 100644 >--- a/MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf >+++ b/MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf >@@ -28,7 +28,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf >b/MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf >index 0e623aeb41..e0c89307a3 100644 >--- a/MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf >+++ b/MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf >@@ -26,7 +26,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC ARM AARCH64 >+# VALID_ARCHITECTURES =3D IA32 X64 EBC ARM AARCH64 > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/SmbiosMeasurementDxe/SmbiosMeasurement >Dxe.inf >b/MdeModulePkg/Universal/SmbiosMeasurementDxe/SmbiosMeasurement >Dxe.inf >index 879bc21481..698a64c3b1 100644 >--- >a/MdeModulePkg/Universal/SmbiosMeasurementDxe/SmbiosMeasurement >Dxe.inf >+++ >b/MdeModulePkg/Universal/SmbiosMeasurementDxe/SmbiosMeasurement >Dxe.inf >@@ -35,7 +35,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC ARM AARCH64 >+# VALID_ARCHITECTURES =3D IA32 X64 EBC ARM AARCH64 > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.i >nf >b/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.i >nf >index 5d96fe3041..60deee3826 100644 >--- >a/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.i >nf >+++ >b/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.i >nf >@@ -25,7 +25,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC (EBC is only for bu= ild) >+# VALID_ARCHITECTURES =3D IA32 X64 EBC (EBC is only for build) > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHa >ndlerRuntimeDxe.inf >b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHa >ndlerRuntimeDxe.inf >index 928ae15b6f..f04d40ef28 100644 >--- >a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHa >ndlerRuntimeDxe.inf >+++ >b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHa >ndlerRuntimeDxe.inf >@@ -26,7 +26,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git a/MdeModulePkg/Universal/TimestampDxe/TimestampDxe.inf >b/MdeModulePkg/Universal/TimestampDxe/TimestampDxe.inf >index 07858857e3..a5d91f6dff 100644 >--- a/MdeModulePkg/Universal/TimestampDxe/TimestampDxe.inf >+++ b/MdeModulePkg/Universal/TimestampDxe/TimestampDxe.inf >@@ -25,7 +25,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Packages] >diff --git a/MdeModulePkg/Universal/Variable/Pei/VariablePei.inf >b/MdeModulePkg/Universal/Variable/Pei/VariablePei.inf >index 72a440dcd1..5095bfd8b8 100644 >--- a/MdeModulePkg/Universal/Variable/Pei/VariablePei.inf >+++ b/MdeModulePkg/Universal/Variable/Pei/VariablePei.inf >@@ -3,7 +3,7 @@ > # > # This module implements ReadOnly Variable Services required by PEIM and >installs PEI ReadOnly Varaiable2 PPI. > # >-# Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.
>+# Copyright (c) 2006 - 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 >@@ -26,7 +26,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Sources] >diff --git >a/MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf >b/MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf >index cd2daf3033..acf12144f3 100644 >--- a/MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf >+++ b/MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf >@@ -25,7 +25,7 @@ > # > # The following information is for reference only and not required by the >build tools. > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # > > [Packages] >-- >2.16.2.windows.1