summaryrefslogtreecommitdiff
path: root/IntelFrameworkPkg/Include/Protocol
diff options
context:
space:
mode:
Diffstat (limited to 'IntelFrameworkPkg/Include/Protocol')
-rw-r--r--IntelFrameworkPkg/Include/Protocol/IdeControllerInit.h479
-rw-r--r--IntelFrameworkPkg/Include/Protocol/IncompatiblePciDeviceSupport.h85
-rw-r--r--IntelFrameworkPkg/Include/Protocol/PciHostBridgeResourceAllocation.h414
-rw-r--r--IntelFrameworkPkg/Include/Protocol/PciHotPlugInit.h214
-rw-r--r--IntelFrameworkPkg/Include/Protocol/PciPlatform.h233
5 files changed, 0 insertions, 1425 deletions
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