From: mdkinney Date: Tue, 14 Jul 2009 19:34:24 +0000 (+0000) Subject: Remove the following Protocols from the IntelFrameworkPkg because they are identical... X-Git-Tag: edk2-stable201903~17368 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=347bbfc6ed99df8865f8281caf2b946bf52d8931 Remove the following Protocols from the IntelFrameworkPkg because they are identical to Protocols from the PI 1.2 Specification that have been added to the MdePkg 1) IDE Controller Init 2) Incompatible PCI Device Support 3) PCI Hot Bridge Resource Allocation 4) PCI Hot Plug 5) PCI Platform git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8941 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/IntelFrameworkPkg/Include/Protocol/IdeControllerInit.h b/IntelFrameworkPkg/Include/Protocol/IdeControllerInit.h deleted file mode 100644 index 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 }}