Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <ler...@redhat.com>
---
 OvmfPkg/PciHostBridgeDxe/PciHostBridge.h | 590 ++++++++++++--------
 1 file changed, 372 insertions(+), 218 deletions(-)

diff --git a/OvmfPkg/PciHostBridgeDxe/PciHostBridge.h 
b/OvmfPkg/PciHostBridgeDxe/PciHostBridge.h
index f9ef7d8..59f47e7 100644
--- a/OvmfPkg/PciHostBridgeDxe/PciHostBridge.h
+++ b/OvmfPkg/PciHostBridgeDxe/PciHostBridge.h
@@ -1,16 +1,16 @@
 /** @file
-  The Header file of the Pci Host Bridge Driver 
+  The Header file of the Pci Host Bridge Driver
 
   Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>
-  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
+
+  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.
-
-**/ 
+**/
 
 #ifndef _PCI_HOST_BRIDGE_H_
 #define _PCI_HOST_BRIDGE_H_
@@ -72,68 +72,114 @@ typedef struct {
 //
 
 /**
-   These are the notifications from the PCI bus driver that it is about to 
enter a certain
-   phase of the PCI enumeration process.
-
-   This member function can be used to notify the host bridge driver to 
perform specific actions,
-   including any chipset-specific initialization, so that the chipset is ready 
to enter the next phase.
-   Eight notification points are defined at this time. See belows:
-   EfiPciHostBridgeBeginEnumeration       Resets the host bridge PCI apertures 
and internal data
-                                          structures. The PCI enumerator 
should issue this notification
-                                          before starting a fresh enumeration 
process. Enumeration cannot
-                                          be restarted after sending any other 
notification such as
-                                          EfiPciHostBridgeBeginBusAllocation.
-   EfiPciHostBridgeBeginBusAllocation     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.
-   EfiPciHostBridgeEndBusAllocation       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.
-   EfiPciHostBridgeBeginResourceAllocation
-                                          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.
-   EfiPciHostBridgeAllocateResources      Allocates resources per previously 
submitted requests for all the PCI
-                                          root bridges. These resource 
settings are returned on the next call to
-                                          GetProposedResources(). Before 
calling NotifyPhase() with a Phase of
-                                          EfiPciHostBridgeAllocateResource, 
the PCI bus enumerator is responsible
-                                          for gathering I/O and memory 
requests for
-                                          all the PCI root bridges and 
submitting these requests using
-                                          SubmitResources(). This function 
pads the resource amount
-                                          to suit the root bridge hardware, 
takes care of dependencies between
-                                          the PCI root bridges, and calls the 
Global Coherency Domain (GCD)
-                                          with the allocation request. In the 
case of padding, the allocated range
-                                          could be bigger than what was 
requested.
-   EfiPciHostBridgeSetResources           Programs the host bridge hardware to 
decode previously allocated
-                                          resources (proposed resources) for 
all the PCI root bridges. After the
-                                          hardware is programmed, reassigning 
resources will not be supported.
-                                          The bus settings are not affected.
-   EfiPciHostBridgeFreeResources          Deallocates resources that were 
previously allocated for all the PCI
-                                          root bridges and resets the I/O and 
memory apertures to their initial
-                                          state. The bus settings are not 
affected. If the request to allocate
-                                          resources fails, the PCI enumerator 
can use this notification to
-                                          deallocate previous resources, 
adjust the requests, and retry
-                                          allocation.
-   EfiPciHostBridgeEndResourceAllocation  The resource allocation phase is 
completed. No specific action is
-                                          required here. This notification can 
be used to perform any chipsetspecific
-                                          programming.
-
-   @param[in] This                The instance pointer of 
EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
-   @param[in] Phase               The phase during enumeration
-
-   @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_INVALID_PARAMETER  Invalid phase parameter
-   @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.
-   @retval EFI_SUCCESS            The notification was accepted without any 
errors.
+  These are the notifications from the PCI bus driver that it is about to enter
+  a certain phase of the PCI enumeration process.
 
+  This member function can be used to notify the host bridge driver to perform
+  specific actions, including any chipset-specific initialization, so that the
+  chipset is ready to enter the next phase. Eight notification points are
+  defined at this time. See belows:
+
+  EfiPciHostBridgeBeginEnumeration       Resets the host bridge PCI apertures
+                                         and internal data structures. The PCI
+                                         enumerator should issue this
+                                         notification before starting a fresh
+                                         enumeration process. Enumeration
+                                         cannot be restarted after sending any
+                                         other notification such as
+                                         EfiPciHostBridgeBeginBusAllocation.
+
+  EfiPciHostBridgeBeginBusAllocation     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.
+
+  EfiPciHostBridgeEndBusAllocation       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.
+
+  EfiPciHostBridgeBeginResourceAllocation
+                                         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.
+
+  EfiPciHostBridgeAllocateResources      Allocates resources per previously
+                                         submitted requests for all the PCI
+                                         root bridges. These resource settings
+                                         are returned on the next call to
+                                         GetProposedResources(). Before calling
+                                         NotifyPhase() with a Phase of
+                                         EfiPciHostBridgeAllocateResource, the
+                                         PCI bus enumerator is responsible for
+                                         gathering I/O and memory requests for
+                                         all the PCI root bridges and
+                                         submitting these requests using
+                                         SubmitResources(). This function pads
+                                         the resource amount to suit the root
+                                         bridge hardware, takes care of
+                                         dependencies between the PCI root
+                                         bridges, and calls the Global
+                                         Coherency Domain (GCD) with the
+                                         allocation request. In the case of
+                                         padding, the allocated range could be
+                                         bigger than what was requested.
+
+  EfiPciHostBridgeSetResources           Programs the host bridge hardware to
+                                         decode previously allocated resources
+                                         (proposed resources) for all the PCI
+                                         root bridges. After the hardware is
+                                         programmed, reassigning resources will
+                                         not be supported. The bus settings are
+                                         not affected.
+
+  EfiPciHostBridgeFreeResources          Deallocates resources that were
+                                         previously allocated for all the PCI
+                                         root bridges and resets the I/O and
+                                         memory apertures to their initial
+                                         state. The bus settings are not
+                                         affected. If the request to allocate
+                                         resources fails, the PCI enumerator
+                                         can use this notification to
+                                         deallocate previous resources, adjust
+                                         the requests, and retry allocation.
+
+  EfiPciHostBridgeEndResourceAllocation  The resource allocation phase is
+                                         completed. No specific action is
+                                         required here. This notification can
+                                         be used to perform any chipsetspecific
+                                         programming.
+
+  @param[in] This                The instance pointer of
+                               EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
+
+  @param[in] Phase               The phase during enumeration
+
+  @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_INVALID_PARAMETER  Invalid phase parameter
+
+  @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.
+
+  @retval EFI_SUCCESS            The notification was accepted without any
+                                 errors.
 **/
 EFI_STATUS
 EFIAPI
@@ -143,26 +189,38 @@ NotifyPhase(
   );
 
 /**
-   Return the device handle of the next PCI root bridge that is associated 
with this Host Bridge.
+  Return the device handle of the next PCI root bridge that is associated with
+  this Host Bridge.
 
-   This function is called multiple times to retrieve the device handles of 
all the PCI root bridges that
-   are associated with this PCI host bridge. Each PCI host bridge is 
associated with one or more PCI
-   root bridges. On each call, the handle that was returned by the previous 
call is passed into the
-   interface, and on output the interface returns the device handle of the 
next PCI root bridge. The
-   caller can use the handle to obtain the instance of the 
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL
-   for that root bridge. When there are no more PCI root bridges to report, 
the interface returns
-   EFI_NOT_FOUND. A PCI enumerator must enumerate the PCI root bridges in the 
order that they
-   are returned by this function.
-   For D945 implementation, there is only one root bridge in PCI host bridge.
+  This function is called multiple times to retrieve the device handles of all
+  the PCI root bridges that are associated with this PCI host bridge. Each PCI
+  host bridge is associated with one or more PCI root bridges. On each call,
+  the handle that was returned by the previous call is passed into the
+  interface, and on output the interface returns the device handle of the next
+  PCI root bridge. The caller can use the handle to obtain the instance of the
+  EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL for that root bridge. When there are no more
+  PCI root bridges to report, the interface returns EFI_NOT_FOUND. A PCI
+  enumerator must enumerate the PCI root bridges in the order that they are
+  returned by this function.
 
-   @param[in]       This              The instance pointer of 
EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
-   @param[in, out]  RootBridgeHandle  Returns the device handle of the next 
PCI root bridge.
-   
-   @retval EFI_SUCCESS            If parameter RootBridgeHandle = NULL, then 
return the first Rootbridge handle of the
-                                  specific Host bridge and return EFI_SUCCESS. 
-   @retval EFI_NOT_FOUND          Can not find the any more root bridge in 
specific host bridge.
-   @retval EFI_INVALID_PARAMETER  RootBridgeHandle is not an EFI_HANDLE that 
was
-                                  returned on a previous call to 
GetNextRootBridge().
+  For D945 implementation, there is only one root bridge in PCI host bridge.
+
+  @param[in]       This              The instance pointer of
+                               EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
+
+  @param[in, out]  RootBridgeHandle  Returns the device handle of the next PCI
+                                     root bridge.
+
+  @retval EFI_SUCCESS            If parameter RootBridgeHandle = NULL, then
+                                 return the first Rootbridge handle of the
+                                 specific Host bridge and return EFI_SUCCESS.
+
+  @retval EFI_NOT_FOUND          Can not find the any more root bridge in
+                                 specific host bridge.
+
+  @retval EFI_INVALID_PARAMETER  RootBridgeHandle is not an EFI_HANDLE that was
+                                 returned on a previous call to
+                                 GetNextRootBridge().
 **/
 EFI_STATUS
 EFIAPI
@@ -170,45 +228,65 @@ GetNextRootBridge(
   IN       EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *This,
   IN OUT   EFI_HANDLE                                       *RootBridgeHandle
   );
-  
+
 /**
-   Returns the allocation attributes of a PCI root bridge.
-
-   The function returns the allocation attributes of a specific PCI root 
bridge. The attributes can vary
-   from one PCI root bridge to another. These attributes are different from 
the decode-related
-   attributes that are returned by the 
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.GetAttributes() member function. The
-   RootBridgeHandle parameter is used to specify the instance of the PCI root 
bridge. The device
-   handles of all the root bridges that are associated with this host bridge 
must be obtained by calling
-   GetNextRootBridge(). The attributes are static in the sense that they do 
not change during or
-   after the enumeration process. The hardware may provide mechanisms to 
change the attributes on
-   the fly, but such changes must be completed before 
EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL is 
-   installed. The permitted values of 
EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_ATTRIBUTES are defined in
-   "Related Definitions" below. The caller uses these attributes to combine 
multiple resource requests.
-   For example, if the flag EFI_PCI_HOST_BRIDGE_COMBINE_MEM_PMEM is set, the 
PCI bus enumerator needs to 
-   include requests for the prefetchable memory in the nonprefetchable memory 
pool and not request any 
-   prefetchable memory.
-      Attribute                                 Description
-   ------------------------------------         
----------------------------------------------------------------------
-   EFI_PCI_HOST_BRIDGE_COMBINE_MEM_PMEM         If this bit is set, then the 
PCI root bridge does not support separate
-                                                windows for nonprefetchable 
and prefetchable memory. A PCI bus
-                                                driver needs to include 
requests for prefetchable memory in the
-                                                nonprefetchable memory pool.
-
-   EFI_PCI_HOST_BRIDGE_MEM64_DECODE             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 a 64-bit memory 
address in the corresponding 32-bit
-                                                memory pool.
-
-   @param[in]   This               The instance pointer of 
EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
-   @param[in]   RootBridgeHandle   The device handle of the PCI root bridge in 
which the caller is interested. Type
-                                   EFI_HANDLE is defined in 
InstallProtocolInterface() in the UEFI 2.0 Specification.
-   @param[out]  Attributes         The pointer to attribte of root bridge, it 
is output parameter
-   
-   @retval EFI_INVALID_PARAMETER   Attribute pointer is NULL
-   @retval EFI_INVALID_PARAMETER   RootBridgehandle is invalid.
-   @retval EFI_SUCCESS             Success to get attribute of interested root 
bridge.
-
-**/  
+  Returns the allocation attributes of a PCI root bridge.
+
+  The function returns the allocation attributes of a specific PCI root bridge.
+  The attributes can vary from one PCI root bridge to another. These attributes
+  are different from the decode-related attributes that are returned by the
+  EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.GetAttributes() member function. The
+  RootBridgeHandle parameter is used to specify the instance of the PCI root
+  bridge. The device handles of all the root bridges that are associated with
+  this host bridge must be obtained by calling GetNextRootBridge(). The
+  attributes are static in the sense that they do not change during or after
+  the enumeration process. The hardware may provide mechanisms to change the
+  attributes on the fly, but such changes must be completed before
+  EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL is installed. The permitted
+  values of EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_ATTRIBUTES are defined in
+  "Related Definitions" below. The caller uses these attributes to combine
+  multiple resource requests.
+
+  For example, if the flag EFI_PCI_HOST_BRIDGE_COMBINE_MEM_PMEM is set, the PCI
+  bus enumerator needs to include requests for the prefetchable memory in the
+  nonprefetchable memory pool and not request any prefetchable memory.
+
+  Attribute                             Description
+  ------------------------------------  ---------------------------------------
+  EFI_PCI_HOST_BRIDGE_COMBINE_MEM_PMEM  If this bit is set, then the PCI root
+                                        bridge does not support separate
+                                        windows for nonprefetchable and
+                                        prefetchable memory. A PCI bus driver
+                                        needs to include requests for
+                                        prefetchable memory in the
+                                        nonprefetchable memory pool.
+
+  EFI_PCI_HOST_BRIDGE_MEM64_DECODE      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 a
+                                        64-bit memory address in the
+                                        corresponding 32-bit memory pool.
+
+  @param[in]   This               The instance pointer of
+                               EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
+
+  @param[in]   RootBridgeHandle   The device handle of the PCI root bridge in
+                                  which the caller is interested. Type
+                                  EFI_HANDLE is defined in
+                                  InstallProtocolInterface() in the UEFI 2.0
+                                  Specification.
+
+  @param[out]  Attributes         The pointer to attribte of root bridge, it is
+                                  output parameter
+
+  @retval EFI_INVALID_PARAMETER   Attribute pointer is NULL
+
+  @retval EFI_INVALID_PARAMETER   RootBridgehandle is invalid.
+
+  @retval EFI_SUCCESS             Success to get attribute of interested root
+                                  bridge.
+**/
 EFI_STATUS
 EFIAPI
 GetAttributes(
@@ -216,21 +294,28 @@ GetAttributes(
   IN  EFI_HANDLE                                       RootBridgeHandle,
   OUT UINT64                                           *Attributes
   );
-  
+
 /**
-   Sets up the specified PCI root bridge for the bus enumeration process.
+  Sets up the specified PCI root bridge for the bus enumeration process.
 
-   This member function sets up the root bridge for bus enumeration and 
returns the PCI bus range
-   over which the search should be performed in ACPI 2.0 resource descriptor 
format.
+  This member function sets up the root bridge for bus enumeration and returns
+  the PCI bus range over which the search should be performed in ACPI 2.0
+  resource descriptor format.
 
-   @param[in]   This              The EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_ 
PROTOCOL instance.
-   @param[in]   RootBridgeHandle  The PCI Root Bridge to be set up.
-   @param[out]  Configuration     Pointer to the pointer to the PCI bus 
resource descriptor.
-   
-   @retval EFI_INVALID_PARAMETER Invalid Root bridge's handle
-   @retval EFI_OUT_OF_RESOURCES  Fail to allocate ACPI resource descriptor tag.
-   @retval EFI_SUCCESS           Sucess to allocate ACPI resource descriptor.
+  @param[in]   This              The
+                               EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
+                                 instance.
 
+  @param[in]   RootBridgeHandle  The PCI Root Bridge to be set up.
+
+  @param[out]  Configuration     Pointer to the pointer to the PCI bus resource
+                                 descriptor.
+
+  @retval EFI_INVALID_PARAMETER Invalid Root bridge's handle
+
+  @retval EFI_OUT_OF_RESOURCES  Fail to allocate ACPI resource descriptor tag.
+
+  @retval EFI_SUCCESS           Sucess to allocate ACPI resource descriptor.
 **/
 EFI_STATUS
 EFIAPI
@@ -239,30 +324,52 @@ StartBusEnumeration(
   IN  EFI_HANDLE                                       RootBridgeHandle,
   OUT VOID                                             **Configuration
   );
-  
+
 /**
-   Programs the PCI root bridge hardware so that it decodes the specified PCI 
bus range.
-
-   This member function programs the specified PCI root bridge to decode the 
bus range that is
-   specified by the input parameter Configuration.
-   The bus range information is specified in terms of the ACPI 2.0 resource 
descriptor format.
-
-   @param[in] This              The EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_ 
PROTOCOL 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_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 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 
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.
-   @retval EFI_SUCCESS            The bus range for the PCI root bridge was 
programmed.
+  Programs the PCI root bridge hardware so that it decodes the specified PCI
+  bus range.
 
+  This member function programs the specified PCI root bridge to decode the bus
+  range that is specified by the input parameter Configuration.
+  The bus range information is specified in terms of the ACPI 2.0 resource
+  descriptor format.
+
+  @param[in] This              The
+                               EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
+                               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_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 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 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.
+
+  @retval EFI_SUCCESS            The bus range for the PCI root bridge was
+                                 programmed.
 **/
 EFI_STATUS
 EFIAPI
@@ -271,31 +378,52 @@ SetBusNumbers(
   IN EFI_HANDLE                                       RootBridgeHandle,
   IN VOID                                             *Configuration
   );
-  
+
 /**
-   Submits the I/O and memory resource requirements for the specified PCI root 
bridge.
-
-   This function is used to submit all the I/O and memory resources that are 
required by the specified
-   PCI root bridge. The input parameter Configuration is used to specify the 
following:
-   - The various types of resources that are required
-   - The associated lengths in terms of ACPI 2.0 resource descriptor format
-
-   @param[in] This              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 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 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 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.
+  Submits the I/O and memory resource requirements for the specified PCI root
+  bridge.
 
+  This function is used to submit all the I/O and memory resources that are
+  required by the specified PCI root bridge. The input parameter Configuration
+  is used to specify the following:
+  - The various types of resources that are required
+  - The associated lengths in terms of ACPI 2.0 resource descriptor format
+
+  @param[in] This              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 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 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 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.
 **/
 EFI_STATUS
 EFIAPI
@@ -304,26 +432,38 @@ SubmitResources(
   IN EFI_HANDLE                                       RootBridgeHandle,
   IN VOID                                             *Configuration
   );
-  
+
 /**
    Returns the proposed resource settings for the specified PCI root bridge.
 
-   This member function returns the proposed resource settings for the 
specified PCI root bridge. The
-   proposed resource settings are prepared when NotifyPhase() is called with a 
Phase of
-   EfiPciHostBridgeAllocateResources. The output parameter Configuration
-   specifies the following:
-   - The various types of resources, excluding bus resources, that are 
allocated
+   This member function returns the proposed resource settings for the
+   specified PCI root bridge. The proposed resource settings are prepared when
+   NotifyPhase() is called with a Phase of EfiPciHostBridgeAllocateResources.
+   The output parameter Configuration specifies the following:
+   - The various types of resources, excluding bus resources, that are
+     allocated
    - The associated lengths in terms of ACPI 2.0 resource descriptor format
 
-   @param[in]  This              Pointer to the 
EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL instance.
-   @param[in]  RootBridgeHandle  The PCI root bridge handle. Type EFI_HANDLE 
is defined in InstallProtocolInterface() in the UEFI 2.0 Specification.
-   @param[out] Configuration     The pointer to the pointer to the PCI I/O and 
memory resource descriptor.
-   
+   @param[in]  This              Pointer to the
+                               EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
+                                 instance.
+
+   @param[in]  RootBridgeHandle  The PCI root bridge handle. Type EFI_HANDLE is
+                                 defined in InstallProtocolInterface() in the
+                                 UEFI 2.0 Specification.
+
+   @param[out] 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_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.
 
+   @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a
+                                  lack of resources.
 **/
 EFI_STATUS
 EFIAPI
@@ -334,31 +474,46 @@ GetProposedResources(
   );
 
 /**
-   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.
-
-   This function is called during the PCI enumeration process. No specific 
action is expected from this
-   member function. It allows 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. Type 
EFI_HANDLE is defined in
-                            InstallProtocolInterface() in the UEFI 2.0 
Specification.
-   @param PciAddress        The address of the PCI device on the PCI bus. This 
address can be passed to the
-                            EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL member functions 
to access the PCI
-                            configuration space of the device. See Table 12-1 
in the UEFI 2.0 Specification for
-                            the definition of 
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_PCI_ADDRESS.
-   @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.
+  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.
 
+  This function is called during the PCI enumeration process. No specific
+  action is expected from this member function. It allows 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. Type
+                           EFI_HANDLE is defined in InstallProtocolInterface()
+                           in the UEFI 2.0 Specification.
+
+  @param PciAddress        The address of the PCI device on the PCI bus. This
+                           address can be passed to the
+                           EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL member functions to
+                           access the PCI configuration space of the device.
+                           See Table 12-1 in the UEFI 2.0 Specification for the
+                           definition of
+                           EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_PCI_ADDRESS.
+
+  @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.
 **/
 EFI_STATUS
 EFIAPI
@@ -371,7 +526,7 @@ PreprocessController (
 
 
 //
-// Define resource status constant 
+// Define resource status constant
 //
 #define EFI_RESOURCE_NONEXISTENT   0xFFFFFFFFFFFFFFFFULL
 #define EFI_RESOURCE_LESS          0xFFFFFFFFFFFFFFFEULL
@@ -482,7 +637,6 @@ typedef struct {
   @param ResAperture      ResourceAperture for host bridge
 
   @retval EFI_SUCCESS Success to initialize the Pci Root Bridge.
-
 **/
 EFI_STATUS
 RootBridgeConstructor (
-- 
1.8.3.1



------------------------------------------------------------------------------
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to