diff --git a/IntelFrameworkPkg/Include/Protocol/IdeControllerInit.h b/IntelFrameworkPkg/Include/Protocol/IdeControllerInit.h deleted file mode 100644 index e65716b972..0000000000 --- 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 a763399395..0000000000 --- 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 43253da170..0000000000 --- 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 - -#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 684b6ca550..0000000000 --- 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 4c47ee6a52..0000000000 --- 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 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 1a06fce5e3..b3448bda73 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 }}