Remove the following Protocols from the IntelFrameworkPkg because they are identical to Protocols from the PI 1.2 Specification that have been added to the MdePkg
1) IDE Controller Init
2) Incompatible PCI Device Support
3) PCI Hot Bridge Resource Allocation
4) PCI Hot Plug
5) PCI Platform


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8941 6f19259b-4bc3-4df7-8a09-765794883524
diff --git a/IntelFrameworkPkg/Include/Protocol/IdeControllerInit.h b/IntelFrameworkPkg/Include/Protocol/IdeControllerInit.h
deleted file mode 100644
index e65716b..0000000
--- a/IntelFrameworkPkg/Include/Protocol/IdeControllerInit.h
+++ /dev/null
@@ -1,479 +0,0 @@
-/** @file

-  This file declares EFI IDE Controller Init Protocol

-  The EFI_IDE_CONTROLLER_INIT_PROTOCOL provides the chipset-specific information to

-  the IDE bus driver. This protocol is mandatory for IDE controllers if the IDE devices behind the

-  controller are to be enumerated by an IDE bus driver.

-  There can only be one instance of EFI_IDE_CONTROLLER_INIT_PROTOCOL for each IDE

-  controller in a system. It is installed on the handle that corresponds to the IDE controller. An IDE

-  bus driver that wishes to manage an IDE bus and possibly IDE devices in a system will have to

-  retrieve the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance that is associated with the

-  controller to be managed.

-

-  Copyright (c) 2007 - 2009, Intel Corporation

-  All rights reserved. This program and the accompanying materials

-  are licensed and made available under the terms and conditions of the BSD License

-  which accompanies this distribution.  The full text of the license may be found at

-  http://opensource.org/licenses/bsd-license.php

-

-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,

-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

-

-  @par Revision Reference:

-  This Protocol is defined in IDE Controller Initialization Protocol Specification

-  Version 0.9.

-

-**/

-

-#ifndef _EFI_IDE_CONTROLLER_INIT_PROTOCOL_H_

-#define _EFI_IDE_CONTROLLER_INIT_PROTOCOL_H_

-

-

-///

-/// Global ID for the EFI Platform IDE Protocol GUID

-///

-#define EFI_IDE_CONTROLLER_INIT_PROTOCOL_GUID \

-  { 0xa1e37052, 0x80d9, 0x4e65, {0xa3, 0x17, 0x3e, 0x9a, 0x55, 0xc4, 0x3e, 0xc9 } }

-

-///

-/// Forward reference for pure ANSI compatability

-///

-typedef struct _EFI_IDE_CONTROLLER_INIT_PROTOCOL  EFI_IDE_CONTROLLER_INIT_PROTOCOL;

-

-//

-//////////////////////////////////////////////////////////////////////////////////////////

-// EFI_IDE_BUS_ENUMERATION_PHASE

-// EFI_IDE_CONTROLLER_ENUM_PHASE

-//

-typedef enum{

-  EfiIdeBeforeChannelEnumeration,

-  EfiIdeAfterChannelEnumeration,

-  EfiIdeBeforeChannelReset,

-  EfiIdeAfterChannelReset,

-  EfiIdeBusBeforeDevicePresenceDetection,

-  EfiIdeBusAfterDevicePresenceDetection,

-  EfiIdeResetMode,

-  EfiIdeBusPhaseMaximum

-} EFI_IDE_CONTROLLER_ENUM_PHASE;

-

-//

-//******************************************************

-// EFI_ATA_EXT_TRANSFER_PROTOCOL

-//******************************************************

-//

-// This extended mode describes the SATA physical protocol.

-// SATA physical layers can operate at different speeds.

-// These speeds are defined below. Various PATA protocols

-// and associated modes are not applicable to SATA devices.

-//

-

-typedef enum {

-  EfiAtaSataTransferProtocol

-} EFI_ATA_EXT_TRANSFER_PROTOCOL;

-

-#define  EFI_SATA_AUTO_SPEED  0

-#define  EFI_SATA_GEN1_SPEED  1

-#define  EFI_SATA_GEN2_SPEED  2

-

-//

-//*******************************************************

-// EFI_IDE_CABLE_TYPE

-//*******************************************************

-//

-typedef enum {

-  EfiIdeCableTypeUnknown,

-  EfiIdeCableType40pin,

-  EfiIdeCableType80Pin,

-  EfiIdeCableTypeSerial,

-  EfiIdeCableTypeMaximum

-} EFI_IDE_CABLE_TYPE;

-

-//

-//******************************************************

-// EFI_ATA_MODE

-//******************************************************

-//

-typedef struct {

-  BOOLEAN      Valid;

-  UINT32       Mode;

-} EFI_ATA_MODE;

-

-//

-//******************************************************

-// EFI_ATA_EXTENDED_MODE

-//******************************************************

-//

-typedef struct {

-  EFI_ATA_EXT_TRANSFER_PROTOCOL  TransferProtocol;

-  UINT32                         Mode;

-} EFI_ATA_EXTENDED_MODE;

-

-//

-//******************************************************

-// EFI_ATA_COLLECTIVE_MODE

-//******************************************************

-//

-typedef struct {

-  EFI_ATA_MODE           PioMode;

-  EFI_ATA_MODE           SingleWordDmaMode;

-  EFI_ATA_MODE           MultiWordDmaMode;

-  EFI_ATA_MODE           UdmaMode;

-  UINT32                 ExtModeCount;

-  EFI_ATA_EXTENDED_MODE  ExtMode[1];

-} EFI_ATA_COLLECTIVE_MODE;

-

-//

-//*******************************************************

-// EFI_ATA_IDENTIFY_DATA

-//*******************************************************

-//

-

-#pragma pack(1)

-

-typedef struct {

-  UINT16  config;                 ///< General Configuration

-  UINT16  cylinders;              ///< Number of Cylinders

-  UINT16  reserved_2;

-  UINT16  heads;                  ///< Number of logical heads

-  UINT16  vendor_data1;

-  UINT16  vendor_data2;

-  UINT16  sectors_per_track;

-  UINT16  vendor_specific_7_9[3];

-  CHAR8   SerialNo[20];           ///< ASCII

-  UINT16  vendor_specific_20_21[2];

-  UINT16  ecc_bytes_available;

-  CHAR8   FirmwareVer[8];         ///< ASCII

-  CHAR8   ModelName[40];          ///< ASCII

-  UINT16  multi_sector_cmd_max_sct_cnt;

-  UINT16  reserved_48;

-  UINT16  capabilities;

-  UINT16  reserved_50;

-  UINT16  pio_cycle_timing;

-  UINT16  reserved_52;

-  UINT16  field_validity;

-  UINT16  current_cylinders;

-  UINT16  current_heads;

-  UINT16  current_sectors;

-  UINT16  CurrentCapacityLsb;

-  UINT16  CurrentCapacityMsb;

-  UINT16  reserved_59;

-  UINT16  user_addressable_sectors_lo;

-  UINT16  user_addressable_sectors_hi;

-  UINT16  reserved_62;

-  UINT16  multi_word_dma_mode;

-  UINT16  advanced_pio_modes;

-  UINT16  min_multi_word_dma_cycle_time;

-  UINT16  rec_multi_word_dma_cycle_time;

-  UINT16  min_pio_cycle_time_without_flow_control;

-  UINT16  min_pio_cycle_time_with_flow_control;

-  UINT16  reserved_69_79[11];

-  UINT16  major_version_no;

-  UINT16  minor_version_no;

-  UINT16  command_set_supported_82;   ///< word 82

-  UINT16  command_set_supported_83;   ///< word 83

-  UINT16  command_set_feature_extn;   ///< word 84

-  UINT16  command_set_feature_enb_85; ///< word 85

-  UINT16  command_set_feature_enb_86; ///< word 86

-  UINT16  command_set_feature_default; ///< word 87

-  UINT16  ultra_dma_mode;             ///< word 88

-  UINT16  reserved_89_105[17];

-  UINT16  phy_logic_sector_support;   ///< word 106

-  UINT16  reserved_107_116[10];

-  UINT16  logic_sector_size_lo;       ///< word 117

-  UINT16  logic_sector_size_hi;       ///< word 118

-  UINT16  reserved_119_127[9];

-  UINT16  security_status;

-  UINT16  vendor_data_129_159[31];

-  UINT16  reserved_160_208[49];

-  UINT16  alignment_logic_in_phy_blocks; ///< word 209

-  UINT16  reserved_210_255[46];

-} EFI_ATA_IDENTIFY_DATA;

-

-#pragma pack()

-//

-//*******************************************************

