]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkPkg/Include/Protocol/PciHostBridgeResourceAllocation.h
added comments per framework spec.
[mirror_edk2.git] / IntelFrameworkPkg / Include / Protocol / PciHostBridgeResourceAllocation.h
index f086bf9b05ddf26a9fc72e1ae9e1cf5d9682a892..db81fe5c415342953dcbd56b190d7f36169ea032 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   This file declares Pci Host Bridge Resource Allocation Protocol which \r
-  Provides the basic interfaces to abstract a PCI host bridge resource allocation. This protocol is\r
-  mandatory if the system includes PCI devices.\r
+  Provides the basic interfaces to abstract a PCI host bridge resource allocation. \r
+  This protocol is mandatory if the system includes PCI devices.\r
   \r
   Copyright (c) 2007 - 2009, Intel Corporation\r
   All rights reserved. This program and the accompanying materials\r
@@ -52,11 +52,15 @@ typedef struct _EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL EFI_PCI_HOST_BR
 \r
 typedef UINT64 EFI_RESOURCE_ALLOCATION_STATUS;\r
 \r
+///\r
 /// The request of this resource type could be fulfilled.\r
+///\r
 #define EFI_RESOURCE_SATISFIED      0x0000000000000000ULL\r
 \r
+///\r
 /// The request of this resource type could not be fulfilled for its\r
 /// absence in the host bridge resource pool.\r
+///\r
 #define EFI_RESOURCE_NOT_SATISFIED  0xFFFFFFFFFFFFFFFFULL\r
 \r
 //\r
@@ -118,7 +122,7 @@ typedef enum {
 } EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PHASE;\r
 \r
 ///\r
