X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdePkg%2FInclude%2FProtocol%2FPciHostBridgeResourceAllocation.h;h=c8776ab194f6d989a8102908186d19388f8328d2;hp=e3200de442b5dd65914a8a770637f2e460a7e7aa;hb=9095d37b8fe5bfc3d02adad6ba7fd7359ebc0107;hpb=d1102dba7210b95e41d06c2338a22ba6af248645 diff --git a/MdePkg/Include/Protocol/PciHostBridgeResourceAllocation.h b/MdePkg/Include/Protocol/PciHostBridgeResourceAllocation.h index e3200de442..c8776ab194 100644 --- a/MdePkg/Include/Protocol/PciHostBridgeResourceAllocation.h +++ b/MdePkg/Include/Protocol/PciHostBridgeResourceAllocation.h @@ -1,21 +1,21 @@ /** @file - This file declares PCI Host Bridge Resource Allocation Protocol which - provides the basic interfaces to abstract a PCI host bridge resource allocation. + 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 - 2010, 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 that accompanies this distribution. + +Copyright (c) 2007 - 2018, 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 that 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, +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 UEFI Platform Initialization Specification 1.2 + This Protocol is defined in UEFI Platform Initialization Specification 1.2 Volume 5: Standards. - + **/ #ifndef _PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_H_ @@ -56,14 +56,14 @@ typedef struct _EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL EFI_PCI_HOST_BR #define EFI_PCI_HOST_BRIDGE_MEM64_DECODE 2 /// -/// A UINT64 value that contains the status of a PCI resource requested +/// A UINT64 value that contains the status of a PCI resource requested /// in the Configuration parameter returned by GetProposedResources() /// The legal values are EFI_RESOURCE_SATISFIED and EFI_RESOURCE_NOT_SATISFIED /// typedef UINT64 EFI_RESOURCE_ALLOCATION_STATUS; /// -/// The request of this resource type could be fulfilled. Used in the +/// The request of this resource type could be fulfilled. Used in the /// Configuration parameter returned by GetProposedResources() to identify /// a PCI resources request that can be satisfied. /// @@ -71,7 +71,7 @@ typedef UINT64 EFI_RESOURCE_ALLOCATION_STATUS; /// /// The request of this resource type could not be fulfilled for its -/// absence in the host bridge resource pool. Used in the Configuration parameter +/// absence in the host bridge resource pool. Used in the Configuration parameter /// returned by GetProposedResources() to identify a PCI resources request that /// can not be satisfied. /// @@ -92,45 +92,45 @@ typedef enum { /// /// 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. + /// 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. + /// 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. + /// 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(). + /// 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. + /// 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. + /// here. This notification can be used to perform any chipset specific programming. /// EfiPciHostBridgeEndResourceAllocation, @@ -158,30 +158,30 @@ typedef enum { /// /// This notification is sent before the PCI enumerator probes BAR registers - /// for every valid PCI function. + /// 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 + These are the notifications from the PCI bus driver that it is about to enter a certain phase of the PCI enumeration process. - @param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL + @param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL instance. @param[in] 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 + @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 + @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. + @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 + if the previously submitted resource requests cannot be fulfilled or were only partially fulfilled **/ @@ -195,15 +195,15 @@ EFI_STATUS /** Returns the device handle of the next PCI root bridge that is associated with this host bridge. - @param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL + @param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL instance. - @param[in,out] 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 + @param[in,out] 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 + @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. @@ -218,7 +218,7 @@ EFI_STATUS /** Returns the allocation attributes of a PCI root bridge. - @param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL + @param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL instance. @param[in] RootBridgeHandle The device handle of the PCI root bridge in which the caller is interested. @param[out] Attribute The pointer to attributes of the PCI root bridge. @@ -239,12 +239,12 @@ EFI_STATUS /** Sets up the specified PCI root bridge for the bus enumeration process. - @param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL + @param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL instance. @param[in] RootBridgeHandle The PCI root bridge to be set up. @param[out] Configuration The 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 + @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. @@ -263,20 +263,20 @@ EFI_STATUS Programs the PCI root bridge hardware so that it decodes the specified PCI bus range. @param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL - instance. + instance. @param[in] RootBridgeHandle The PCI root bridge whose bus range is to be programmed. @param[in] 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) + @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 + @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 + @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. @@ -294,26 +294,26 @@ EFI_STATUS /** Submits the I/O and memory resource requirements for the specified PCI root bridge. - @param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL + @param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL instance. - @param[in] RootBridgeHandle The PCI root bridge whose I/O and memory resource requirements are being + @param[in] RootBridgeHandle The PCI root bridge whose I/O and memory resource requirements are being submitted. @param[in] 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 + @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) + @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 + @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 @@ -326,7 +326,7 @@ EFI_STATUS /** Returns the proposed resource settings for the specified PCI root bridge. - @param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL + @param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL instance. @param[in] RootBridgeHandle The PCI root bridge handle. @param[out] Configuration The pointer to the pointer to the PCI I/O and memory resource descriptor. @@ -346,8 +346,8 @@ EFI_STATUS ); /** - 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 + 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[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL instance. @@ -357,10 +357,10 @@ EFI_STATUS @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 + @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 + @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. **/ @@ -382,43 +382,43 @@ struct _EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL { /// 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. + /// 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. + /// before enumeration. /// EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_PREPROCESS_CONTROLLER PreprocessController; };