-// EFI_ATAPI_IDENTIFY_DATA

-//*******************************************************

-//

-#pragma pack(1)

-typedef struct {

-    UINT16  config;             ///< General Configuration

-    UINT16  obsolete_1;

-    UINT16  specific_config;

-    UINT16  obsolete_3;

-    UINT16  retired_4_5[2];

-    UINT16  obsolete_6;

-    UINT16  cfa_reserved_7_8[2];

-    UINT16  retired_9;

-    CHAR8   SerialNo[20];       ///< ASCII

-    UINT16  retired_20_21[2];

-    UINT16  obsolete_22;

-    CHAR8   FirmwareVer[8];     ///< ASCII

-    CHAR8   ModelName[40];      ///< ASCII

-    UINT16  multi_sector_cmd_max_sct_cnt;

-    UINT16  reserved_48;

-    UINT16  capabilities_49;

-    UINT16  capabilities_50;

-    UINT16  obsolete_51_52[2];

-    UINT16  field_validity;

-    UINT16  obsolete_54_58[5];

-    UINT16  mutil_sector_setting;

-    UINT16  user_addressable_sectors_lo;

-    UINT16  user_addressable_sectors_hi;

-    UINT16  obsolete_62;

-    UINT16  multi_word_dma_mode;

-    UINT16  advanced_pio_modes;

-    UINT16  min_multi_word_dma_cycle_time;

-    UINT16  rec_multi_word_dma_cycle_time;

-    UINT16  min_pio_cycle_time_without_flow_control;

-    UINT16  min_pio_cycle_time_with_flow_control;

-    UINT16  reserved_69_74[6];

-    UINT16  queue_depth;

-    UINT16  reserved_76_79[4];

-    UINT16  major_version_no;

-    UINT16  minor_version_no;

-    UINT16  cmd_set_support_82;

-    UINT16  cmd_set_support_83;

-    UINT16  cmd_feature_support;

-    UINT16  cmd_feature_enable_85;

-    UINT16  cmd_feature_enable_86;

-    UINT16  cmd_feature_default;

-    UINT16  ultra_dma_select;

-    UINT16  time_required_for_sec_erase;

-    UINT16  time_required_for_enhanced_sec_erase;

-    UINT16  current_advanced_power_mgmt_value;

-    UINT16  master_pwd_revison_code;

-    UINT16  hardware_reset_result;

-    UINT16  current_auto_acoustic_mgmt_value;

-    UINT16  reserved_95_99[5];

-    UINT16  max_user_lba_for_48bit_addr[4];

-    UINT16  reserved_104_126[23];

-    UINT16  removable_media_status_notification_support;

-    UINT16  security_status;

-    UINT16  vendor_data_129_159[31];

-    UINT16  cfa_power_mode;

-    UINT16  cfa_reserved_161_175[15];

-    UINT16  current_media_serial_no[30];

-    UINT16  reserved_206_254[49];

-    UINT16  integrity_word;

-} EFI_ATAPI_IDENTIFY_DATA;

-

-#pragma pack()

-//

-//*******************************************************

-// EFI_IDENTIFY_DATA

-//*******************************************************

-//

-typedef union {

-  EFI_ATA_IDENTIFY_DATA       AtaData;

-  EFI_ATAPI_IDENTIFY_DATA     AtapiData;

-} EFI_IDENTIFY_DATA;

-

-#define   EFI_ATAPI_DEVICE_IDENTIFY_DATA  0x8000

-

-//

-/////////////////////////////////////////////////////////////////////////////////////////

-// Function prototype declaration, for ANSI compatability

-//

-/**

-  Returns the information about the specified IDE channel.

-

-  @param  This                  Pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.

-  @param  Channel               Zero-based channel number.

-  @param  Enabled               TRUE if this channel is enabled. Disabled channels are not scanned

-                                to see if any devices are present.

-  @param  MaxDevices            The maximum number of IDE devices that the bus driver

-                                can expect on this channel.

-

-  @retval EFI_SUCCESS           Information was returned without any errors.

-  @retval EFI_INVALID_PARAMETER Channel is invalid (Channel >= ChannelCount).

-

-**/

-typedef

-EFI_STATUS

-(EFIAPI *EFI_IDE_CONTROLLER_GET_CHANNEL_INFO)(

-  IN EFI_IDE_CONTROLLER_INIT_PROTOCOL *This,

-  IN  UINT8                           Channel,

-  OUT BOOLEAN                         *Enabled,

-  OUT UINT8                           *MaxDevices

-);

-

-/**

-  The notifications from the IDE bus driver that it is about to enter a certain

-  phase of the IDE channel enumeration process.

-

-  @param  This                  Pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.

-  @param  Phase                 The phase during enumeration.

-  @param  Channel               Zero-based channel number.

-

-  @retval EFI_SUCCESS           The notification was accepted without any errors.

-  @retval EFI_NOT_SUPPORTED     Phase is not supported.

-  @retval EFI_INVALID_PARAMETER Channel is invalid (Channel >= ChannelCount).

-  @retval EFI_NOT_READY         This phase cannot be entered at this time.

-

-**/

-typedef

-EFI_STATUS

-(EFIAPI *EFI_IDE_CONTROLLER_NOTIFY_PHASE)(

-  IN EFI_IDE_CONTROLLER_INIT_PROTOCOL  *This,

-  IN EFI_IDE_CONTROLLER_ENUM_PHASE     Phase,

-  IN UINT8                             Channel

-);

-

-/**

-  Submits the device information to the IDE controller driver.

-

-  @param  This                  Pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.

-  @param  Channel               Zero-based channel number.

-  @param  Device                Zero-based device number on the Channel.

-  @param  IdentifyData          The device's response to the ATA IDENTIFY_DEVICE command.

-

-  @retval EFI_SUCCESS           The information was accepted without any errors.

-  @retval EFI_INVALID_PARAMETER Channel is invalid (Channel >= ChannelCount).

-                                Or Device is invalid.

-

-**/

-typedef

-EFI_STATUS

-(EFIAPI *EFI_IDE_CONTROLLER_SUBMIT_DATA)(

-  IN EFI_IDE_CONTROLLER_INIT_PROTOCOL *This,

-  IN  UINT8                           Channel,

-  IN  UINT8                           Device,

-  IN  EFI_IDENTIFY_DATA               *IdentifyData

-);

-

-/**

-  Disqualifies specific modes for an IDE device.

-

-  @param  This                  Pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.

-  @param  Channel               Zero-based channel number.

-  @param  Device                Zero-based device number on the Channel.

-  @param  BadModes              The modes that the device does not support and that

-                                should be disqualified.

-

-  @retval EFI_SUCCESS           The modes were accepted without any errors.

-  @retval EFI_INVALID_PARAMETER Channel is invalid (Channel >= ChannelCount).

-                                Or Device is invalid.

-                                

-  @note: Inconsistent with specification here:  

-         Framework Spec IdeCont defined another case to return EFI_INVALID_PARAMETER when

-         IdentifyData is NULL. However in the function there is no parameter named IdentifyData.

-         So that should be a typo error in spec.

-

-**/

-typedef

-EFI_STATUS

-(EFIAPI *EFI_IDE_CONTROLLER_DISQUALIFY_MODE)(

-  IN EFI_IDE_CONTROLLER_INIT_PROTOCOL *This,

-  IN  UINT8                           Channel,

-  IN  UINT8                           Device,

-  IN  EFI_ATA_COLLECTIVE_MODE         *BadModes

-);

-

-/**

-  Returns the information about the optimum modes for the specified IDE device.

-

-  @param  This                  Pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.

-  @param  Channel               Zero-based channel number.

-  @param  Device                Zero-based device number on the Channel.

-  @param  SupportedModes        The optimum modes for the device.

-

-  @retval EFI_SUCCESS           SupportedModes was returned.

-  @retval EFI_INVALID_PARAMETER Channel is invalid (Channel >= ChannelCount).

-                                Or Device is invalid. Or SupportedModes is NULL.

-  @retval EFI_NOT_READY         Modes cannot be calculated due to a lack of data.

-

-**/

-typedef

-EFI_STATUS

-(EFIAPI *EFI_IDE_CONTROLLER_CALCULATE_MODE)(

-  IN EFI_IDE_CONTROLLER_INIT_PROTOCOL *This,

-  IN  UINT8                           Channel,

-  IN  UINT8                           Device,

-  OUT EFI_ATA_COLLECTIVE_MODE         **SupportedModes

-);

-

