* [PATCH 17/37] IntelFrameworkModulePkg: Removing ipf from edk2.
@ 2018-06-13 3:44 chenc2
2018-06-13 5:52 ` Gao, Liming
0 siblings, 1 reply; 2+ messages in thread
From: chenc2 @ 2018-06-13 3:44 UTC (permalink / raw)
To: edk2-devel; +Cc: chenc2, Liming Gao, Michael D Kinney
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 <liming.gao@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Signed-off-by: chenc2 <chen.a.chen@intel.com>
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 +-
| 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 = InitializeIsaBus
#
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
# DRIVER_BINDING = gIsaBusControllerDriver
# COMPONENT_NAME = gIsaBusComponentName;
# COMPONENT_NAME2 = 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 = InitializeIsaFloppy
#
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
# DRIVER_BINDING = gFdcControllerDriver;
# COMPONENT_NAME = gIsaFloppyComponentName;
# COMPONENT_NAME2 = 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 = IA32 X64 IPF EBC (EBC is for build only)
+# VALID_ARCHITECTURES = 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 = InitializeIsaIo
#
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
# DRIVER_BINDING = gIsaIoDriver
# COMPONENT_NAME = gIsaIoComponentName;
# COMPONENT_NAME2 = 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 = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
#
# DRIVER_BINDING = gSerialControllerDriver
# COMPONENT_NAME = 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 = InitializePs2Keyboard
#
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
# DRIVER_BINDING = gKeyboardControllerDriver;
# COMPONENT_NAME = gPs2KeyboardComponentName;
# COMPONENT_NAME2 = gPs2KeyboardComponentName2;
diff --git a/IntelFrameworkModulePkg/Bus/Isa/Ps2MouseAbsolutePointerDxe/Ps2MouseAbsolutePointerDxe.inf b/IntelFrameworkModulePkg/Bus/Isa/Ps2MouseAbsolutePointerDxe/Ps2MouseAbsolutePointerDxe.inf
index 48adde6f1d..118bbdf2e0 100644
--- a/IntelFrameworkModulePkg/Bus/Isa/Ps2MouseAbsolutePointerDxe/Ps2MouseAbsolutePointerDxe.inf
+++ b/IntelFrameworkModulePkg/Bus/Isa/Ps2MouseAbsolutePointerDxe/Ps2MouseAbsolutePointerDxe.inf
@@ -27,7 +27,7 @@
ENTRY_POINT = InitializePs2MouseAbsolutePointer
#
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
# DRIVER_BINDING = gPS2MouseAbsolutePointerDriver;
# COMPONENT_NAME = gPs2MouseAbsolutePointerComponentName;
# COMPONENT_NAME2 = 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 = InitializePs2Mouse
#
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
# DRIVER_BINDING = gPS2MouseDriver;
# COMPONENT_NAME = gPs2MouseComponentName;
# COMPONENT_NAME2 = 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 = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
#
# DRIVER_BINDING = gIDEBusDriverBinding
# COMPONENT_NAME = 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 = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
# DRIVER_BINDING = gPciVgaMiniPortDriverBinding;
# COMPONENT_NAME = gPciVgaMiniPortComponentName;
# COMPONENT_NAME2 = gPciVgaMiniPortComponentName2;
diff --git a/IntelFrameworkModulePkg/Csm/BiosThunk/KeyboardDxe/KeyboardDxe.inf b/IntelFrameworkModulePkg/Csm/BiosThunk/KeyboardDxe/KeyboardDxe.inf
index eaaedbfa9c..fa0da0d236 100644
--- a/IntelFrameworkModulePkg/Csm/BiosThunk/KeyboardDxe/KeyboardDxe.inf
+++ b/IntelFrameworkModulePkg/Csm/BiosThunk/KeyboardDxe/KeyboardDxe.inf
@@ -30,7 +30,7 @@
#
# The following information is for reference only and not required by the build tools.
#
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
#
# DRIVER_BINDING = gBiosKeyboardDriverBinding
# COMPONENT_NAME = 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 = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
#
# DRIVER_BINDING = gBiosSnp16DriverBinding
# COMPONENT_NAME = 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 = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
#
# DRIVER_BINDING = gBiosVideoDriverBinding
# COMPONENT_NAME = 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.<BR>
-
-This program and the accompanying materials
-are licensed and made available under the terms and conditions
-of the BSD License which accompanies this distribution. The
-full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#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 parameters
- @param BbsEntry The 0-based index into the BbsTable for the
- parent device.
- @param BeerData Pointer to the 128 bytes of ram BEER data.
- @param ServiceAreaData Pointer to the 64 bytes of raw Service Area data.
- The caller must provide a pointer to the specific
- Service Area and not the start all Service 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 = 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 = gBS->HandleProtocol (
- ImageHandle,
- &gEfiLoadedImageProtocolGuid,
- (VOID *) &LoadedImage
- );
-
- if (!EFI_ERROR (Status)) {
- LoadedImageBase = (EFI_PHYSICAL_ADDRESS) (UINTN) LoadedImage->ImageBase;
- if (LoadedImageBase > 0xffffffff) {
- NumberOfPages = (UINTN) (DivU64x32(LoadedImage->ImageSize, EFI_PAGE_SIZE) + 1);
-
- //
- // Allocate buffer below 4GB here
- //
- Status = 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 = (VOID *)(UINTN)LoadedImageBase;
- ImageContext.ImageRead = PeCoffLoaderImageReadFromMemory;
-
- //
- // Get information about the image being loaded
- //
- Status = PeCoffLoaderGetImageInfo (&ImageContext);
- if (EFI_ERROR (Status)) {
- return Status;
- }
- ImageContext.ImageAddress = (PHYSICAL_ADDRESS)MemoryAddress;
- //
- // Align buffer on section boundary
- //
- ImageContext.ImageAddress += ImageContext.SectionAlignment - 1;
- ImageContext.ImageAddress &= ~((PHYSICAL_ADDRESS)ImageContext.SectionAlignment - 1);
-
- //
- // Load the image to our new buffer
- //
- Status = PeCoffLoaderLoadImage (&ImageContext);
- if (EFI_ERROR (Status)) {
- gBS->FreePages (MemoryAddress, NumberOfPages);
- return Status;
- }
-
- //
- // Relocate the image in our new buffer
- //
- Status = 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 = NULL;
- Status = 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 = ((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.<BR>
-
-This program and the accompanying materials
-are licensed and made available under the terms and conditions
-of the BSD License which accompanies this distribution. The
-full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#ifndef _IPF_THUNK_H_
-#define _IPF_THUNK_H_
-
-#include "LegacyBiosInterface.h"
-#include <IndustryStandard/Sal.h>
-
-/**
- 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.<BR>
-//
-// This program and the accompanying materials
-// are licensed and made available under the terms and conditions
-// of the BSD License which accompanies this distribution. The
-// full text of the license may be found at
-// http://opensource.org/licenses/bsd-license.php
-//
-// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-//
-////
-
-#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.<BR>
-//
-// This program and the accompanying materials
-// are licensed and made available under the terms and conditions
-// of the BSD License which accompanies this distribution. The
-// full text of the license may be found at
-// http://opensource.org/licenses/bsd-license.php
-//
-// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-//
-////
-
-.file "IpfThunk.s"
-
-#include "IpfMacro.i"
-#include "Ipf/IpfThunk.i"
-
-.align 0x10
-//-----------------------------------------------------------------------------
-//++
-// EfiIaEntryPoint
-//
-// Register physical address of Esal Data Area
-//
-// On Entry :
-// in1 = ptr to legacy bios reg
-// in2 = ptr to Call Stack
-// in3 = Call Stack Size
-//
-// Return Value:
-// r8 = SAL_SUCCESS
-//
-// As per static calling conventions.
-//
-//--
-//---------------------------------------------------------------------------
-PROCEDURE_ENTRY(EfiIaEntryPoint)
-
- alloc loc0 = 8,10,8,0;;
-
- mov out0 = r0;;
- mov out1 = r0;;
- mov out2 = r0;;
- mov out3 = r0;;
- mov out4 = r0;;
- mov out5 = r0;;
- mov out6 = r0;;
- mov out7 = r0;;
-
- mov loc1 = b0;; // save efi (b0)
- mov loc2 = psr;; // save efi (PSR)
- mov loc3 = gp;; // save efi (GP)
- mov loc4 = pr;; // save efi (PR)
- mov loc5 = sp;; // save efi (SP)
- mov loc6 = r13;; // save efi (TP)
- mov loc7 = ar.lc;; // save efi (LC)
- mov loc8 = ar.fpsr;; // save efi (FPSR)
-
- mov r8 = r0;; // return status
- mov r9 = r0;; // return value
- mov r10 = r0;; // return value
- mov r11 = r0;; // return value
-
-bios_int_func::
- rsm 0x4000;; // i(14)=0, disable interrupt
- srlz.d;;
- srlz.i;;
-
-//---------------------//
-// save fp registers //
-//---------------------//
-
- dep sp = 0,sp,0,4;; // align 16
- add sp = -16,sp;; // post decrement
-
-int_ip_1x::
- mov r2 = ip;;
- add r2 = (int_ip_1y - int_ip_1x),r2;;
- mov b7 = r2;;
- br save_fp_registers;;
-
-int_ip_1y::
- add sp = 16,sp;; // adjust (SP)
- mov loc9 = sp;; // save (SP)
- adds sp = 0x10,in1;; // in1 + 0x10 = SP
- ld4 sp = [sp];; // SP
- adds r17 = 0x32,in1;; // in1 + 0x32 = SS
- ld2 r17 = [r17];; // SS
- movl r2 = 0xffffffff;; // if no SS:SP, then define new SS:SP
- cmp.ne p6,p0 = sp,r2;;
- movl r2 = 0xffff;;
- cmp.ne.or p6,p0 = r17,r2;;
- (p6) br.sptk bif_1;;
-
- mov sp = in3;; // 16-bit stack pointer
- mov r2 = psr;;
- tbit.z p6,p7 = r2,17;; // psr.dt (Physical OR Virtual)
-
-bif_ip1x::
- mov r2 = in2;; // ia32 callback stack top
- mov r3 = in3;; // 16-bit stack pointer
- sub r2 = r2,r3;;
- shr.u r17 = r2,4;; // 16-bit stack segment
-
-bif_1::
- extr.u sp = sp,0,16;; // SP (16-bit sp for legacy code)
- dep sp = 0,sp,0,3;; // align 8
- cmp.eq p6,p0 = 0,sp;; // if SP=0000 then wrap to 0x10000
- (p6) dep sp = -1,sp,16,1;;
- shladd r2 = r17,4,sp;; // ESP = SS<<4+SP
- add r2 = -8,r2;; // post decrement 64 bit pointer
- add sp = -8,sp;; // post decrement SP
-
-sale_ip1x::
- mov r18 = ip;;
- adds r18 = (sale_ip1y - sale_ip1x),r18;;
- sub r18 = r18,r2;; // return address - CS base
- add r18 = r18,sp;; // adjustment for stack
- shl r18 = r18,32;;
- movl r19 = 0xb80f66fa;; // CLI, JMPE xxxxxxxx
- or r18 = r18,r19;;
- st8 [r2] = r18;; // (FA,66,0F,B8,xx,xx,xx,xx)
-
- cmp.eq p6,p0 = 0,sp;; // if SP=0000 then wrap to 0x10000
- (p6) dep sp = -1,sp,16,1;;
- shladd r2 = r17,4,sp;; // ESP=SS<<4+SP
- add r2 = -2,r2;; // post decrement 64 bit pointer
- add sp = -2,sp;; // post decrement SP
-
- movl r18 = 0x8000000000000100;; // CALL FAR function
- cmp.eq p6,p7 = in0,r18;;
- (p6) add r19 = 0x28,in1;; // in1 + 0x28 = CS
- (p6) ld2 r18 = [r19],-4;; // CS
- (p6) st2 [r2] = r18,-2;; // in1 + 0x24 = EIP
- (p6) ld2 r18 = [r19];; // EIP
- (p6) st2 [r2] = r18,-2;; //
- (p6) movl r18 = 0x9a90;; // nop, CALLFAR xxxx:yyyy
-
- (p7) movl r18 = 0xcd;; // INT xx
- (p7) dep r18 = in0,r18,8,8;;
- st2 [r2] = r18;; // (CD,xx)
-
- mov r18 = r2;; // EIP for legacy execution
-
-//------------------------------//
-// flush 32 bytes legacy code //
-//------------------------------//
-
- dep r2 = 0,r2,0,5;; // align to 32
- fc r2;;
- sync.i;;
- srlz.i;;
- srlz.d;;
-
-//------------------------------//
-// load legacy registers //
-//------------------------------//
- mov r2 = in1;; // IA32 BIOS register state
- ld4 r8 = [r2],4;; // in1 + 0 = EAX
- ld4 r9 = [r2],4;; // in1 + 4 = ECX
- ld4 r10 = [r2],4;; // in1 + 8 = EDX
- ld4 r11 = [r2],4;; // in1 + 12 = EBX
-
- add r2 = 4,r2;; // in1 + 16 = ESP (skip)
-
- ld4 r13 = [r2],4;; // in1 + 20 = EBP
- ld4 r14 = [r2],4;; // in1 + 24 = ESI
- ld4 r15 = [r2],4;; // in1 + 28 = EDI
- ld4 r3 = [r2],4;; // in1 + 32 = EFLAGS
- mov ar.eflag = r3;;
-
- add r2 = 4,r2;; // in1 + 36 = EIP (skip)
- add r2 = 2,r2;; // in1 + 40 = CS (skip)
-
- ld2 r16 = [r2],2;; // in1 + 42 = DS, (r16 = GS,FS,ES,DS)
- movl r27 = 0xc93fffff00000000;;
- dep r27 = r16,r27,4,16;; // r27 = DSD
-
- ld2 r19 = [r2],2;; // in1 + 44 = ES
- dep r16 = r19,r16,16,16;;
- movl r24 = 0xc93fffff00000000;;
- dep r24 = r19,r24,4,16;; // r24 = ESD
-
- ld2 r19 = [r2],2;; // in1 + 46 = FS
- dep r16 = r19,r16,32,16;;
- movl r28 = 0xc93fffff00000000;;
- dep r28 = r19,r28,4,16;; // r28 = FSD
-
- ld2 r19 = [r2],2;; // in1 + 48 = GS
- dep r16 = r19,r16,48,16;;
- movl r29 = 0xc93fffff00000000;;
- dep r29 = r19,r29,4,16;; // r29 = GSD
-
- mov r30 = r0;; // r30 = LDTD, clear NaT
- mov r31 = r0;; // r31 = GDTD, clear NaT
-
- dep r17 = r17,r17,16,16;; // CS = SS, (r17 = TSS,LDT,SS,CS)
-
- movl r3 = 0x0930ffff00000000;;
- dep r3 = r17,r3,4,16;;
- mov ar.csd = r3;; // ar25 = CSD
- mov ar.ssd = r3;; // ar26 = SSD
-
-//------------------------------//
-// give control to INT function //
-//------------------------------//
-
- br.call.sptk b0 = execute_int_function;;
-
-//------------------------------//
-// store legacy registers //
-//------------------------------//
-
- mov r2 = in1;;
- st4 [r2] = r8,4;; // EAX
- st4 [r2] = r9,4;; // ECX
- st4 [r2] = r10,4;; // EDX
- st4 [r2] = r11,4;; // EBX
-
- add r2 = 4,r2;; // ESP (skip)
-
- st4 [r2] = r13,4;; // EBP
- st4 [r2] = r14,4;; // ESI
- st4 [r2] = r15,4;; // EDI
-
- mov r3 = ar.eflag;;
- st4 [r2] = r3,4;; // EFLAGS
-
- add r2 = 4,r2;; // EIP (skip)
- add r2 = 2,r2;; // CS (skip)
-
- st2 [r2] = r16,2;; // DS, (r16 = GS,FS,ES,DS)
-
- extr.u r3 = r16,16,16;;
- st2 [r2] = r3,2;; // ES
-
- extr.u r3 = r16,32,16;;
- st2 [r2] = r3,2;; // FS
-
- extr.u r3 = r16,48,16;;
- st2 [r2] = r3,2;; // GS
-
-//------------------------------//
-// restore fp registers //
-//------------------------------//
- mov sp = loc9;; // restore (SP)
-int_ip_2x::
- mov r2 = ip;;
- add r2 = (int_ip_2y - int_ip_2x),r2;;
- mov b7 = r2;;
- br restore_fp_registers;;
-
-int_ip_2y::
- mov r8 = r0;; // return status
- mov r9 = r0;; // return value
- mov r10 = r0;; // return value
- mov r11 = r0;; // return value
-
- mov ar.fpsr = loc8;; // restore efi (FPSR)
- mov ar.lc = loc7;; // restore efi (LC)
- mov r13 = loc6;; // restore efi (TP)
- mov sp = loc5;; // restore efi (SP)
- mov pr = loc4;; // restore efi (PR)
- mov gp = loc3;; // restore efi (GP)
- mov psr.l = loc2;; // restore efi (PSR)
- srlz.d;;
- srlz.i;;
- mov b0 = loc1;; // restore efi (b0)
- mov ar.pfs = loc0;;
- br.ret.sptk b0;; // return to efi
-
-PROCEDURE_EXIT (EfiIaEntryPoint)
-
-//==============================//
-// EXECUTE_INT_FUNCTION //
-//==============================//
-// switch to virtual address //
-//------------------------------//
-
-execute_int_function::
-
- alloc r2 = 0,0,0,0;; // cfm.sof=0
- flushrs;;
-
- rsm 0x2000;; // ic(13)=0 for control register programming
- srlz.d;;
- srlz.i;;
-
- mov r2 = psr;;
- dep r2 = -1,r2,34,1;; // set is(34)
- dep r2 = -1,r2,44,1;; // set bn(44)
- dep r2 = -1,r2,36,1;; // set it(36)
- dep r2 = -1,r2,27,1;; // set rt(27)
- dep r2 = -1,r2,17,1;; // set dt(17)
- dep r2 = 0,r2,3,1;; // reset ac(3)
- dep r2 = -1,r2,13,1;; // set ic(13)
-
- mov cr.ipsr = r2;;
- mov cr.ifs = r0;; // clear interruption function state register
- mov cr.iip = r18;;
-
- rfi;; // go to legacy code execution
-
-//------------------------------//
-// back from legacy code //
-//------------------------------//
-// switch to physical address //
-//------------------------------//
-
-sale_ip1y::
- rsm 0x6000;; // i(14)=0,ic(13)=0 for control reg programming
- srlz.d;;
- srlz.i;;
-
- mov r2 = psr;;
- dep r2 = -1,r2,44,1;; // set bn(44)
- dep r2 = 0,r2,36,1;; // reset it(36)
- dep r2 = 0,r2,27,1;; // reset rt(27)
- dep r2 = 0,r2,17,1;; // reset dt(17)
- dep r2 = -1,r2,13,1;; // set ic(13)
- mov cr.ipsr = r2;;
-
-sale_ip2x::
- mov r2 = ip;;
- add r2 = (sale_ip2y - sale_ip2x),r2;;
- mov cr.ifs = r0;; // clear interruption function state register
- mov cr.iip = r2;;
- rfi;;
-
-sale_ip2y::
- br.ret.sptk b0;; // return to SAL
-
-//------------------------------//
-// store fp registers //
-//------------------------------//
-save_fp_registers::
- stf.spill [sp]=f2,-16;; stf.spill [sp]=f3,-16;;
- stf.spill [sp]=f4,-16;; stf.spill [sp]=f5,-16;; stf.spill [sp]=f6,-16;; stf.spill [sp]=f7,-16;;
- stf.spill [sp]=f8,-16;; stf.spill [sp]=f9,-16;; stf.spill [sp]=f10,-16;; stf.spill [sp]=f11,-16;;
- stf.spill [sp]=f12,-16;; stf.spill [sp]=f13,-16;; stf.spill [sp]=f14,-16;; stf.spill [sp]=f15,-16;;
- stf.spill [sp]=f16,-16;; stf.spill [sp]=f17,-16;; stf.spill [sp]=f18,-16;; stf.spill [sp]=f19,-16;;
- stf.spill [sp]=f20,-16;; stf.spill [sp]=f21,-16;; stf.spill [sp]=f22,-16;; stf.spill [sp]=f23,-16;;
- stf.spill [sp]=f24,-16;; stf.spill [sp]=f25,-16;; stf.spill [sp]=f26,-16;; stf.spill [sp]=f27,-16;;
- stf.spill [sp]=f28,-16;; stf.spill [sp]=f29,-16;; stf.spill [sp]=f30,-16;; stf.spill [sp]=f31,-16;;
- stf.spill [sp]=f32,-16;; stf.spill [sp]=f33,-16;; stf.spill [sp]=f34,-16;; stf.spill [sp]=f35,-16;;
- stf.spill [sp]=f36,-16;; stf.spill [sp]=f37,-16;; stf.spill [sp]=f38,-16;; stf.spill [sp]=f39,-16;;
- stf.spill [sp]=f40,-16;; stf.spill [sp]=f41,-16;; stf.spill [sp]=f42,-16;; stf.spill [sp]=f43,-16;;
- stf.spill [sp]=f44,-16;; stf.spill [sp]=f45,-16;; stf.spill [sp]=f46,-16;; stf.spill [sp]=f47,-16;;
- stf.spill [sp]=f48,-16;; stf.spill [sp]=f49,-16;; stf.spill [sp]=f50,-16;; stf.spill [sp]=f51,-16;;
- stf.spill [sp]=f52,-16;; stf.spill [sp]=f53,-16;; stf.spill [sp]=f54,-16;; stf.spill [sp]=f55,-16;;
- stf.spill [sp]=f56,-16;; stf.spill [sp]=f57,-16;; stf.spill [sp]=f58,-16;; stf.spill [sp]=f59,-16;;
- stf.spill [sp]=f60,-16;; stf.spill [sp]=f61,-16;; stf.spill [sp]=f62,-16;; stf.spill [sp]=f63,-16;;
- stf.spill [sp]=f64,-16;; stf.spill [sp]=f65,-16;; stf.spill [sp]=f66,-16;; stf.spill [sp]=f67,-16;;
- stf.spill [sp]=f68,-16;; stf.spill [sp]=f69,-16;; stf.spill [sp]=f70,-16;; stf.spill [sp]=f71,-16;;
- stf.spill [sp]=f72,-16;; stf.spill [sp]=f73,-16;; stf.spill [sp]=f74,-16;; stf.spill [sp]=f75,-16;;
- stf.spill [sp]=f76,-16;; stf.spill [sp]=f77,-16;; stf.spill [sp]=f78,-16;; stf.spill [sp]=f79,-16;;
- stf.spill [sp]=f80,-16;; stf.spill [sp]=f81,-16;; stf.spill [sp]=f82,-16;; stf.spill [sp]=f83,-16;;
- stf.spill [sp]=f84,-16;; stf.spill [sp]=f85,-16;; stf.spill [sp]=f86,-16;; stf.spill [sp]=f87,-16;;
- stf.spill [sp]=f88,-16;; stf.spill [sp]=f89,-16;; stf.spill [sp]=f90,-16;; stf.spill [sp]=f91,-16;;
- stf.spill [sp]=f92,-16;; stf.spill [sp]=f93,-16;; stf.spill [sp]=f94,-16;; stf.spill [sp]=f95,-16;;
- stf.spill [sp]=f96,-16;; stf.spill [sp]=f97,-16;; stf.spill [sp]=f98,-16;; stf.spill [sp]=f99,-16;;
- stf.spill [sp]=f100,-16;;stf.spill [sp]=f101,-16;;stf.spill [sp]=f102,-16;;stf.spill [sp]=f103,-16;;
- stf.spill [sp]=f104,-16;;stf.spill [sp]=f105,-16;;stf.spill [sp]=f106,-16;;stf.spill [sp]=f107,-16;;
- stf.spill [sp]=f108,-16;;stf.spill [sp]=f109,-16;;stf.spill [sp]=f110,-16;;stf.spill [sp]=f111,-16;;
- stf.spill [sp]=f112,-16;;stf.spill [sp]=f113,-16;;stf.spill [sp]=f114,-16;;stf.spill [sp]=f115,-16;;
- stf.spill [sp]=f116,-16;;stf.spill [sp]=f117,-16;;stf.spill [sp]=f118,-16;;stf.spill [sp]=f119,-16;;
- stf.spill [sp]=f120,-16;;stf.spill [sp]=f121,-16;;stf.spill [sp]=f122,-16;;stf.spill [sp]=f123,-16;;
- stf.spill [sp]=f124,-16;;stf.spill [sp]=f125,-16;;stf.spill [sp]=f126,-16;;stf.spill [sp]=f127,-16;;
- invala;;
- br b7;;
-
-//------------------------------//
-// restore fp registers //
-//------------------------------//
-restore_fp_registers::
- ldf.fill f127=[sp],16;;ldf.fill f126=[sp],16;;ldf.fill f125=[sp],16;;ldf.fill f124=[sp],16;;
- ldf.fill f123=[sp],16;;ldf.fill f122=[sp],16;;ldf.fill f121=[sp],16;;ldf.fill f120=[sp],16;;
- ldf.fill f119=[sp],16;;ldf.fill f118=[sp],16;;ldf.fill f117=[sp],16;;ldf.fill f116=[sp],16;;
- ldf.fill f115=[sp],16;;ldf.fill f114=[sp],16;;ldf.fill f113=[sp],16;;ldf.fill f112=[sp],16;;
- ldf.fill f111=[sp],16;;ldf.fill f110=[sp],16;;ldf.fill f109=[sp],16;;ldf.fill f108=[sp],16;;
- ldf.fill f107=[sp],16;;ldf.fill f106=[sp],16;;ldf.fill f105=[sp],16;;ldf.fill f104=[sp],16;;
- ldf.fill f103=[sp],16;;ldf.fill f102=[sp],16;;ldf.fill f101=[sp],16;;ldf.fill f100=[sp],16;;
- ldf.fill f99=[sp],16;; ldf.fill f98=[sp],16;; ldf.fill f97=[sp],16;; ldf.fill f96=[sp],16;;
- ldf.fill f95=[sp],16;; ldf.fill f94=[sp],16;; ldf.fill f93=[sp],16;; ldf.fill f92=[sp],16;;
- ldf.fill f91=[sp],16;; ldf.fill f90=[sp],16;; ldf.fill f89=[sp],16;; ldf.fill f88=[sp],16;;
- ldf.fill f87=[sp],16;; ldf.fill f86=[sp],16;; ldf.fill f85=[sp],16;; ldf.fill f84=[sp],16;;
- ldf.fill f83=[sp],16;; ldf.fill f82=[sp],16;; ldf.fill f81=[sp],16;; ldf.fill f80=[sp],16;;
- ldf.fill f79=[sp],16;; ldf.fill f78=[sp],16;; ldf.fill f77=[sp],16;; ldf.fill f76=[sp],16;;
- ldf.fill f75=[sp],16;; ldf.fill f74=[sp],16;; ldf.fill f73=[sp],16;; ldf.fill f72=[sp],16;;
- ldf.fill f71=[sp],16;; ldf.fill f70=[sp],16;; ldf.fill f69=[sp],16;; ldf.fill f68=[sp],16;;
- ldf.fill f67=[sp],16;; ldf.fill f66=[sp],16;; ldf.fill f65=[sp],16;; ldf.fill f64=[sp],16;;
- ldf.fill f63=[sp],16;; ldf.fill f62=[sp],16;; ldf.fill f61=[sp],16;; ldf.fill f60=[sp],16;;
- ldf.fill f59=[sp],16;; ldf.fill f58=[sp],16;; ldf.fill f57=[sp],16;; ldf.fill f56=[sp],16;;
- ldf.fill f55=[sp],16;; ldf.fill f54=[sp],16;; ldf.fill f53=[sp],16;; ldf.fill f52=[sp],16;;
- ldf.fill f51=[sp],16;; ldf.fill f50=[sp],16;; ldf.fill f49=[sp],16;; ldf.fill f48=[sp],16;;
- ldf.fill f47=[sp],16;; ldf.fill f46=[sp],16;; ldf.fill f45=[sp],16;; ldf.fill f44=[sp],16;;
- ldf.fill f43=[sp],16;; ldf.fill f42=[sp],16;; ldf.fill f41=[sp],16;; ldf.fill f40=[sp],16;;
- ldf.fill f39=[sp],16;; ldf.fill f38=[sp],16;; ldf.fill f37=[sp],16;; ldf.fill f36=[sp],16;;
- ldf.fill f35=[sp],16;; ldf.fill f34=[sp],16;; ldf.fill f33=[sp],16;; ldf.fill f32=[sp],16;;
- ldf.fill f31=[sp],16;; ldf.fill f30=[sp],16;; ldf.fill f29=[sp],16;; ldf.fill f28=[sp],16;;
- ldf.fill f27=[sp],16;; ldf.fill f26=[sp],16;; ldf.fill f25=[sp],16;; ldf.fill f24=[sp],16;;
- ldf.fill f23=[sp],16;; ldf.fill f22=[sp],16;; ldf.fill f21=[sp],16;; ldf.fill f20=[sp],16;;
- ldf.fill f19=[sp],16;; ldf.fill f18=[sp],16;; ldf.fill f17=[sp],16;; ldf.fill f16=[sp],16;;
- ldf.fill f15=[sp],16;; ldf.fill f14=[sp],16;; ldf.fill f13=[sp],16;; ldf.fill f12=[sp],16;;
- ldf.fill f11=[sp],16;; ldf.fill f10=[sp],16;; ldf.fill f9=[sp],16;; ldf.fill f8=[sp],16;;
- ldf.fill f7=[sp],16;; ldf.fill f6=[sp],16;; ldf.fill f5=[sp],16;; ldf.fill f4=[sp],16;;
- ldf.fill f3=[sp],16;; ldf.fill f2=[sp],16;;
- invala;;
- br b7;;
-
-//-----------------------------------------------------------------------------
-//++
-// EsalSetSalDataArea
-//
-// Register physical address of Esal Data Area
-//
-// On Entry :
-// in0 = Reverse Thunk Address
-// in1 = IntThunk Address
-//
-// Return Value:
-// r8 = SAL_SUCCESS
-//
-// As per static calling conventions.
-//
-//--
-//---------------------------------------------------------------------------
-
-PROCEDURE_ENTRY (EsalSetSalDataArea)
-
- NESTED_SETUP (4,8,0,0)
-
-EsalCalcStart1_3::
- mov r8 = ip;;
- add r8 = (ReverseThunkAddress - EsalCalcStart1_3), r8;;
- st8 [r8] = in0;;
-
-EsalCalcStart1_4::
- mov r8 = ip;;
- add r8 = (IntThunkAddress - EsalCalcStart1_4), r8;;
- st8 [r8] = in1;;
-
- mov r8 = r0;;
-
- NESTED_RETURN
-
-PROCEDURE_EXIT (EsalSetSalDataArea)
-
-//-----------------------------------------------------------------------------
-//++
-// EsagGetReverseThunkAddress
-//
-// Register physical address of Esal Data Area
-//
-// On Entry :
-// out0 = CodeStart
-// out1 = CodeEnd
-// out1 = ReverseThunkCode
-//
-// Return Value:
-// r8 = SAL_SUCCESS
-//
-// As per static calling conventions.
-//
-//--
-//---------------------------------------------------------------------------
-
-PROCEDURE_ENTRY (EsalGetReverseThunkAddress)
-
- NESTED_SETUP (4,8,0,0)
-
-EsalCalcStart1_31::
- mov r8 = ip;;
- add r8 = (Ia32CodeStart - EsalCalcStart1_31), r8;;
- mov r9 = r8;;
-
-EsalCalcStart1_41::
- mov r8 = ip;;
- add r8 = (Ia32CodeEnd - EsalCalcStart1_41), r8;;
- mov r10 = r8;;
-
-EsalCalcStart1_51::
- mov r8 = ip;;
- add r8 = (ReverseThunkAddress - EsalCalcStart1_51), r8;;
- mov r11 = r8;;
- mov r8 = 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.<BR>
-
-This program and the accompanying materials
-are licensed and made available under the terms and conditions
-of the BSD License which accompanies this distribution. The
-full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#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 = 0x8000000000000000;
- IntTypeVariable |= (UINT64)BiosInt;
-
- DwordRegs.Cs = Segment;
- DwordRegs.Eip = Offset;
-
- DwordRegs.Ds = Regs->X.DS;
- DwordRegs.Es = Regs->X.ES;
- DwordRegs.Fs = Regs->X.ES;
- DwordRegs.Gs = Regs->X.ES;
- DwordRegs.Ss = 0xFFFF;
-
- DwordRegs.Eax = Regs->X.AX;
- DwordRegs.Ebx = Regs->X.BX;
- //
- // Sometimes, ECX is used to pass in 32 bit data. For example, INT 1Ah, AX = B10Dh is
- // "PCI BIOS v2.0c + Write Configuration DWORD" and ECX has the dword to write.
- //
- DwordRegs.Ecx = Regs->E.ECX;
- DwordRegs.Edx = Regs->X.DX;
-
- DwordRegs.Ebp = Regs->X.BP;
- DwordRegs.Eflag = *((UINT16 *) &Regs->X.Flags);
-
- DwordRegs.Edi = Regs->X.DI;
- DwordRegs.Esi = Regs->X.SI;
- DwordRegs.Esp = 0xFFFFFFFF;
-
- EfiIaEntryPoint (IntTypeVariable, &DwordRegs, ((UINTN) Stack + StackSize), StackSize);
-
- Regs->X.CS = DwordRegs.Cs;
-
- Regs->X.DS = (UINT16) DwordRegs.Ds;
- Regs->X.SS = (UINT16) DwordRegs.Ss;
-
- Regs->E.EAX = DwordRegs.Eax;
- Regs->E.EBX = DwordRegs.Ebx;
- Regs->E.ECX = DwordRegs.Ecx;
- Regs->E.EDX = DwordRegs.Edx;
-
- Regs->E.EBP = DwordRegs.Ebp;
- CopyMem (&Regs->X.Flags, &DwordRegs.Eflag, sizeof (EFI_FLAGS_REG));
-
- Regs->E.EDI = DwordRegs.Edi;
- Regs->E.ESI = 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 = EsalGetReverseThunkAddress ();
-
- *CodeStart = SalStatus.r9;
- *CodeEnd = SalStatus.r10;
- *ReverseThunkStart = 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 = Private->IntThunk;
-
- //
- // Clear the reserved descriptor
- //
- ZeroMem (&(IntThunk->RealModeGdt[0]), sizeof (GDT32));
-
- //
- // Setup a descriptor for real-mode code
- //
- CodeGdt = &(IntThunk->RealModeGdt[1]);
-
- //
- // Fill in the descriptor with our real-mode segment value
- //
- CodeGdt->Type = 0xA;
- //
- // code/read
- //
- CodeGdt->System = 1;
- CodeGdt->Dpl = 0;
- CodeGdt->Present = 1;
- CodeGdt->Software = 0;
- CodeGdt->Reserved = 0;
- CodeGdt->DefaultSize = 0;
- //
- // 16 bit operands
- //
- CodeGdt->Granularity = 0;
-
- CodeGdt->LimitHi = 0;
- CodeGdt->LimitLo = 0xffff;
-
- Base = (*((UINT32 *) &IntThunk->Code));
- CodeGdt->BaseHi = (Base >> 24) & 0xFF;
- CodeGdt->BaseMid = (Base >> 16) & 0xFF;
- CodeGdt->BaseLo = Base & 0xFFFF;
-
- //
- // Setup a descriptor for read-mode data
- //
- DataGdt = &(IntThunk->RealModeGdt[2]);
- CopyMem (DataGdt, CodeGdt, sizeof (GDT32));
-
- DataGdt->Type = 0x2;
- //
- // read/write data
- //
- DataGdt->BaseHi = 0x0;
- //
- // Base = 0
- //
- DataGdt->BaseMid = 0x0;
- //
- DataGdt->BaseLo = 0x0;
- //
- DataGdt->LimitHi = 0x0F;
- //
- // Limit = 4Gb
- //
- DataGdt->LimitLo = 0xFFFF;
- //
- DataGdt->Granularity = 0x1;
- //
- //
- // Compute selector value
- //
- IntThunk->RealModeGdtDesc.Limit = (UINT16) (sizeof (IntThunk->RealModeGdt) - 1);
- CopyMem (&IntThunk->RealModeGdtDesc.Base, (UINT32 *) &IntThunk->RealModeGdt, sizeof (UINT32));
- //
- // IntThunk->RealModeGdtDesc.Base = *((UINT32*) &IntThunk->RealModeGdt);
- //
- IntThunk->RealModeIdtDesc.Limit = 0xFFFF;
- IntThunk->RealModeIdtDesc.Base = 0;
- IntThunk->LowCodeSelector = (UINT32) ((UINTN) CodeGdt - IntThunk->RealModeGdtDesc.Base);
- IntThunk->LowDataSelector = (UINT32) ((UINTN) DataGdt - IntThunk->RealModeGdtDesc.Base);
-
- //
- // Initialize low real-mode code thunk
- //
- RealModeTemplate (&CodeStart, &CodeEnd, &ReverseThunkStart, IntThunk);
-
- TempData = (UINTN) &(IntThunk->Code);
- IntThunk->LowReverseThunkStart = ((UINT32) TempData + (UINT32) (ReverseThunkStart - CodeStart));
-
- EsalSetSalDataArea (TempData, (UINTN) IntThunk);
- CopyMem (IntThunk->Code, (VOID *) CodeStart, CodeEnd - CodeStart);
-
- IntThunk->EfiToLegacy16InitTable.ReverseThunkCallSegment = EFI_SEGMENT (*((UINT32 *) &IntThunk->LowReverseThunkStart));
- IntThunk->EfiToLegacy16InitTable.ReverseThunkCallOffset = EFI_OFFSET (*((UINT32 *) &IntThunk->LowReverseThunkStart));
-
- return EFI_SUCCESS;
-}
-
-
-/**
- Thunk to 16-bit real mode and execute a software interrupt with a vector
- 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 errors 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 = LEGACY_BIOS_INSTANCE_FROM_THIS (This);
- IntThunk = Private->IntThunk;
-
- //
- // Get the current flat GDT, IDT, and SS and store them in Private->IntThunk.
- //
- Status = LegacyBiosGetFlatDescs (Private);
- ASSERT_EFI_ERROR (Status);
-
- Regs->X.Flags.Reserved1 = 1;
- Regs->X.Flags.Reserved2 = 0;
- Regs->X.Flags.Reserved3 = 0;
- Regs->X.Flags.Reserved4 = 0;
- Regs->X.Flags.IOPL = 3;
- Regs->X.Flags.NT = 0;
- Regs->X.Flags.IF = 1;
- Regs->X.Flags.TF = 0;
- Regs->X.Flags.CF = 0;
- //
- // Clear the error flag; thunk code may set it.
- //
- Stack16 = (UINT16 *) (IntThunk->Stack + LOW_STACK_SIZE);
-
- //
- // Copy regs to low memory stack
- //
- Stack16 -= sizeof (EFI_IA32_REGISTER_SET) / sizeof (UINT16);
- CopyMem (Stack16, Regs, sizeof (EFI_IA32_REGISTER_SET));
-
- //
- // Provide low stack esp
- //
- TempData = ((UINTN) Stack16) - ((UINTN) IntThunk);
- IntThunk->LowStack = *((UINT32 *) &TempData);
-
- //
- // Stack for reverse thunk flat mode.
- // It must point to top of stack (end of stack space).
- //
- TempData = ((UINTN) IntThunk->RevThunkStack) + LOW_STACK_SIZE;
- IntThunk->RevFlatStack = *((UINT32 *) &TempData);
-
- //
- // The call to Legacy16 is a critical section to EFI
- //
- OriginalTpl = gBS->RaiseTPL (TPL_HIGH_LEVEL);
-
- //
- // Set Legacy16 state. 0x08, 0x70 is legacy 8259 vector bases.
- //
- Status = Private->Legacy8259->SetMode (Private->Legacy8259, Efi8259LegacyMode, NULL, NULL);
- ASSERT_EFI_ERROR (Status);
-
- //
- // Call the real mode thunk code
- //
- TempData = BiosInt * 4;
- Address = (UINTN *) TempData;
- IaOffset = 0xFFFF & (*Address);
- IaSegment = 0xFFFF & ((*Address) >> 16);
-
- Status = 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 error).
- //
- Regs->X.Flags.CF = 1;
- break;
- }
-
- Status = 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 != 0);
-}
-
-
-/**
- Thunk to 16-bit real mode and call Segment:Offset. Regs will contain the
- 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 arguments
- @param StackSize Size of Stack in bytes
-
- @retval FALSE Thunk completed, and there were no BIOS errors 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 = LEGACY_BIOS_INSTANCE_FROM_THIS (This);
- IntThunk = Private->IntThunk;
- IaSegment = Segment;
- IaOffset = Offset;
-
- //
- // Get the current flat GDT and IDT and store them in Private->IntThunk.
- //
- Status = LegacyBiosGetFlatDescs (Private);
- ASSERT_EFI_ERROR (Status);
-
- Regs->X.Flags.Reserved1 = 1;
- Regs->X.Flags.Reserved2 = 0;
- Regs->X.Flags.Reserved3 = 0;
- Regs->X.Flags.Reserved4 = 0;
- Regs->X.Flags.IOPL = 3;
- Regs->X.Flags.NT = 0;
- Regs->X.Flags.IF = 1;
- Regs->X.Flags.TF = 0;
- Regs->X.Flags.CF = 0;
- //
- // Clear the error flag; thunk code may set it.
- //
- Stack16 = (UINT16 *) (IntThunk->Stack + LOW_STACK_SIZE);
- if (Stack != NULL && StackSize != 0) {
- //
- // Copy Stack to low memory stack
- //
- Stack16 -= StackSize / sizeof (UINT16);
- CopyMem (Stack16, Stack, StackSize);
- }
- //
- // Copy regs to low memory stack
- //
- Stack16 -= sizeof (EFI_IA32_REGISTER_SET) / sizeof (UINT16);
- CopyMem (Stack16, Regs, sizeof (EFI_IA32_REGISTER_SET));
-
- //
- // Provide low stack esp
- //
- TempData = ((UINTN) Stack16) - ((UINTN) IntThunk);
- IntThunk->LowStack = *((UINT32 *) &TempData);
-
- //
- // The call to Legacy16 is a critical section to EFI
- //
- OriginalTpl = gBS->RaiseTPL (TPL_HIGH_LEVEL);
-
- //
- // Set Legacy16 state. 0x08, 0x70 is legacy 8259 vector bases.
- //
- Status = Private->Legacy8259->SetMode (Private->Legacy8259, Efi8259LegacyMode, NULL, NULL);
- ASSERT_EFI_ERROR (Status);
-
- //
- // Call the real mode thunk code
- //
- Status = 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 error).
- //
- Regs->X.Flags.CF = 1;
- break;
- }
- //
- // Restore protected mode interrupt state
- //
- Status = 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 += sizeof (EFI_IA32_REGISTER_SET) / sizeof (UINT16);
-
- if (Stack != NULL && StackSize != 0) {
- //
- // Copy low memory stack to Stack
- //
- CopyMem (Stack, Stack16, StackSize);
- Stack16 += StackSize / sizeof (UINT16);
- }
-
- return (BOOLEAN) (Regs->X.Flags.CF != 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 = IA32 X64 IPF
+# VALID_ARCHITECTURES = 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 ##GUID #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 code
- //
- 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 GDT
- DESCRIPTOR32 IdtDesc; // Protected mode IDT
- UINT32 FlatSs;
- UINT32 FlatEsp;
-
- UINT32 LowCodeSelector; // Low code selector in GDT
- UINT32 LowDataSelector; // Low data selector 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 mode
- // 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 selector 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 interface
- // 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 = 0.96
DSC_SPECIFICATION = 0x00010005
OUTPUT_DIRECTORY = Build/IntelFrameworkModuleAll
- SUPPORTED_ARCHITECTURES = IA32|IPF|X64|EBC|ARM
+ SUPPORTED_ARCHITECTURES = IA32|X64|EBC|ARM
BUILD_TARGETS = DEBUG|RELEASE|NOOPT
SKUID_IDENTIFIER = 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 images get placed
-# into firmware volume images. This section is just a list of modules 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 PI 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 required 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 firmware volume.
-#
-###################################################################################################
-
[Components]
IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
@@ -176,7 +154,7 @@
IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaArchCustomDecompressLib.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 {
- <LibraryClasses>
- IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
- }
-
[BuildOptions]
*_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES
diff --git a/IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf b/IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
index 18417d1956..1321d31a62 100644
--- a/IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.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 = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
#
[Sources]
diff --git a/IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf b/IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
index a97d4e8aac..fad28108ed 100644
--- a/IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
+++ b/IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
@@ -20,12 +20,12 @@
FILE_GUID = 3ddc3b12-99ea-4364-b315-6310a2050be5
MODULE_TYPE = DXE_DRIVER
VERSION_STRING = 1.0
- LIBRARY_CLASS = ReportStatusCodeLib|DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER SMM_CORE
+ LIBRARY_CLASS = ReportStatusCodeLib|DXE_CORE DXE_DRIVER 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 = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
#
[Sources]
diff --git a/IntelFrameworkModulePkg/Library/LegacyBootMaintUiLib/LegacyBootMaintUiLib.inf b/IntelFrameworkModulePkg/Library/LegacyBootMaintUiLib/LegacyBootMaintUiLib.inf
index 17c9cac811..4dd2d8dea8 100644
--- a/IntelFrameworkModulePkg/Library/LegacyBootMaintUiLib/LegacyBootMaintUiLib.inf
+++ b/IntelFrameworkModulePkg/Library/LegacyBootMaintUiLib/LegacyBootMaintUiLib.inf
@@ -25,7 +25,7 @@
#
# The following information is for reference only and not required by the build tools.
#
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
#
[Sources]
diff --git a/IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf b/IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
index 127c7ded86..da5ae5abfb 100644
--- a/IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
+++ b/IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
@@ -30,7 +30,7 @@
#
# The following information is for reference only and not required by the build tools.
#
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
#
[Sources]
diff --git a/IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf b/IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
index 55446672d7..855b586505 100644
--- a/IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
+++ b/IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
@@ -21,12 +21,12 @@
FILE_GUID = bda39d3a-451b-4350-8266-81ab10fa0523
MODULE_TYPE = PEIM
VERSION_STRING = 1.0
- LIBRARY_CLASS = 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 = 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 = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = 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/AcpiSupportDxe.inf b/IntelFrameworkModulePkg/Universal/Acpi/AcpiSupportDxe/AcpiSupportDxe.inf
index 32ca4f648f..6fb29e34d8 100644
--- a/IntelFrameworkModulePkg/Universal/Acpi/AcpiSupportDxe/AcpiSupportDxe.inf
+++ b/IntelFrameworkModulePkg/Universal/Acpi/AcpiSupportDxe/AcpiSupportDxe.inf
@@ -30,7 +30,7 @@
#
# The following information is for reference only and not required by the build tools.
#
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
#
[Sources]
diff --git a/IntelFrameworkModulePkg/Universal/Console/VgaClassDxe/VgaClassDxe.inf b/IntelFrameworkModulePkg/Universal/Console/VgaClassDxe/VgaClassDxe.inf
index 2faba9d6f7..271d90b570 100644
--- a/IntelFrameworkModulePkg/Universal/Console/VgaClassDxe/VgaClassDxe.inf
+++ b/IntelFrameworkModulePkg/Universal/Console/VgaClassDxe/VgaClassDxe.inf
@@ -26,7 +26,7 @@
#
# The following information is for reference only and not required by the build tools.
#
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
#
# DRIVER_BINDING = gVgaClassDriverBinding
# COMPONENT_NAME = 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 = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
#
[Sources]
diff --git a/IntelFrameworkModulePkg/Universal/DataHubStdErrDxe/DataHubStdErrDxe.inf b/IntelFrameworkModulePkg/Universal/DataHubStdErrDxe/DataHubStdErrDxe.inf
index f9dede864c..fed004f4fd 100644
--- a/IntelFrameworkModulePkg/Universal/DataHubStdErrDxe/DataHubStdErrDxe.inf
+++ b/IntelFrameworkModulePkg/Universal/DataHubStdErrDxe/DataHubStdErrDxe.inf
@@ -24,7 +24,7 @@
#
# The following information is for reference only and not required by the build tools.
#
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
#
[Sources]
diff --git a/IntelFrameworkModulePkg/Universal/FirmwareVolume/FwVolDxe/FwVolDxe.inf b/IntelFrameworkModulePkg/Universal/FirmwareVolume/FwVolDxe/FwVolDxe.inf
index 6844afb063..c3178ebfdf 100644
--- a/IntelFrameworkModulePkg/Universal/FirmwareVolume/FwVolDxe/FwVolDxe.inf
+++ b/IntelFrameworkModulePkg/Universal/FirmwareVolume/FwVolDxe/FwVolDxe.inf
@@ -29,7 +29,7 @@
#
# The following information is for reference only and not required by the build tools.
#
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
#
[Sources]
--git a/IntelFrameworkModulePkg/Universal/SectionExtractionDxe/SectionExtractionDxe.inf b/IntelFrameworkModulePkg/Universal/SectionExtractionDxe/SectionExtractionDxe.inf
index ab0bd63076..efa09158a3 100644
--- a/IntelFrameworkModulePkg/Universal/SectionExtractionDxe/SectionExtractionDxe.inf
+++ b/IntelFrameworkModulePkg/Universal/SectionExtractionDxe/SectionExtractionDxe.inf
@@ -27,7 +27,7 @@
# The following information is for reference only and not required by the build tools.
#
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
#
[Sources]
diff --git a/IntelFrameworkModulePkg/Universal/StatusCode/DatahubStatusCodeHandlerDxe/DatahubStatusCodeHandlerDxe.inf b/IntelFrameworkModulePkg/Universal/StatusCode/DatahubStatusCodeHandlerDxe/DatahubStatusCodeHandlerDxe.inf
index 1a576772a3..3f32722d97 100644
--- a/IntelFrameworkModulePkg/Universal/StatusCode/DatahubStatusCodeHandlerDxe/DatahubStatusCodeHandlerDxe.inf
+++ b/IntelFrameworkModulePkg/Universal/StatusCode/DatahubStatusCodeHandlerDxe/DatahubStatusCodeHandlerDxe.inf
@@ -25,7 +25,7 @@
#
# The following information is for reference only and not required by the build tools.
#
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
+# VALID_ARCHITECTURES = IA32 X64 EBC
#
[Sources]
--
2.16.2.windows.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH 17/37] IntelFrameworkModulePkg: Removing ipf from edk2.
2018-06-13 3:44 [PATCH 17/37] IntelFrameworkModulePkg: Removing ipf from edk2 chenc2
@ 2018-06-13 5:52 ` Gao, Liming
0 siblings, 0 replies; 2+ messages in thread
From: Gao, Liming @ 2018-06-13 5:52 UTC (permalink / raw)
To: Chen, Chen A, edk2-devel@lists.01.org; +Cc: Kinney, Michael D
Reviewed-by: Liming Gao <liming.gao@intel.com>
>-----Original Message-----
>From: Chen, Chen A
>Sent: Wednesday, June 13, 2018 11:44 AM
>To: edk2-devel@lists.01.org
>Cc: Chen, Chen A <chen.a.chen@intel.com>; Gao, Liming
><liming.gao@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>
>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 <liming.gao@intel.com>
>Cc: Michael D Kinney <michael.d.kinney@intel.com>
>Signed-off-by: chenc2 <chen.a.chen@intel.com>
>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 = InitializeIsaBus
>
> #
>-# VALID_ARCHITECTURES = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = IA32 X64 EBC
> # DRIVER_BINDING = gIsaBusControllerDriver
> # COMPONENT_NAME = gIsaBusComponentName;
> # COMPONENT_NAME2 = 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 = InitializeIsaFloppy
>
> #
>-# VALID_ARCHITECTURES = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = IA32 X64 EBC
> # DRIVER_BINDING = gFdcControllerDriver;
> # COMPONENT_NAME = gIsaFloppyComponentName;
> # COMPONENT_NAME2 = 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 = IA32 X64 IPF EBC (EBC is for build only)
>+# VALID_ARCHITECTURES = 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 = InitializeIsaIo
>
> #
>-# VALID_ARCHITECTURES = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = IA32 X64 EBC
> # DRIVER_BINDING = gIsaIoDriver
> # COMPONENT_NAME = gIsaIoComponentName;
> # COMPONENT_NAME2 = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = IA32 X64 EBC
> #
> # DRIVER_BINDING = gSerialControllerDriver
> # COMPONENT_NAME = 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 = InitializePs2Keyboard
>
> #
>-# VALID_ARCHITECTURES = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = IA32 X64 EBC
> # DRIVER_BINDING = gKeyboardControllerDriver;
> # COMPONENT_NAME = gPs2KeyboardComponentName;
> # COMPONENT_NAME2 = 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 = InitializePs2MouseAbsolutePointer
>
> #
>-# VALID_ARCHITECTURES = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = IA32 X64 EBC
> # DRIVER_BINDING = gPS2MouseAbsolutePointerDriver;
> # COMPONENT_NAME =
>gPs2MouseAbsolutePointerComponentName;
> # COMPONENT_NAME2 =
>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 = InitializePs2Mouse
>
> #
>-# VALID_ARCHITECTURES = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = IA32 X64 EBC
> # DRIVER_BINDING = gPS2MouseDriver;
> # COMPONENT_NAME = gPs2MouseComponentName;
> # COMPONENT_NAME2 = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = IA32 X64 EBC
> #
> # DRIVER_BINDING = gIDEBusDriverBinding
> # COMPONENT_NAME = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = IA32 X64 EBC
> # DRIVER_BINDING = gPciVgaMiniPortDriverBinding;
> # COMPONENT_NAME = gPciVgaMiniPortComponentName;
> # COMPONENT_NAME2 = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = IA32 X64 EBC
> #
> # DRIVER_BINDING = gBiosKeyboardDriverBinding
> # COMPONENT_NAME = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = IA32 X64 EBC
> #
> # DRIVER_BINDING = gBiosSnp16DriverBinding
> # COMPONENT_NAME = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = IA32 X64 EBC
> #
> # DRIVER_BINDING = gBiosVideoDriverBinding
> # COMPONENT_NAME = 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.<BR>
>-
>-This program and the accompanying materials
>-are licensed and made available under the terms and conditions
>-of the BSD License which accompanies this distribution. The
>-full text of the license may be found at
>-http://opensource.org/licenses/bsd-license.php
>-
>-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
>-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
>EXPRESS OR IMPLIED.
>-
>-**/
>-
>-#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 parameters
>- @param BbsEntry The 0-based index into the BbsTable for the
>- parent device.
>- @param BeerData Pointer to the 128 bytes of ram BEER data.
>- @param ServiceAreaData Pointer to the 64 bytes of raw Service Area
>data.
>- The caller must provide a pointer to the specific
>- Service Area and not the start all Service 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 = 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 = gBS->HandleProtocol (
>- ImageHandle,
>- &gEfiLoadedImageProtocolGuid,
>- (VOID *) &LoadedImage
>- );
>-
>- if (!EFI_ERROR (Status)) {
>- LoadedImageBase = (EFI_PHYSICAL_ADDRESS) (UINTN) LoadedImage-
>>ImageBase;
>- if (LoadedImageBase > 0xffffffff) {
>- NumberOfPages = (UINTN) (DivU64x32(LoadedImage->ImageSize,
>EFI_PAGE_SIZE) + 1);
>-
>- //
>- // Allocate buffer below 4GB here
>- //
>- Status = 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 = (VOID *)(UINTN)LoadedImageBase;
>- ImageContext.ImageRead = PeCoffLoaderImageReadFromMemory;
>-
>- //
>- // Get information about the image being loaded
>- //
>- Status = PeCoffLoaderGetImageInfo (&ImageContext);
>- if (EFI_ERROR (Status)) {
>- return Status;
>- }
>- ImageContext.ImageAddress = (PHYSICAL_ADDRESS)MemoryAddress;
>- //
>- // Align buffer on section boundary
>- //
>- ImageContext.ImageAddress += ImageContext.SectionAlignment - 1;
>- ImageContext.ImageAddress &=
>~((PHYSICAL_ADDRESS)ImageContext.SectionAlignment - 1);
>-
>- //
>- // Load the image to our new buffer
>- //
>- Status = PeCoffLoaderLoadImage (&ImageContext);
>- if (EFI_ERROR (Status)) {
>- gBS->FreePages (MemoryAddress, NumberOfPages);
>- return Status;
>- }
>-
>- //
>- // Relocate the image in our new buffer
>- //
>- Status = 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 = NULL;
>- Status = 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 = ((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.<BR>
>-
>-This program and the accompanying materials
>-are licensed and made available under the terms and conditions
>-of the BSD License which accompanies this distribution. The
>-full text of the license may be found at
>-http://opensource.org/licenses/bsd-license.php
>-
>-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
>-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
>EXPRESS OR IMPLIED.
>-
>-**/
>-
>-#ifndef _IPF_THUNK_H_
>-#define _IPF_THUNK_H_
>-
>-#include "LegacyBiosInterface.h"
>-#include <IndustryStandard/Sal.h>
>-
>-/**
>- 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.<BR>
>-//
>-// This program and the accompanying materials
>-// are licensed and made available under the terms and conditions
>-// of the BSD License which accompanies this distribution. The
>-// full text of the license may be found at
>-// http://opensource.org/licenses/bsd-license.php
>-//
>-// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
>BASIS,
>-// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
>EXPRESS OR IMPLIED.
>-//
>-////
>-
>-#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.<BR>
>-//
>-// This program and the accompanying materials
>-// are licensed and made available under the terms and conditions
>-// of the BSD License which accompanies this distribution. The
>-// full text of the license may be found at
>-// http://opensource.org/licenses/bsd-license.php
>-//
>-// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
>BASIS,
>-// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
>EXPRESS OR IMPLIED.
>-//
>-////
>-
>-.file "IpfThunk.s"
>-
>-#include "IpfMacro.i"
>-#include "Ipf/IpfThunk.i"
>-
>-.align 0x10
>-//-----------------------------------------------------------------------------
>-//++
>-// EfiIaEntryPoint
>-//
>-// Register physical address of Esal Data Area
>-//
>-// On Entry :
>-// in1 = ptr to legacy bios reg
>-// in2 = ptr to Call Stack
>-// in3 = Call Stack Size
>-//
>-// Return Value:
>-// r8 = SAL_SUCCESS
>-//
>-// As per static calling conventions.
>-//
>-//--
>-//---------------------------------------------------------------------------
>-PROCEDURE_ENTRY(EfiIaEntryPoint)
>-
>- alloc loc0 = 8,10,8,0;;
>-
>- mov out0 = r0;;
>- mov out1 = r0;;
>- mov out2 = r0;;
>- mov out3 = r0;;
>- mov out4 = r0;;
>- mov out5 = r0;;
>- mov out6 = r0;;
>- mov out7 = r0;;
>-
>- mov loc1 = b0;;
> // save efi (b0)
>- mov loc2 = psr;; //
>save efi (PSR)
>- mov loc3 = gp;;
> // save efi (GP)
>- mov loc4 = pr;;
> // save efi (PR)
>- mov loc5 = sp;;
> // save efi (SP)
>- mov loc6 = r13;; //
>save efi (TP)
>- mov loc7 = ar.lc;; //
>save efi (LC)
>- mov loc8 = ar.fpsr;; // save efi
>(FPSR)
>-
>- mov r8 = r0;;
> // return status
>- mov r9 = r0;;
> // return value
>- mov r10 = r0;;
> // return value
>- mov r11 = r0;;
> // return value
>-
>-bios_int_func::
>- rsm 0x4000;;
> // i(14)=0, disable interrupt
>- srlz.d;;
>- srlz.i;;
>-
>-//---------------------//
>-// save fp registers //
>-//---------------------//
>-
>- dep sp = 0,sp,0,4;;
> // align 16
>- add sp = -16,sp;;
> // post decrement
>-
>-int_ip_1x::
>- mov r2 = ip;;
>- add r2 = (int_ip_1y - int_ip_1x),r2;;
>- mov b7 = r2;;
>- br save_fp_registers;;
>-
>-int_ip_1y::
>- add sp = 16,sp;; // adjust (SP)
>- mov loc9 = sp;;
> // save (SP)
>- adds sp = 0x10,in1;; //
>in1 + 0x10 = SP
>- ld4 sp = [sp];;
> // SP
>- adds r17 = 0x32,in1;; // in1 +
>0x32 = SS
>- ld2 r17 = [r17];; //
>SS
>- movl r2 = 0xffffffff;; // if no SS:SP,
>then define new SS:SP
>- cmp.ne p6,p0 = sp,r2;;
>- movl r2 = 0xffff;;
>- cmp.ne.or p6,p0 = r17,r2;;
>- (p6) br.sptk bif_1;;
>-
>- mov sp = in3;;
> // 16-bit stack pointer
>- mov r2 = psr;;
>- tbit.z p6,p7 = r2,17;; // psr.dt
>(Physical OR Virtual)
>-
>-bif_ip1x::
>- mov r2 = in2;;
> // ia32 callback stack top
>- mov r3 = in3;;
> // 16-bit stack pointer
>- sub r2 = r2,r3;;
>- shr.u r17 = r2,4;; //
>16-bit stack segment
>-
>-bif_1::
>- extr.u sp = sp,0,16;; // SP (16-
>bit sp for legacy code)
>- dep sp = 0,sp,0,3;; // align 8
>- cmp.eq p6,p0 = 0,sp;; // if SP=0000 then wrap to
>0x10000
>- (p6) dep sp = -1,sp,16,1;;
>- shladd r2 = r17,4,sp;; // ESP =
>SS<<4+SP
>- add r2 = -8,r2;;
> // post decrement 64 bit pointer
>- add sp = -8,sp;;
> // post decrement SP
>-
>-sale_ip1x::
>- mov r18 = ip;;
>- adds r18 = (sale_ip1y - sale_ip1x),r18;;
>- sub r18 = r18,r2;; //
>return address - CS base
>- add r18 = r18,sp;;
> // adjustment for stack
>- shl r18 = r18,32;;
>- movl r19 = 0xb80f66fa;; // CLI, JMPE
>xxxxxxxx
>- or r18 = r18,r19;;
>- st8 [r2] = r18;; //
>(FA,66,0F,B8,xx,xx,xx,xx)
>-
>- cmp.eq p6,p0 = 0,sp;; // if SP=0000 then
>wrap to 0x10000
>- (p6) dep sp = -1,sp,16,1;;
>- shladd r2 = r17,4,sp;; //
>ESP=SS<<4+SP
>- add r2 = -2,r2;;
> // post decrement 64 bit pointer
>- add sp = -2,sp;;
> // post decrement SP
>-
>- movl r18 = 0x8000000000000100;; // CALL FAR
>function
>- cmp.eq p6,p7 = in0,r18;;
>- (p6) add r19 = 0x28,in1;; // in1 + 0x28 = CS
>- (p6) ld2 r18 = [r19],-4;; // CS
>- (p6) st2 [r2] = r18,-2;; // in1 +
>0x24 = EIP
>- (p6) ld2 r18 = [r19];; //
>EIP
>- (p6) st2 [r2] = r18,-2;; //
>- (p6) movl r18 = 0x9a90;; // nop, CALLFAR
>xxxx:yyyy
>-
>- (p7) movl r18 = 0xcd;; // INT xx
>- (p7) dep r18 = in0,r18,8,8;;
>- st2 [r2] = r18;;
> // (CD,xx)
>-
>- mov r18 = r2;; // EIP for legacy execution
>-
>-//------------------------------//
>-// flush 32 bytes legacy code //
>-//------------------------------//
>-
>- dep r2 = 0,r2,0,5;; // align to 32
>- fc r2;;
>- sync.i;;
>- srlz.i;;
>- srlz.d;;
>-
>-//------------------------------//
>-// load legacy registers //
>-//------------------------------//
>- mov r2 = in1;;
> // IA32 BIOS register state
>- ld4 r8 = [r2],4;;
> // in1 + 0 = EAX
>- ld4 r9 = [r2],4;;
> // in1 + 4 = ECX
>- ld4 r10 = [r2],4;;
> // in1 + 8 = EDX
>- ld4 r11 = [r2],4;;
> // in1 + 12 = EBX
>-
>- add r2 = 4,r2;;
> // in1 + 16 = ESP (skip)
>-
>- ld4 r13 = [r2],4;;
> // in1 + 20 = EBP
>- ld4 r14 = [r2],4;;
> // in1 + 24 = ESI
>- ld4 r15 = [r2],4;;
> // in1 + 28 = EDI
>- ld4 r3 = [r2],4;;
> // in1 + 32 = EFLAGS
>- mov ar.eflag = r3;;
>-
>- add r2 = 4,r2;;
> // in1 + 36 = EIP (skip)
>- add r2 = 2,r2;;
> // in1 + 40 = CS (skip)
>-
>- ld2 r16 = [r2],2;;
> // in1 + 42 = DS, (r16 = GS,FS,ES,DS)
>- movl r27 = 0xc93fffff00000000;;
>- dep r27 = r16,r27,4,16;;
> // r27 = DSD
>-
>- ld2 r19 = [r2],2;;
> // in1 + 44 = ES
>- dep r16 = r19,r16,16,16;;
>- movl r24 = 0xc93fffff00000000;;
>- dep r24 = r19,r24,4,16;;
> // r24 = ESD
>-
>- ld2 r19 = [r2],2;;
> // in1 + 46 = FS
>- dep r16 = r19,r16,32,16;;
>- movl r28 = 0xc93fffff00000000;;
>- dep r28 = r19,r28,4,16;;
> // r28 = FSD
>-
>- ld2 r19 = [r2],2;;
> // in1 + 48 = GS
>- dep r16 = r19,r16,48,16;;
>- movl r29 = 0xc93fffff00000000;;
>- dep r29 = r19,r29,4,16;;
> // r29 = GSD
>-
>- mov r30 = r0;;
> // r30 = LDTD, clear NaT
>- mov r31 = r0;;
> // r31 = GDTD, clear NaT
>-
>- dep r17 = r17,r17,16,16;;
> // CS = SS, (r17 = TSS,LDT,SS,CS)
>-
>- movl r3 = 0x0930ffff00000000;;
>- dep r3 = r17,r3,4,16;;
>- mov ar.csd = r3;;
> // ar25 = CSD
>- mov ar.ssd = r3;;
> // ar26 = SSD
>-
>-//------------------------------//
>-// give control to INT function //
>-//------------------------------//
>-
>- br.call.sptk b0 = execute_int_function;;
>-
>-//------------------------------//
>-// store legacy registers //
>-//------------------------------//
>-
>- mov r2 = in1;;
>- st4 [r2] = r8,4;;
> // EAX
>- st4 [r2] = r9,4;;
> // ECX
>- st4 [r2] = r10,4;;
> // EDX
>- st4 [r2] = r11,4;;
> // EBX
>-
>- add r2 = 4,r2;;
> // ESP (skip)
>-
>- st4 [r2] = r13,4;;
> // EBP
>- st4 [r2] = r14,4;;
> // ESI
>- st4 [r2] = r15,4;;
> // EDI
>-
>- mov r3 = ar.eflag;;
>- st4 [r2] = r3,4;;
> // EFLAGS
>-
>- add r2 = 4,r2;;
> // EIP (skip)
>- add r2 = 2,r2;;
> // CS (skip)
>-
>- st2 [r2] = r16,2;;
> // DS, (r16 = GS,FS,ES,DS)
>-
>- extr.u r3 = r16,16,16;;
>- st2 [r2] = r3,2;;
> // ES
>-
>- extr.u r3 = r16,32,16;;
>- st2 [r2] = r3,2;;
> // FS
>-
>- extr.u r3 = r16,48,16;;
>- st2 [r2] = r3,2;;
> // GS
>-
>-//------------------------------//
>-// restore fp registers //
>-//------------------------------//
>- mov sp = loc9;;
> // restore (SP)
>-int_ip_2x::
>- mov r2 = ip;;
>- add r2 = (int_ip_2y - int_ip_2x),r2;;
>- mov b7 = r2;;
>- br restore_fp_registers;;
>-
>-int_ip_2y::
>- mov r8 = r0;;
> // return status
>- mov r9 = r0;;
> // return value
>- mov r10 = r0;;
> // return value
>- mov r11 = r0;;
> // return value
>-
>- mov ar.fpsr = loc8;; //
>restore efi (FPSR)
>- mov ar.lc = loc7;; //
>restore efi (LC)
>- mov r13 = loc6;;
> // restore efi (TP)
>- mov sp = loc5;;
> // restore efi (SP)
>- mov pr = loc4;;
> // restore efi (PR)
>- mov gp = loc3;;
> // restore efi (GP)
>- mov psr.l = loc2;; //
>restore efi (PSR)
>- srlz.d;;
>- srlz.i;;
>- mov b0 = loc1;;
> // restore efi (b0)
>- mov ar.pfs = loc0;;
>- br.ret.sptk b0;; //
>return to efi
>-
>-PROCEDURE_EXIT (EfiIaEntryPoint)
>-
>-//==============================//
>-// EXECUTE_INT_FUNCTION //
>-//==============================//
>-// switch to virtual address //
>-//------------------------------//
>-
>-execute_int_function::
>-
>- alloc r2 = 0,0,0,0;; //
>cfm.sof=0
>- flushrs;;
>-
>- rsm 0x2000;;
> // ic(13)=0 for control register programming
>- srlz.d;;
>- srlz.i;;
>-
>- mov r2 = psr;;
>- dep r2 = -1,r2,34,1;; //
>set is(34)
>- dep r2 = -1,r2,44,1;; //
>set bn(44)
>- dep r2 = -1,r2,36,1;; //
>set it(36)
>- dep r2 = -1,r2,27,1;; //
>set rt(27)
>- dep r2 = -1,r2,17,1;; //
>set dt(17)
>- dep r2 = 0,r2,3,1;;
> // reset ac(3)
>- dep r2 = -1,r2,13,1;; //
>set ic(13)
>-
>- mov cr.ipsr = r2;;
>- mov cr.ifs = r0;;
> // clear interruption function state register
>- mov cr.iip = r18;;
>-
>- rfi;;
> // go to legacy code execution
>-
>-//------------------------------//
>-// back from legacy code //
>-//------------------------------//
>-// switch to physical address //
>-//------------------------------//
>-
>-sale_ip1y::
>- rsm 0x6000;;
> // i(14)=0,ic(13)=0 for control reg programming
>- srlz.d;;
>- srlz.i;;
>-
>- mov r2 = psr;;
>- dep r2 = -1,r2,44,1;;
> // set bn(44)
>- dep r2 = 0,r2,36,1;;
> // reset it(36)
>- dep r2 = 0,r2,27,1;;
> // reset rt(27)
>- dep r2 = 0,r2,17,1;;
> // reset dt(17)
>- dep r2 = -1,r2,13,1;;
> // set ic(13)
>- mov cr.ipsr = r2;;
>-
>-sale_ip2x::
>- mov r2 = ip;;
>- add r2 = (sale_ip2y - sale_ip2x),r2;;
>- mov cr.ifs = r0;;
> // clear interruption function state register
>- mov cr.iip = r2;;
>- rfi;;
>-
>-sale_ip2y::
>- br.ret.sptk b0;; // return to
>SAL
>-
>-//------------------------------//
>-// store fp registers //
>-//------------------------------//
>-save_fp_registers::
>- stf.spill [sp]=f2,-16;; stf.spill [sp]=f3,-16;;
>- stf.spill [sp]=f4,-16;; stf.spill [sp]=f5,-16;; stf.spill [sp]=f6,-16;; stf.spill
>[sp]=f7,-16;;
>- stf.spill [sp]=f8,-16;; stf.spill [sp]=f9,-16;; stf.spill [sp]=f10,-16;; stf.spill
>[sp]=f11,-16;;
>- stf.spill [sp]=f12,-16;; stf.spill [sp]=f13,-16;; stf.spill [sp]=f14,-16;;
>stf.spill [sp]=f15,-16;;
>- stf.spill [sp]=f16,-16;; stf.spill [sp]=f17,-16;; stf.spill [sp]=f18,-16;;
>stf.spill [sp]=f19,-16;;
>- stf.spill [sp]=f20,-16;; stf.spill [sp]=f21,-16;; stf.spill [sp]=f22,-16;;
>stf.spill [sp]=f23,-16;;
>- stf.spill [sp]=f24,-16;; stf.spill [sp]=f25,-16;; stf.spill [sp]=f26,-16;;
>stf.spill [sp]=f27,-16;;
>- stf.spill [sp]=f28,-16;; stf.spill [sp]=f29,-16;; stf.spill [sp]=f30,-16;;
>stf.spill [sp]=f31,-16;;
>- stf.spill [sp]=f32,-16;; stf.spill [sp]=f33,-16;; stf.spill [sp]=f34,-16;;
>stf.spill [sp]=f35,-16;;
>- stf.spill [sp]=f36,-16;; stf.spill [sp]=f37,-16;; stf.spill [sp]=f38,-16;;
>stf.spill [sp]=f39,-16;;
>- stf.spill [sp]=f40,-16;; stf.spill [sp]=f41,-16;; stf.spill [sp]=f42,-16;;
>stf.spill [sp]=f43,-16;;
>- stf.spill [sp]=f44,-16;; stf.spill [sp]=f45,-16;; stf.spill [sp]=f46,-16;;
>stf.spill [sp]=f47,-16;;
>- stf.spill [sp]=f48,-16;; stf.spill [sp]=f49,-16;; stf.spill [sp]=f50,-16;;
>stf.spill [sp]=f51,-16;;
>- stf.spill [sp]=f52,-16;; stf.spill [sp]=f53,-16;; stf.spill [sp]=f54,-16;;
>stf.spill [sp]=f55,-16;;
>- stf.spill [sp]=f56,-16;; stf.spill [sp]=f57,-16;; stf.spill [sp]=f58,-16;;
>stf.spill [sp]=f59,-16;;
>- stf.spill [sp]=f60,-16;; stf.spill [sp]=f61,-16;; stf.spill [sp]=f62,-16;;
>stf.spill [sp]=f63,-16;;
>- stf.spill [sp]=f64,-16;; stf.spill [sp]=f65,-16;; stf.spill [sp]=f66,-16;;
>stf.spill [sp]=f67,-16;;
>- stf.spill [sp]=f68,-16;; stf.spill [sp]=f69,-16;; stf.spill [sp]=f70,-16;;
>stf.spill [sp]=f71,-16;;
>- stf.spill [sp]=f72,-16;; stf.spill [sp]=f73,-16;; stf.spill [sp]=f74,-16;;
>stf.spill [sp]=f75,-16;;
>- stf.spill [sp]=f76,-16;; stf.spill [sp]=f77,-16;; stf.spill [sp]=f78,-16;;
>stf.spill [sp]=f79,-16;;
>- stf.spill [sp]=f80,-16;; stf.spill [sp]=f81,-16;; stf.spill [sp]=f82,-16;;
>stf.spill [sp]=f83,-16;;
>- stf.spill [sp]=f84,-16;; stf.spill [sp]=f85,-16;; stf.spill [sp]=f86,-16;;
>stf.spill [sp]=f87,-16;;
>- stf.spill [sp]=f88,-16;; stf.spill [sp]=f89,-16;; stf.spill [sp]=f90,-16;;
>stf.spill [sp]=f91,-16;;
>- stf.spill [sp]=f92,-16;; stf.spill [sp]=f93,-16;; stf.spill [sp]=f94,-16;;
>stf.spill [sp]=f95,-16;;
>- stf.spill [sp]=f96,-16;; stf.spill [sp]=f97,-16;; stf.spill [sp]=f98,-16;;
>stf.spill [sp]=f99,-16;;
>- stf.spill [sp]=f100,-16;;stf.spill [sp]=f101,-16;;stf.spill [sp]=f102,-
>16;;stf.spill [sp]=f103,-16;;
>- stf.spill [sp]=f104,-16;;stf.spill [sp]=f105,-16;;stf.spill [sp]=f106,-
>16;;stf.spill [sp]=f107,-16;;
>- stf.spill [sp]=f108,-16;;stf.spill [sp]=f109,-16;;stf.spill [sp]=f110,-
>16;;stf.spill [sp]=f111,-16;;
>- stf.spill [sp]=f112,-16;;stf.spill [sp]=f113,-16;;stf.spill [sp]=f114,-
>16;;stf.spill [sp]=f115,-16;;
>- stf.spill [sp]=f116,-16;;stf.spill [sp]=f117,-16;;stf.spill [sp]=f118,-
>16;;stf.spill [sp]=f119,-16;;
>- stf.spill [sp]=f120,-16;;stf.spill [sp]=f121,-16;;stf.spill [sp]=f122,-
>16;;stf.spill [sp]=f123,-16;;
>- stf.spill [sp]=f124,-16;;stf.spill [sp]=f125,-16;;stf.spill [sp]=f126,-
>16;;stf.spill [sp]=f127,-16;;
>- invala;;
>- br b7;;
>-
>-//------------------------------//
>-// restore fp registers //
>-//------------------------------//
>-restore_fp_registers::
>- ldf.fill f127=[sp],16;;ldf.fill f126=[sp],16;;ldf.fill f125=[sp],16;;ldf.fill
>f124=[sp],16;;
>- ldf.fill f123=[sp],16;;ldf.fill f122=[sp],16;;ldf.fill f121=[sp],16;;ldf.fill
>f120=[sp],16;;
>- ldf.fill f119=[sp],16;;ldf.fill f118=[sp],16;;ldf.fill f117=[sp],16;;ldf.fill
>f116=[sp],16;;
>- ldf.fill f115=[sp],16;;ldf.fill f114=[sp],16;;ldf.fill f113=[sp],16;;ldf.fill
>f112=[sp],16;;
>- ldf.fill f111=[sp],16;;ldf.fill f110=[sp],16;;ldf.fill f109=[sp],16;;ldf.fill
>f108=[sp],16;;
>- ldf.fill f107=[sp],16;;ldf.fill f106=[sp],16;;ldf.fill f105=[sp],16;;ldf.fill
>f104=[sp],16;;
>- ldf.fill f103=[sp],16;;ldf.fill f102=[sp],16;;ldf.fill f101=[sp],16;;ldf.fill
>f100=[sp],16;;
>- ldf.fill f99=[sp],16;; ldf.fill f98=[sp],16;; ldf.fill f97=[sp],16;; ldf.fill
>f96=[sp],16;;
>- ldf.fill f95=[sp],16;; ldf.fill f94=[sp],16;; ldf.fill f93=[sp],16;; ldf.fill
>f92=[sp],16;;
>- ldf.fill f91=[sp],16;; ldf.fill f90=[sp],16;; ldf.fill f89=[sp],16;; ldf.fill
>f88=[sp],16;;
>- ldf.fill f87=[sp],16;; ldf.fill f86=[sp],16;; ldf.fill f85=[sp],16;; ldf.fill
>f84=[sp],16;;
>- ldf.fill f83=[sp],16;; ldf.fill f82=[sp],16;; ldf.fill f81=[sp],16;; ldf.fill
>f80=[sp],16;;
>- ldf.fill f79=[sp],16;; ldf.fill f78=[sp],16;; ldf.fill f77=[sp],16;; ldf.fill
>f76=[sp],16;;
>- ldf.fill f75=[sp],16;; ldf.fill f74=[sp],16;; ldf.fill f73=[sp],16;; ldf.fill
>f72=[sp],16;;
>- ldf.fill f71=[sp],16;; ldf.fill f70=[sp],16;; ldf.fill f69=[sp],16;; ldf.fill
>f68=[sp],16;;
>- ldf.fill f67=[sp],16;; ldf.fill f66=[sp],16;; ldf.fill f65=[sp],16;; ldf.fill
>f64=[sp],16;;
>- ldf.fill f63=[sp],16;; ldf.fill f62=[sp],16;; ldf.fill f61=[sp],16;; ldf.fill
>f60=[sp],16;;
>- ldf.fill f59=[sp],16;; ldf.fill f58=[sp],16;; ldf.fill f57=[sp],16;; ldf.fill
>f56=[sp],16;;
>- ldf.fill f55=[sp],16;; ldf.fill f54=[sp],16;; ldf.fill f53=[sp],16;; ldf.fill
>f52=[sp],16;;
>- ldf.fill f51=[sp],16;; ldf.fill f50=[sp],16;; ldf.fill f49=[sp],16;; ldf.fill
>f48=[sp],16;;
>- ldf.fill f47=[sp],16;; ldf.fill f46=[sp],16;; ldf.fill f45=[sp],16;; ldf.fill
>f44=[sp],16;;
>- ldf.fill f43=[sp],16;; ldf.fill f42=[sp],16;; ldf.fill f41=[sp],16;; ldf.fill
>f40=[sp],16;;
>- ldf.fill f39=[sp],16;; ldf.fill f38=[sp],16;; ldf.fill f37=[sp],16;; ldf.fill
>f36=[sp],16;;
>- ldf.fill f35=[sp],16;; ldf.fill f34=[sp],16;; ldf.fill f33=[sp],16;; ldf.fill
>f32=[sp],16;;
>- ldf.fill f31=[sp],16;; ldf.fill f30=[sp],16;; ldf.fill f29=[sp],16;; ldf.fill
>f28=[sp],16;;
>- ldf.fill f27=[sp],16;; ldf.fill f26=[sp],16;; ldf.fill f25=[sp],16;; ldf.fill
>f24=[sp],16;;
>- ldf.fill f23=[sp],16;; ldf.fill f22=[sp],16;; ldf.fill f21=[sp],16;; ldf.fill
>f20=[sp],16;;
>- ldf.fill f19=[sp],16;; ldf.fill f18=[sp],16;; ldf.fill f17=[sp],16;; ldf.fill
>f16=[sp],16;;
>- ldf.fill f15=[sp],16;; ldf.fill f14=[sp],16;; ldf.fill f13=[sp],16;; ldf.fill
>f12=[sp],16;;
>- ldf.fill f11=[sp],16;; ldf.fill f10=[sp],16;; ldf.fill f9=[sp],16;; ldf.fill
>f8=[sp],16;;
>- ldf.fill f7=[sp],16;; ldf.fill f6=[sp],16;; ldf.fill f5=[sp],16;; ldf.fill
>f4=[sp],16;;
>- ldf.fill f3=[sp],16;; ldf.fill f2=[sp],16;;
>- invala;;
>- br b7;;
>-
>-//-----------------------------------------------------------------------------
>-//++
>-// EsalSetSalDataArea
>-//
>-// Register physical address of Esal Data Area
>-//
>-// On Entry :
>-// in0 = Reverse Thunk Address
>-// in1 = IntThunk Address
>-//
>-// Return Value:
>-// r8 = SAL_SUCCESS
>-//
>-// As per static calling conventions.
>-//
>-//--
>-//---------------------------------------------------------------------------
>-
>-PROCEDURE_ENTRY (EsalSetSalDataArea)
>-
>- NESTED_SETUP (4,8,0,0)
>-
>-EsalCalcStart1_3::
>- mov r8 = ip;;
>- add r8 = (ReverseThunkAddress - EsalCalcStart1_3), r8;;
>- st8 [r8] = in0;;
>-
>-EsalCalcStart1_4::
>- mov r8 = ip;;
>- add r8 = (IntThunkAddress - EsalCalcStart1_4), r8;;
>- st8 [r8] = in1;;
>-
>- mov r8 = r0;;
>-
>- NESTED_RETURN
>-
>-PROCEDURE_EXIT (EsalSetSalDataArea)
>-
>-//-----------------------------------------------------------------------------
>-//++
>-// EsagGetReverseThunkAddress
>-//
>-// Register physical address of Esal Data Area
>-//
>-// On Entry :
>-// out0 = CodeStart
>-// out1 = CodeEnd
>-// out1 = ReverseThunkCode
>-//
>-// Return Value:
>-// r8 = SAL_SUCCESS
>-//
>-// As per static calling conventions.
>-//
>-//--
>-//---------------------------------------------------------------------------
>-
>-PROCEDURE_ENTRY (EsalGetReverseThunkAddress)
>-
>- NESTED_SETUP (4,8,0,0)
>-
>-EsalCalcStart1_31::
>- mov r8 = ip;;
>- add r8 = (Ia32CodeStart - EsalCalcStart1_31), r8;;
>- mov r9 = r8;;
>-
>-EsalCalcStart1_41::
>- mov r8 = ip;;
>- add r8 = (Ia32CodeEnd - EsalCalcStart1_41), r8;;
>- mov r10 = r8;;
>-
>-EsalCalcStart1_51::
>- mov r8 = ip;;
>- add r8 = (ReverseThunkAddress - EsalCalcStart1_51), r8;;
>- mov r11 = r8;;
>- mov r8 = 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.<BR>
>-
>-This program and the accompanying materials
>-are licensed and made available under the terms and conditions
>-of the BSD License which accompanies this distribution. The
>-full text of the license may be found at
>-http://opensource.org/licenses/bsd-license.php
>-
>-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
>-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
>EXPRESS OR IMPLIED.
>-
>-**/
>-
>-#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 = 0x8000000000000000;
>- IntTypeVariable |= (UINT64)BiosInt;
>-
>- DwordRegs.Cs = Segment;
>- DwordRegs.Eip = Offset;
>-
>- DwordRegs.Ds = Regs->X.DS;
>- DwordRegs.Es = Regs->X.ES;
>- DwordRegs.Fs = Regs->X.ES;
>- DwordRegs.Gs = Regs->X.ES;
>- DwordRegs.Ss = 0xFFFF;
>-
>- DwordRegs.Eax = Regs->X.AX;
>- DwordRegs.Ebx = Regs->X.BX;
>- //
>- // Sometimes, ECX is used to pass in 32 bit data. For example, INT 1Ah, AX =
>B10Dh is
>- // "PCI BIOS v2.0c + Write Configuration DWORD" and ECX has the dword to
>write.
>- //
>- DwordRegs.Ecx = Regs->E.ECX;
>- DwordRegs.Edx = Regs->X.DX;
>-
>- DwordRegs.Ebp = Regs->X.BP;
>- DwordRegs.Eflag = *((UINT16 *) &Regs->X.Flags);
>-
>- DwordRegs.Edi = Regs->X.DI;
>- DwordRegs.Esi = Regs->X.SI;
>- DwordRegs.Esp = 0xFFFFFFFF;
>-
>- EfiIaEntryPoint (IntTypeVariable, &DwordRegs, ((UINTN) Stack + StackSize),
>StackSize);
>-
>- Regs->X.CS = DwordRegs.Cs;
>-
>- Regs->X.DS = (UINT16) DwordRegs.Ds;
>- Regs->X.SS = (UINT16) DwordRegs.Ss;
>-
>- Regs->E.EAX = DwordRegs.Eax;
>- Regs->E.EBX = DwordRegs.Ebx;
>- Regs->E.ECX = DwordRegs.Ecx;
>- Regs->E.EDX = DwordRegs.Edx;
>-
>- Regs->E.EBP = DwordRegs.Ebp;
>- CopyMem (&Regs->X.Flags, &DwordRegs.Eflag, sizeof (EFI_FLAGS_REG));
>-
>- Regs->E.EDI = DwordRegs.Edi;
>- Regs->E.ESI = 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 = EsalGetReverseThunkAddress ();
>-
>- *CodeStart = SalStatus.r9;
>- *CodeEnd = SalStatus.r10;
>- *ReverseThunkStart = 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 = Private->IntThunk;
>-
>- //
>- // Clear the reserved descriptor
>- //
>- ZeroMem (&(IntThunk->RealModeGdt[0]), sizeof (GDT32));
>-
>- //
>- // Setup a descriptor for real-mode code
>- //
>- CodeGdt = &(IntThunk->RealModeGdt[1]);
>-
>- //
>- // Fill in the descriptor with our real-mode segment value
>- //
>- CodeGdt->Type = 0xA;
>- //
>- // code/read
>- //
>- CodeGdt->System = 1;
>- CodeGdt->Dpl = 0;
>- CodeGdt->Present = 1;
>- CodeGdt->Software = 0;
>- CodeGdt->Reserved = 0;
>- CodeGdt->DefaultSize = 0;
>- //
>- // 16 bit operands
>- //
>- CodeGdt->Granularity = 0;
>-
>- CodeGdt->LimitHi = 0;
>- CodeGdt->LimitLo = 0xffff;
>-
>- Base = (*((UINT32 *) &IntThunk->Code));
>- CodeGdt->BaseHi = (Base >> 24) & 0xFF;
>- CodeGdt->BaseMid = (Base >> 16) & 0xFF;
>- CodeGdt->BaseLo = Base & 0xFFFF;
>-
>- //
>- // Setup a descriptor for read-mode data
>- //
>- DataGdt = &(IntThunk->RealModeGdt[2]);
>- CopyMem (DataGdt, CodeGdt, sizeof (GDT32));
>-
>- DataGdt->Type = 0x2;
>- //
>- // read/write data
>- //
>- DataGdt->BaseHi = 0x0;
>- //
>- // Base = 0
>- //
>- DataGdt->BaseMid = 0x0;
>- //
>- DataGdt->BaseLo = 0x0;
>- //
>- DataGdt->LimitHi = 0x0F;
>- //
>- // Limit = 4Gb
>- //
>- DataGdt->LimitLo = 0xFFFF;
>- //
>- DataGdt->Granularity = 0x1;
>- //
>- //
>- // Compute selector value
>- //
>- IntThunk->RealModeGdtDesc.Limit = (UINT16) (sizeof (IntThunk-
>>RealModeGdt) - 1);
>- CopyMem (&IntThunk->RealModeGdtDesc.Base, (UINT32 *) &IntThunk-
>>RealModeGdt, sizeof (UINT32));
>- //
>- // IntThunk->RealModeGdtDesc.Base = *((UINT32*) &IntThunk-
>>RealModeGdt);
>- //
>- IntThunk->RealModeIdtDesc.Limit = 0xFFFF;
>- IntThunk->RealModeIdtDesc.Base = 0;
>- IntThunk->LowCodeSelector = (UINT32) ((UINTN) CodeGdt - IntThunk-
>>RealModeGdtDesc.Base);
>- IntThunk->LowDataSelector = (UINT32) ((UINTN) DataGdt - IntThunk-
>>RealModeGdtDesc.Base);
>-
>- //
>- // Initialize low real-mode code thunk
>- //
>- RealModeTemplate (&CodeStart, &CodeEnd, &ReverseThunkStart,
>IntThunk);
>-
>- TempData = (UINTN) &(IntThunk->Code);
>- IntThunk->LowReverseThunkStart = ((UINT32) TempData + (UINT32)
>(ReverseThunkStart - CodeStart));
>-
>- EsalSetSalDataArea (TempData, (UINTN) IntThunk);
>- CopyMem (IntThunk->Code, (VOID *) CodeStart, CodeEnd - CodeStart);
>-
>- IntThunk->EfiToLegacy16InitTable.ReverseThunkCallSegment =
>EFI_SEGMENT (*((UINT32 *) &IntThunk->LowReverseThunkStart));
>- IntThunk->EfiToLegacy16InitTable.ReverseThunkCallOffset = EFI_OFFSET
>(*((UINT32 *) &IntThunk->LowReverseThunkStart));
>-
>- return EFI_SUCCESS;
>-}
>-
>-
>-/**
>- Thunk to 16-bit real mode and execute a software interrupt with a vector
>- 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 errors 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 = LEGACY_BIOS_INSTANCE_FROM_THIS (This);
>- IntThunk = Private->IntThunk;
>-
>- //
>- // Get the current flat GDT, IDT, and SS and store them in Private->IntThunk.
>- //
>- Status = LegacyBiosGetFlatDescs (Private);
>- ASSERT_EFI_ERROR (Status);
>-
>- Regs->X.Flags.Reserved1 = 1;
>- Regs->X.Flags.Reserved2 = 0;
>- Regs->X.Flags.Reserved3 = 0;
>- Regs->X.Flags.Reserved4 = 0;
>- Regs->X.Flags.IOPL = 3;
>- Regs->X.Flags.NT = 0;
>- Regs->X.Flags.IF = 1;
>- Regs->X.Flags.TF = 0;
>- Regs->X.Flags.CF = 0;
>- //
>- // Clear the error flag; thunk code may set it.
>- //
>- Stack16 = (UINT16 *) (IntThunk->Stack + LOW_STACK_SIZE);
>-
>- //
>- // Copy regs to low memory stack
>- //
>- Stack16 -= sizeof (EFI_IA32_REGISTER_SET) / sizeof (UINT16);
>- CopyMem (Stack16, Regs, sizeof (EFI_IA32_REGISTER_SET));
>-
>- //
>- // Provide low stack esp
>- //
>- TempData = ((UINTN) Stack16) - ((UINTN) IntThunk);
>- IntThunk->LowStack = *((UINT32 *) &TempData);
>-
>- //
>- // Stack for reverse thunk flat mode.
>- // It must point to top of stack (end of stack space).
>- //
>- TempData = ((UINTN) IntThunk->RevThunkStack) +
>LOW_STACK_SIZE;
>- IntThunk->RevFlatStack = *((UINT32 *) &TempData);
>-
>- //
>- // The call to Legacy16 is a critical section to EFI
>- //
>- OriginalTpl = gBS->RaiseTPL (TPL_HIGH_LEVEL);
>-
>- //
>- // Set Legacy16 state. 0x08, 0x70 is legacy 8259 vector bases.
>- //
>- Status = Private->Legacy8259->SetMode (Private->Legacy8259,
>Efi8259LegacyMode, NULL, NULL);
>- ASSERT_EFI_ERROR (Status);
>-
>- //
>- // Call the real mode thunk code
>- //
>- TempData = BiosInt * 4;
>- Address = (UINTN *) TempData;
>- IaOffset = 0xFFFF & (*Address);
>- IaSegment = 0xFFFF & ((*Address) >> 16);
>-
>- Status = 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 error).
>- //
>- Regs->X.Flags.CF = 1;
>- break;
>- }
>-
>- Status = 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 != 0);
>-}
>-
>-
>-/**
>- Thunk to 16-bit real mode and call Segment:Offset. Regs will contain the
>- 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 arguments
>- @param StackSize Size of Stack in bytes
>-
>- @retval FALSE Thunk completed, and there were no BIOS errors 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 = LEGACY_BIOS_INSTANCE_FROM_THIS (This);
>- IntThunk = Private->IntThunk;
>- IaSegment = Segment;
>- IaOffset = Offset;
>-
>- //
>- // Get the current flat GDT and IDT and store them in Private->IntThunk.
>- //
>- Status = LegacyBiosGetFlatDescs (Private);
>- ASSERT_EFI_ERROR (Status);
>-
>- Regs->X.Flags.Reserved1 = 1;
>- Regs->X.Flags.Reserved2 = 0;
>- Regs->X.Flags.Reserved3 = 0;
>- Regs->X.Flags.Reserved4 = 0;
>- Regs->X.Flags.IOPL = 3;
>- Regs->X.Flags.NT = 0;
>- Regs->X.Flags.IF = 1;
>- Regs->X.Flags.TF = 0;
>- Regs->X.Flags.CF = 0;
>- //
>- // Clear the error flag; thunk code may set it.
>- //
>- Stack16 = (UINT16 *) (IntThunk->Stack + LOW_STACK_SIZE);
>- if (Stack != NULL && StackSize != 0) {
>- //
>- // Copy Stack to low memory stack
>- //
>- Stack16 -= StackSize / sizeof (UINT16);
>- CopyMem (Stack16, Stack, StackSize);
>- }
>- //
>- // Copy regs to low memory stack
>- //
>- Stack16 -= sizeof (EFI_IA32_REGISTER_SET) / sizeof (UINT16);
>- CopyMem (Stack16, Regs, sizeof (EFI_IA32_REGISTER_SET));
>-
>- //
>- // Provide low stack esp
>- //
>- TempData = ((UINTN) Stack16) - ((UINTN) IntThunk);
>- IntThunk->LowStack = *((UINT32 *) &TempData);
>-
>- //
>- // The call to Legacy16 is a critical section to EFI
>- //
>- OriginalTpl = gBS->RaiseTPL (TPL_HIGH_LEVEL);
>-
>- //
>- // Set Legacy16 state. 0x08, 0x70 is legacy 8259 vector bases.
>- //
>- Status = Private->Legacy8259->SetMode (Private->Legacy8259,
>Efi8259LegacyMode, NULL, NULL);
>- ASSERT_EFI_ERROR (Status);
>-
>- //
>- // Call the real mode thunk code
>- //
>- Status = 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 error).
>- //
>- Regs->X.Flags.CF = 1;
>- break;
>- }
>- //
>- // Restore protected mode interrupt state
>- //
>- Status = 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 += sizeof (EFI_IA32_REGISTER_SET) / sizeof (UINT16);
>-
>- if (Stack != NULL && StackSize != 0) {
>- //
>- // Copy low memory stack to Stack
>- //
>- CopyMem (Stack, Stack16, StackSize);
>- Stack16 += StackSize / sizeof (UINT16);
>- }
>-
>- return (BOOLEAN) (Regs->X.Flags.CF != 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 = IA32 X64 IPF
>+# VALID_ARCHITECTURES = 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 ##GUID
>#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 code
>- //
>- 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 GDT
>- DESCRIPTOR32 IdtDesc; // Protected mode IDT
>- UINT32 FlatSs;
>- UINT32 FlatEsp;
>-
>- UINT32 LowCodeSelector; // Low code selector in GDT
>- UINT32 LowDataSelector; // Low data selector 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 mode
>- // 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 selector 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 interface
>- // 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 = 0.96
> DSC_SPECIFICATION = 0x00010005
> OUTPUT_DIRECTORY = Build/IntelFrameworkModuleAll
>- SUPPORTED_ARCHITECTURES = IA32|IPF|X64|EBC|ARM
>+ SUPPORTED_ARCHITECTURES = IA32|X64|EBC|ARM
> BUILD_TARGETS = DEBUG|RELEASE|NOOPT
> SKUID_IDENTIFIER = 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 images
>get placed
>-# into firmware volume images. This section is just a list of modules 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 PI
>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 required 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 firmware 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 {
>- <LibraryClasses>
>- IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
>- }
>-
> [BuildOptions]
> *_*_*_CC_FLAGS = -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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = 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 = 3ddc3b12-99ea-4364-b315-6310a2050be5
> MODULE_TYPE = DXE_DRIVER
> VERSION_STRING = 1.0
>- LIBRARY_CLASS = ReportStatusCodeLib|DXE_CORE DXE_DRIVER
>DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER
>UEFI_APPLICATION UEFI_DRIVER SMM_CORE
>+ LIBRARY_CLASS = ReportStatusCodeLib|DXE_CORE DXE_DRIVER
>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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = 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 = bda39d3a-451b-4350-8266-81ab10fa0523
> MODULE_TYPE = PEIM
> VERSION_STRING = 1.0
>- LIBRARY_CLASS = 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 = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = IA32 X64 EBC
> #
> # DRIVER_BINDING = gVgaClassDriverBinding
> # COMPONENT_NAME = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = 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 = IA32 X64 IPF EBC
>+# VALID_ARCHITECTURES = IA32 X64 EBC
> #
>
> [Sources]
>--
>2.16.2.windows.1
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-06-13 5:52 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-13 3:44 [PATCH 17/37] IntelFrameworkModulePkg: Removing ipf from edk2 chenc2
2018-06-13 5:52 ` Gao, Liming
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox