From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.115; helo=mga14.intel.com; envelope-from=liming.gao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (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 8B9F7212B1578 for ; Tue, 12 Jun 2018 22:52:20 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Jun 2018 22:52:20 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,217,1526367600"; d="scan'208";a="56893669" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by FMSMGA003.fm.intel.com with ESMTP; 12 Jun 2018 22:52:03 -0700 Received: from fmsmsx119.amr.corp.intel.com (10.18.124.207) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 12 Jun 2018 22:52:03 -0700 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by FMSMSX119.amr.corp.intel.com (10.18.124.207) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 12 Jun 2018 22:52:02 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.87]) by shsmsx102.ccr.corp.intel.com ([169.254.2.223]) with mapi id 14.03.0319.002; Wed, 13 Jun 2018 13:52:00 +0800 From: "Gao, Liming" To: "Chen, Chen A" , "edk2-devel@lists.01.org" CC: "Kinney, Michael D" Thread-Topic: [PATCH 17/37] IntelFrameworkModulePkg: Removing ipf from edk2. Thread-Index: AQHUAsjcTbC0NeJ9IkaFC6Q+aRepeqRdr7JQ Date: Wed, 13 Jun 2018 05:52:00 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E296AA5@SHSMSX104.ccr.corp.intel.com> References: <20180613034421.11376-1-chen.a.chen@intel.com> In-Reply-To: <20180613034421.11376-1-chen.a.chen@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 17/37] IntelFrameworkModulePkg: Removing ipf from edk2. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jun 2018 05:52:20 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Liming Gao >-----Original Message----- >From: Chen, Chen A >Sent: Wednesday, June 13, 2018 11:44 AM >To: edk2-devel@lists.01.org >Cc: Chen, Chen A ; Gao, Liming >; Kinney, Michael D >Subject: [PATCH 17/37] IntelFrameworkModulePkg: Removing ipf 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: Liming Gao >Cc: Michael D Kinney >Signed-off-by: chenc2 >Contributed-under: TianoCore Contribution Agreement 1.1 >--- > .../Bus/Isa/IsaBusDxe/IsaBusDxe.inf | 2 +- > .../Bus/Isa/IsaFloppyDxe/IsaFloppyDxe.inf | 2 +- > .../Bus/Isa/IsaFloppyPei/IsaFloppyPei.inf | 2 +- > .../Bus/Isa/IsaIoDxe/IsaIoDxe.inf | 2 +- > .../Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf | 2 +- > .../Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf | 2 +- > .../Ps2MouseAbsolutePointerDxe.inf | 2 +- > .../Bus/Isa/Ps2MouseDxe/Ps2MouseDxe.inf | 2 +- > .../Bus/Pci/IdeBusDxe/IdeBusDxe.inf | 2 +- > .../Bus/Pci/VgaMiniPortDxe/VgaMiniPortDxe.inf | 2 +- > .../Csm/BiosThunk/KeyboardDxe/KeyboardDxe.inf | 2 +- > .../Csm/BiosThunk/Snp16Dxe/Snp16Dxe.inf | 2 +- > .../Csm/BiosThunk/VideoDxe/VideoDxe.inf | 2 +- > .../Csm/LegacyBiosDxe/Ipf/IpfBootSupport.c | 277 ----------- > .../Csm/LegacyBiosDxe/Ipf/IpfThunk.h | 102 ---- > .../Csm/LegacyBiosDxe/Ipf/IpfThunk.i | 89 ---- > .../Csm/LegacyBiosDxe/Ipf/IpfThunk.s | 524 ----------------= ---- > .../Csm/LegacyBiosDxe/Ipf/Thunk.c | 550 ----------------= ----- > .../Csm/LegacyBiosDxe/LegacyBiosDxe.inf | 14 +- > .../Csm/LegacyBiosDxe/LegacyBiosInterface.h | 79 --- > .../IntelFrameworkModulePkg.dsc | 32 +- > .../BaseUefiTianoCustomDecompressLib.inf | 2 +- > .../Library/DxeCapsuleLib/DxeCapsuleLib.inf | 2 +- > .../DxeReportStatusCodeLib.inf | 4 +- > .../Library/GenericBdsLib/GenericBdsLib.inf | 2 +- > .../LegacyBootMaintUiLib/LegacyBootMaintUiLib.inf | 2 +- > .../LzmaCustomDecompressLib.inf | 2 +- > .../PeiDxeDebugLibReportStatusCode.inf | 4 +- > .../Library/PeiRecoveryLib/PeiRecoveryLib.inf | 4 +- > .../Library/PeiS3Lib/PeiS3Lib.inf | 2 +- > .../PlatformBdsLibNull/PlatformBdsLibNull.inf | 4 +- > .../Acpi/AcpiSupportDxe/AcpiSupportDxe.inf | 2 +- > .../Universal/BdsDxe/BdsDxe.inf | 2 +- > .../Universal/Console/VgaClassDxe/VgaClassDxe.inf | 2 +- > .../Universal/DataHubDxe/DataHubDxe.inf | 2 +- > .../DataHubStdErrDxe/DataHubStdErrDxe.inf | 2 +- > .../Universal/FirmwareVolume/FwVolDxe/FwVolDxe.inf | 2 +- > .../UpdateDriverDxe/UpdateDriverDxe.inf | 2 +- > .../Universal/LegacyRegionDxe/LegacyRegionDxe.inf | 2 +- > .../SectionExtractionDxe/SectionExtractionDxe.inf | 2 +- > .../DatahubStatusCodeHandlerDxe.inf | 2 +- > .../Universal/StatusCode/Pei/StatusCodePei.inf | 2 +- > 42 files changed, 41 insertions(+), 1702 deletions(-) > delete mode 100644 >IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/IpfBootSupport.c > delete mode 100644 >IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/IpfThunk.h > delete mode 100644 >IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/IpfThunk.i > delete mode 100644 >IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/IpfThunk.s > delete mode 100644 >IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/Thunk.c > >diff --git a/IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf >b/IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf >index be6dd43ea6..af9342ecd1 100644 >--- a/IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf >+++ b/IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf >@@ -27,7 +27,7 @@ > ENTRY_POINT =3D InitializeIsaBus > > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # DRIVER_BINDING =3D gIsaBusControllerDriver > # COMPONENT_NAME =3D gIsaBusComponentName; > # COMPONENT_NAME2 =3D gIsaBusComponentName2; >diff --git >a/IntelFrameworkModulePkg/Bus/Isa/IsaFloppyDxe/IsaFloppyDxe.inf >b/IntelFrameworkModulePkg/Bus/Isa/IsaFloppyDxe/IsaFloppyDxe.inf >index 65756209f5..f911ffe15c 100644 >--- a/IntelFrameworkModulePkg/Bus/Isa/IsaFloppyDxe/IsaFloppyDxe.inf >+++ b/IntelFrameworkModulePkg/Bus/Isa/IsaFloppyDxe/IsaFloppyDxe.inf >@@ -27,7 +27,7 @@ > ENTRY_POINT =3D InitializeIsaFloppy > > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # DRIVER_BINDING =3D gFdcControllerDriver; > # COMPONENT_NAME =3D gIsaFloppyComponentName; > # COMPONENT_NAME2 =3D gIsaFloppyComponentName2; >diff --git a/IntelFrameworkModulePkg/Bus/Isa/IsaFloppyPei/IsaFloppyPei.inf >b/IntelFrameworkModulePkg/Bus/Isa/IsaFloppyPei/IsaFloppyPei.inf >index 8d4db34fbe..b9f9bb0120 100644 >--- a/IntelFrameworkModulePkg/Bus/Isa/IsaFloppyPei/IsaFloppyPei.inf >+++ b/IntelFrameworkModulePkg/Bus/Isa/IsaFloppyPei/IsaFloppyPei.inf >@@ -36,7 +36,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/IntelFrameworkModulePkg/Bus/Isa/IsaIoDxe/IsaIoDxe.inf >b/IntelFrameworkModulePkg/Bus/Isa/IsaIoDxe/IsaIoDxe.inf >index 499cf434f5..8c51770f31 100644 >--- a/IntelFrameworkModulePkg/Bus/Isa/IsaIoDxe/IsaIoDxe.inf >+++ b/IntelFrameworkModulePkg/Bus/Isa/IsaIoDxe/IsaIoDxe.inf >@@ -26,7 +26,7 @@ > ENTRY_POINT =3D InitializeIsaIo > > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # DRIVER_BINDING =3D gIsaIoDriver > # COMPONENT_NAME =3D gIsaIoComponentName; > # COMPONENT_NAME2 =3D gIsaIoComponentName2; >diff --git a/IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf >b/IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf >index 4abaac9ff8..a6bff73d75 100644 >--- a/IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf >+++ b/IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.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 gSerialControllerDriver > # COMPONENT_NAME =3D gIsaSerialComponentName >diff --git >a/IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf >b/IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf >index 9d72cebcb2..efe77f1197 100644 >--- >a/IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf >+++ >b/IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf >@@ -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/IntelFrameworkModulePkg/Bus/Isa/Ps2MouseAbsolutePointerDxe/Ps2Mo >useAbsolutePointerDxe.inf >b/IntelFrameworkModulePkg/Bus/Isa/Ps2MouseAbsolutePointerDxe/Ps2Mo >useAbsolutePointerDxe.inf >index 48adde6f1d..118bbdf2e0 100644 >--- >a/IntelFrameworkModulePkg/Bus/Isa/Ps2MouseAbsolutePointerDxe/Ps2Mo >useAbsolutePointerDxe.inf >+++ >b/IntelFrameworkModulePkg/Bus/Isa/Ps2MouseAbsolutePointerDxe/Ps2Mo >useAbsolutePointerDxe.inf >@@ -27,7 +27,7 @@ > ENTRY_POINT =3D InitializePs2MouseAbsolutePointer > > # >-# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC >+# VALID_ARCHITECTURES =3D IA32 X64 EBC > # DRIVER_BINDING =3D gPS2MouseAbsolutePointerDriver; > # COMPONENT_NAME =3D >gPs2MouseAbsolutePointerComponentName; > # COMPONENT_NAME2 =3D >gPs2MouseAbsolutePointerComponentName2; >diff --git >a/IntelFrameworkModulePkg/Bus/Isa/Ps2MouseDxe/Ps2MouseDxe.inf >b/IntelFrameworkModulePkg/Bus/Isa/Ps2MouseDxe/Ps2MouseDxe.inf >index 876b09ff8e..aa3f8e88b1 100644 >--- a/IntelFrameworkModulePkg/Bus/Isa/Ps2MouseDxe/Ps2MouseDxe.inf >+++ b/IntelFrameworkModulePkg/Bus/Isa/Ps2MouseDxe/Ps2MouseDxe.inf >@@ -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/IntelFrameworkModulePkg/Bus/Pci/IdeBusDxe/IdeBusDxe.inf >b/IntelFrameworkModulePkg/Bus/Pci/IdeBusDxe/IdeBusDxe.inf >index 8beea2d9ca..e650ed10e7 100644 >--- a/IntelFrameworkModulePkg/Bus/Pci/IdeBusDxe/IdeBusDxe.inf >+++ b/IntelFrameworkModulePkg/Bus/Pci/IdeBusDxe/IdeBusDxe.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 gIDEBusDriverBinding > # COMPONENT_NAME =3D gIDEBusComponentName >diff --git >a/IntelFrameworkModulePkg/Bus/Pci/VgaMiniPortDxe/VgaMiniPortDxe.inf >b/IntelFrameworkModulePkg/Bus/Pci/VgaMiniPortDxe/VgaMiniPortDxe.inf >index d3c35faa6c..c3af6fc8e4 100644 >--- >a/IntelFrameworkModulePkg/Bus/Pci/VgaMiniPortDxe/VgaMiniPortDxe.inf >+++ >b/IntelFrameworkModulePkg/Bus/Pci/VgaMiniPortDxe/VgaMiniPortDxe.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 gPciVgaMiniPortDriverBinding; > # COMPONENT_NAME =3D gPciVgaMiniPortComponentName; > # COMPONENT_NAME2 =3D gPciVgaMiniPortComponentName2; >diff --git >a/IntelFrameworkModulePkg/Csm/BiosThunk/KeyboardDxe/KeyboardDxe.in >f >b/IntelFrameworkModulePkg/Csm/BiosThunk/KeyboardDxe/KeyboardDxe.in >f >index eaaedbfa9c..fa0da0d236 100644 >--- >a/IntelFrameworkModulePkg/Csm/BiosThunk/KeyboardDxe/KeyboardDxe.in >f >+++ >b/IntelFrameworkModulePkg/Csm/BiosThunk/KeyboardDxe/KeyboardDxe.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 > # > # DRIVER_BINDING =3D gBiosKeyboardDriverBinding > # COMPONENT_NAME =3D gBiosKeyboardComponentName >diff --git >a/IntelFrameworkModulePkg/Csm/BiosThunk/Snp16Dxe/Snp16Dxe.inf >b/IntelFrameworkModulePkg/Csm/BiosThunk/Snp16Dxe/Snp16Dxe.inf >index 2e6b0c532d..7c10dba123 100644 >--- a/IntelFrameworkModulePkg/Csm/BiosThunk/Snp16Dxe/Snp16Dxe.inf >+++ b/IntelFrameworkModulePkg/Csm/BiosThunk/Snp16Dxe/Snp16Dxe.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 gBiosSnp16DriverBinding > # COMPONENT_NAME =3D gBiosSnp16ComponentName >diff --git >a/IntelFrameworkModulePkg/Csm/BiosThunk/VideoDxe/VideoDxe.inf >b/IntelFrameworkModulePkg/Csm/BiosThunk/VideoDxe/VideoDxe.inf >index 7b1764acfc..65cee577a9 100644 >--- a/IntelFrameworkModulePkg/Csm/BiosThunk/VideoDxe/VideoDxe.inf >+++ b/IntelFrameworkModulePkg/Csm/BiosThunk/VideoDxe/VideoDxe.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 gBiosVideoDriverBinding > # COMPONENT_NAME =3D gBiosVideoComponentName >diff --git >a/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/IpfBootSupport.c >b/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/IpfBootSupport.c >deleted file mode 100644 >index ee08c86c70..0000000000 >--- a/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/IpfBootSupport.c >+++ /dev/null >@@ -1,277 +0,0 @@ >-/** @file >- >-Copyright (c) 2006 - 2014, 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 "LegacyBiosInterface.h" >- >-/** >- Assign drive number to legacy HDD drives prior to booting an EFI >- aware OS so the OS can access drives without an EFI driver. >- Note: BBS compliant drives ARE NOT available until this call by >- either shell or EFI. >- >- @param This Protocol instance pointer. >- @param BbsCount Number of BBS_TABLE structures >- @param BbsTable List BBS entries >- >- @retval EFI_SUCCESS Drive numbers assigned >- >-**/ >-EFI_STATUS >-EFIAPI >-LegacyBiosPrepareToBootEfi ( >- IN EFI_LEGACY_BIOS_PROTOCOL *This, >- OUT UINT16 *BbsCount, >- OUT BBS_TABLE **BbsTable >- ) >-{ >- // >- // Shadow All Opion ROM >- // >- LegacyBiosShadowAllLegacyOproms (This); >- return EFI_SUCCESS; >-} >- >- >-/** >- To boot from an unconventional device like parties and/or execute >- HDD diagnostics. >- >- @param This Protocol instance pointer. >- @param Attributes How to interpret the other input parame= ters >- @param BbsEntry The 0-based index into the BbsTable for= the >- parent device. >- @param BeerData Pointer to the 128 bytes of ram BEER da= ta. >- @param ServiceAreaData Pointer to the 64 bytes of raw Service = Area >data. >- The caller must provide a pointer to th= e specific >- Service Area and not the start all Serv= ice Areas. >- EFI_INVALID_PARAMETER if error. Does NOT return if no error. >- >-**/ >-EFI_STATUS >-EFIAPI >-LegacyBiosBootUnconventionalDevice ( >- IN EFI_LEGACY_BIOS_PROTOCOL *This, >- IN UDC_ATTRIBUTES Attributes, >- IN UINTN BbsEntry, >- IN VOID *BeerData, >- IN VOID *ServiceAreaData >- ) >-{ >- return EFI_INVALID_PARAMETER; >-} >- >- >-/** >- Attempt to legacy boot the BootOption. If the EFI contexted has been >- compromised this function will not return. >- >- @param This Protocol instance pointer. >- @param BbsDevicePath EFI Device Path from BootXXXX variable. >- @param LoadOptionsSize Size of LoadOption in size. >- @param LoadOptions LoadOption from BootXXXX variable >- >- @retval EFI_SUCCESS Removable media not present >- >-**/ >-EFI_STATUS >-EFIAPI >-LegacyBiosLegacyBoot ( >- IN EFI_LEGACY_BIOS_PROTOCOL *This, >- IN BBS_BBS_DEVICE_PATH *BbsDevicePath, >- IN UINT32 LoadOptionsSize, >- IN VOID *LoadOptions >- ) >-{ >- return EFI_UNSUPPORTED; >-} >- >-/** >- Build the E820 table. >- >- @param Private Legacy BIOS Instance data >- @param Size Size of E820 Table >- >- @retval EFI_SUCCESS It should always work. >- >-**/ >-EFI_STATUS >-LegacyBiosBuildE820 ( >- IN LEGACY_BIOS_INSTANCE *Private, >- OUT UINTN *Size >- ) >-{ >- *Size =3D 0; >- return EFI_SUCCESS; >-} >- >-/** >- Get all BBS info >- >- @param This Protocol instance pointer. >- @param HddCount Number of HDD_INFO structures >- @param HddInfo Onboard IDE controller information >- @param BbsCount Number of BBS_TABLE structures >- @param BbsTable List BBS entries >- >- @retval EFI_SUCCESS Tables returned >- @retval EFI_NOT_FOUND resource not found >- @retval EFI_DEVICE_ERROR can not get BBS table >- >-**/ >-EFI_STATUS >-EFIAPI >-LegacyBiosGetBbsInfo ( >- IN EFI_LEGACY_BIOS_PROTOCOL *This, >- OUT UINT16 *HddCount, >- OUT HDD_INFO **HddInfo, >- OUT UINT16 *BbsCount, >- OUT BBS_TABLE **BbsTable >- ) >-{ >- return EFI_UNSUPPORTED; >-} >- >-/** >- Fill in the standard BDA for Keyboard LEDs >- >- @param This Protocol instance pointer. >- @param Leds Current LED status >- >- @retval EFI_SUCCESS It should always work. >- >-**/ >-EFI_STATUS >-EFIAPI >-LegacyBiosUpdateKeyboardLedStatus ( >- IN EFI_LEGACY_BIOS_PROTOCOL *This, >- IN UINT8 Leds >- ) >-{ >- return EFI_UNSUPPORTED; >-} >- >-/** >- Relocate this image under 4G memory for IPF. >- >- @param ImageHandle Handle of driver image. >- @param SystemTable Pointer to system table. >- >- @retval EFI_SUCCESS Image successfully relocated. >- @retval EFI_ABORTED Failed to relocate image. >- >-**/ >-EFI_STATUS >-RelocateImageUnder4GIfNeeded ( >- IN EFI_HANDLE ImageHandle, >- IN EFI_SYSTEM_TABLE *SystemTable >- ) >-{ >- EFI_STATUS Status; >- EFI_LOADED_IMAGE_PROTOCOL *LoadedImage; >- UINTN NumberOfPages; >- EFI_PHYSICAL_ADDRESS LoadedImageBase; >- PE_COFF_LOADER_IMAGE_CONTEXT ImageContext; >- EFI_PHYSICAL_ADDRESS MemoryAddress; >- EFI_HANDLE NewImageHandle; >- >- Status =3D gBS->HandleProtocol ( >- ImageHandle, >- &gEfiLoadedImageProtocolGuid, >- (VOID *) &LoadedImage >- ); >- >- if (!EFI_ERROR (Status)) { >- LoadedImageBase =3D (EFI_PHYSICAL_ADDRESS) (UINTN) LoadedImage- >>ImageBase; >- if (LoadedImageBase > 0xffffffff) { >- NumberOfPages =3D (UINTN) (DivU64x32(LoadedImage->ImageSize, >EFI_PAGE_SIZE) + 1); >- >- // >- // Allocate buffer below 4GB here >- // >- Status =3D AllocateLegacyMemory ( >- AllocateMaxAddress, >- 0x7FFFFFFF, >- NumberOfPages, // do we have to convert this to pages?? >- &MemoryAddress >- ); >- if (EFI_ERROR (Status)) { >- return Status; >- } >- >- ZeroMem (&ImageContext, sizeof >(PE_COFF_LOADER_IMAGE_CONTEXT)); >- ImageContext.Handle =3D (VOID *)(UINTN)LoadedImageBase; >- ImageContext.ImageRead =3D PeCoffLoaderImageReadFromMemory; >- >- // >- // Get information about the image being loaded >- // >- Status =3D PeCoffLoaderGetImageInfo (&ImageContext); >- if (EFI_ERROR (Status)) { >- return Status; >- } >- ImageContext.ImageAddress =3D (PHYSICAL_ADDRESS)MemoryAddress; >- // >- // Align buffer on section boundary >- // >- ImageContext.ImageAddress +=3D ImageContext.SectionAlignment - 1; >- ImageContext.ImageAddress &=3D >~((PHYSICAL_ADDRESS)ImageContext.SectionAlignment - 1); >- >- // >- // Load the image to our new buffer >- // >- Status =3D PeCoffLoaderLoadImage (&ImageContext); >- if (EFI_ERROR (Status)) { >- gBS->FreePages (MemoryAddress, NumberOfPages); >- return Status; >- } >- >- // >- // Relocate the image in our new buffer >- // >- Status =3D PeCoffLoaderRelocateImage (&ImageContext); >- if (EFI_ERROR (Status)) { >- gBS->FreePages (MemoryAddress, NumberOfPages); >- return Status; >- } >- >- // >- // Create a new handle with gEfiCallerIdGuid to be used as the >ImageHandle fore the reloaded image >- // >- NewImageHandle =3D NULL; >- Status =3D gBS->InstallProtocolInterface ( >- &NewImageHandle, >- &gEfiCallerIdGuid, >- EFI_NATIVE_INTERFACE, >- NULL >- ); >- >- // >- // Flush the instruction cache so the image data is written before = we >execute it >- // >- InvalidateInstructionCacheRange ((VOID >*)(UINTN)ImageContext.ImageAddress, (UINTN)ImageContext.ImageSize); >- >- Status =3D ((EFI_IMAGE_ENTRY_POINT)(UINTN)(ImageContext.EntryPoint)= ) >(NewImageHandle, SystemTable); >- if (EFI_ERROR (Status)) { >- gBS->FreePages (MemoryAddress, NumberOfPages); >- return Status; >- } >- // >- // return error directly the BS will unload this image >- // >- return EFI_ABORTED; >- } >- } >- return EFI_SUCCESS; >-} >diff --git a/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/IpfThunk.h >b/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/IpfThunk.h >deleted file mode 100644 >index 26aa3a694b..0000000000 >--- a/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/IpfThunk.h >+++ /dev/null >@@ -1,102 +0,0 @@ >-/** @file >- >-Copyright (c) 2007 - 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. >- >-**/ >- >-#ifndef _IPF_THUNK_H_ >-#define _IPF_THUNK_H_ >- >-#include "LegacyBiosInterface.h" >-#include >- >-/** >- Template of real mode code. >- >- @param CodeStart Start address of code. >- @param CodeEnd End address of code >- @param ReverseThunkStart Start of reverse thunk. >- @param IntThunk Low memory thunk. >- >-**/ >-VOID >-RealModeTemplate ( >- OUT UINTN *CodeStart, >- OUT UINTN *CodeEnd, >- OUT UINTN *ReverseThunkStart, >- LOW_MEMORY_THUNK *IntThunk >- ); >- >-/** >- Register physical address of Esal Data Area >- >- @param ReverseThunkCodeAddress Reverse Thunk Address >- @param IntThunkAddress IntThunk Address >- >- @retval EFI_SUCCESS ESAL data area set successfully. >- >-**/ >-EFI_STATUS >-EsalSetSalDataArea ( >- IN UINTN ReverseThunkCodeAddress, >- IN UINTN IntThunkAddress >- ); >- >-/** >- Get address of reverse thunk. >- >- @retval EFI_SAL_SUCCESS Address of reverse thunk returned successfully. >- >-**/ >-SAL_RETURN_REGS >-EsalGetReverseThunkAddress ( >- VOID >- ); >- >-typedef struct { >- UINT32 Eax; // 0 >- UINT32 Ecx; // 4 >- UINT32 Edx; // 8 >- UINT32 Ebx; // 12 >- UINT32 Esp; // 16 >- UINT32 Ebp; // 20 >- UINT32 Esi; // 24 >- UINT32 Edi; // 28 >- UINT32 Eflag; // 32 >- UINT32 Eip; // 36 >- UINT16 Cs; // 40 >- UINT16 Ds; // 42 >- UINT16 Es; // 44 >- UINT16 Fs; // 46 >- UINT16 Gs; // 48 >- UINT16 Ss; // 50 >-} IPF_DWORD_REGS; >- >-/** >- Entrypoint of IA32 code. >- >- @param CallTypeData Data of call type >- @param DwordRegister Register set of IA32 general registers >- and segment registers >- @param StackPointer Stack pointer. >- @param StackSize Size of stack. >- >-**/ >-VOID >-EfiIaEntryPoint ( >- UINT64 CallTypeData, >- IPF_DWORD_REGS *DwordRegister, >- UINT64 StackPointer, >- UINT64 StackSize >- ); >- >-#endif >diff --git a/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/IpfThunk.i >b/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/IpfThunk.i >deleted file mode 100644 >index 441bb25e3d..0000000000 >--- a/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/IpfThunk.i >+++ /dev/null >@@ -1,89 +0,0 @@ >-//// @file >-// >-// 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 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. >-// >-//// >- >-#define NUM_REAL_GDT_ENTRIES > 3 >-#define LOW_STACK_SIZE > (8*1024) // 8k? >- >-// >-// Low memory Thunk Structure >-// >-#define Code > 0 >-#define LowReverseThunkStart > Code + 4096 >-#define GdtDesc > LowReverseThunkStart + 4 >-#define IdtDesc > GdtDesc + 6 >-#define FlatSs > IdtDesc + 6 >-#define FlatEsp > FlatSs + 4 >-#define LowCodeSelector > FlatEsp + 4 >-#define LowDataSelector > LowCodeSelector + 4 >-#define LowStack > LowDataSelector + 4 >-#define RealModeIdtDesc > LowStack + 4 >-#define RealModeGdt > RealModeIdtDesc + 6 >-#define RealModeGdtDesc > RealModeGdt + (8 * NUM_REAL_GDT_ENTRIES) >-#define RevRealDs > RealModeGdtDesc + 6 >-#define RevRealSs > RevRealDs + 2 >-#define RevRealEsp > RevRealSs + 2 >-#define RevRealIdtDesc > RevRealEsp + 4 >-#define RevFlatDataSelector > RevRealIdtDesc + 6 >-#define RevFlatStack > RevFlatDataSelector + 2 >-#define Stack > RevFlatStack + 4 >-#define RevThunkStack > Stack + LOW_STACK_SIZE >- >-#define EfiToLegacy16InitTable > RevThunkStack + LOW_STACK_SIZE >-#define InitTableBiosLessThan1MB > EfiToLegacy16InitTable >-#define InitTableHiPmmMemory > InitTableBiosLessThan1MB + 4 >-#define InitTablePmmMemorySizeInBytes > InitTableHiPmmMemory + 4 >-#define InitTableReverseThunkCallSegment > InitTablePmmMemorySizeInBytes + 4 >-#define InitTableReverseThunkCallOffset > InitTableReverseThunkCallSegment + 2 >-#define InitTableNumberE820Entries > InitTableReverseThunkCallOffset + 2 >-#define InitTableOsMemoryAbove1Mb > InitTableNumberE820Entries + 4 >-#define InitTableThunkStart > InitTableOsMemoryAbove1Mb + 4 >-#define InitTableThunkSizeInBytes > InitTableThunkStart + 4 >-#define InitTable16InitTableEnd > InitTableThunkSizeInBytes + 4 >- >-#define EfiToLegacy16BootTable > InitTable16InitTableEnd >-#define BootTableBiosLessThan1MB > EfiToLegacy16BootTable >-#define BootTableHiPmmMemory > BootTableBiosLessThan1MB + 4 >-#define BootTablePmmMemorySizeInBytes > BootTableHiPmmMemory + 4 >-#define BootTableReverseThunkCallSegment > BootTablePmmMemorySizeInBytes + 4 >-#define BootTableReverseThunkCallOffset > BootTableReverseThunkCallSegment + 2 >-#define BootTableNumberE820Entries > BootTableReverseThunkCallOffset + 2 >-#define BootTableOsMemoryAbove1Mb > BootTableNumberE820Entries + 4 >-#define BootTableThunkStart > BootTableOsMemoryAbove1Mb + 4 >-#define BootTableThunkSizeInBytes > BootTableThunkStart + 4 >-#define EfiToLegacy16BootTableEnd > BootTableThunkSizeInBytes + 4 >- >-#define InterruptRedirectionCode > EfiToLegacy16BootTableEnd >-#define PciHandler > InterruptRedirectionCode + 32 >- >- >-// >-// Register Sets (16 Bit) >-// >- >-#define AX 0 >-#define BX 2 >-#define CX 4 >-#define DX 6 >-#define SI 8 >-#define DI 10 >-#define Flags 12 >-#define ES 14 >-#define CS 16 >-#define SS 18 >-#define DS 20 >-#define BP 22 >- >- >- >diff --git a/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/IpfThunk.s >b/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/IpfThunk.s >deleted file mode 100644 >index fc56176934..0000000000 >--- a/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/IpfThunk.s >+++ /dev/null >@@ -1,524 +0,0 @@ >-//// @file >-// >-// Copyright (c) 1999 - 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. >-// >-//// >- >-.file "IpfThunk.s" >- >-#include "IpfMacro.i" >-#include "Ipf/IpfThunk.i" >- >-.align 0x10 >-//-----------------------------------------------------------------------= ------ >-//++ >-// EfiIaEntryPoint >-// >-// Register physical address of Esal Data Area >-// >-// On Entry : >-// in1 =3D ptr to legacy bios reg >-// in2 =3D ptr to Call Stack >-// in3 =3D Call Stack Size >-// >-// Return Value: >-// r8 =3D SAL_SUCCESS >-// >-// As per static calling conventions. >-// >-//-- >-//-----------------------------------------------------------------------= ---- >-PROCEDURE_ENTRY(EfiIaEntryPoint) >- >- alloc loc0 =3D 8,10,8,0;; >- >- mov out0 =3D r0;; >- mov out1 =3D r0;; >- mov out2 =3D r0;; >- mov out3 =3D r0;; >- mov out4 =3D r0;; >- mov out5 =3D r0;; >- mov out6 =3D r0;; >- mov out7 =3D r0;; >- >- mov loc1 =3D b0;; > // save efi (b0) >- mov loc2 =3D psr;; // >save efi (PSR) >- mov loc3 =3D gp;; > // save efi (GP) >- mov loc4 =3D pr;; > // save efi (PR) >- mov loc5 =3D sp;; > // save efi (SP) >- mov loc6 =3D r13;; // >save efi (TP) >- mov loc7 =3D ar.lc;; // >save efi (LC) >- mov loc8 =3D ar.fpsr;; // save efi >(FPSR) >- >- mov r8 =3D r0;; > // return status >- mov r9 =3D r0;; > // return value >- mov r10 =3D r0;; > // return value >- mov r11 =3D r0;; > // return value >- >-bios_int_func:: >- rsm 0x4000;; > // i(14)=3D0, disable interrupt >- srlz.d;; >- srlz.i;; >- >-//---------------------// >-// save fp registers // >-//---------------------// >- >- dep sp =3D 0,sp,0,4;; > // align 16 >- add sp =3D -16,sp;; > // post decrement >- >-int_ip_1x:: >- mov r2 =3D ip;; >- add r2 =3D (int_ip_1y - int_ip_1x),r2;; >- mov b7 =3D r2;; >- br save_fp_registers;; >- >-int_ip_1y:: >- add sp =3D 16,sp;; // adjust (SP) >- mov loc9 =3D sp;; > // save (SP) >- adds sp =3D 0x10,in1;; // >in1 + 0x10 =3D SP >- ld4 sp =3D [sp];; > // SP >- adds r17 =3D 0x32,in1;; // in1 + >0x32 =3D SS >- ld2 r17 =3D [r17];; // >SS >- movl r2 =3D 0xffffffff;; // if no SS:SP, >then define new SS:SP >- cmp.ne p6,p0 =3D sp,r2;; >- movl r2 =3D 0xffff;; >- cmp.ne.or p6,p0 =3D r17,r2;; >- (p6) br.sptk bif_1;; >- >- mov sp =3D in3;; > // 16-bit stack pointer >- mov r2 =3D psr;; >- tbit.z p6,p7 =3D r2,17;; // psr.dt >(Physical OR Virtual) >- >-bif_ip1x:: >- mov r2 =3D in2;; > // ia32 callback stack top >- mov r3 =3D in3;; > // 16-bit stack pointer >- sub r2 =3D r2,r3;; >- shr.u r17 =3D r2,4;; // >16-bit stack segment >- >-bif_1:: >- extr.u sp =3D sp,0,16;; // SP (16- >bit sp for legacy code) >- dep sp =3D 0,sp,0,3;; // align 8 >- cmp.eq p6,p0 =3D 0,sp;; // if SP=3D0000 then = wrap to >0x10000 >- (p6) dep sp =3D -1,sp,16,1;; >- shladd r2 =3D r17,4,sp;; // ESP =3D >SS<<4+SP >- add r2 =3D -8,r2;; > // post decrement 64 bit pointer >- add sp =3D -8,sp;; > // post decrement SP >- >-sale_ip1x:: >- mov r18 =3D ip;; >- adds r18 =3D (sale_ip1y - sale_ip1x),r18;; >- sub r18 =3D r18,r2;; // >return address - CS base >- add r18 =3D r18,sp;; > // adjustment for stack >- shl r18 =3D r18,32;; >- movl r19 =3D 0xb80f66fa;; // CLI, JMPE >xxxxxxxx >- or r18 =3D r18,r19;; >- st8 [r2] =3D r18;; // >(FA,66,0F,B8,xx,xx,xx,xx) >- >- cmp.eq p6,p0 =3D 0,sp;; // if SP=3D0000 then >wrap to 0x10000 >- (p6) dep sp =3D -1,sp,16,1;; >- shladd r2 =3D r17,4,sp;; // >ESP=3DSS<<4+SP >- add r2 =3D -2,r2;; > // post decrement 64 bit pointer >- add sp =3D -2,sp;; > // post decrement SP >- >- movl r18 =3D 0x8000000000000100;; // CALL FAR >function >- cmp.eq p6,p7 =3D in0,r18;; >- (p6) add r19 =3D 0x28,in1;; // in1 + 0x28 =3D CS >- (p6) ld2 r18 =3D [r19],-4;; // CS >- (p6) st2 [r2] =3D r18,-2;; // in1 + >0x24 =3D EIP >- (p6) ld2 r18 =3D [r19];; // >EIP >- (p6) st2 [r2] =3D r18,-2;; // >- (p6) movl r18 =3D 0x9a90;; // nop, CALLFAR >xxxx:yyyy >- >- (p7) movl r18 =3D 0xcd;; // INT xx >- (p7) dep r18 =3D in0,r18,8,8;; >- st2 [r2] =3D r18;; > // (CD,xx) >- >- mov r18 =3D r2;; // EIP for legacy exe= cution >- >-//------------------------------// >-// flush 32 bytes legacy code // >-//------------------------------// >- >- dep r2 =3D 0,r2,0,5;; // align to 32 >- fc r2;; >- sync.i;; >- srlz.i;; >- srlz.d;; >- >-//------------------------------// >-// load legacy registers // >-//------------------------------// >- mov r2 =3D in1;; > // IA32 BIOS register state >- ld4 r8 =3D [r2],4;; > // in1 + 0 =3D EAX >- ld4 r9 =3D [r2],4;; > // in1 + 4 =3D ECX >- ld4 r10 =3D [r2],4;; > // in1 + 8 =3D EDX >- ld4 r11 =3D [r2],4;; > // in1 + 12 =3D EBX >- >- add r2 =3D 4,r2;; > // in1 + 16 =3D ESP (skip) >- >- ld4 r13 =3D [r2],4;; > // in1 + 20 =3D EBP >- ld4 r14 =3D [r2],4;; > // in1 + 24 =3D ESI >- ld4 r15 =3D [r2],4;; > // in1 + 28 =3D EDI >- ld4 r3 =3D [r2],4;; > // in1 + 32 =3D EFLAGS >- mov ar.eflag =3D r3;; >- >- add r2 =3D 4,r2;; > // in1 + 36 =3D EIP (skip) >- add r2 =3D 2,r2;; > // in1 + 40 =3D CS (skip) >- >- ld2 r16 =3D [r2],2;; > // in1 + 42 =3D DS, (r16 =3D GS,FS,ES,DS) >- movl r27 =3D 0xc93fffff00000000;; >- dep r27 =3D r16,r27,4,16;; > // r27 =3D DSD >- >- ld2 r19 =3D [r2],2;; > // in1 + 44 =3D ES >- dep r16 =3D r19,r16,16,16;; >- movl r24 =3D 0xc93fffff00000000;; >- dep r24 =3D r19,r24,4,16;; > // r24 =3D ESD >- >- ld2 r19 =3D [r2],2;; > // in1 + 46 =3D FS >- dep r16 =3D r19,r16,32,16;; >- movl r28 =3D 0xc93fffff00000000;; >- dep r28 =3D r19,r28,4,16;; > // r28 =3D FSD >- >- ld2 r19 =3D [r2],2;; > // in1 + 48 =3D GS >- dep r16 =3D r19,r16,48,16;; >- movl r29 =3D 0xc93fffff00000000;; >- dep r29 =3D r19,r29,4,16;; > // r29 =3D GSD >- >- mov r30 =3D r0;; > // r30 =3D LDTD, clear NaT >- mov r31 =3D r0;; > // r31 =3D GDTD, clear NaT >- >- dep r17 =3D r17,r17,16,16;; > // CS =3D SS, (r17 =3D TSS,LDT,SS,CS) >- >- movl r3 =3D 0x0930ffff00000000;; >- dep r3 =3D r17,r3,4,16;; >- mov ar.csd =3D r3;; > // ar25 =3D CSD >- mov ar.ssd =3D r3;; > // ar26 =3D SSD >- >-//------------------------------// >-// give control to INT function // >-//------------------------------// >- >- br.call.sptk b0 =3D execute_int_function;; >- >-//------------------------------// >-// store legacy registers // >-//------------------------------// >- >- mov r2 =3D in1;; >- st4 [r2] =3D r8,4;; > // EAX >- st4 [r2] =3D r9,4;; > // ECX >- st4 [r2] =3D r10,4;; > // EDX >- st4 [r2] =3D r11,4;; > // EBX >- >- add r2 =3D 4,r2;; > // ESP (skip) >- >- st4 [r2] =3D r13,4;; > // EBP >- st4 [r2] =3D r14,4;; > // ESI >- st4 [r2] =3D r15,4;; > // EDI >- >- mov r3 =3D ar.eflag;; >- st4 [r2] =3D r3,4;; > // EFLAGS >- >- add r2 =3D 4,r2;; > // EIP (skip) >- add r2 =3D 2,r2;; > // CS (skip) >- >- st2 [r2] =3D r16,2;; > // DS, (r16 =3D GS,FS,ES,DS) >- >- extr.u r3 =3D r16,16,16;; >- st2 [r2] =3D r3,2;; > // ES >- >- extr.u r3 =3D r16,32,16;; >- st2 [r2] =3D r3,2;; > // FS >- >- extr.u r3 =3D r16,48,16;; >- st2 [r2] =3D r3,2;; > // GS >- >-//------------------------------// >-// restore fp registers // >-//------------------------------// >- mov sp =3D loc9;; > // restore (SP) >-int_ip_2x:: >- mov r2 =3D ip;; >- add r2 =3D (int_ip_2y - int_ip_2x),r2;; >- mov b7 =3D r2;; >- br restore_fp_registers;; >- >-int_ip_2y:: >- mov r8 =3D r0;; > // return status >- mov r9 =3D r0;; > // return value >- mov r10 =3D r0;; > // return value >- mov r11 =3D r0;; > // return value >- >- mov ar.fpsr =3D loc8;; // >restore efi (FPSR) >- mov ar.lc =3D loc7;; // >restore efi (LC) >- mov r13 =3D loc6;; > // restore efi (TP) >- mov sp =3D loc5;; > // restore efi (SP) >- mov pr =3D loc4;; > // restore efi (PR) >- mov gp =3D loc3;; > // restore efi (GP) >- mov psr.l =3D loc2;; // >restore efi (PSR) >- srlz.d;; >- srlz.i;; >- mov b0 =3D loc1;; > // restore efi (b0) >- mov ar.pfs =3D loc0;; >- br.ret.sptk b0;; // >return to efi >- >-PROCEDURE_EXIT (EfiIaEntryPoint) >- >-//=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D// >-// EXECUTE_INT_FUNCTION // >-//=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D// >-// switch to virtual address // >-//------------------------------// >- >-execute_int_function:: >- >- alloc r2 =3D 0,0,0,0;; // >cfm.sof=3D0 >- flushrs;; >- >- rsm 0x2000;; > // ic(13)=3D0 for control register programming >- srlz.d;; >- srlz.i;; >- >- mov r2 =3D psr;; >- dep r2 =3D -1,r2,34,1;; // >set is(34) >- dep r2 =3D -1,r2,44,1;; // >set bn(44) >- dep r2 =3D -1,r2,36,1;; // >set it(36) >- dep r2 =3D -1,r2,27,1;; // >set rt(27) >- dep r2 =3D -1,r2,17,1;; // >set dt(17) >- dep r2 =3D 0,r2,3,1;; > // reset ac(3) >- dep r2 =3D -1,r2,13,1;; // >set ic(13) >- >- mov cr.ipsr =3D r2;; >- mov cr.ifs =3D r0;; > // clear interruption function state register >- mov cr.iip =3D r18;; >- >- rfi;; > // go to legacy code execution >- >-//------------------------------// >-// back from legacy code // >-//------------------------------// >-// switch to physical address // >-//------------------------------// >- >-sale_ip1y:: >- rsm 0x6000;; > // i(14)=3D0,ic(13)=3D0 for control reg programming >- srlz.d;; >- srlz.i;; >- >- mov r2 =3D psr;; >- dep r2 =3D -1,r2,44,1;; > // set bn(44) >- dep r2 =3D 0,r2,36,1;; > // reset it(36) >- dep r2 =3D 0,r2,27,1;; > // reset rt(27) >- dep r2 =3D 0,r2,17,1;; > // reset dt(17) >- dep r2 =3D -1,r2,13,1;; > // set ic(13) >- mov cr.ipsr =3D r2;; >- >-sale_ip2x:: >- mov r2 =3D ip;; >- add r2 =3D (sale_ip2y - sale_ip2x),r2;; >- mov cr.ifs =3D r0;; > // clear interruption function state register >- mov cr.iip =3D r2;; >- rfi;; >- >-sale_ip2y:: >- br.ret.sptk b0;; // return to >SAL >- >-//------------------------------// >-// store fp registers // >-//------------------------------// >-save_fp_registers:: >- stf.spill [sp]=3Df2,-16;; stf.spill [sp]=3Df3,-16;; >- stf.spill [sp]=3Df4,-16;; stf.spill [sp]=3Df5,-16;; stf.spill [sp]=3Df= 6,-16;; stf.spill >[sp]=3Df7,-16;; >- stf.spill [sp]=3Df8,-16;; stf.spill [sp]=3Df9,-16;; stf.spill [sp]=3Df= 10,-16;; stf.spill >[sp]=3Df11,-16;; >- stf.spill [sp]=3Df12,-16;; stf.spill [sp]=3Df13,-16;; stf.spill [sp]=3Df= 14,-16;; >stf.spill [sp]=3Df15,-16;; >- stf.spill [sp]=3Df16,-16;; stf.spill [sp]=3Df17,-16;; stf.spill [sp]=3Df= 18,-16;; >stf.spill [sp]=3Df19,-16;; >- stf.spill [sp]=3Df20,-16;; stf.spill [sp]=3Df21,-16;; stf.spill [sp]=3Df= 22,-16;; >stf.spill [sp]=3Df23,-16;; >- stf.spill [sp]=3Df24,-16;; stf.spill [sp]=3Df25,-16;; stf.spill [sp]=3Df= 26,-16;; >stf.spill [sp]=3Df27,-16;; >- stf.spill [sp]=3Df28,-16;; stf.spill [sp]=3Df29,-16;; stf.spill [sp]=3Df= 30,-16;; >stf.spill [sp]=3Df31,-16;; >- stf.spill [sp]=3Df32,-16;; stf.spill [sp]=3Df33,-16;; stf.spill [sp]=3Df= 34,-16;; >stf.spill [sp]=3Df35,-16;; >- stf.spill [sp]=3Df36,-16;; stf.spill [sp]=3Df37,-16;; stf.spill [sp]=3Df= 38,-16;; >stf.spill [sp]=3Df39,-16;; >- stf.spill [sp]=3Df40,-16;; stf.spill [sp]=3Df41,-16;; stf.spill [sp]=3Df= 42,-16;; >stf.spill [sp]=3Df43,-16;; >- stf.spill [sp]=3Df44,-16;; stf.spill [sp]=3Df45,-16;; stf.spill [sp]=3Df= 46,-16;; >stf.spill [sp]=3Df47,-16;; >- stf.spill [sp]=3Df48,-16;; stf.spill [sp]=3Df49,-16;; stf.spill [sp]=3Df= 50,-16;; >stf.spill [sp]=3Df51,-16;; >- stf.spill [sp]=3Df52,-16;; stf.spill [sp]=3Df53,-16;; stf.spill [sp]=3Df= 54,-16;; >stf.spill [sp]=3Df55,-16;; >- stf.spill [sp]=3Df56,-16;; stf.spill [sp]=3Df57,-16;; stf.spill [sp]=3Df= 58,-16;; >stf.spill [sp]=3Df59,-16;; >- stf.spill [sp]=3Df60,-16;; stf.spill [sp]=3Df61,-16;; stf.spill [sp]=3Df= 62,-16;; >stf.spill [sp]=3Df63,-16;; >- stf.spill [sp]=3Df64,-16;; stf.spill [sp]=3Df65,-16;; stf.spill [sp]=3Df= 66,-16;; >stf.spill [sp]=3Df67,-16;; >- stf.spill [sp]=3Df68,-16;; stf.spill [sp]=3Df69,-16;; stf.spill [sp]=3Df= 70,-16;; >stf.spill [sp]=3Df71,-16;; >- stf.spill [sp]=3Df72,-16;; stf.spill [sp]=3Df73,-16;; stf.spill [sp]=3Df= 74,-16;; >stf.spill [sp]=3Df75,-16;; >- stf.spill [sp]=3Df76,-16;; stf.spill [sp]=3Df77,-16;; stf.spill [sp]=3Df= 78,-16;; >stf.spill [sp]=3Df79,-16;; >- stf.spill [sp]=3Df80,-16;; stf.spill [sp]=3Df81,-16;; stf.spill [sp]=3Df= 82,-16;; >stf.spill [sp]=3Df83,-16;; >- stf.spill [sp]=3Df84,-16;; stf.spill [sp]=3Df85,-16;; stf.spill [sp]=3Df= 86,-16;; >stf.spill [sp]=3Df87,-16;; >- stf.spill [sp]=3Df88,-16;; stf.spill [sp]=3Df89,-16;; stf.spill [sp]=3Df= 90,-16;; >stf.spill [sp]=3Df91,-16;; >- stf.spill [sp]=3Df92,-16;; stf.spill [sp]=3Df93,-16;; stf.spill [sp]=3Df= 94,-16;; >stf.spill [sp]=3Df95,-16;; >- stf.spill [sp]=3Df96,-16;; stf.spill [sp]=3Df97,-16;; stf.spill [sp]=3Df= 98,-16;; >stf.spill [sp]=3Df99,-16;; >- stf.spill [sp]=3Df100,-16;;stf.spill [sp]=3Df101,-16;;stf.spill [sp]=3Df= 102,- >16;;stf.spill [sp]=3Df103,-16;; >- stf.spill [sp]=3Df104,-16;;stf.spill [sp]=3Df105,-16;;stf.spill [sp]=3Df= 106,- >16;;stf.spill [sp]=3Df107,-16;; >- stf.spill [sp]=3Df108,-16;;stf.spill [sp]=3Df109,-16;;stf.spill [sp]=3Df= 110,- >16;;stf.spill [sp]=3Df111,-16;; >- stf.spill [sp]=3Df112,-16;;stf.spill [sp]=3Df113,-16;;stf.spill [sp]=3Df= 114,- >16;;stf.spill [sp]=3Df115,-16;; >- stf.spill [sp]=3Df116,-16;;stf.spill [sp]=3Df117,-16;;stf.spill [sp]=3Df= 118,- >16;;stf.spill [sp]=3Df119,-16;; >- stf.spill [sp]=3Df120,-16;;stf.spill [sp]=3Df121,-16;;stf.spill [sp]=3Df= 122,- >16;;stf.spill [sp]=3Df123,-16;; >- stf.spill [sp]=3Df124,-16;;stf.spill [sp]=3Df125,-16;;stf.spill [sp]=3Df= 126,- >16;;stf.spill [sp]=3Df127,-16;; >- invala;; >- br b7;; >- >-//------------------------------// >-// restore fp registers // >-//------------------------------// >-restore_fp_registers:: >- ldf.fill f127=3D[sp],16;;ldf.fill f126=3D[sp],16;;ldf.fill f125=3D[sp],1= 6;;ldf.fill >f124=3D[sp],16;; >- ldf.fill f123=3D[sp],16;;ldf.fill f122=3D[sp],16;;ldf.fill f121=3D[sp],1= 6;;ldf.fill >f120=3D[sp],16;; >- ldf.fill f119=3D[sp],16;;ldf.fill f118=3D[sp],16;;ldf.fill f117=3D[sp],1= 6;;ldf.fill >f116=3D[sp],16;; >- ldf.fill f115=3D[sp],16;;ldf.fill f114=3D[sp],16;;ldf.fill f113=3D[sp],1= 6;;ldf.fill >f112=3D[sp],16;; >- ldf.fill f111=3D[sp],16;;ldf.fill f110=3D[sp],16;;ldf.fill f109=3D[sp],1= 6;;ldf.fill >f108=3D[sp],16;; >- ldf.fill f107=3D[sp],16;;ldf.fill f106=3D[sp],16;;ldf.fill f105=3D[sp],1= 6;;ldf.fill >f104=3D[sp],16;; >- ldf.fill f103=3D[sp],16;;ldf.fill f102=3D[sp],16;;ldf.fill f101=3D[sp],1= 6;;ldf.fill >f100=3D[sp],16;; >- ldf.fill f99=3D[sp],16;; ldf.fill f98=3D[sp],16;; ldf.fill f97=3D[sp],16= ;; ldf.fill >f96=3D[sp],16;; >- ldf.fill f95=3D[sp],16;; ldf.fill f94=3D[sp],16;; ldf.fill f93=3D[sp],16= ;; ldf.fill >f92=3D[sp],16;; >- ldf.fill f91=3D[sp],16;; ldf.fill f90=3D[sp],16;; ldf.fill f89=3D[sp],16= ;; ldf.fill >f88=3D[sp],16;; >- ldf.fill f87=3D[sp],16;; ldf.fill f86=3D[sp],16;; ldf.fill f85=3D[sp],16= ;; ldf.fill >f84=3D[sp],16;; >- ldf.fill f83=3D[sp],16;; ldf.fill f82=3D[sp],16;; ldf.fill f81=3D[sp],16= ;; ldf.fill >f80=3D[sp],16;; >- ldf.fill f79=3D[sp],16;; ldf.fill f78=3D[sp],16;; ldf.fill f77=3D[sp],16= ;; ldf.fill >f76=3D[sp],16;; >- ldf.fill f75=3D[sp],16;; ldf.fill f74=3D[sp],16;; ldf.fill f73=3D[sp],16= ;; ldf.fill >f72=3D[sp],16;; >- ldf.fill f71=3D[sp],16;; ldf.fill f70=3D[sp],16;; ldf.fill f69=3D[sp],16= ;; ldf.fill >f68=3D[sp],16;; >- ldf.fill f67=3D[sp],16;; ldf.fill f66=3D[sp],16;; ldf.fill f65=3D[sp],16= ;; ldf.fill >f64=3D[sp],16;; >- ldf.fill f63=3D[sp],16;; ldf.fill f62=3D[sp],16;; ldf.fill f61=3D[sp],16= ;; ldf.fill >f60=3D[sp],16;; >- ldf.fill f59=3D[sp],16;; ldf.fill f58=3D[sp],16;; ldf.fill f57=3D[sp],16= ;; ldf.fill >f56=3D[sp],16;; >- ldf.fill f55=3D[sp],16;; ldf.fill f54=3D[sp],16;; ldf.fill f53=3D[sp],16= ;; ldf.fill >f52=3D[sp],16;; >- ldf.fill f51=3D[sp],16;; ldf.fill f50=3D[sp],16;; ldf.fill f49=3D[sp],16= ;; ldf.fill >f48=3D[sp],16;; >- ldf.fill f47=3D[sp],16;; ldf.fill f46=3D[sp],16;; ldf.fill f45=3D[sp],16= ;; ldf.fill >f44=3D[sp],16;; >- ldf.fill f43=3D[sp],16;; ldf.fill f42=3D[sp],16;; ldf.fill f41=3D[sp],16= ;; ldf.fill >f40=3D[sp],16;; >- ldf.fill f39=3D[sp],16;; ldf.fill f38=3D[sp],16;; ldf.fill f37=3D[sp],16= ;; ldf.fill >f36=3D[sp],16;; >- ldf.fill f35=3D[sp],16;; ldf.fill f34=3D[sp],16;; ldf.fill f33=3D[sp],16= ;; ldf.fill >f32=3D[sp],16;; >- ldf.fill f31=3D[sp],16;; ldf.fill f30=3D[sp],16;; ldf.fill f29=3D[sp],16= ;; ldf.fill >f28=3D[sp],16;; >- ldf.fill f27=3D[sp],16;; ldf.fill f26=3D[sp],16;; ldf.fill f25=3D[sp],16= ;; ldf.fill >f24=3D[sp],16;; >- ldf.fill f23=3D[sp],16;; ldf.fill f22=3D[sp],16;; ldf.fill f21=3D[sp],16= ;; ldf.fill >f20=3D[sp],16;; >- ldf.fill f19=3D[sp],16;; ldf.fill f18=3D[sp],16;; ldf.fill f17=3D[sp],16= ;; ldf.fill >f16=3D[sp],16;; >- ldf.fill f15=3D[sp],16;; ldf.fill f14=3D[sp],16;; ldf.fill f13=3D[sp],16= ;; ldf.fill >f12=3D[sp],16;; >- ldf.fill f11=3D[sp],16;; ldf.fill f10=3D[sp],16;; ldf.fill f9=3D[sp],16;= ; ldf.fill >f8=3D[sp],16;; >- ldf.fill f7=3D[sp],16;; ldf.fill f6=3D[sp],16;; ldf.fill f5=3D[sp],16;= ; ldf.fill >f4=3D[sp],16;; >- ldf.fill f3=3D[sp],16;; ldf.fill f2=3D[sp],16;; >- invala;; >- br b7;; >- >-//-----------------------------------------------------------------------= ------ >-//++ >-// EsalSetSalDataArea >-// >-// Register physical address of Esal Data Area >-// >-// On Entry : >-// in0 =3D Reverse Thunk Address >-// in1 =3D IntThunk Address >-// >-// Return Value: >-// r8 =3D SAL_SUCCESS >-// >-// As per static calling conventions. >-// >-//-- >-//-----------------------------------------------------------------------= ---- >- >-PROCEDURE_ENTRY (EsalSetSalDataArea) >- >- NESTED_SETUP (4,8,0,0) >- >-EsalCalcStart1_3:: >- mov r8 =3D ip;; >- add r8 =3D (ReverseThunkAddress - EsalCalcStart1_3), r8;; >- st8 [r8] =3D in0;; >- >-EsalCalcStart1_4:: >- mov r8 =3D ip;; >- add r8 =3D (IntThunkAddress - EsalCalcStart1_4), r8;; >- st8 [r8] =3D in1;; >- >- mov r8 =3D r0;; >- >- NESTED_RETURN >- >-PROCEDURE_EXIT (EsalSetSalDataArea) >- >-//-----------------------------------------------------------------------= ------ >-//++ >-// EsagGetReverseThunkAddress >-// >-// Register physical address of Esal Data Area >-// >-// On Entry : >-// out0 =3D CodeStart >-// out1 =3D CodeEnd >-// out1 =3D ReverseThunkCode >-// >-// Return Value: >-// r8 =3D SAL_SUCCESS >-// >-// As per static calling conventions. >-// >-//-- >-//-----------------------------------------------------------------------= ---- >- >-PROCEDURE_ENTRY (EsalGetReverseThunkAddress) >- >- NESTED_SETUP (4,8,0,0) >- >-EsalCalcStart1_31:: >- mov r8 =3D ip;; >- add r8 =3D (Ia32CodeStart - EsalCalcStart1_31), r8;; >- mov r9 =3D r8;; >- >-EsalCalcStart1_41:: >- mov r8 =3D ip;; >- add r8 =3D (Ia32CodeEnd - EsalCalcStart1_41), r8;; >- mov r10 =3D r8;; >- >-EsalCalcStart1_51:: >- mov r8 =3D ip;; >- add r8 =3D (ReverseThunkAddress - EsalCalcStart1_51), r8= ;; >- mov r11 =3D r8;; >- mov r8 =3D r0;; >- >- NESTED_RETURN >- >-PROCEDURE_EXIT (EsalGetReverseThunkAddress) >- >- >-.align 16 >-PROCEDURE_ENTRY (InterruptRedirectionTemplate) >- data8 0x90CFCD08 >- data8 0x90CFCD09 >- data8 0x90CFCD0A >- data8 0x90CFCD0B >- data8 0x90CFCD0C >- data8 0x90CFCD0D >- data8 0x90CFCD0E >- data8 0x90CFCD0F >-PROCEDURE_EXIT (InterruptRedirectionTemplate) >- >-//------------------------------// >-// Reverse Thunk Code // >-//------------------------------// >- >-Ia32CodeStart:: >- br.sptk.few Ia32CodeStart;; // IPF CSM integration = -Bug (Write >This Code) >-ReverseThunkCode:: >- data8 0xb80f66fa // CLI, JMPE xxxx >-ReverseThunkAddress:: >- data8 0 // >Return Address >-IntThunkAddress:: >- data8 0 // >IntThunk Address >-Ia32CodeEnd:: >- >- >- >- >diff --git a/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/Thunk.c >b/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/Thunk.c >deleted file mode 100644 >index e601bbd63b..0000000000 >--- a/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/Thunk.c >+++ /dev/null >@@ -1,550 +0,0 @@ >-/** @file >- Call into 16-bit BIOS code >- >- BugBug: Thunker does A20 gate. Can we get rid of this code or >- put it into Legacy16 code. >- >-Copyright (c) 1999 - 2014, 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 "LegacyBiosInterface.h" >-#include "IpfThunk.h" >- >-/** >- Gets the current flat GDT and IDT descriptors and store them in >- Private->IntThunk. These values are used by the Thunk code. >- This method must be called before every thunk in order to assure >- that the correct GDT and IDT are restored after the thunk. >- >- @param Private Private context for Legacy BIOS >- >- @retval EFI_SUCCESS Should only pass. >- >-**/ >-EFI_STATUS >-LegacyBiosGetFlatDescs ( >- IN LEGACY_BIOS_INSTANCE *Private >- ) >-{ >- return EFI_SUCCESS; >-} >- >- >-/** >- BIOS interrupt call function. >- >- @param BiosInt Int number of BIOS call >- @param Segment Segment number >- @param Offset Offset in segment >- @param Regs IA32 Register set. >- @param Stack Base address of stack >- @param StackSize Size of stack >- >- @retval EFI_SUCCESS BIOS interrupt call succeeds. >- >-**/ >-EFI_STATUS >-BiosIntCall ( >- IN UINT16 BiosInt, >- IN UINT16 Segment, >- IN UINT16 Offset, >- IN EFI_IA32_REGISTER_SET *Regs, >- IN VOID *Stack, >- IN UINTN StackSize >- ) >-{ >- IPF_DWORD_REGS DwordRegs; >- UINT64 IntTypeVariable; >- >- IntTypeVariable =3D 0x8000000000000000; >- IntTypeVariable |=3D (UINT64)BiosInt; >- >- DwordRegs.Cs =3D Segment; >- DwordRegs.Eip =3D Offset; >- >- DwordRegs.Ds =3D Regs->X.DS; >- DwordRegs.Es =3D Regs->X.ES; >- DwordRegs.Fs =3D Regs->X.ES; >- DwordRegs.Gs =3D Regs->X.ES; >- DwordRegs.Ss =3D 0xFFFF; >- >- DwordRegs.Eax =3D Regs->X.AX; >- DwordRegs.Ebx =3D Regs->X.BX; >- // >- // Sometimes, ECX is used to pass in 32 bit data. For example, INT 1Ah,= AX =3D >B10Dh is >- // "PCI BIOS v2.0c + Write Configuration DWORD" and ECX has the dword t= o >write. >- // >- DwordRegs.Ecx =3D Regs->E.ECX; >- DwordRegs.Edx =3D Regs->X.DX; >- >- DwordRegs.Ebp =3D Regs->X.BP; >- DwordRegs.Eflag =3D *((UINT16 *) &Regs->X.Flags); >- >- DwordRegs.Edi =3D Regs->X.DI; >- DwordRegs.Esi =3D Regs->X.SI; >- DwordRegs.Esp =3D 0xFFFFFFFF; >- >- EfiIaEntryPoint (IntTypeVariable, &DwordRegs, ((UINTN) Stack + StackSiz= e), >StackSize); >- >- Regs->X.CS =3D DwordRegs.Cs; >- >- Regs->X.DS =3D (UINT16) DwordRegs.Ds; >- Regs->X.SS =3D (UINT16) DwordRegs.Ss; >- >- Regs->E.EAX =3D DwordRegs.Eax; >- Regs->E.EBX =3D DwordRegs.Ebx; >- Regs->E.ECX =3D DwordRegs.Ecx; >- Regs->E.EDX =3D DwordRegs.Edx; >- >- Regs->E.EBP =3D DwordRegs.Ebp; >- CopyMem (&Regs->X.Flags, &DwordRegs.Eflag, sizeof (EFI_FLAGS_REG)); >- >- Regs->E.EDI =3D DwordRegs.Edi; >- Regs->E.ESI =3D DwordRegs.Esi; >- >- return EFI_SUCCESS; >-} >- >- >-/** >- Template of real mode code. >- >- @param CodeStart Start address of code. >- @param CodeEnd End address of code >- @param ReverseThunkStart Start of reverse thunk. >- @param IntThunk Low memory thunk. >- >-**/ >-VOID >-RealModeTemplate ( >- OUT UINTN *CodeStart, >- OUT UINTN *CodeEnd, >- OUT UINTN *ReverseThunkStart, >- LOW_MEMORY_THUNK *IntThunk >- ) >-{ >- SAL_RETURN_REGS SalStatus; >- >- SalStatus =3D EsalGetReverseThunkAddress (); >- >- *CodeStart =3D SalStatus.r9; >- *CodeEnd =3D SalStatus.r10; >- *ReverseThunkStart =3D SalStatus.r11; >- >-} >- >- >-/** >- Allocate memory < 1 MB and copy the thunker code into low memory. Se up >- all the descriptors. >- >- @param Private Private context for Legacy BIOS >- >- @retval EFI_SUCCESS Should only pass. >- >-**/ >-EFI_STATUS >-LegacyBiosInitializeThunk ( >- IN LEGACY_BIOS_INSTANCE *Private >- ) >-{ >- GDT32 *CodeGdt; >- GDT32 *DataGdt; >- UINTN CodeStart; >- UINTN CodeEnd; >- UINTN ReverseThunkStart; >- UINT32 Base; >- LOW_MEMORY_THUNK *IntThunk; >- UINTN TempData; >- >- ASSERT (Private); >- >- IntThunk =3D Private->IntThunk; >- >- // >- // Clear the reserved descriptor >- // >- ZeroMem (&(IntThunk->RealModeGdt[0]), sizeof (GDT32)); >- >- // >- // Setup a descriptor for real-mode code >- // >- CodeGdt =3D &(IntThunk->RealModeGdt[1]); >- >- // >- // Fill in the descriptor with our real-mode segment value >- // >- CodeGdt->Type =3D 0xA; >- // >- // code/read >- // >- CodeGdt->System =3D 1; >- CodeGdt->Dpl =3D 0; >- CodeGdt->Present =3D 1; >- CodeGdt->Software =3D 0; >- CodeGdt->Reserved =3D 0; >- CodeGdt->DefaultSize =3D 0; >- // >- // 16 bit operands >- // >- CodeGdt->Granularity =3D 0; >- >- CodeGdt->LimitHi =3D 0; >- CodeGdt->LimitLo =3D 0xffff; >- >- Base =3D (*((UINT32 *) &IntThunk->Code)); >- CodeGdt->BaseHi =3D (Base >> 24) & 0xFF; >- CodeGdt->BaseMid =3D (Base >> 16) & 0xFF; >- CodeGdt->BaseLo =3D Base & 0xFFFF; >- >- // >- // Setup a descriptor for read-mode data >- // >- DataGdt =3D &(IntThunk->RealModeGdt[2]); >- CopyMem (DataGdt, CodeGdt, sizeof (GDT32)); >- >- DataGdt->Type =3D 0x2; >- // >- // read/write data >- // >- DataGdt->BaseHi =3D 0x0; >- // >- // Base =3D 0 >- // >- DataGdt->BaseMid =3D 0x0; >- // >- DataGdt->BaseLo =3D 0x0; >- // >- DataGdt->LimitHi =3D 0x0F; >- // >- // Limit =3D 4Gb >- // >- DataGdt->LimitLo =3D 0xFFFF; >- // >- DataGdt->Granularity =3D 0x1; >- // >- // >- // Compute selector value >- // >- IntThunk->RealModeGdtDesc.Limit =3D (UINT16) (sizeof (IntThunk- >>RealModeGdt) - 1); >- CopyMem (&IntThunk->RealModeGdtDesc.Base, (UINT32 *) &IntThunk- >>RealModeGdt, sizeof (UINT32)); >- // >- // IntThunk->RealModeGdtDesc.Base =3D *((UINT32*) &IntThunk- >>RealModeGdt); >- // >- IntThunk->RealModeIdtDesc.Limit =3D 0xFFFF; >- IntThunk->RealModeIdtDesc.Base =3D 0; >- IntThunk->LowCodeSelector =3D (UINT32) ((UINTN) CodeGdt - IntThun= k- >>RealModeGdtDesc.Base); >- IntThunk->LowDataSelector =3D (UINT32) ((UINTN) DataGdt - IntThun= k- >>RealModeGdtDesc.Base); >- >- // >- // Initialize low real-mode code thunk >- // >- RealModeTemplate (&CodeStart, &CodeEnd, &ReverseThunkStart, >IntThunk); >- >- TempData =3D (UINTN) &(IntThunk->Code); >- IntThunk->LowReverseThunkStart =3D ((UINT32) TempData + (UINT32) >(ReverseThunkStart - CodeStart)); >- >- EsalSetSalDataArea (TempData, (UINTN) IntThunk); >- CopyMem (IntThunk->Code, (VOID *) CodeStart, CodeEnd - CodeStart); >- >- IntThunk->EfiToLegacy16InitTable.ReverseThunkCallSegment =3D >EFI_SEGMENT (*((UINT32 *) &IntThunk->LowReverseThunkStart)); >- IntThunk->EfiToLegacy16InitTable.ReverseThunkCallOffset =3D EFI_OFFSET >(*((UINT32 *) &IntThunk->LowReverseThunkStart)); >- >- return EFI_SUCCESS; >-} >- >- >-/** >- Thunk to 16-bit real mode and execute a software interrupt with a vecto= r >- of BiosInt. Regs will contain the 16-bit register context on entry and >- exit. >- >- @param This Protocol instance pointer. >- @param BiosInt Processor interrupt vector to invoke >- @param Regs Register contexted passed into (and returned= ) from >- thunk to 16-bit mode >- >- @retval FALSE Thunk completed, and there were no BIOS erro= rs in >the >- target code. See Regs for status. >- @retval TRUE There was a BIOS erro in the target code. >- >-**/ >-BOOLEAN >-EFIAPI >-LegacyBiosInt86 ( >- IN EFI_LEGACY_BIOS_PROTOCOL *This, >- IN UINT8 BiosInt, >- IN EFI_IA32_REGISTER_SET *Regs >- ) >-{ >- EFI_STATUS Status; >- LEGACY_BIOS_INSTANCE *Private; >- LOW_MEMORY_THUNK *IntThunk; >- UINT16 *Stack16; >- EFI_TPL OriginalTpl; >- UINTN IaSegment; >- UINTN IaOffset; >- UINTN *Address; >- UINTN TempData; >- >- Private =3D LEGACY_BIOS_INSTANCE_FROM_THIS (This); >- IntThunk =3D Private->IntThunk; >- >- // >- // Get the current flat GDT, IDT, and SS and store them in Private->Int= Thunk. >- // >- Status =3D LegacyBiosGetFlatDescs (Private); >- ASSERT_EFI_ERROR (Status); >- >- Regs->X.Flags.Reserved1 =3D 1; >- Regs->X.Flags.Reserved2 =3D 0; >- Regs->X.Flags.Reserved3 =3D 0; >- Regs->X.Flags.Reserved4 =3D 0; >- Regs->X.Flags.IOPL =3D 3; >- Regs->X.Flags.NT =3D 0; >- Regs->X.Flags.IF =3D 1; >- Regs->X.Flags.TF =3D 0; >- Regs->X.Flags.CF =3D 0; >- // >- // Clear the error flag; thunk code may set it. >- // >- Stack16 =3D (UINT16 *) (IntThunk->Stack + LOW_STACK_SIZE); >- >- // >- // Copy regs to low memory stack >- // >- Stack16 -=3D sizeof (EFI_IA32_REGISTER_SET) / sizeof (UINT16); >- CopyMem (Stack16, Regs, sizeof (EFI_IA32_REGISTER_SET)); >- >- // >- // Provide low stack esp >- // >- TempData =3D ((UINTN) Stack16) - ((UINTN) IntThunk); >- IntThunk->LowStack =3D *((UINT32 *) &TempData); >- >- // >- // Stack for reverse thunk flat mode. >- // It must point to top of stack (end of stack space). >- // >- TempData =3D ((UINTN) IntThunk->RevThunkStack) + >LOW_STACK_SIZE; >- IntThunk->RevFlatStack =3D *((UINT32 *) &TempData); >- >- // >- // The call to Legacy16 is a critical section to EFI >- // >- OriginalTpl =3D gBS->RaiseTPL (TPL_HIGH_LEVEL); >- >- // >- // Set Legacy16 state. 0x08, 0x70 is legacy 8259 vector bases. >- // >- Status =3D Private->Legacy8259->SetMode (Private->Legacy8259, >Efi8259LegacyMode, NULL, NULL); >- ASSERT_EFI_ERROR (Status); >- >- // >- // Call the real mode thunk code >- // >- TempData =3D BiosInt * 4; >- Address =3D (UINTN *) TempData; >- IaOffset =3D 0xFFFF & (*Address); >- IaSegment =3D 0xFFFF & ((*Address) >> 16); >- >- Status =3D BiosIntCall ( >- BiosInt, >- (UINT16) IaSegment, >- (UINT16) IaOffset, >- (EFI_IA32_REGISTER_SET *) Stack16, >- IntThunk, >- IntThunk->LowStack >- ); >- >- // >- // Check for errors with the thunk >- // >- switch (Status) { >- case THUNK_OK: >- break; >- >- case THUNK_ERR_A20_UNSUP: >- case THUNK_ERR_A20_FAILED: >- default: >- // >- // For all errors, set EFLAGS.CF (used by legacy BIOS to indicate err= or). >- // >- Regs->X.Flags.CF =3D 1; >- break; >- } >- >- Status =3D Private->Legacy8259->SetMode (Private->Legacy8259, >Efi8259ProtectedMode, NULL, NULL); >- ASSERT_EFI_ERROR (Status); >- >- // >- // End critical section >- // >- gBS->RestoreTPL (OriginalTpl); >- >- // >- // Return the resulting registers >- // >- CopyMem (Regs, Stack16, sizeof (EFI_IA32_REGISTER_SET)); >- >- return (BOOLEAN) (Regs->X.Flags.CF !=3D 0); >-} >- >- >-/** >- Thunk to 16-bit real mode and call Segment:Offset. Regs will contain th= e >- 16-bit register context on entry and exit. Arguments can be passed on >- the Stack argument >- >- @param This Protocol instance pointer. >- @param Segment Segemnt of 16-bit mode call >- @param Offset Offset of 16-bit mdoe call >- @param Regs Register contexted passed into (and returned= ) from >- thunk to 16-bit mode >- @param Stack Caller allocated stack used to pass argument= s >- @param StackSize Size of Stack in bytes >- >- @retval FALSE Thunk completed, and there were no BIOS erro= rs in >the >- target code. See Regs for status. >- @retval TRUE There was a BIOS erro in the target code. >- >-**/ >-BOOLEAN >-EFIAPI >-LegacyBiosFarCall86 ( >- IN EFI_LEGACY_BIOS_PROTOCOL *This, >- IN UINT16 Segment, >- IN UINT16 Offset, >- IN EFI_IA32_REGISTER_SET *Regs, >- IN VOID *Stack, >- IN UINTN StackSize >- ) >-{ >- EFI_STATUS Status; >- LEGACY_BIOS_INSTANCE *Private; >- LOW_MEMORY_THUNK *IntThunk; >- UINT16 *Stack16; >- EFI_TPL OriginalTpl; >- UINTN IaSegment; >- UINTN IaOffset; >- UINTN TempData; >- >- Private =3D LEGACY_BIOS_INSTANCE_FROM_THIS (This); >- IntThunk =3D Private->IntThunk; >- IaSegment =3D Segment; >- IaOffset =3D Offset; >- >- // >- // Get the current flat GDT and IDT and store them in Private->IntThunk= . >- // >- Status =3D LegacyBiosGetFlatDescs (Private); >- ASSERT_EFI_ERROR (Status); >- >- Regs->X.Flags.Reserved1 =3D 1; >- Regs->X.Flags.Reserved2 =3D 0; >- Regs->X.Flags.Reserved3 =3D 0; >- Regs->X.Flags.Reserved4 =3D 0; >- Regs->X.Flags.IOPL =3D 3; >- Regs->X.Flags.NT =3D 0; >- Regs->X.Flags.IF =3D 1; >- Regs->X.Flags.TF =3D 0; >- Regs->X.Flags.CF =3D 0; >- // >- // Clear the error flag; thunk code may set it. >- // >- Stack16 =3D (UINT16 *) (IntThunk->Stack + LOW_STACK_SIZE); >- if (Stack !=3D NULL && StackSize !=3D 0) { >- // >- // Copy Stack to low memory stack >- // >- Stack16 -=3D StackSize / sizeof (UINT16); >- CopyMem (Stack16, Stack, StackSize); >- } >- // >- // Copy regs to low memory stack >- // >- Stack16 -=3D sizeof (EFI_IA32_REGISTER_SET) / sizeof (UINT16); >- CopyMem (Stack16, Regs, sizeof (EFI_IA32_REGISTER_SET)); >- >- // >- // Provide low stack esp >- // >- TempData =3D ((UINTN) Stack16) - ((UINTN) IntThunk); >- IntThunk->LowStack =3D *((UINT32 *) &TempData); >- >- // >- // The call to Legacy16 is a critical section to EFI >- // >- OriginalTpl =3D gBS->RaiseTPL (TPL_HIGH_LEVEL); >- >- // >- // Set Legacy16 state. 0x08, 0x70 is legacy 8259 vector bases. >- // >- Status =3D Private->Legacy8259->SetMode (Private->Legacy8259, >Efi8259LegacyMode, NULL, NULL); >- ASSERT_EFI_ERROR (Status); >- >- // >- // Call the real mode thunk code >- // >- Status =3D BiosIntCall ( >- 0x100, >- (UINT16) IaSegment, >- (UINT16) IaOffset, >- (EFI_IA32_REGISTER_SET *) Stack16, >- IntThunk, >- IntThunk->LowStack >- ); >- >- // >- // Check for errors with the thunk >- // >- switch (Status) { >- case THUNK_OK: >- break; >- >- case THUNK_ERR_A20_UNSUP: >- case THUNK_ERR_A20_FAILED: >- default: >- // >- // For all errors, set EFLAGS.CF (used by legacy BIOS to indicate err= or). >- // >- Regs->X.Flags.CF =3D 1; >- break; >- } >- // >- // Restore protected mode interrupt state >- // >- Status =3D Private->Legacy8259->SetMode (Private->Legacy8259, >Efi8259ProtectedMode, NULL, NULL); >- ASSERT_EFI_ERROR (Status); >- >- // >- // End critical section >- // >- gBS->RestoreTPL (OriginalTpl); >- >- // >- // Return the resulting registers >- // >- CopyMem (Regs, Stack16, sizeof (EFI_IA32_REGISTER_SET)); >- Stack16 +=3D sizeof (EFI_IA32_REGISTER_SET) / sizeof (UINT16); >- >- if (Stack !=3D NULL && StackSize !=3D 0) { >- // >- // Copy low memory stack to Stack >- // >- CopyMem (Stack, Stack16, StackSize); >- Stack16 +=3D StackSize / sizeof (UINT16); >- } >- >- return (BOOLEAN) (Regs->X.Flags.CF !=3D 0); >-} >diff --git >a/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf >b/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf >index a1b94b4399..6eb01fc185 100644 >--- a/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf >+++ b/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBiosDxe.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 >+# VALID_ARCHITECTURES =3D IA32 X64 > # > > [Sources] >@@ -54,13 +54,6 @@ > LegacyBbs.c > LegacySio.c > >-[Sources.IPF] >- Ipf/IpfThunk.s >- Ipf/Thunk.c >- Ipf/IpfThunk.i >- Ipf/IpfBootSupport.c >- Ipf/IpfThunk.h >- > [Packages] > MdePkg/MdePkg.dec > MdeModulePkg/MdeModulePkg.dec >@@ -95,11 +88,6 @@ > UefiRuntimeServicesTableLib > BaseLib > >-[LibraryClasses.IPF] >- IoLib >- UefiRuntimeServicesTableLib >- >- > [Guids] > gEfiDiskInfoIdeInterfaceGuid ## SOMETIMES_CONSUMES ##G= UID >#Used in LegacyBiosBuildIdeData() to assure device is a disk > gEfiSmbiosTableGuid ## SOMETIMES_CONSUMES >##SystemTable >diff --git >a/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBiosInterface.h >b/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBiosInterface.h >index 9f3a1a693c..13b9b530c5 100644 >--- a/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBiosInterface.h >+++ >b/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBiosInterface.h >@@ -169,12 +169,6 @@ typedef struct { > #define CONVENTIONAL_MEMORY_TOP 0xA0000 // 640 KB > #define INITIAL_VALUE_BELOW_1K 0x0 > >-#elif defined (MDE_CPU_IPF) >- >-#define NUM_REAL_GDT_ENTRIES 3 >-#define CONVENTIONAL_MEMORY_TOP 0x80000 // 512 KB >-#define INITIAL_VALUE_BELOW_1K 0xff >- > #endif > > #pragma pack(1) >@@ -346,79 +340,6 @@ typedef struct { > BBS_TABLE BbsTable[MAX_BBS_ENTRIES]; > } LOW_MEMORY_THUNK; > >-#elif defined (MDE_CPU_IPF) >- >-typedef struct { >- // >- // Space for the code >- // The address of Code is also the beginning of the relocated Thunk co= de >- // >- CHAR8 Code[4096]; // ? >- // >- // The address of the Reverse Thunk code >- // Note that this member CONTAINS the address of the relocated reverse >thunk >- // code unlike the member variable 'Code', which IS the address of the >Thunk >- // code. >- // >- UINT32 LowReverseThunkStart; >- >- // >- // Data for the code (cs releative) >- // >- DESCRIPTOR32 GdtDesc; // Protected mode G= DT >- DESCRIPTOR32 IdtDesc; // Protected mode I= DT >- UINT32 FlatSs; >- UINT32 FlatEsp; >- >- UINT32 LowCodeSelector; // Low code selecto= r in GDT >- UINT32 LowDataSelector; // Low data selecto= r in GDT >- UINT32 LowStack; >- DESCRIPTOR32 RealModeIdtDesc; >- >- // >- // real-mode GDT (temporary GDT with two real mode segment descriptors) >- // >- GDT32 RealModeGdt[NUM_REAL_GDT_ENTRIES]; >- DESCRIPTOR32 RealModeGdtDesc; >- >- // >- // Members specifically for the reverse thunk >- // The RevReal* members are used to store the current state of real mo= de >- // before performing the reverse thunk. The RevFlat* members must be >set >- // before calling the reverse thunk assembly code. >- // >- UINT16 RevRealDs; >- UINT16 RevRealSs; >- UINT32 RevRealEsp; >- DESCRIPTOR32 RevRealIdtDesc; >- UINT16 RevFlatDataSelector; // Flat data se= lector in GDT >- UINT32 RevFlatStack; >- >- // >- // A low memory stack >- // >- CHAR8 Stack[LOW_STACK_SIZE]; >- >- // >- // Stack for flat mode after reverse thunk >- // @bug - This may no longer be necessary if the reverse thunk interfac= e >- // is changed to have the flat stack in a different location. >- // >- CHAR8 RevThunkStack[LOW_STACK_SIZE]; >- >- // >- // Legacy16 Init memory map info >- // >- EFI_TO_COMPATIBILITY16_INIT_TABLE EfiToLegacy16InitTable; >- >- EFI_TO_COMPATIBILITY16_BOOT_TABLE EfiToLegacy16BootTable; >- >- CHAR8 InterruptRedirectionCode[32]; >- EFI_LEGACY_INSTALL_PCI_HANDLER PciHandler; >- EFI_DISPATCH_OPROM_TABLE DispatchOpromTable; >- BBS_TABLE BbsTable[MAX_BBS_ENTRIES]; >-} LOW_MEMORY_THUNK; >- > #endif > > // >diff --git a/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dsc >b/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dsc >index 6c6c3d802a..7321724c83 100644 >--- a/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dsc >+++ b/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dsc >@@ -25,7 +25,7 @@ > PLATFORM_VERSION =3D 0.96 > DSC_SPECIFICATION =3D 0x00010005 > OUTPUT_DIRECTORY =3D Build/IntelFrameworkModuleAll >- SUPPORTED_ARCHITECTURES =3D IA32|IPF|X64|EBC|ARM >+ SUPPORTED_ARCHITECTURES =3D IA32|X64|EBC|ARM > BUILD_TARGETS =3D DEBUG|RELEASE|NOOPT > SKUID_IDENTIFIER =3D DEFAULT > >@@ -108,28 +108,6 @@ > gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x06 > gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xE0000000 > >-[PcdsFixedAtBuild.IPF] >- gEfiMdePkgTokenSpaceGuid.PcdIoBlockBaseAddressForIpf|0x0ffffc000000 >- >- >########################################################### >######################################## >-# >-# Components Section - list of the modules and components that will be >processed by compilation >-# tools and the EDK II tools to generate PE32/PE32+/= Coff image >files. >-# >-# Note: The EDK II DSC file is not used to specify how compiled binary im= ages >get placed >-# into firmware volume images. This section is just a list of modul= es to >compile from >-# source into UEFI-compliant binaries. >-# It is the FDF file that contains information on combining binary = files into >firmware >-# volume images, whose concept is beyond UEFI and is described in P= I >specification. >-# Binary modules do not need to be listed in this section, as they = should >be >-# specified in the FDF file. For example: Shell binary (Shell_Full.= efi), FAT >binary (Fat.efi), >-# Logo (Logo.bmp), and etc. >-# There may also be modules listed in this section that are not req= uired in >the FDF file, >-# When a module listed here is excluded from FDF file, then UEFI- >compliant binary will be >-# generated for it, but the binary will not be put into any firmwar= e volume. >-# >- >########################################################### >######################################## >- > [Components] > >IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/Bas >eUefiTianoCustomDecompressLib.inf > >IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustom >DecompressLib.inf >@@ -176,7 +154,7 @@ > >IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe/AcpiS3SaveDxe.in >f > >IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaArchCu >stomDecompressLib.inf > >-[Components.IA32,Components.X64,Components.IPF] >+[Components.IA32,Components.X64] > IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf > > [Components.IA32] >@@ -193,11 +171,5 @@ > IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf > } > >-[Components.IPF] >- IntelFrameworkModulePkg/Universal/CpuIoDxe/CpuIoDxe.inf { >- >- IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf >- } >- > [BuildOptions] > *_*_*_CC_FLAGS =3D -D DISABLE_NEW_DEPRECATED_INTERFACES >diff --git >a/IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/B >aseUefiTianoCustomDecompressLib.inf >b/IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/ >BaseUefiTianoCustomDecompressLib.inf >index 18417d1956..1321d31a62 100644 >--- >a/IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/B >aseUefiTianoCustomDecompressLib.inf >+++ >b/IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/ >BaseUefiTianoCustomDecompressLib.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/IntelFrameworkModulePkg/Library/DxeCapsuleLib/DxeCapsuleLib.inf >b/IntelFrameworkModulePkg/Library/DxeCapsuleLib/DxeCapsuleLib.inf >index 28b4693c1f..24f6846be8 100644 >--- a/IntelFrameworkModulePkg/Library/DxeCapsuleLib/DxeCapsuleLib.inf >+++ b/IntelFrameworkModulePkg/Library/DxeCapsuleLib/DxeCapsuleLib.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/IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/D >xeReportStatusCodeLib.inf >b/IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/D >xeReportStatusCodeLib.inf >index a97d4e8aac..fad28108ed 100644 >--- >a/IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/D >xeReportStatusCodeLib.inf >+++ >b/IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/D >xeReportStatusCodeLib.inf >@@ -20,12 +20,12 @@ > FILE_GUID =3D 3ddc3b12-99ea-4364-b315-6310a2050be5 > 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/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf >b/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf >index 698dd26065..7fda61b07d 100644 >--- a/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf >+++ b/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.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/IntelFrameworkModulePkg/Library/LegacyBootMaintUiLib/LegacyBootMai >ntUiLib.inf >b/IntelFrameworkModulePkg/Library/LegacyBootMaintUiLib/LegacyBootMai >ntUiLib.inf >index 17c9cac811..4dd2d8dea8 100644 >--- >a/IntelFrameworkModulePkg/Library/LegacyBootMaintUiLib/LegacyBootMai >ntUiLib.inf >+++ >b/IntelFrameworkModulePkg/Library/LegacyBootMaintUiLib/LegacyBootMai >ntUiLib.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/IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCust >omDecompressLib.inf >b/IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCust >omDecompressLib.inf >index 127c7ded86..da5ae5abfb 100644 >--- >a/IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCust >omDecompressLib.inf >+++ >b/IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCust >omDecompressLib.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/IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/Pei >DxeDebugLibReportStatusCode.inf >b/IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/Pei >DxeDebugLibReportStatusCode.inf >index 55446672d7..855b586505 100644 >--- >a/IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/Pei >DxeDebugLibReportStatusCode.inf >+++ >b/IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/Pei >DxeDebugLibReportStatusCode.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/IntelFrameworkModulePkg/Library/PeiRecoveryLib/PeiRecoveryLib.inf >b/IntelFrameworkModulePkg/Library/PeiRecoveryLib/PeiRecoveryLib.inf >index 9bd321e178..f68d4361de 100644 >--- a/IntelFrameworkModulePkg/Library/PeiRecoveryLib/PeiRecoveryLib.inf >+++ b/IntelFrameworkModulePkg/Library/PeiRecoveryLib/PeiRecoveryLib.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] >@@ -47,4 +47,4 @@ > [Ppis] > gEfiPeiRecoveryModulePpiGuid ## CONSUMES > >- >\ No newline at end of file >+ >diff --git a/IntelFrameworkModulePkg/Library/PeiS3Lib/PeiS3Lib.inf >b/IntelFrameworkModulePkg/Library/PeiS3Lib/PeiS3Lib.inf >index b01e1860f4..8156e3c39d 100644 >--- a/IntelFrameworkModulePkg/Library/PeiS3Lib/PeiS3Lib.inf >+++ b/IntelFrameworkModulePkg/Library/PeiS3Lib/PeiS3Lib.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/IntelFrameworkModulePkg/Library/PlatformBdsLibNull/PlatformBdsLibNull. >inf >b/IntelFrameworkModulePkg/Library/PlatformBdsLibNull/PlatformBdsLibNull >.inf >index 37c98cff00..a71497fe6b 100644 >--- >a/IntelFrameworkModulePkg/Library/PlatformBdsLibNull/PlatformBdsLibNull. >inf >+++ >b/IntelFrameworkModulePkg/Library/PlatformBdsLibNull/PlatformBdsLibNull >.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] >@@ -44,4 +44,4 @@ > BaseMemoryLib > DebugLib > PcdLib >- GenericBdsLib >\ No newline at end of file >+ GenericBdsLib >diff --git >a/IntelFrameworkModulePkg/Universal/Acpi/AcpiSupportDxe/AcpiSupportD >xe.inf >b/IntelFrameworkModulePkg/Universal/Acpi/AcpiSupportDxe/AcpiSupportD >xe.inf >index 32ca4f648f..6fb29e34d8 100644 >--- >a/IntelFrameworkModulePkg/Universal/Acpi/AcpiSupportDxe/AcpiSupportD >xe.inf >+++ >b/IntelFrameworkModulePkg/Universal/Acpi/AcpiSupportDxe/AcpiSupportD >xe.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/IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf >b/IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf >index 92a473769a..9742505f25 100644 >--- a/IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf >+++ b/IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.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/IntelFrameworkModulePkg/Universal/Console/VgaClassDxe/VgaClassDxe.i >nf >b/IntelFrameworkModulePkg/Universal/Console/VgaClassDxe/VgaClassDxe.i >nf >index 2faba9d6f7..271d90b570 100644 >--- >a/IntelFrameworkModulePkg/Universal/Console/VgaClassDxe/VgaClassDxe.i >nf >+++ >b/IntelFrameworkModulePkg/Universal/Console/VgaClassDxe/VgaClassDxe.i >nf >@@ -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 gVgaClassDriverBinding > # COMPONENT_NAME =3D gVgaClassComponentName >diff --git >a/IntelFrameworkModulePkg/Universal/DataHubDxe/DataHubDxe.inf >b/IntelFrameworkModulePkg/Universal/DataHubDxe/DataHubDxe.inf >index 0b93f719bb..61f94e1208 100644 >--- a/IntelFrameworkModulePkg/Universal/DataHubDxe/DataHubDxe.inf >+++ b/IntelFrameworkModulePkg/Universal/DataHubDxe/DataHubDxe.inf >@@ -45,7 +45,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/IntelFrameworkModulePkg/Universal/DataHubStdErrDxe/DataHubStdErrDx >e.inf >b/IntelFrameworkModulePkg/Universal/DataHubStdErrDxe/DataHubStdErrD >xe.inf >index f9dede864c..fed004f4fd 100644 >--- >a/IntelFrameworkModulePkg/Universal/DataHubStdErrDxe/DataHubStdErrDx >e.inf >+++ >b/IntelFrameworkModulePkg/Universal/DataHubStdErrDxe/DataHubStdErrD >xe.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/IntelFrameworkModulePkg/Universal/FirmwareVolume/FwVolDxe/FwVol >Dxe.inf >b/IntelFrameworkModulePkg/Universal/FirmwareVolume/FwVolDxe/FwVol >Dxe.inf >index 6844afb063..c3178ebfdf 100644 >--- >a/IntelFrameworkModulePkg/Universal/FirmwareVolume/FwVolDxe/FwVol >Dxe.inf >+++ >b/IntelFrameworkModulePkg/Universal/FirmwareVolume/FwVolDxe/FwVol >Dxe.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/IntelFrameworkModulePkg/Universal/FirmwareVolume/UpdateDriverDxe/ >UpdateDriverDxe.inf >b/IntelFrameworkModulePkg/Universal/FirmwareVolume/UpdateDriverDxe/ >UpdateDriverDxe.inf >index d83a1ecb57..76356b9875 100644 >--- >a/IntelFrameworkModulePkg/Universal/FirmwareVolume/UpdateDriverDxe/ >UpdateDriverDxe.inf >+++ >b/IntelFrameworkModulePkg/Universal/FirmwareVolume/UpdateDriverDxe/ >UpdateDriverDxe.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/IntelFrameworkModulePkg/Universal/LegacyRegionDxe/LegacyRegionDxe. >inf >b/IntelFrameworkModulePkg/Universal/LegacyRegionDxe/LegacyRegionDxe. >inf >index f8e5639dec..44e2f51c1a 100644 >--- >a/IntelFrameworkModulePkg/Universal/LegacyRegionDxe/LegacyRegionDxe. >inf >+++ >b/IntelFrameworkModulePkg/Universal/LegacyRegionDxe/LegacyRegionDxe. >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/IntelFrameworkModulePkg/Universal/SectionExtractionDxe/SectionExtracti >onDxe.inf >b/IntelFrameworkModulePkg/Universal/SectionExtractionDxe/SectionExtract >ionDxe.inf >index ab0bd63076..efa09158a3 100644 >--- >a/IntelFrameworkModulePkg/Universal/SectionExtractionDxe/SectionExtracti >onDxe.inf >+++ >b/IntelFrameworkModulePkg/Universal/SectionExtractionDxe/SectionExtract >ionDxe.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/IntelFrameworkModulePkg/Universal/StatusCode/DatahubStatusCodeHan >dlerDxe/DatahubStatusCodeHandlerDxe.inf >b/IntelFrameworkModulePkg/Universal/StatusCode/DatahubStatusCodeHan >dlerDxe/DatahubStatusCodeHandlerDxe.inf >index 1a576772a3..3f32722d97 100644 >--- >a/IntelFrameworkModulePkg/Universal/StatusCode/DatahubStatusCodeHan >dlerDxe/DatahubStatusCodeHandlerDxe.inf >+++ >b/IntelFrameworkModulePkg/Universal/StatusCode/DatahubStatusCodeHan >dlerDxe/DatahubStatusCodeHandlerDxe.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/IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf >b/IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf >index 04cef4a2f4..4ba7045ebf 100644 >--- >a/IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf >+++ >b/IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.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] >-- >2.16.2.windows.1