-/**

-  Commands the IDE controller driver to program the IDE controller hardware

-  so that the specified device can operate at the specified mode.

-

-  @param  This                  Pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.

-  @param  Channel               Zero-based channel number.

-  @param  Device                Zero-based device number on the Channel.

-  @param  Modes                 The modes to set.

-

-  @retval EFI_SUCCESS           The command was accepted without any errors.

-  @retval EFI_INVALID_PARAMETER Channel is invalid (Channel >= ChannelCount).

-                                Or Device is invalid.

-  @retval EFI_NOT_READY         Modes cannot be set at this time due to lack of data.

-  @retval EFI_DEVICE_ERROR      Modes cannot be set due to hardware failure.

-                                The IDE bus driver should not use this device.

-

-**/

-typedef

-EFI_STATUS

-(EFIAPI *EFI_IDE_CONTROLLER_SET_TIMING)(

-  IN EFI_IDE_CONTROLLER_INIT_PROTOCOL *This,

-  IN  UINT8                           Channel,

-  IN  UINT8                           Device,

-  IN  EFI_ATA_COLLECTIVE_MODE         *Modes

-);

-

-//

-////////////////////////////////////////////////////////////////////////////////////////////////////

-// Interface structure

-// EFI_IDE_CONTROLLER_INIT_PROTOCOL protocol provides the chipset specific information to the IDE bus driver.

-// An IDE Bus driver wants to manage an IDE bus and possible IDE devices will have to retrieve the

-// EFI_IDE_CONTROLLER_INIT_PROTOCOL instances.

-//

-/**

-  Provides the basic interfaces to abstract an IDE controller.

-**/

-struct _EFI_IDE_CONTROLLER_INIT_PROTOCOL {

-  ///

-  /// Returns the information about a specific channel.

-  ///

-  EFI_IDE_CONTROLLER_GET_CHANNEL_INFO    GetChannelInfo;

-  

-  ///

-  /// The notification that the IDE bus driver is about to enter the

-  /// specified phase during the enumeration process.  

-  ///

-  EFI_IDE_CONTROLLER_NOTIFY_PHASE        NotifyPhase;

-  

-  ///

-  /// Submits the Drive Identify data that was returned by the device.

-  ///

-  EFI_IDE_CONTROLLER_SUBMIT_DATA         SubmitData;

-  

-  ///

-  /// Submits information about modes that should be disqualified.

-  ///

-  EFI_IDE_CONTROLLER_DISQUALIFY_MODE     DisqualifyMode;

-  

-  ///

-  /// Calculates and returns the optimum mode for a particular IDE device.

-  ///

-  EFI_IDE_CONTROLLER_CALCULATE_MODE      CalculateMode;

-  

-  ///

-  /// Programs the IDE controller hardware to the default timing or per the modes

-  /// that were returned by the last call to CalculateMode().  

-  ///

-  EFI_IDE_CONTROLLER_SET_TIMING          SetTiming;

-  

-  ///

-  /// Set to TRUE if the enumeration group includes all the channels that are

-  /// produced by this controller. FALSE if an enumeration group consists of

-  /// only one channel.  

-  ///

-  BOOLEAN                                EnumAll;

-  

-  ///

-  /// The number of channels that are produced by this controller.

-  ///

-  UINT8                                  ChannelCount;

-};

-

-extern EFI_GUID gEfiIdeControllerInitProtocolGuid;

-

-#endif

diff --git a/IntelFrameworkPkg/Include/Protocol/IncompatiblePciDeviceSupport.h b/IntelFrameworkPkg/Include/Protocol/IncompatiblePciDeviceSupport.h
deleted file mode 100644
index a763399..0000000
--- a/IntelFrameworkPkg/Include/Protocol/IncompatiblePciDeviceSupport.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/** @file

-  This file declares EFI Incompatible PCI Device Support Protocol

-  This protocol allows the PCI bus driver to support resource allocation for some PCI devices that do not comply

-  with the PCI Specification.

-  The EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL is used by the PCI bus driver

-  to support resource allocation for some PCI devices that do not comply with the PCI Specification.

-  This protocol can find some incompatible PCI devices and report their special resource

-  requirements to the PCI bus driver. The generic PCI bus driver does not have prior knowledge of

-  any incompatible PCI devices. It interfaces with the

-  EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL to find out if a device is

-  incompatible and to obtain the special configuration requirements for a specific incompatible PCI

-  device.

-  This protocol is optional, and only one instance of this protocol can be present in the system. If a

-  platform supports this protocol, this protocol is produced by a Driver Execution Environment

-  (DXE) driver and must be made available before the Boot Device Selection (BDS) phase. The PCI

-  bus driver will look for the presence of this protocol before it begins PCI enumeration.

-

-  Copyright (c) 2007 - 2009, Intel Corporation

-  All rights reserved. This program and the accompanying materials

-  are licensed and made available under the terms and conditions of the BSD License

-  which accompanies this distribution.  The full text of the license may be found at

-  http://opensource.org/licenses/bsd-license.php

-

-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,

-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

-

-  @par Revision Reference:

-  This protocol is defined in Framework of EFI PCI Platform Support Specification.

-  Version 0.9.

-

-**/

-

-#ifndef _INCOMPATIBLE_PCI_DEVICE_SUPPORT_H_

-#define _INCOMPATIBLE_PCI_DEVICE_SUPPORT_H_

-

-

-#define EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL_GUID \

-        {0xeb23f55a, 0x7863, 0x4ac2, {0x8d, 0x3d, 0x95, 0x65, 0x35, 0xde, 0x03, 0x75} }

-

-typedef struct _EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL;

-

-/**

-  Returns a list of ACPI resource descriptors that detail the special

-  resource configuration requirements for an incompatible PCI device.

-

-  @param  This                  Pointer to the EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL instance.

-  @param  VendorId              A unique ID to identify the manufacturer of the PCI device.

-  @param  DeviceId              A unique ID to identify the particular PCI device.

-  @param  RevisionId            A PCI device-specific revision identifier.

-  @param  SubsystemVendorId     Specifies the subsystem vendor ID.

-  @param  SubsystemDeviceId     Specifies the subsystem device ID.

-  @param  Configuration         A list of ACPI resource descriptors that detail

-                                the configuration requirement.

-

-  @retval EFI_SUCCESS           The function always returns EFI_SUCCESS.

-

-**/

-typedef

-EFI_STATUS

-(EFIAPI *EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_CHECK_DEVICE)(

-  IN  EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL  *This,

-  IN  UINTN                                         VendorId,

-  IN  UINTN                                         DeviceId,

-  IN  UINTN                                         RevisionId,

-  IN  UINTN                                         SubsystemVendorId,

-  IN  UINTN                                         SubsystemDeviceId,

-  OUT VOID                                          **Configuration

-);

-

-

-///

-/// Interface structure for the Incompatible PCI Device Support Protocol

-///

-struct _EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL {

-  ///

-  ///  Returns a list of ACPI resource descriptors that detail any special

-  ///  resource configuration requirements if the specified device is a recognized

-  ///  incompatible PCI device.

-  ///

-  EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_CHECK_DEVICE      CheckDevice;

-};

-

-extern EFI_GUID gEfiIncompatiblePciDeviceSupportProtocolGuid;

-

-#endif

diff --git a/IntelFrameworkPkg/Include/Protocol/PciHostBridgeResourceAllocation.h b/IntelFrameworkPkg/Include/Protocol/PciHostBridgeResourceAllocation.h
deleted file mode 100644
index 43253da..0000000
--- a/IntelFrameworkPkg/Include/Protocol/PciHostBridgeResourceAllocation.h
+++ /dev/null
@@ -1,414 +0,0 @@
-/** @file

-  This file declares Pci Host Bridge Resource Allocation Protocol which 

-  Provides the basic interfaces to abstract a PCI host bridge resource allocation. 

-  This protocol is mandatory if the system includes PCI devices.

-  

-  Copyright (c) 2007 - 2009, Intel Corporation

-  All rights reserved. This program and the accompanying materials

-  are licensed and made available under the terms and conditions of the BSD License

-  which accompanies this distribution.  The full text of the license may be found at

-  http://opensource.org/licenses/bsd-license.php

-

-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,

-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

-

-  @par Revision Reference:

-  This protocol is defined in Framework of EFI Pci Host Bridge Resource Allocation Protocol Spec

-  Version 0.9

-

-**/

-

-#ifndef _PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_H_

-#define _PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_H_

-

-#include <Protocol/PciRootBridgeIo.h>

-

-#define EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_GUID \

-  { 0xCF8034BE, 0x6768, 0x4d8b, {0xB7,0x39,0x7C,0xCE,0x68,0x3A,0x9F,0xBE }}