-/// EFI_PCI_CONTROLLER_RESOURCE_ALLOCATION_PHASE\r
+/// Definitions of 2 notification points.\r
 ///\r
 typedef enum {\r
   ///\r
@@ -139,16 +143,25 @@ typedef enum {
 } EFI_PCI_CONTROLLER_RESOURCE_ALLOCATION_PHASE;\r
 \r
 /**\r
-  Enter a certain phase of the PCI enumeration process\r
+  These are the notifications from the PCI bus driver that it is about to enter a certain phase of the PCI \r
+  enumeration process.\r
 \r
-  @param  This                  The EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL instance\r
+  @param  This                  Pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL \r
+                                instance.\r
   @param  Phase                 The phase during enumeration\r
 \r
-  @retval EFI_SUCCESS           Success\r
-  @retval EFI_OUT_OF_RESOURCES  If SubmitResources ( ) could not allocate resources\r
-  @retval EFI_INVALID_PARAMETER The Phase is invalid\r
-  @retval EFI_NOT_READY         This phase cannot be entered at this time\r
-  @retval EFI_DEVICE_ERROR      SetResources failed due to HW error.\r
+  @retval EFI_SUCCESS           The notification was accepted without any errors.\r
+  @retval EFI_INVALID_PARAMETER The Phase is invalid.\r
+  @retval EFI_NOT_READY         This phase cannot be entered at this time. For example, this error \r
+                                is valid for a Phase of EfiPciHostBridgeAllocateResources if \r
+                                SubmitResources() has not been called for one or more \r
+                                PCI root bridges before this call.\r
+  @retval EFI_DEVICE_ERROR      Programming failed due to a hardware error. This error is valid for \r
+                                a Phase of EfiPciHostBridgeSetResources.\r
+  @retval EFI_OUT_OF_RESOURCES  The request could not be completed due to a lack of resources. \r
+                                This error is valid for a Phase of EfiPciHostBridgeAllocateResources\r
+                                if the previously submitted resource requests cannot be fulfilled or were only \r
+                                partially fulfilled\r
 \r
 **/\r
 typedef\r
@@ -160,18 +173,19 @@ EFI_STATUS
 \r
 \r
 /**\r
-  Return the device handle of the next PCI root bridge that is associated with\r
-  this Host Bridge\r
+  Returns the device handle of the next PCI root bridge that is associated with this host bridge.\r
 \r
-  @param  This                  The EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_ PROTOCOL instance\r
-  @param  RootBridgeHandle      Returns the device handle of the next PCI Root Bridge.\r
-                                On input, it holds the RootBridgeHandle returned by the most\r
-                                recent call to GetNextRootBridge().The handle for the first\r
-                                PCI Root Bridge is returned if RootBridgeHandle is NULL on input\r
+  @param  This                  Pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL \r
+                                instance.\r
+  @param  RootBridgeHandle      Returns the device handle of the next PCI root bridge. On input, it holds the \r
+                                RootBridgeHandle that was returned by the most recent call to \r
+                                GetNextRootBridge(). If RootBridgeHandle is NULL on input, the handle \r
+                                for the first PCI root bridge is returned.\r
 \r
-  @retval EFI_SUCCESS           Success\r
-  @retval EFI_INVALID_PARAMETER RootBridgeHandle is invalid\r
-  @retval EFI_NOT_FOUND        There are no more PCI root bridge device handles.\r
+  @retval EFI_SUCCESS           The requested attribute information was returned.\r
+  @retval EFI_INVALID_PARAMETER RootBridgeHandle is not an EFI_HANDLE that was returned \r
+                                on a previous call to GetNextRootBridge().\r
+  @retval EFI_NOT_FOUND         There are no more PCI root bridge device handles.\r
 \r
 **/\r
 typedef\r
@@ -183,16 +197,16 @@ EFI_STATUS
 \r
 \r
 /**\r
-  Returns the attributes of a PCI Root Bridge.\r
+  Returns the allocation attributes of a PCI root bridge.\r
 \r
-  @param  This                  The EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_ PROTOCOL instance\r
-  @param  RootBridgeHandle      The device handle of the PCI Root Bridge\r
-                                that the caller is interested in\r
-  @param  Attribute             The pointer to attributes of the PCI Root Bridge\r
+  @param  This                  Pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL \r
+                                instance.\r
+  @param  RootBridgeHandle      The device handle of the PCI root bridge in which the caller is interested.\r
+  @param  Attribute             The pointer to attributes of the PCI root bridge.\r
 \r
-  @retval EFI_SUCCESS           Success\r
-  @retval EFI_INVALID_PARAMETER RootBridgeHandle is invalid\r
-  @retval EFI_INVALID_PARAMETER Attributes is NULL\r
+  @retval EFI_SUCCESS           The requested attribute information was returned.\r
+  @retval EFI_INVALID_PARAMETER RootBridgeHandle is not a valid root bridge handle.\r
+  @retval EFI_INVALID_PARAMETER Attributes is NULL.\r
 \r
 **/\r
 typedef\r
@@ -205,17 +219,18 @@ EFI_STATUS
 \r
 \r
 /**\r
-  This is the request from the PCI enumerator to set up\r
-  the specified PCI Root Bridge for bus enumeration process.\r
+  Sets up the specified PCI root bridge for the bus enumeration process.\r
 \r
-  @param  This                  The EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_ PROTOCOL instance\r
-  @param  RootBridgeHandle      The PCI Root Bridge to be set up\r
-  @param  Configuration         Pointer to the pointer to the PCI bus resource descriptor\r
+  @param  This                  Pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL \r
+                                instance.\r
+  @param  RootBridgeHandle      The PCI root bridge to be set up.\r
+  @param  Configuration         Pointer to the pointer to the PCI bus resource descriptor.\r
 \r
-  @retval EFI_SUCCESS           Success\r
-  @retval EFI_INVALID_PARAMETER RootBridgeHandle is invalid\r
-  @retval EFI_DEVICE_ERROR      Request failed due to hardware error\r
-  @retval EFI_OUT_OF_RESOURCES  Request failed due to lack of resources\r
+  @retval EFI_SUCCESS           The PCI root bridge was set up and the bus range was returned in \r
+                                Configuration.\r
+  @retval EFI_INVALID_PARAMETER RootBridgeHandle is not a valid root bridge handle.\r
+  @retval EFI_DEVICE_ERROR      Programming failed due to a hardware error.\r
+  @retval EFI_OUT_OF_RESOURCES  The request could not be completed due to a lack of resources.\r
 \r
 **/\r
 typedef\r
@@ -228,23 +243,27 @@ EFI_STATUS
 \r
 \r
 /**\r
-  This function programs the PCI Root Bridge hardware so that\r
-  it decodes the specified PCI bus range\r
+  Programs the PCI root bridge hardware so that it decodes the specified PCI bus range.\r
 \r
-  @param  This                  The EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_ PROTOCOL instance\r
-  @param  RootBridgeHandle      The PCI Root Bridge whose bus range is to be programmed\r
-  @param  Configuration         The pointer to the PCI bus resource descriptor\r
+  @param  This                  Pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL\r
+                                instance.  \r
+  @param  RootBridgeHandle      The PCI root bridge whose bus range is to be programmed.\r
+  @param  Configuration         The pointer to the PCI bus resource descriptor..\r
 \r
-  @retval EFI_SUCCESS           Success\r
-  @retval EFI_INVALID_PARAMETER RootBridgeHandle is invalid\r
+  @retval EFI_SUCCESS           The bus range for the PCI root bridge was programmed.\r
+  @retval EFI_INVALID_PARAMETER RootBridgeHandle is not a valid root bridge handle.\r
   @retval EFI_INVALID_PARAMETER Configuration is NULL\r
-  @retval EFI_INVALID_PARAMETER Configuration does not point to a valid ACPI resource descriptor\r
-  @retval EFI_INVALID_PARAMETER Configuration contains one or more memory or IO ACPI resource descriptor\r
-  @retval EFI_INVALID_PARAMETER Address Range Minimum or Address Range Length fields in Configuration\r
-                                are invalid for this Root Bridge.\r
-  @retval EFI_INVALID_PARAMETER Configuration contains one or more invalid ACPI resource descriptor\r
-  @retval EFI_DEVICE_ERROR      Request failed due to hardware error\r
-  @retval EFI_OUT_OF_RESOURCES  Request failed due to lack of resources\r
+  @retval EFI_INVALID_PARAMETER Configuration does not point to a valid ACPI (2.0 & 3.0) \r
+                                resource descriptor.\r
+  @retval EFI_INVALID_PARAMETER Configuration does not include a valid ACPI 2.0 bus resource\r
+                                descriptor.\r
+  @retval EFI_INVALID_PARAMETER Configuration includes valid ACPI (2.0 & 3.0) resource \r
+                                descriptors other than bus descriptors.\r
+  @retval EFI_INVALID_PARAMETER Configuration contains one or more invalid ACPI resource \r
+                                descriptors.\r
+  @retval EFI_INVALID_PARAMETER "Address Range Minimum" is invalid for this root bridge.\r
+  @retval EFI_INVALID_PARAMETER "Address Range Length" is invalid for this root bridge.\r
+  @retval EFI_DEVICE_ERROR      Programming failed due to a hardware error.\r
 \r
 **/\r
 typedef\r
@@ -257,18 +276,27 @@ EFI_STATUS
 \r
 \r
 /**\r
-  Submits the I/O and memory resource requirements for the specified PCI Root Bridge\r
-\r
-  @param  This                  The EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_ PROTOCOL instance\r
-  @param  RootBridgeHandle      The PCI Root Bridge whose I/O and memory resource requirements\r
-                                are being submitted\r
-  @param  Configuration         The pointer to the PCI I/O and PCI memory resource descriptor\r
-\r
-  @retval EFI_SUCCESS           Success\r
-  @retval EFI_INVALID_PARAMETER RootBridgeHandle is invalid\r
-  @retval EFI_INVALID_PARAMETER Configuration is NULL\r
-  @retval EFI_INVALID_PARAMETER Configuration does not point to a valid ACPI resource descriptor\r
-  @retval EFI_INVALID_PARAMETER Configuration includes a resource descriptor of unsupported type\r
+  Submits the I/O and memory resource requirements for the specified PCI root bridge.\r
+\r
+  @param  This                  Pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL \r
+                                instance.\r
+  @param  RootBridgeHandle      The PCI root bridge whose I/O and memory resource requirements are being \r
+                                submitted.\r
+  @param  Configuration         The pointer to the PCI I/O and PCI memory resource descriptor.\r
+\r
+  @retval EFI_SUCCESS           The I/O and memory resource requests for a PCI root bridge were \r
+                                accepted.\r
+  @retval EFI_INVALID_PARAMETER RootBridgeHandle is not a valid root bridge handle.\r
+  @retval EFI_INVALID_PARAMETER Configuration is NULL.\r
+  @retval EFI_INVALID_PARAMETER Configuration does not point to a valid ACPI (2.0 & 3.0) \r
+                                resource descriptor.\r
+  @retval EFI_INVALID_PARAMETER Configuration includes requests for one or more resource \r
+                                types that are not supported by this PCI root bridge. This error will \r
+                                happen if the caller did not combine resources according to \r
+                                Attributes that were returned by GetAllocAttributes().\r
+  @retval EFI_INVALID_PARAMETER "Address Range Maximum" is invalid.\r
+  @retval EFI_INVALID_PARAMETER "Address Range Length" is invalid for this PCI root bridge.\r
+  @retval EFI_INVALID_PARAMETER "Address Space Granularity" is invalid for this PCI root bridge.\r
   \r
 **/\r
 typedef\r
@@ -281,18 +309,17 @@ EFI_STATUS
 \r
 \r
 /**\r
-  This function returns the proposed resource settings for the specified\r
-  PCI Root Bridge\r
+  Returns the proposed resource settings for the specified PCI root bridge.\r
 \r
-  @param  This                  The EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_ PROTOCOL instance\r
-  @param  RootBridgeHandle      The PCI Root Bridge handle\r
-  @param  Configuration         The pointer to the pointer to the PCI I/O\r
-                                and memory resource descriptor\r
+  @param  This                  Pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL \r
+                                instance.\r
+  @param  RootBridgeHandle      The PCI root bridge handle.\r
+  @param  Configuration         The pointer to the pointer to the PCI I/O and memory resource descriptor.\r
 \r
-  @retval EFI_SUCCESS           Success\r
-  @retval EFI_INVALID_PARAMETER RootBridgeHandle is invalid\r
-  @retval EFI_DEVICE_ERROR      Request failed due to hardware error\r
-  @retval EFI_OUT_OF_RESOURCES  Request failed due to lack of resources\r
+  @retval EFI_SUCCESS           The requested parameters were returned.\r
+  @retval EFI_INVALID_PARAMETER RootBridgeHandle is not a valid root bridge handle.\r
+  @retval EFI_DEVICE_ERROR      Programming failed due to a hardware error.\r
+  @retval EFI_OUT_OF_RESOURCES  The request could not be completed due to a lack of resources.\r
 \r
 **/\r
 typedef\r
@@ -306,17 +333,22 @@ EFI_STATUS
 \r
 \r
 /**\r
-  This function is called for all the PCI controllers that the PCI\r
-  bus driver finds. Can be used to Preprogram the controller.\r
-\r
-  @param  This                  The EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_ PROTOCOL instance\r
-  @param  RootBridgeHandle      The PCI Root Bridge handle\r
-  @param  PciBusAddress         Address of the controller on the PCI bus\r
-  @param  Phase                 The Phase during resource allocation\r
-\r
-  @retval EFI_SUCCESS           Success\r
-  @retval EFI_INVALID_PARAMETER RootBridgeHandle is invalid\r
-  @retval EFI_DEVICE_ERROR      Device pre-initialization failed due to hardware error.\r
+  Provides the hooks from the PCI bus driver to every PCI controller (device/function) at various \r
+  stages of the PCI enumeration process that allow the host bridge driver to preinitialize individual \r
+  PCI controllers before enumeration.\r
+\r
+  @param  This                  Pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL instance.\r
+  @param  RootBridgeHandle      The associated PCI root bridge handle.\r
+  @param  PciAddress            The address of the PCI device on the PCI bus.\r
+  @param  Phase                 The phase of the PCI device enumeration.\r
+\r
+  @retval EFI_SUCCESS           The requested parameters were returned.\r
+  @retval EFI_INVALID_PARAMETER RootBridgeHandle is not a valid root bridge handle.\r
+  @retval EFI_INVALID_PARAMETER Phase is not a valid phase that is defined in \r
+                                EFI_PCI_CONTROLLER_RESOURCE_ALLOCATION_PHASE.\r
+  @retval EFI_DEVICE_ERROR      Programming failed due to a hardware error. The PCI enumerator \r
+                                should not enumerate this device, including its child devices if it is \r
+                                a PCI-to-PCI bridge.\r
 \r
 **/\r
 typedef\r
@@ -328,9 +360,9 @@ EFI_STATUS
   IN  EFI_PCI_CONTROLLER_RESOURCE_ALLOCATION_PHASE               Phase\r
   );\r
 \r
-/**\r
-  Provides the basic interfaces to abstract a PCI host bridge resource allocation.\r
-**/\r
+///\r
+/// Provides the basic interfaces to abstract a PCI host bridge resource allocation.\r
+///\r
 struct _EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL {\r
   ///\r
   /// The notification from the PCI bus enumerator that it is about to enter\r