-

-

-typedef struct _EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL;

-

-

-//

-// EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_ATTRIBUTES

-//

-

-/// If this bit is set, then the PCI Root Bridge does not

-/// support separate windows for Non-prefetchable and Prefetchable

-/// memory. A PCI bus driver needs to include requests for Prefetchable

-/// memory in the Non-prefetchable memory pool.

-///

-#define EFI_PCI_HOST_BRIDGE_COMBINE_MEM_PMEM  1

-

-///

-/// If this bit is set, then the PCI Root Bridge supports

-/// 64 bit memory windows.  If this bit is not set,

-/// the PCI bus driver needs to include requests for 64 bit

-/// memory address in the corresponding 32 bit memory pool.

-///

-#define EFI_PCI_HOST_BRIDGE_MEM64_DECODE   2

-

-typedef UINT64 EFI_RESOURCE_ALLOCATION_STATUS;

-

-///

-/// The request of this resource type could be fulfilled.

-///

-#define EFI_RESOURCE_SATISFIED      0x0000000000000000ULL

-

-///

-/// The request of this resource type could not be fulfilled for its

-/// absence in the host bridge resource pool.

-///

-#define EFI_RESOURCE_NOT_SATISFIED  0xFFFFFFFFFFFFFFFFULL

-

-//

-// EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PHASE

-//

-typedef enum {

-  ///

-  /// Reset the host bridge PCI apertures and internal data structures.

-  /// PCI enumerator should issue this notification before starting fresh

-  /// enumeration process. Enumeration cannot be restarted after sending

-  /// any other notification such as EfiPciHostBridgeBeginBusAllocation.

-  ///

-  EfiPciHostBridgeBeginEnumeration,

-

-  ///

-  /// The bus allocation phase is about to begin. No specific action

-  /// is required here. This notification can be used to perform any

-  /// chipset specific programming.  

-  ///

-  EfiPciHostBridgeBeginBusAllocation,

-

-  ///

-  /// The bus allocation and bus programming phase is complete. No specific

-  /// action is required here. This notification can be used to perform any

-  /// chipset specific programming.  

-  ///

-  EfiPciHostBridgeEndBusAllocation,

-  

-  ///

-  /// The resource allocation phase is about to begin.No specific action is

-  /// required here. This notification can be used to perform any chipset specific programming.  

-  ///

-  EfiPciHostBridgeBeginResourceAllocation,

-  

-  ///

-  /// Allocate resources per previously submitted requests for all the PCI Root

-  /// Bridges. These resource settings are returned on the next call to

-  /// GetProposedResources().  

-  ///

-  EfiPciHostBridgeAllocateResources,

-  

-  ///

-  /// Program the Host Bridge hardware to decode previously allocated resources

-  /// (proposed resources) for all the PCI Root Bridges.

-  ///

-  EfiPciHostBridgeSetResources,

-  

-  ///

-  /// De-allocate previously allocated resources previously for all the PCI

-  /// Root Bridges and reset the I/O and memory apertures to initial state.  

-  ///

-  EfiPciHostBridgeFreeResources,

-  

-  ///

-  /// The resource allocation phase is completed.  No specific action is required

-  /// here. This notification can be used to perform any chipset specific programming.  

-  ///

-  EfiPciHostBridgeEndResourceAllocation

-} EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PHASE;

-

-///

-/// Definitions of 2 notification points.

-///

-typedef enum {

-  ///

-  /// This notification is only applicable to PCI-PCI bridges and

-  /// indicates that the PCI enumerator is about to begin enumerating

-  /// the bus behind the PCI-PCI Bridge. This notification is sent after

-  /// the primary bus number, the secondary bus number and the subordinate

-  /// bus number registers in the PCI-PCI Bridge are programmed to valid

-  /// (not necessary final) values

-  ///

-  EfiPciBeforeChildBusEnumeration,

-

-  ///

-  /// This notification is sent before the PCI enumerator probes BAR registers

-  /// for every valid PCI function.  

-  ///

-  EfiPciBeforeResourceCollection

-} EFI_PCI_CONTROLLER_RESOURCE_ALLOCATION_PHASE;

-

-/**

-  These are the notifications from the PCI bus driver that it is about to enter a certain phase of the PCI 

-  enumeration process.

-

-  @param  This                  Pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL 

-                                instance.

-  @param  Phase                 The phase during enumeration

-

-  @retval EFI_SUCCESS           The notification was accepted without any errors.

-  @retval EFI_INVALID_PARAMETER The Phase is invalid.

-  @retval EFI_NOT_READY         This phase cannot be entered at this time. For example, this error 

-                                is valid for a Phase of EfiPciHostBridgeAllocateResources if 

-                                SubmitResources() has not been called for one or more 

-                                PCI root bridges before this call.

-  @retval EFI_DEVICE_ERROR      Programming failed due to a hardware error. This error is valid for 

-                                a Phase of EfiPciHostBridgeSetResources.

-  @retval EFI_OUT_OF_RESOURCES  The request could not be completed due to a lack of resources. 

-                                This error is valid for a Phase of EfiPciHostBridgeAllocateResources

-                                if the previously submitted resource requests cannot be fulfilled or were only 

-                                partially fulfilled

-

-**/

-typedef

-EFI_STATUS

-(EFIAPI *EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_NOTIFY_PHASE)(

-  IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL         *This,

-  IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PHASE            Phase

-  );

-

-

-/**

-  Returns the device handle of the next PCI root bridge that is associated with this host bridge.

-

-  @param  This                  Pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL 

-                                instance.

-  @param  RootBridgeHandle      Returns the device handle of the next PCI root bridge. On input, it holds the 

-                                RootBridgeHandle that was returned by the most recent call to 

-                                GetNextRootBridge(). If RootBridgeHandle is NULL on input, the handle 

-                                for the first PCI root bridge is returned.

-

-  @retval EFI_SUCCESS           The requested attribute information was returned.

-  @retval EFI_INVALID_PARAMETER RootBridgeHandle is not an EFI_HANDLE that was returned 

-                                on a previous call to GetNextRootBridge().

-  @retval EFI_NOT_FOUND         There are no more PCI root bridge device handles.

-

-**/

-typedef

-EFI_STATUS

-(EFIAPI *EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_GET_NEXT_ROOT_BRIDGE)(

-  IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL     *This,

-  IN OUT EFI_HANDLE                                       *RootBridgeHandle

-  );

-

-

-/**

-  Returns the allocation attributes of a PCI root bridge.

-

-  @param  This                  Pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL 

-                                instance.

-  @param  RootBridgeHandle      The device handle of the PCI root bridge in which the caller is interested.

-  @param  Attribute             The pointer to attributes of the PCI root bridge.

-

-  @retval EFI_SUCCESS           The requested attribute information was returned.

-  @retval EFI_INVALID_PARAMETER RootBridgeHandle is not a valid root bridge handle.

-  @retval EFI_INVALID_PARAMETER Attributes is NULL.

-

-**/

-typedef

-EFI_STATUS

-(EFIAPI *EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_GET_ATTRIBUTES)(

-  IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL           *This,

-  IN  EFI_HANDLE                                                RootBridgeHandle,

-  OUT UINT64                                                    *Attributes

-  );

-

-

-/**

-  Sets up the specified PCI root bridge for the bus enumeration process.

-

-  @param  This                  Pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL 

-                                instance.

-  @param  RootBridgeHandle      The PCI root bridge to be set up.

-  @param  Configuration         Pointer to the pointer to the PCI bus resource descriptor.

-

-  @retval EFI_SUCCESS           The PCI root bridge was set up and the bus range was returned in 

-                                Configuration.

-  @retval EFI_INVALID_PARAMETER RootBridgeHandle is not a valid root bridge handle.

-  @retval EFI_DEVICE_ERROR      Programming failed due to a hardware error.

-  @retval EFI_OUT_OF_RESOURCES  The request could not be completed due to a lack of resources.

-

-**/

-typedef

-EFI_STATUS

-(EFIAPI *EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_START_BUS_ENUMERATION)(

-  IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL           *This,

-  IN  EFI_HANDLE                                                RootBridgeHandle,

-  OUT VOID                                                      **Configuration

-  );

-

-

-/**

-  Programs the PCI root bridge hardware so that it decodes the specified PCI bus range.

-

-  @param  This                  Pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL

-                                instance.  

-  @param  RootBridgeHandle      The PCI root bridge whose bus range is to be programmed.

-  @param  Configuration         The pointer to the PCI bus resource descriptor..

-

-  @retval EFI_SUCCESS           The bus range for the PCI root bridge was programmed.

-  @retval EFI_INVALID_PARAMETER RootBridgeHandle is not a valid root bridge handle.

-  @retval EFI_INVALID_PARAMETER Configuration is NULL

-  @retval EFI_INVALID_PARAMETER Configuration does not point to a valid ACPI (2.0 & 3.0) 

-                                resource descriptor.

-  @retval EFI_INVALID_PARAMETER Configuration does not include a valid ACPI 2.0 bus resource

-                                descriptor.

-  @retval EFI_INVALID_PARAMETER Configuration includes valid ACPI (2.0 & 3.0) resource 

-                                descriptors other than bus descriptors.

-  @retval EFI_INVALID_PARAMETER Configuration contains one or more invalid ACPI resource 

-                                descriptors.

-  @retval EFI_INVALID_PARAMETER "Address Range Minimum" is invalid for this root bridge.

-  @retval EFI_INVALID_PARAMETER "Address Range Length" is invalid for this root bridge.

-  @retval EFI_DEVICE_ERROR      Programming failed due to a hardware error.

-

-**/

-typedef

-EFI_STATUS

-(EFIAPI *EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_SET_BUS_NUMBERS)(

-  IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL          *This,

-  IN EFI_HANDLE                                                RootBridgeHandle,

-  IN VOID                                                      *Configuration

-  );

-

-

-/**

-  Submits the I/O and memory resource requirements for the specified PCI root bridge.

-

-  @param  This                  Pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL 

-                                instance.

-  @param  RootBridgeHandle      The PCI root bridge whose I/O and memory resource requirements are being 

-                                submitted.

-  @param  Configuration         The pointer to the PCI I/O and PCI memory resource descriptor.

-

-  @retval EFI_SUCCESS           The I/O and memory resource requests for a PCI root bridge were 

-                                accepted.

-  @retval EFI_INVALID_PARAMETER RootBridgeHandle is not a valid root bridge handle.

-  @retval EFI_INVALID_PARAMETER Configuration is NULL.

-  @retval EFI_INVALID_PARAMETER Configuration does not point to a valid ACPI (2.0 & 3.0) 

-                                resource descriptor.

-  @retval EFI_INVALID_PARAMETER Configuration includes requests for one or more resource 

-                                types that are not supported by this PCI root bridge. This error will 

-                                happen if the caller did not combine resources according to 

-                                Attributes that were returned by GetAllocAttributes().

-  @retval EFI_INVALID_PARAMETER "Address Range Maximum" is invalid.

-  @retval EFI_INVALID_PARAMETER "Address Range Length" is invalid for this PCI root bridge.

-  @retval EFI_INVALID_PARAMETER "Address Space Granularity" is invalid for this PCI root bridge.

-  

-**/

-typedef

-EFI_STATUS

-(EFIAPI *EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_SUBMIT_RESOURCES)(

-  IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL          *This,

-  IN EFI_HANDLE                                                RootBridgeHandle,

-  IN VOID                                                      *Configuration

-  );

-

-

-/**

-  Returns the proposed resource settings for the specified PCI root bridge.

-

-  @param  This                  Pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL 

-                                instance.

-  @param  RootBridgeHandle      The PCI root bridge handle.

-  @param  Configuration         The pointer to the pointer to the PCI I/O and memory resource descriptor.

-

-  @retval EFI_SUCCESS           The requested parameters were returned.

-  @retval EFI_INVALID_PARAMETER RootBridgeHandle is not a valid root bridge handle.

-  @retval EFI_DEVICE_ERROR      Programming failed due to a hardware error.

-  @retval EFI_OUT_OF_RESOURCES  The request could not be completed due to a lack of resources.

-

-**/

-typedef

-EFI_STATUS

-(EFIAPI *EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_GET_PROPOSED_RESOURCES)(

-  IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL           *This,

-  IN  EFI_HANDLE                                                RootBridgeHandle,

-  OUT VOID                                                      **Configuration

-  );

-

-

-

-/**

-  Provides the hooks from the PCI bus driver to every PCI controller (device/function) at various 

-  stages of the PCI enumeration process that allow the host bridge driver to preinitialize individual 

-  PCI controllers before enumeration.

-

-  @param  This                  Pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL instance.

-  @param  RootBridgeHandle      The associated PCI root bridge handle.

-  @param  PciAddress            The address of the PCI device on the PCI bus.

-  @param  Phase                 The phase of the PCI device enumeration.

-

-  @retval EFI_SUCCESS           The requested parameters were returned.

-  @retval EFI_INVALID_PARAMETER RootBridgeHandle is not a valid root bridge handle.

-  @retval EFI_INVALID_PARAMETER Phase is not a valid phase that is defined in 

-                                EFI_PCI_CONTROLLER_RESOURCE_ALLOCATION_PHASE.

-  @retval EFI_DEVICE_ERROR      Programming failed due to a hardware error. The PCI enumerator 

-                                should not enumerate this device, including its child devices if it is 

-                                a PCI-to-PCI bridge.

-

-**/

-typedef

-EFI_STATUS

-(EFIAPI *EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_PREPROCESS_CONTROLLER)(

-  IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL            *This,

-  IN  EFI_HANDLE                                                 RootBridgeHandle,

-  IN  EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_PCI_ADDRESS                PciAddress,

-  IN  EFI_PCI_CONTROLLER_RESOURCE_ALLOCATION_PHASE               Phase

-  );

-

-///

-/// Provides the basic interfaces to abstract a PCI host bridge resource allocation.

-///

-struct _EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL {

-  ///

-  /// The notification from the PCI bus enumerator that it is about to enter

-  /// a certain phase during the enumeration process.

-  ///

-  EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_NOTIFY_PHASE           NotifyPhase;

-  

-  ///

-  /// Retrieves the device handle for the next PCI root bridge that is produced by the

-  /// host bridge to which this instance of the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL is attached.  

-  ///

-  EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_GET_NEXT_ROOT_BRIDGE   GetNextRootBridge;

-  

-  ///

-  /// Retrieves the allocation-related attributes of a PCI root bridge.

-  ///

-  EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_GET_ATTRIBUTES         GetAllocAttributes;

-  

-  ///

-  /// Sets up a PCI root bridge for bus enumeration.

-  ///

-  EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_START_BUS_ENUMERATION  StartBusEnumeration;

-  

-  ///

-  /// Sets up the PCI root bridge so that it decodes a specific range of bus numbers.

-  ///

-  EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_SET_BUS_NUMBERS        SetBusNumbers;

-  

-  ///

-  /// Submits the resource requirements for the specified PCI root bridge.

-  ///

-  EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_SUBMIT_RESOURCES       SubmitResources;

-  

-  ///

-  /// Returns the proposed resource assignment for the specified PCI root bridges.

-  ///

-  EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_GET_PROPOSED_RESOURCES GetProposedResources;

-  

-  ///

-  /// Provides hooks from the PCI bus driver to every PCI controller

-  /// (device/function) at various stages of the PCI enumeration process that

-  /// allow the host bridge driver to preinitialize individual PCI controllers

-  /// before enumeration.  

-  ///

-  EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_PREPROCESS_CONTROLLER  PreprocessController;

-};

-

-extern EFI_GUID gEfiPciHostBridgeResourceAllocationProtocolGuid;

-

-#endif

diff --git a/IntelFrameworkPkg/Include/Protocol/PciHotPlugInit.h b/IntelFrameworkPkg/Include/Protocol/PciHotPlugInit.h
deleted file mode 100644
index 684b6ca..0000000
--- a/IntelFrameworkPkg/Include/Protocol/PciHotPlugInit.h
+++ /dev/null
@@ -1,214 +0,0 @@
-/** @file

-  This file declares EFI PCI Hot Plug Init Protocol.

-  This protocol provides the necessary functionality to initialize the Hot Plug Controllers (HPCs) and

-  the buses that they control. This protocol also provides information regarding resource padding.

-

-  Copyright (c) 2007 - 2009, Intel Corporation

-  All rights reserved. This program and the accompanying materials

-  are licensed and made available under the terms and conditions of the BSD License

-  which accompanies this distribution.  The full text of the license may be found at

-  http://opensource.org/licenses/bsd-license.php

-

-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,

-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

-

-  @par Revision Reference:

-  This protocol is defined in Framework of EFI Hot Plug Pci Initialization Protocol Spec

-  Version 0.9

-

-**/

-

-#ifndef _EFI_PCI_HOT_PLUG_INIT_H_

-#define _EFI_PCI_HOT_PLUG_INIT_H_

-

-

-///

-/// Global ID for the PCI Hot Plug Protocol

-///

-#define EFI_PCI_HOT_PLUG_INIT_PROTOCOL_GUID \

-  { \

-    0xaa0e8bc1, 0xdabc, 0x46b0, {0xa8, 0x44, 0x37, 0xb8, 0x16, 0x9b, 0x2b, 0xea } \

-  }

-

-typedef struct _EFI_PCI_HOT_PLUG_INIT_PROTOCOL EFI_PCI_HOT_PLUG_INIT_PROTOCOL;

-

-///

-/// Current state of an HPC

-///

-typedef UINT16 EFI_HPC_STATE;

-

-///

-/// The HPC initialization function was called and the HPC completed 

-/// initialization, but it was not enabled for some reason. The HPC may be 

-/// disabled in hardware, or it may be disabled due to user preferences, 

-/// hardware failure, or other reasons. No resource padding is required.

-///

-#define  EFI_HPC_STATE_INITIALIZED    0x01

-

-///

-/// The HPC initialization function was called, the HPC completed 

-/// initialization, and it was enabled. Resource padding is required.

-///

-#define  EFI_HPC_STATE_ENABLED        0x02

-

-///

-/// Location definition for PCI Hot Plug Controller

-///

-typedef struct{

-  ///

-  /// The device path to the Root HPC

-  ///

-  EFI_DEVICE_PATH_PROTOCOL  *HpcDevicePath;

-  ///

-  /// The device path to the Hot Plug Bus (HPB) that is controlled by 

-  /// the root HPC.

-  ///

-  EFI_DEVICE_PATH_PROTOCOL  *HpbDevicePath;

-} EFI_HPC_LOCATION;

-

-

-///

-/// Describes how resource padding should be applied

-///

-typedef enum{

-  EfiPaddingPciBus,

-  EfiPaddingPciRootBridge

-} EFI_HPC_PADDING_ATTRIBUTES;

-

-/**

-  Returns a list of root Hot Plug Controllers (HPCs) that require initialization

-  during the boot process.

-

-  This procedure returns a list of root HPCs. The PCI bus driver must initialize these controllers 

-  during the boot process. The PCI bus driver may or may not be able to detect these HPCs. If the 

-  platform includes a PCI-to-CardBus bridge, it can be included in this list if it requires initialization. 

-  The HpcList must be self consistent. An HPC cannot control any of its parent buses. Only one HPC 

-  can control a PCI bus. Because this list includes only root HPCs, no HPC in the list can be a child of 

-  another HPC. This policy must be enforced by the EFI_PCI_HOT_PLUG_INIT_PROTOCOL. 

-  The PCI bus driver may not check for such invalid conditions. 

-  The callee allocates the buffer HpcList

-

-  @param  This                  Pointer to the EFI_PCI_HOT_PLUG_INIT_PROTOCOL instance.

-  @param  HpcCount              The number of root HPCs that were returned.

-  @param  HpcList               The list of root HPCs. HpcCount defines the number of

-                                elements in this list.

-

-  @retval EFI_SUCCESS           HpcList was returned.

-  @retval EFI_OUT_OF_RESOURCES  HpcList was not returned due to insufficient resources.

-  @retval EFI_INVALID_PARAMETER HpcCount is NULL or HpcList is NULL.

-

-**/

-typedef

-EFI_STATUS

-(EFIAPI *EFI_GET_ROOT_HPC_LIST)(

-  IN  EFI_PCI_HOT_PLUG_INIT_PROTOCOL  *This,

-  OUT UINTN                           *HpcCount,

-  OUT EFI_HPC_LOCATION                **HpcList

-);

-

-/**

-  Initializes one root Hot Plug Controller (HPC). This process may causes

-  initialization of its subordinate buses.

-  

-  This function initializes the specified HPC. At the end of initialization, the hot-plug slots or sockets 

-  (controlled by this HPC) are powered and are connected to the bus. All the necessary registers in the 

-  HPC are set up. For a Standard (PCI) Hot Plug Controller (SHPC), the registers that must be set up 

-  are defined in the PCI Standard Hot Plug Controller and Subsystem Specification.

-

-  @param  This                  Pointer to the EFI_PCI_HOT_PLUG_INIT_PROTOCOL instance.

-  @param  HpcDevicePath         The device path to the HPC that is being initialized.

-  @param  HpcPciAddress         The address of the HPC function on the PCI bus.

-  @param  Event                 The event that should be signaled when the HPC initialization

-                                is complete.

-  @param  HpcState              The state of the HPC hardware. The state is EFI_HPC_STATE_INITIALIZED

-                                or EFI_HPC_STATE_ENABLED.

-

-  @retval EFI_SUCCESS           If Event is NULL, the specific HPC was successfully

-                                initialized. If Event is not NULL, Event will be signaled at a later time

-                                when initialization is complete.

-  @retval EFI_UNSUPPORTED       This instance of EFI_PCI_HOT_PLUG_INIT_PROTOCOL

-                                does not support the specified HPC.

-  @retval EFI_OUT_OF_RESOURCES  Initialization failed due to insufficient

-                                resources.

-  @retval EFI_INVALID_PARAMETER HpcState is NULL.

-

-**/

-typedef

-EFI_STATUS

-(EFIAPI *EFI_INITIALIZE_ROOT_HPC)(

-  IN  EFI_PCI_HOT_PLUG_INIT_PROTOCOL    *This,

-  IN  EFI_DEVICE_PATH_PROTOCOL          *HpcDevicePath,

-  IN  UINT64                            HpcPciAddress,

-  IN  EFI_EVENT                         Event, OPTIONAL

-  OUT EFI_HPC_STATE                     *HpcState

-);

-

-/**

-  Returns the resource padding that is required by the PCI bus that is controlled

-  by the specified Hot Plug Controller (HPC).

-

-  This function returns the resource padding that is required by the PCI bus that is controlled by the 

-  specified HPC. This member function is called for all the root HPCs and nonroot HPCs that are 

-  detected by the PCI bus enumerator. This function will be called before PCI resource allocation is 

-  completed. This function must be called after all the root HPCs, with the possible exception of a 

-  PCI-to-CardBus bridge, have completed initialization.

-

-  @param  This                  Pointer to the EFI_PCI_HOT_PLUG_INIT_PROTOCOL instance.

-  @param  HpcDevicePath         The device path to the HPC.

-  @param  HpcPciAddress         The address of the HPC function on the PCI bus.

-  @param  HpcState              The state of the HPC hardware.

-  @param  Padding               The amount of resource padding that is required by the

-                                PCI bus under the control of the specified HPC.

-  @param  Attributes            Describes how padding is accounted for. The padding

-                                is returned in the form of ACPI 2.0 resource descriptors.

-

-  @retval EFI_SUCCESS           The resource padding was successfully returned.

-  @retval EFI_UNSUPPORTED       This instance of the EFI_PCI_HOT_PLUG_INIT_PROTOCOL

-                                does not support the specified HPC.

-  @retval EFI_NOT_READY         This function was called before HPC initialization is complete.

-  @retval EFI_INVALID_PARAMETER HpcState or Padding or Attributes is NULL.

-  @retval EFI_OUT_OF_RESOURCES  ACPI 2.0 resource descriptors for Padding

-                                cannot be allocated due to insufficient resources.

-

-**/

-typedef

-EFI_STATUS

-(EFIAPI *EFI_GET_HOT_PLUG_PADDING)(

-  IN  EFI_PCI_HOT_PLUG_INIT_PROTOCOL    *This,

-  IN  EFI_DEVICE_PATH_PROTOCOL          *HpcDevicePath,

-  IN  UINT64                            HpcPciAddress,

-  OUT EFI_HPC_STATE                     *HpcState,

-  OUT VOID                              **Padding,

-  OUT EFI_HPC_PADDING_ATTRIBUTES        *Attributes

-);

-

-

-//

-// Prototypes for the PCI Hot Plug Init Protocol

-//

-

-///

-/// This protocol provides the necessary functionality to initialize the

-/// Hot Plug Controllers (HPCs) and the buses that they control. This protocol

-/// also provides information regarding resource padding.

-///

-struct _EFI_PCI_HOT_PLUG_INIT_PROTOCOL {

-  ///

-  /// Returns a list of root HPCs and the buses that they control.

-  ///

-  EFI_GET_ROOT_HPC_LIST                                  GetRootHpcList;

-  

-  ///

-  /// Initializes the specified root HPC.

-  ///

-  EFI_INITIALIZE_ROOT_HPC                                InitializeRootHpc;

-  

-  ///

-  /// Returns the resource padding that is required by the HPC.

-  ///

-  EFI_GET_HOT_PLUG_PADDING                               GetResourcePadding;

-};

-

-extern EFI_GUID gEfiPciHotPlugInitProtocolGuid;

-

-#endif

diff --git a/IntelFrameworkPkg/Include/Protocol/PciPlatform.h b/IntelFrameworkPkg/Include/Protocol/PciPlatform.h
deleted file mode 100644
index 4c47ee6..0000000
--- a/IntelFrameworkPkg/Include/Protocol/PciPlatform.h
+++ /dev/null
@@ -1,233 +0,0 @@
-/** @file

-  This file declares PlatfromOpRom protocols which provides the interface between 

-  the PCI bus driver/PCI Host Bridge Resource Allocation driver and a platform-specific 

-  driver to describe the unique features of a platform. This

-  protocol is optional.

-  

-  Copyright (c) 2007 - 2009, Intel Corporation

-  All rights reserved. This program and the accompanying materials

-  are licensed and made available under the terms and conditions of the BSD License

-  which accompanies this distribution.  The full text of the license may be found at

-  http://opensource.org/licenses/bsd-license.php

-

-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,

-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

-

-  @par Revision Reference:

-  This protocol is defined in PCI Platform Support Specification

-  Version 0.9

-

-**/

-

-#ifndef _PCI_PLATFORM_H_

-#define _PCI_PLATFORM_H_

-

-#include <Protocol/PciHostBridgeResourceAllocation.h>

-

-//

-// Protocol for GUID.

-//

-

-#define EFI_PCI_PLATFORM_PROTOCOL_GUID \

-{ 0x7d75280, 0x27d4, 0x4d69, {0x90, 0xd0, 0x56, 0x43, 0xe2, 0x38, 0xb3, 0x41} }

-

-typedef struct _EFI_PCI_PLATFORM_PROTOCOL EFI_PCI_PLATFORM_PROTOCOL;

-

-typedef    UINT32   EFI_PCI_PLATFORM_POLICY;

-

-//

-// There are 4 legal combinations of following bit values:

-// EFI_RESERVE_NONE_IO_ALIAS,

-// EFI_RESERVE_ISA_IO_ALIAS | EFI_RESERVE_VGA_IO_ALIAS,

-// EFI_RESERVE_ISA_IO_NO_ALIAS | EFI_RESERVE_VGA_IO_ALIAS,

-// EFI_RESERVE_ISA_IO_NO_ALIAS | EFI_RESERVE_VGA_IO_NO_ALIAS

-//

-#define     EFI_RESERVE_NONE_IO_ALIAS        0x0000

-#define     EFI_RESERVE_ISA_IO_ALIAS         0x0001

-#define     EFI_RESERVE_ISA_IO_NO_ALIAS      0x0002

-#define     EFI_RESERVE_VGA_IO_ALIAS         0x0004

-#define     EFI_RESERVE_VGA_IO_NO_ALIAS      0x0008

-

-///

-/// EFI_PCI_CHIPSET_EXECUTION_PHASE is used to call a platform protocol and execute

-/// platform-specific code.

-///

-typedef enum {

-  ///

-  /// The phase that indicates the entry point to the PCI Bus Notify phase. This

-  /// platform hook is called before the PCI bus driver calls the

-  /// EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL driver.

-  ///

-  ChipsetEntry,

-  ///

-  /// The phase that indicates the exit point to the Chipset Notify phase before

-  /// returning to the PCI Bus Driver Notify phase. This platform hook is called after

-  /// the PCI bus driver calls the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL

-  /// driver.

-  ///

-  ChipsetExit,

-  MaximumChipsetPhase

-} EFI_PCI_CHIPSET_EXECUTION_PHASE;

-

-

-/**

-  The notification from the PCI bus enumerator to the platform that it is

-  about to enter a certain phase during the enumeration process.

-

-  The PlatformNotify() function can be used to notify the platform driver so that

-  it can perform platform-specific actions. No specific actions are required.

-  Eight notification points are defined at this time. More synchronization points

-  may be added as required in the future. The PCI bus driver calls the platform driver

-  twice for every Phase-once before the PCI Host Bridge Resource Allocation Protocol

-  driver is notified, and once after the PCI Host Bridge Resource Allocation Protocol

-  driver has been notified.

-  This member function may not perform any error checking on the input parameters. It

-  also does not return any error codes. If this member function detects any error condition,

-  it needs to handle those errors on its own because there is no way to surface any

-  errors to the caller.

-

-  @param  This                  Pointer to the EFI_PCI_PLATFORM_PROTOCOL instance.

-  @param  HostBridge            The handle of the host bridge controller.

-  @param  Phase                 The phase of the PCI bus enumeration.

-  @param  ChipsetPhase          Defines the execution phase of the PCI chipset driver.

-

-  @retval EFI_SUCCESS           The function completed successfully.

-

-**/

-typedef

-EFI_STATUS

-(EFIAPI *EFI_PCI_PLATFORM_PHASE_NOTIFY)(

-  IN  EFI_PCI_PLATFORM_PROTOCOL                      *This,

-  IN  EFI_HANDLE                                     HostBridge,

-  IN  EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PHASE  Phase,

-  IN  EFI_PCI_CHIPSET_EXECUTION_PHASE                ChipsetPhase

-);

-

-

-/**

-  The notification from the PCI bus enumerator to the platform for each PCI

-  controller at several predefined points during PCI controller initialization.

-

-  The PlatformPrepController() function can be used to notify the platform driver so that

-  it can perform platform-specific actions. No specific actions are required.

-  Several notification points are defined at this time. More synchronization points may be

-  added as required in the future. The PCI bus driver calls the platform driver twice for

-  every PCI controller-once before the PCI Host Bridge Resource Allocation Protocol driver

-  is notified, and once after the PCI Host Bridge Resource Allocation Protocol driver has

-  been notified.

-  This member function may not perform any error checking on the input parameters. It also

-  does not return any error codes. If this member function detects any error condition, it

-  needs to handle those errors on its own because there is no way to surface any errors to

-  the caller.

-

-  @param  This                  Pointer to the EFI_PCI_PLATFORM_PROTOCOL instance.

-  @param  HostBridge            The associated PCI host bridge handle.

-  @param  RootBridge            The associated PCI root bridge handle.

-  @param  PciAddress            The address of the PCI device on the PCI bus.

-  @param  Phase                 The phase of the PCI controller enumeration.

-  @param  ChipsetPhase          Defines the execution phase of the PCI chipset driver.

-

-  @retval EFI_SUCCESS           The function completed successfully.

-

-**/

-typedef

-EFI_STATUS

-(EFIAPI *EFI_PCI_PLATFORM_PREPROCESS_CONTROLLER)(

-  IN  EFI_PCI_PLATFORM_PROTOCOL                      *This,

-  IN  EFI_HANDLE                                     HostBridge,

-  IN  EFI_HANDLE                                     RootBridge,

-  IN  EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_PCI_ADDRESS    PciAddress,

-  IN  EFI_PCI_CONTROLLER_RESOURCE_ALLOCATION_PHASE   Phase,

-  IN  EFI_PCI_CHIPSET_EXECUTION_PHASE                ChipsetPhase

-);

-

-

-/**

-  Retrieves the platform policy regarding enumeration.

-

-  The GetPlatformPolicy() function retrieves the platform policy regarding PCI

-  enumeration. The PCI bus driver and the PCI Host Bridge Resource Allocation Protocol

-  driver can call this member function to retrieve the policy.

-

-  @param  This                  Pointer to the EFI_PCI_PLATFORM_PROTOCOL instance.

-  @param  PciPolicy             The platform policy with respect to VGA and ISA aliasing.

-

-  @retval EFI_SUCCESS           The function completed successfully.

-  @retval EFI_INVALID_PARAMETER PciPolicy is NULL.

-

-**/

-typedef

-EFI_STATUS

-(EFIAPI *EFI_PCI_PLATFORM_GET_PLATFORM_POLICY)(

-  IN  EFI_PCI_PLATFORM_PROTOCOL           *This,

-  OUT EFI_PCI_PLATFORM_POLICY             *PciPolicy

-);

-

-

-/**

-  Gets the PCI device's option ROM from a platform-specific location.

-

-  The GetPciRom() function gets the PCI device's option ROM from a platform-specific location.

-  The option ROM will be loaded into memory. This member function is used to return an image

-  that is packaged as a PCI 2.2 option ROM. The image may contain both legacy and EFI option

-  ROMs. See the UEFI 2.0 Specification for details. This member function can be used to return

-  option ROM images for embedded controllers. Option ROMs for embedded controllers are typically

-  stored in platform-specific storage, and this member function can retrieve it from that storage

-  and return it to the PCI bus driver. The PCI bus driver will call this member function before

-  scanning the ROM that is attached to any controller, which allows a platform to specify a ROM

-  image that is different from the ROM image on a PCI card.

-

-  @param  This                  Pointer to the EFI_PCI_PLATFORM_PROTOCOL instance.

-  @param  PciHandle             The handle of the PCI device.

-  @param  RomImage              If the call succeeds, the pointer to the pointer to the option ROM image.

-                                Otherwise, this field is undefined. The memory for RomImage is allocated

-                                by EFI_PCI_PLATFORM_PROTOCOL.GetPciRom() using the EFI Boot Service AllocatePool().

-                                It is the caller's responsibility to free the memory using the EFI Boot Service

-                                FreePool(), when the caller is done with the option ROM.

-  @param  RomSize               If the call succeeds, a pointer to the size of the option ROM size. Otherwise,

-                                this field is undefined.

-

-  @retval EFI_SUCCESS           The option ROM was available for this device and loaded into memory.

-  @retval EFI_NOT_FOUND         No option ROM was available for this device.

-  @retval EFI_OUT_OF_RESOURCES  No memory was available to load the option ROM.

-  @retval EFI_DEVICE_ERROR      An error occurred in getting the option ROM.

-

-**/

-typedef

-EFI_STATUS

-(EFIAPI *EFI_PCI_PLATFORM_GET_PCI_ROM)(

-  IN   EFI_PCI_PLATFORM_PROTOCOL    *This,

-  IN   EFI_HANDLE                   PciHandle,

-  OUT  VOID                         **RomImage,

-  OUT  UINTN                        *RomSize

-);

-

-///

-/// This protocol provides the interface between the PCI bus driver/PCI Host

-/// Bridge Resource Allocation driver and a platform-specific driver to describe

-/// the unique features of a platform.

-///

-struct _EFI_PCI_PLATFORM_PROTOCOL {

-  ///

-  /// The notification from the PCI bus enumerator to the platform that it is about to 

-  /// enter a certain phase during the enumeration process.

-  ///

-  EFI_PCI_PLATFORM_PHASE_NOTIFY          PlatformNotify;

-  ///

-  /// The notification from the PCI bus enumerator to the platform for each PCI 

-  /// controller at several predefined points during PCI controller initialization.

-  /// 

-  EFI_PCI_PLATFORM_PREPROCESS_CONTROLLER PlatformPrepController;

-  /// 

-  /// Retrieves the platform policy regarding enumeration.

-  ///

-  EFI_PCI_PLATFORM_GET_PLATFORM_POLICY   GetPlatformPolicy;

-  ///

-  /// Gets the PCI device’s option ROM from a platform-specific location.

-  ///

-  EFI_PCI_PLATFORM_GET_PCI_ROM           GetPciRom;

-};

-

-extern EFI_GUID   gEfiPciPlatformProtocolGuid;

-

-#endif

diff --git a/IntelFrameworkPkg/IntelFrameworkPkg.dec b/IntelFrameworkPkg/IntelFrameworkPkg.dec
index 1a06fce..b3448bd 100644
--- a/IntelFrameworkPkg/IntelFrameworkPkg.dec
+++ b/IntelFrameworkPkg/IntelFrameworkPkg.dec
@@ -26,9 +26,6 @@
   SmmLib|Include/Library/SmmLib.h

 

 [Guids]

-  ## EdkCompatibilityPkg/Foundation/Framework/Guid/AcpiTableStorage/AcpiTableStorage.h

-  gEfiAcpiTableStorageGuid       = { 0x7e374e25, 0x8e01, 0x4fee, { 0x87, 0xf2, 0x39, 0x0c, 0x23, 0xc6, 0x06, 0xcd }}

-  

   ## Include/Guid/DataHubRecords.h

   gEfiCacheSubClassGuid          = { 0x7f0013a7, 0xdc79, 0x4b22, { 0x80, 0x99, 0x11, 0xf7, 0x5f, 0xdc, 0x82, 0x9d }}

   

@@ -62,10 +59,10 @@
   ## Include/Guid/FirmwareFileSystem.h

   gEfiFirmwareFileSystemGuid     = { 0x7A9354D9, 0x0468, 0x444a, {0x81, 0xCE, 0x0B, 0xF6, 0x17, 0xD8, 0x90, 0xDF }}

 

-  ##   Include/Guid/BlockIo.h

+  ## Include/Guid/BlockIo.h

   gEfiPeiIdeBlockIoPpiGuid       = { 0x0964e5b22, 0x6459, 0x11d2, { 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b }}

   

-  ##  Include/Guid/BlockIo.h

+  ## Include/Guid/BlockIo.h

   gEfiPei144FloppyBlockIoPpiGuid = { 0xda6855bd, 0x07b7, 0x4c05, { 0x9e, 0xd8, 0xe2, 0x59, 0xfd, 0x36, 0x0e, 0x22 }}

     

 [Protocols]

@@ -93,10 +90,10 @@
   ## Include/Protocol/Legacy8259.h

   gEfiLegacy8259ProtocolGuid     = { 0x38321dba, 0x4fe0, 0x4e17, { 0x8a, 0xec, 0x41, 0x30, 0x55, 0xea, 0xed, 0xc1 }}

   

-  ## Include\Protocol\CpuIo.h

+  ## Include/Protocol/CpuIo.h

   gEfiCpuIoProtocolGuid          = { 0xB0732526, 0x38C8, 0x4b40, { 0x88, 0x77, 0x61, 0xc7, 0xb0, 0x6a, 0xac, 0x45 }}

   

-  ## Include/Protocol/CpuIo.h

+  ## Include/Protocol/DataHub.h

   gEfiDataHubProtocolGuid        = { 0xae80d021, 0x618e, 0x11d4, { 0xbc, 0xd7, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81 }}

   

   ## Include/Protocol/FirmwareVolume.h

@@ -105,9 +102,6 @@
   ## Include/Protocol/SectionExtraction.h

   gEfiSectionExtractionProtocolGuid = { 0x448F5DA4, 0x6DD7, 0x4FE1, { 0x93, 0x07, 0x69, 0x22, 0x41, 0x92, 0x21, 0x5D }}

   

-  ## Include/Protocol/PciHotPlugInit.h

-  gEfiPciHotPlugInitProtocolGuid = { 0xaa0e8bc1, 0xdabc, 0x46b0, { 0xa8, 0x44, 0x37, 0xb8, 0x16, 0x9b, 0x2b, 0xea }}

-  

   ## Include/Protocol/FrameworkHii.h

   gEfiHiiProtocolGuid            = { 0xd7ad636e, 0xb997, 0x459b, { 0xbf, 0x3f, 0x88, 0x46, 0x89, 0x79, 0x80, 0xe1 }}

   

@@ -117,18 +111,6 @@
   ## Include/Protocol/FrameworkMpService.h 

   gFrameworkEfiMpServiceProtocolGuid = { 0xf33261e7, 0x23cb, 0x11d5, {0xbd, 0x5c, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}

   

-  ## Include/Protocol/IdeControllerInit.h

-  gEfiIdeControllerInitProtocolGuid = { 0xa1e37052, 0x80d9, 0x4e65, { 0xa3, 0x17, 0x3e, 0x9a, 0x55, 0xc4, 0x3e, 0xc9 }}

-  

-  ## Include/Protocol/PciHostBridgeResourceAllocation.h

-  gEfiPciHostBridgeResourceAllocationProtocolGuid = { 0xCF8034BE, 0x6768, 0x4d8b, { 0xb7, 0x39, 0x7c, 0xce, 0x68, 0x3a, 0x9f, 0xbe }}

-  

-  ## Include/Protocol/PciPlatform.h

-  gEfiPciPlatformProtocolGuid    = { 0x07d75280, 0x27d4, 0x4d69, { 0x90, 0xd0, 0x56, 0x43, 0xe2, 0x38, 0xb3, 0x41 }}

-  

-  ## Include/Protocol/IncompatiblePciDeviceSupport.h

-  gEfiIncompatiblePciDeviceSupportProtocolGuid = { 0xeb23f55a, 0x7863, 0x4ac2, { 0x8d, 0x3d, 0x95, 0x65, 0x35, 0xde, 0x03, 0x75 }}

-  

   ## Include/Protocol/SmmBase.h

   gEfiSmmBaseProtocolGuid        = { 0x1390954D, 0xda95, 0x4227, { 0x93, 0x28, 0x72, 0x82, 0xc2, 0x17, 0xda, 0xa8 }}