Cc: Ruiyu Ni <ruiyu...@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <ler...@redhat.com>
Regression-tested-by: Gabriel Somlo <so...@cmu.edu>
Reviewed-by: Ruiyu Ni <ruiyu...@intel.com>
---

Notes:
    v3:
    - rewrap the driver under PcAtChipsetPkg

 PcAtChipsetPkg/PciHostBridgeDxe/PciRootBridgeIo.c | 1841 ++++++++++++--------
 1 file changed, 1133 insertions(+), 708 deletions(-)

diff --git a/PcAtChipsetPkg/PciHostBridgeDxe/PciRootBridgeIo.c 
b/PcAtChipsetPkg/PciHostBridgeDxe/PciRootBridgeIo.c
index 7986550..a386130 100644
--- a/PcAtChipsetPkg/PciHostBridgeDxe/PciRootBridgeIo.c
+++ b/PcAtChipsetPkg/PciHostBridgeDxe/PciRootBridgeIo.c
@@ -1,16 +1,16 @@
 /** @file
   PCI Root Bridge Io Protocol implementation
 
-Copyright (c) 2008 - 2012, 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
-http://opensource.org/licenses/bsd-license.php
+  Copyright (c) 2008 - 2012, Intel Corporation. All rights reserved.<BR>
 
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+  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.
+**/
 
 #include "PciHostBridge.h"
 #include "IoFifo.h"
@@ -35,33 +35,48 @@ RESOURCE_CONFIGURATION Configuration = {
 //
 
 /**
-   Polls an address in memory mapped I/O space until an exit condition is met, 
or 
-   a timeout occurs. 
-
-   This function provides a standard way to poll a PCI memory location. A PCI 
memory read
-   operation is performed at the PCI memory address specified by Address for 
the width specified
-   by Width. The result of this PCI memory read operation is stored in Result. 
This PCI memory
-   read operation is repeated until either a timeout of Delay 100 ns units has 
expired, or (Result &
-   Mask) is equal to Value.
-
-   @param[in]   This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in]   Width     Signifies the width of the memory operations.
-   @param[in]   Address   The base address of the memory operations. The 
caller is
-                          responsible for aligning Address if required.
-   @param[in]   Mask      Mask used for the polling criteria. Bytes above 
Width in Mask
-                          are ignored. The bits in the bytes below Width which 
are zero in
-                          Mask are ignored when polling the memory address.
-   @param[in]   Value     The comparison value used for the polling exit 
criteria.
-   @param[in]   Delay     The number of 100 ns units to poll. Note that timer 
available may
-                          be of poorer granularity.
-   @param[out]  Result    Pointer to the last value read from the memory 
location.
-   
-   @retval EFI_SUCCESS            The last data returned from the access 
matched the poll exit criteria.
-   @retval EFI_INVALID_PARAMETER  Width is invalid.
-   @retval EFI_INVALID_PARAMETER  Result is NULL.
-   @retval EFI_TIMEOUT            Delay expired before a match occurred.
-   @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a 
lack of resources.
+  Polls an address in memory mapped I/O space until an exit condition is met,
+  or a timeout occurs.
 
+  This function provides a standard way to poll a PCI memory location. A PCI
+  memory read operation is performed at the PCI memory address specified by
+  Address for the width specified by Width. The result of this PCI memory read
+  operation is stored in Result. This PCI memory read operation is repeated
+  until either a timeout of Delay 100 ns units has expired, or (Result & Mask)
+  is equal to Value.
+
+  @param[in]   This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in]   Width     Signifies the width of the memory operations.
+
+  @param[in]   Address   The base address of the memory operations. The caller
+                         is responsible for aligning Address if required.
+
+  @param[in]   Mask      Mask used for the polling criteria. Bytes above Width
+                         in Mask are ignored. The bits in the bytes below Width
+                         which are zero in Mask are ignored when polling the
+                         memory address.
+
+  @param[in]   Value     The comparison value used for the polling exit
+                         criteria.
+
+  @param[in]   Delay     The number of 100 ns units to poll. Note that timer
+                         available may be of poorer granularity.
+
+  @param[out]  Result    Pointer to the last value read from the memory
+                         location.
+
+  @retval EFI_SUCCESS            The last data returned from the access matched
+                                 the poll exit criteria.
+
+  @retval EFI_INVALID_PARAMETER  Width is invalid.
+
+  @retval EFI_INVALID_PARAMETER  Result is NULL.
+
+  @retval EFI_TIMEOUT            Delay expired before a match occurred.
+
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a
+                                 lack of resources.
 **/
 EFI_STATUS
 EFIAPI
@@ -74,35 +89,49 @@ RootBridgeIoPollMem (
   IN  UINT64                                 Delay,
   OUT UINT64                                 *Result
   );
-  
+
 /**
-   Reads from the I/O space of a PCI Root Bridge. Returns when either the 
polling exit criteria is
-   satisfied or after a defined duration.
-
-   This function provides a standard way to poll a PCI I/O location. A PCI I/O 
read operation is
-   performed at the PCI I/O address specified by Address for the width 
specified by Width.
-   The result of this PCI I/O read operation is stored in Result. This PCI I/O 
read operation is
-   repeated until either a timeout of Delay 100 ns units has expired, or 
(Result & Mask) is equal
-   to Value.
-
-   @param[in] This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in] Width     Signifies the width of the I/O operations.
-   @param[in] Address   The base address of the I/O operations. The caller is 
responsible
-                        for aligning Address if required.
-   @param[in] Mask      Mask used for the polling criteria. Bytes above Width 
in Mask
-                        are ignored. The bits in the bytes below Width which 
are zero in
-                        Mask are ignored when polling the I/O address.
-   @param[in] Value     The comparison value used for the polling exit 
criteria.
-   @param[in] Delay     The number of 100 ns units to poll. Note that timer 
available may
-                        be of poorer granularity.
-   @param[out] Result   Pointer to the last value read from the memory 
location.
-   
-   @retval EFI_SUCCESS            The last data returned from the access 
matched the poll exit criteria.
-   @retval EFI_INVALID_PARAMETER  Width is invalid.
-   @retval EFI_INVALID_PARAMETER  Result is NULL.
-   @retval EFI_TIMEOUT            Delay expired before a match occurred.
-   @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a 
lack of resources.
+  Reads from the I/O space of a PCI Root Bridge. Returns when either the
+  polling exit criteria is satisfied or after a defined duration.
 
+  This function provides a standard way to poll a PCI I/O location. A PCI I/O
+  read operation is performed at the PCI I/O address specified by Address for
+  the width specified by Width. The result of this PCI I/O read operation is
+  stored in Result. This PCI I/O read operation is repeated until either a
+  timeout of Delay 100 ns units has expired, or (Result & Mask) is equal to
+  Value.
+
+  @param[in] This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in] Width     Signifies the width of the I/O operations.
+
+  @param[in] Address   The base address of the I/O operations. The caller is
+                       responsible for aligning Address if required.
+
+  @param[in] Mask      Mask used for the polling criteria. Bytes above Width in
+                       Mask are ignored. The bits in the bytes below Width
+                       which are zero in Mask are ignored when polling the I/O
+                       address.
+
+  @param[in] Value     The comparison value used for the polling exit criteria.
+
+
+  @param[in] Delay     The number of 100 ns units to poll. Note that timer
+                       available may be of poorer granularity.
+
+  @param[out] Result   Pointer to the last value read from the memory location.
+
+  @retval EFI_SUCCESS            The last data returned from the access matched
+                                 the poll exit criteria.
+
+  @retval EFI_INVALID_PARAMETER  Width is invalid.
+
+  @retval EFI_INVALID_PARAMETER  Result is NULL.
+
+  @retval EFI_TIMEOUT            Delay expired before a match occurred.
+
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a
+                                 lack of resources.
 **/
 EFI_STATUS
 EFIAPI
@@ -115,29 +144,40 @@ RootBridgeIoPollIo (
   IN  UINT64                                 Delay,
   OUT UINT64                                 *Result
   );
-  
+
 /**
-   Enables a PCI driver to access PCI controller registers in the PCI root 
bridge memory space.
-
-   The Mem.Read(), and Mem.Write() functions enable a driver to access PCI 
controller
-   registers in the PCI root bridge memory space.
-   The memory operations are carried out exactly as requested. The caller is 
responsible for satisfying
-   any alignment and memory width restrictions that a PCI Root Bridge on a 
platform might require.
-
-   @param[in]   This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in]   Width     Signifies the width of the memory operation.
-   @param[in]   Address   The base address of the memory operation. The caller 
is
-                          responsible for aligning the Address if required.
-   @param[in]   Count     The number of memory operations to perform. Bytes 
moved is
-                          Width size * Count, starting at Address.
-   @param[out]  Buffer    For read operations, the destination buffer to store 
the results. For
-                          write operations, the source buffer to write data 
from.
-   
-   @retval EFI_SUCCESS            The data was read from or written to the PCI 
root bridge.
-   @retval EFI_INVALID_PARAMETER  Width is invalid for this PCI root bridge.
-   @retval EFI_INVALID_PARAMETER  Buffer is NULL.
-   @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a 
lack of resources.
+  Enables a PCI driver to access PCI controller registers in the PCI root
+  bridge memory space.
 
+  The Mem.Read(), and Mem.Write() functions enable a driver to access PCI
+  controller registers in the PCI root bridge memory space.
+  The memory operations are carried out exactly as requested. The caller is
+  responsible for satisfying any alignment and memory width restrictions that a
+  PCI Root Bridge on a platform might require.
+
+  @param[in]   This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in]   Width     Signifies the width of the memory operation.
+
+  @param[in]   Address   The base address of the memory operation. The caller
+                         is responsible for aligning the Address if required.
+
+  @param[in]   Count     The number of memory operations to perform. Bytes
+                         moved is Width size * Count, starting at Address.
+
+  @param[out]  Buffer    For read operations, the destination buffer to store
+                         the results. For write operations, the source buffer
+                         to write data from.
+
+  @retval EFI_SUCCESS            The data was read from or written to the PCI
+                                 root bridge.
+
+  @retval EFI_INVALID_PARAMETER  Width is invalid for this PCI root bridge.
+
+  @retval EFI_INVALID_PARAMETER  Buffer is NULL.
+
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a
+                                 lack of resources.
 **/
 EFI_STATUS
 EFIAPI
@@ -150,26 +190,38 @@ RootBridgeIoMemRead (
   );
 
 /**
-   Enables a PCI driver to access PCI controller registers in the PCI root 
bridge memory space.
-
-   The Mem.Read(), and Mem.Write() functions enable a driver to access PCI 
controller
-   registers in the PCI root bridge memory space.
-   The memory operations are carried out exactly as requested. The caller is 
responsible for satisfying
-   any alignment and memory width restrictions that a PCI Root Bridge on a 
platform might require.
-
-   @param[in]   This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in]   Width     Signifies the width of the memory operation.
-   @param[in]   Address   The base address of the memory operation. The caller 
is
-                          responsible for aligning the Address if required.
-   @param[in]   Count     The number of memory operations to perform. Bytes 
moved is
-                          Width size * Count, starting at Address.
-   @param[in]   Buffer    For read operations, the destination buffer to store 
the results. For
-                          write operations, the source buffer to write data 
from.
-   
-   @retval EFI_SUCCESS            The data was read from or written to the PCI 
root bridge.
-   @retval EFI_INVALID_PARAMETER  Width is invalid for this PCI root bridge.
-   @retval EFI_INVALID_PARAMETER  Buffer is NULL.
-   @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a 
lack of resources.
+  Enables a PCI driver to access PCI controller registers in the PCI root
+  bridge memory space.
+
+  The Mem.Read(), and Mem.Write() functions enable a driver to access PCI
+  controller registers in the PCI root bridge memory space.
+  The memory operations are carried out exactly as requested. The caller is
+  responsible for satisfying any alignment and memory width restrictions that a
+  PCI Root Bridge on a platform might require.
+
+  @param[in]   This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in]   Width     Signifies the width of the memory operation.
+
+  @param[in]   Address   The base address of the memory operation. The caller
+                         is responsible for aligning the Address if required.
+
+  @param[in]   Count     The number of memory operations to perform. Bytes
+                         moved is Width size * Count, starting at Address.
+
+  @param[in]   Buffer    For read operations, the destination buffer to store
+                         the results. For write operations, the source buffer
+                         to write data from.
+
+  @retval EFI_SUCCESS            The data was read from or written to the PCI
+                                 root bridge.
+
+  @retval EFI_INVALID_PARAMETER  Width is invalid for this PCI root bridge.
+
+  @retval EFI_INVALID_PARAMETER  Buffer is NULL.
+
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a
+                                 lack of resources.
 **/
 EFI_STATUS
 EFIAPI
@@ -182,22 +234,33 @@ RootBridgeIoMemWrite (
   );
 
 /**
-   Enables a PCI driver to access PCI controller registers in the PCI root 
bridge I/O space.
-
-   @param[in]   This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in]   Width       Signifies the width of the memory operations.
-   @param[in]   UserAddress The base address of the I/O operation. The caller 
is responsible for
-                            aligning the Address if required.
-   @param[in]   Count       The number of I/O operations to perform. Bytes 
moved is Width
-                            size * Count, starting at Address.
-   @param[out]  UserBuffer  For read operations, the destination buffer to 
store the results. For
-                            write operations, the source buffer to write data 
from.
-   
-   @retval EFI_SUCCESS              The data was read from or written to the 
PCI root bridge.
-   @retval EFI_INVALID_PARAMETER    Width is invalid for this PCI root bridge.
-   @retval EFI_INVALID_PARAMETER    Buffer is NULL.
-   @retval EFI_OUT_OF_RESOURCES     The request could not be completed due to 
a lack of resources.
+  Enables a PCI driver to access PCI controller registers in the PCI root
+  bridge I/O space.
 
+  @param[in]   This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in]   Width       Signifies the width of the memory operations.
+
+  @param[in]   UserAddress The base address of the I/O operation. The caller is
+                           responsible for aligning the Address if required.
+
+  @param[in]   Count       The number of I/O operations to perform. Bytes moved
+                           is Width size * Count, starting at Address.
+
+  @param[out]  UserBuffer  For read operations, the destination buffer to store
+                           the results. For write operations, the source buffer
+                           to write data from.
+
+
+  @retval EFI_SUCCESS              The data was read from or written to the PCI
+                                   root bridge.
+
+  @retval EFI_INVALID_PARAMETER    Width is invalid for this PCI root bridge.
+
+  @retval EFI_INVALID_PARAMETER    Buffer is NULL.
+
+  @retval EFI_OUT_OF_RESOURCES     The request could not be completed due to a
+                                   lack of resources.
 **/
 EFI_STATUS
 EFIAPI
@@ -210,22 +273,33 @@ RootBridgeIoIoRead (
   );
 
 /**
-   Enables a PCI driver to access PCI controller registers in the PCI root 
bridge I/O space.
-
-   @param[in]   This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in]   Width       Signifies the width of the memory operations.
-   @param[in]   UserAddress The base address of the I/O operation. The caller 
is responsible for
-                            aligning the Address if required.
-   @param[in]   Count       The number of I/O operations to perform. Bytes 
moved is Width
-                            size * Count, starting at Address.
-   @param[in]   UserBuffer  For read operations, the destination buffer to 
store the results. For
-                            write operations, the source buffer to write data 
from.
-   
-   @retval EFI_SUCCESS              The data was read from or written to the 
PCI root bridge.
-   @retval EFI_INVALID_PARAMETER    Width is invalid for this PCI root bridge.
-   @retval EFI_INVALID_PARAMETER    Buffer is NULL.
-   @retval EFI_OUT_OF_RESOURCES     The request could not be completed due to 
a lack of resources.
+  Enables a PCI driver to access PCI controller registers in the PCI root
+  bridge I/O space.
 
+  @param[in]   This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in]   Width       Signifies the width of the memory operations.
+
+  @param[in]   UserAddress The base address of the I/O operation. The caller is
+                           responsible for aligning the Address if required.
+
+  @param[in]   Count       The number of I/O operations to perform. Bytes moved
+                           is Width size * Count, starting at Address.
+
+  @param[in]   UserBuffer  For read operations, the destination buffer to store
+                           the results. For write operations, the source buffer
+                           to write data from.
+
+
+  @retval EFI_SUCCESS              The data was read from or written to the PCI
+                                   root bridge.
+
+  @retval EFI_INVALID_PARAMETER    Width is invalid for this PCI root bridge.
+
+  @retval EFI_INVALID_PARAMETER    Buffer is NULL.
+
+  @retval EFI_OUT_OF_RESOURCES     The request could not be completed due to a
+                                   lack of resources.
 **/
 EFI_STATUS
 EFIAPI
@@ -238,28 +312,42 @@ RootBridgeIoIoWrite (
   );
 
 /**
-   Enables a PCI driver to copy one region of PCI root bridge memory space to 
another region of PCI
-   root bridge memory space.
-
-   The CopyMem() function enables a PCI driver to copy one region of PCI root 
bridge memory
-   space to another region of PCI root bridge memory space. This is especially 
useful for video scroll
-   operation on a memory mapped video buffer.
-   The memory operations are carried out exactly as requested. The caller is 
responsible for satisfying
-   any alignment and memory width restrictions that a PCI root bridge on a 
platform might require.
-
-   @param[in] This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL 
instance.
-   @param[in] Width       Signifies the width of the memory operations.
-   @param[in] DestAddress The destination address of the memory operation. The 
caller is
-                          responsible for aligning the DestAddress if required.
-   @param[in] SrcAddress  The source address of the memory operation. The 
caller is
-                          responsible for aligning the SrcAddress if required.
-   @param[in] Count       The number of memory operations to perform. Bytes 
moved is
-                          Width size * Count, starting at DestAddress and 
SrcAddress.
-   
-   @retval  EFI_SUCCESS             The data was copied from one memory region 
to another memory region.
-   @retval  EFI_INVALID_PARAMETER   Width is invalid for this PCI root bridge.
-   @retval  EFI_OUT_OF_RESOURCES    The request could not be completed due to 
a lack of resources.
+  Enables a PCI driver to copy one region of PCI root bridge memory space to
+  another region of PCI root bridge memory space.
 
+  The CopyMem() function enables a PCI driver to copy one region of PCI root
+  bridge memory space to another region of PCI root bridge memory space. This
+  is especially useful for video scroll operation on a memory mapped video
+  buffer.
+  The memory operations are carried out exactly as requested. The caller is
+  responsible for satisfying any alignment and memory width restrictions that a
+  PCI root bridge on a platform might require.
+
+  @param[in] This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL
+                         instance.
+
+  @param[in] Width       Signifies the width of the memory operations.
+
+  @param[in] DestAddress The destination address of the memory operation. The
+                         caller is responsible for aligning the DestAddress if
+                         required.
+
+  @param[in] SrcAddress  The source address of the memory operation. The caller
+                         is responsible for aligning the SrcAddress if
+                         required.
+
+  @param[in] Count       The number of memory operations to perform. Bytes
+                         moved is Width size * Count, starting at DestAddress
+                         and SrcAddress.
+
+
+  @retval  EFI_SUCCESS             The data was copied from one memory region
+                                   to another memory region.
+
+  @retval  EFI_INVALID_PARAMETER   Width is invalid for this PCI root bridge.
+
+  @retval  EFI_OUT_OF_RESOURCES    The request could not be completed due to a
+                                   lack of resources.
 **/
 EFI_STATUS
 EFIAPI
@@ -272,27 +360,40 @@ RootBridgeIoCopyMem (
   );
 
 /**
-   Enables a PCI driver to access PCI controller registers in a PCI root 
bridge's configuration space.
-
-   The Pci.Read() and Pci.Write() functions enable a driver to access PCI 
configuration
-   registers for a PCI controller.
-   The PCI Configuration operations are carried out exactly as requested. The 
caller is responsible for
-   any alignment and PCI configuration width issues that a PCI Root Bridge on 
a platform might
-   require.
-
-   @param[in]   This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in]   Width     Signifies the width of the memory operations.
-   @param[in]   Address   The address within the PCI configuration space for 
the PCI controller.
-   @param[in]   Count     The number of PCI configuration operations to 
perform. Bytes
-                          moved is Width size * Count, starting at Address.
-   @param[out]  Buffer    For read operations, the destination buffer to store 
the results. For
-                          write operations, the source buffer to write data 
from.
-   
-   @retval EFI_SUCCESS            The data was read from or written to the PCI 
root bridge.
-   @retval EFI_INVALID_PARAMETER  Width is invalid for this PCI root bridge.
-   @retval EFI_INVALID_PARAMETER  Buffer is NULL.
-   @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a 
lack of resources.
+  Enables a PCI driver to access PCI controller registers in a PCI root
+  bridge's configuration space.
 
+  The Pci.Read() and Pci.Write() functions enable a driver to access PCI
+  configuration registers for a PCI controller.
+  The PCI Configuration operations are carried out exactly as requested. The
+  caller is responsible for any alignment and PCI configuration width issues
+  that a PCI Root Bridge on a platform might require.
+
+  @param[in]   This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in]   Width     Signifies the width of the memory operations.
+
+  @param[in]   Address   The address within the PCI configuration space for the
+                         PCI controller.
+
+  @param[in]   Count     The number of PCI configuration operations to perform.
+                         Bytes moved is Width size * Count, starting at
+                         Address.
+
+  @param[out]  Buffer    For read operations, the destination buffer to store
+                         the results. For write operations, the source buffer
+                         to write data from.
+
+
+  @retval EFI_SUCCESS            The data was read from or written to the PCI
+                                 root bridge.
+
+  @retval EFI_INVALID_PARAMETER  Width is invalid for this PCI root bridge.
+
+  @retval EFI_INVALID_PARAMETER  Buffer is NULL.
+
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a
+                                 lack of resources.
 **/
 EFI_STATUS
 EFIAPI
@@ -305,27 +406,40 @@ RootBridgeIoPciRead (
   );
 
 /**
-   Enables a PCI driver to access PCI controller registers in a PCI root 
bridge's configuration space.
-
-   The Pci.Read() and Pci.Write() functions enable a driver to access PCI 
configuration
-   registers for a PCI controller.
-   The PCI Configuration operations are carried out exactly as requested. The 
caller is responsible for
-   any alignment and PCI configuration width issues that a PCI Root Bridge on 
a platform might
-   require.
-
-   @param[in]   This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in]   Width     Signifies the width of the memory operations.
-   @param[in]   Address   The address within the PCI configuration space for 
the PCI controller.
-   @param[in]   Count     The number of PCI configuration operations to 
perform. Bytes
-                          moved is Width size * Count, starting at Address.
-   @param[in]   Buffer    For read operations, the destination buffer to store 
the results. For
-                          write operations, the source buffer to write data 
from.
-   
-   @retval EFI_SUCCESS            The data was read from or written to the PCI 
root bridge.
-   @retval EFI_INVALID_PARAMETER  Width is invalid for this PCI root bridge.
-   @retval EFI_INVALID_PARAMETER  Buffer is NULL.
-   @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a 
lack of resources.
+  Enables a PCI driver to access PCI controller registers in a PCI root
+  bridge's configuration space.
 
+  The Pci.Read() and Pci.Write() functions enable a driver to access PCI
+  configuration registers for a PCI controller.
+  The PCI Configuration operations are carried out exactly as requested. The
+  caller is responsible for any alignment and PCI configuration width issues
+  that a PCI Root Bridge on a platform might require.
+
+  @param[in]   This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in]   Width     Signifies the width of the memory operations.
+
+  @param[in]   Address   The address within the PCI configuration space for the
+                         PCI controller.
+
+  @param[in]   Count     The number of PCI configuration operations to perform.
+                         Bytes moved is Width size * Count, starting at
+                         Address.
+
+  @param[in]   Buffer    For read operations, the destination buffer to store
+                         the results. For write operations, the source buffer
+                         to write data from.
+
+
+  @retval EFI_SUCCESS            The data was read from or written to the PCI
+                                 root bridge.
+
+  @retval EFI_INVALID_PARAMETER  Width is invalid for this PCI root bridge.
+
+  @retval EFI_INVALID_PARAMETER  Buffer is NULL.
+
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a
+                                 lack of resources.
 **/
 EFI_STATUS
 EFIAPI
@@ -338,30 +452,53 @@ RootBridgeIoPciWrite (
   );
 
 /**
-   Provides the PCI controller-specific addresses required to access system 
memory from a
-   DMA bus master.
-
-   The Map() function provides the PCI controller specific addresses needed to 
access system
-   memory. This function is used to map system memory for PCI bus master DMA 
accesses.
-
-   @param[in]       This            A pointer to the 
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in]       Operation       Indicates if the bus master is going to 
read or write to system memory.
-   @param[in]       HostAddress     The system memory address to map to the 
PCI controller.
-   @param[in, out]  NumberOfBytes   On input the number of bytes to map. On 
output the number of bytes that were mapped.
-   @param[out]      DeviceAddress   The resulting map address for the bus 
master PCI controller to use
-                                    to access the system memory's HostAddress.
-   @param[out]      Mapping         The value to pass to Unmap() when the bus 
master DMA operation is complete.
-   
-   @retval EFI_SUCCESS            The range was mapped for the returned 
NumberOfBytes.
-   @retval EFI_INVALID_PARAMETER  Operation is invalid.
-   @retval EFI_INVALID_PARAMETER  HostAddress is NULL.
-   @retval EFI_INVALID_PARAMETER  NumberOfBytes is NULL.
-   @retval EFI_INVALID_PARAMETER  DeviceAddress is NULL.
-   @retval EFI_INVALID_PARAMETER  Mapping is NULL.
-   @retval EFI_UNSUPPORTED        The HostAddress cannot be mapped as a common 
buffer.
-   @retval EFI_DEVICE_ERROR       The system hardware could not map the 
requested address.
-   @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a 
lack of resources.
+  Provides the PCI controller-specific addresses required to access system
+  memory from a DMA bus master.
 
+  The Map() function provides the PCI controller specific addresses needed to
+  access system memory. This function is used to map system memory for PCI bus
+  master DMA accesses.
+
+  @param[in]       This            A pointer to the
+                                   EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in]       Operation       Indicates if the bus master is going to read
+                                   or write to system memory.
+
+  @param[in]       HostAddress     The system memory address to map to the PCI
+                                   controller.
+
+  @param[in, out]  NumberOfBytes   On input the number of bytes to map. On
+                                   output the number of bytes that were mapped.
+
+  @param[out]      DeviceAddress   The resulting map address for the bus master
+                                   PCI controller to use to access the system
+                                   memory's HostAddress.
+
+  @param[out]      Mapping         The value to pass to Unmap() when the bus
+                                   master DMA operation is complete.
+
+  @retval EFI_SUCCESS            The range was mapped for the returned
+                                 NumberOfBytes.
+
+  @retval EFI_INVALID_PARAMETER  Operation is invalid.
+
+  @retval EFI_INVALID_PARAMETER  HostAddress is NULL.
+
+  @retval EFI_INVALID_PARAMETER  NumberOfBytes is NULL.
+
+  @retval EFI_INVALID_PARAMETER  DeviceAddress is NULL.
+
+  @retval EFI_INVALID_PARAMETER  Mapping is NULL.
+
+  @retval EFI_UNSUPPORTED        The HostAddress cannot be mapped as a common
+                                 buffer.
+
+  @retval EFI_DEVICE_ERROR       The system hardware could not map the
+                                 requested address.
+
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a
+                                 lack of resources.
 **/
 EFI_STATUS
 EFIAPI
@@ -375,20 +512,26 @@ RootBridgeIoMap (
   );
 
 /**
-   Completes the Map() operation and releases any corresponding resources.
+  Completes the Map() operation and releases any corresponding resources.
 
-   The Unmap() function completes the Map() operation and releases any 
corresponding resources.
-   If the operation was an EfiPciOperationBusMasterWrite or
-   EfiPciOperationBusMasterWrite64, the data is committed to the target system 
memory.
-   Any resources used for the mapping are freed.  
+  The Unmap() function completes the Map() operation and releases any
+  corresponding resources.
+  If the operation was an EfiPciOperationBusMasterWrite or
+  EfiPciOperationBusMasterWrite64, the data is committed to the target system
+  memory.
+  Any resources used for the mapping are freed.
 
-   @param[in] This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in] Mapping   The mapping value returned from Map().
-   
-   @retval EFI_SUCCESS            The range was unmapped.
-   @retval EFI_INVALID_PARAMETER  Mapping is not a value that was returned by 
Map().
-   @retval EFI_DEVICE_ERROR       The data was not committed to the target 
system memory.
+  @param[in] This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
 
+  @param[in] Mapping   The mapping value returned from Map().
+
+  @retval EFI_SUCCESS            The range was unmapped.
+
+  @retval EFI_INVALID_PARAMETER  Mapping is not a value that was returned by
+                                 Map().
+
+  @retval EFI_DEVICE_ERROR       The data was not committed to the target
+                                 system memory.
 **/
 EFI_STATUS
 EFIAPI
@@ -398,25 +541,39 @@ RootBridgeIoUnmap (
   );
 
 /**
-   Allocates pages that are suitable for an 
EfiPciOperationBusMasterCommonBuffer or
-   EfiPciOperationBusMasterCommonBuffer64 mapping.
-  
-   @param This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param Type        This parameter is not used and must be ignored.
-   @param MemoryType  The type of memory to allocate, EfiBootServicesData or 
EfiRuntimeServicesData.
-   @param Pages       The number of pages to allocate.
-   @param HostAddress A pointer to store the base system memory address of the 
allocated range.
-   @param Attributes  The requested bit mask of attributes for the allocated 
range. Only
-                      the attributes EFI_PCI_ATTRIBUTE_MEMORY_WRITE_COMBINE, 
EFI_PCI_ATTRIBUTE_MEMORY_CACHED, 
-                      and EFI_PCI_ATTRIBUTE_DUAL_ADDRESS_CYCLE may be used 
with this function.
-   
-   @retval EFI_SUCCESS            The requested memory pages were allocated.
-   @retval EFI_INVALID_PARAMETER  MemoryType is invalid.
-   @retval EFI_INVALID_PARAMETER  HostAddress is NULL.
-   @retval EFI_UNSUPPORTED        Attributes is unsupported. The only legal 
attribute bits are
-                                  MEMORY_WRITE_COMBINE, MEMORY_CACHED, and 
DUAL_ADDRESS_CYCLE.
-   @retval EFI_OUT_OF_RESOURCES   The memory pages could not be allocated.
+  Allocates pages that are suitable for an EfiPciOperationBusMasterCommonBuffer
+  or EfiPciOperationBusMasterCommonBuffer64 mapping.
 
+  @param This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param Type        This parameter is not used and must be ignored.
+
+  @param MemoryType  The type of memory to allocate, EfiBootServicesData or
+                     EfiRuntimeServicesData.
+
+  @param Pages       The number of pages to allocate.
+
+  @param HostAddress A pointer to store the base system memory address of the
+                     allocated range.
+
+  @param Attributes  The requested bit mask of attributes for the allocated
+                     range. Only the attributes
+                     EFI_PCI_ATTRIBUTE_MEMORY_WRITE_COMBINE,
+                     EFI_PCI_ATTRIBUTE_MEMORY_CACHED, and
+                     EFI_PCI_ATTRIBUTE_DUAL_ADDRESS_CYCLE may be used with this
+                     function.
+
+  @retval EFI_SUCCESS            The requested memory pages were allocated.
+
+  @retval EFI_INVALID_PARAMETER  MemoryType is invalid.
+
+  @retval EFI_INVALID_PARAMETER  HostAddress is NULL.
+
+  @retval EFI_UNSUPPORTED        Attributes is unsupported. The only legal
+                                 attribute bits are MEMORY_WRITE_COMBINE,
+                                 MEMORY_CACHED, and DUAL_ADDRESS_CYCLE.
+
+  @retval EFI_OUT_OF_RESOURCES   The memory pages could not be allocated.
 **/
 EFI_STATUS
 EFIAPI
@@ -430,18 +587,21 @@ RootBridgeIoAllocateBuffer (
   );
 
 /**
-   Frees memory that was allocated with AllocateBuffer().
+  Frees memory that was allocated with AllocateBuffer().
 
-   The FreeBuffer() function frees memory that was allocated with 
AllocateBuffer().
+  The FreeBuffer() function frees memory that was allocated with
+  AllocateBuffer().
 
-   @param This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param Pages       The number of pages to free.
-   @param HostAddress The base system memory address of the allocated range.
-   
-   @retval EFI_SUCCESS            The requested memory pages were freed.
-   @retval EFI_INVALID_PARAMETER  The memory range specified by HostAddress 
and Pages
-                                  was not allocated with AllocateBuffer().
+  @param This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
 
+  @param Pages       The number of pages to free.
+
+  @param HostAddress The base system memory address of the allocated range.
+
+  @retval EFI_SUCCESS            The requested memory pages were freed.
+
+  @retval EFI_INVALID_PARAMETER  The memory range specified by HostAddress and
+                                 Pages was not allocated with AllocateBuffer().
 **/
 EFI_STATUS
 EFIAPI
@@ -452,23 +612,26 @@ RootBridgeIoFreeBuffer (
   );
 
 /**
-   Flushes all PCI posted write transactions from a PCI host bridge to system 
memory.
+  Flushes all PCI posted write transactions from a PCI host bridge to system
+  memory.
 
-   The Flush() function flushes any PCI posted write transactions from a PCI 
host bridge to system
-   memory. Posted write transactions are generated by PCI bus masters when 
they perform write
-   transactions to target addresses in system memory.
-   This function does not flush posted write transactions from any PCI 
bridges. A PCI controller
-   specific action must be taken to guarantee that the posted write 
transactions have been flushed from
-   the PCI controller and from all the PCI bridges into the PCI host bridge. 
This is typically done with
-   a PCI read transaction from the PCI controller prior to calling Flush().
+  The Flush() function flushes any PCI posted write transactions from a PCI
+  host bridge to system memory. Posted write transactions are generated by PCI
+  bus masters when they perform write transactions to target addresses in
+  system memory.
+  This function does not flush posted write transactions from any PCI bridges.
+  A PCI controller specific action must be taken to guarantee that the posted
+  write transactions have been flushed from the PCI controller and from all the
+  PCI bridges into the PCI host bridge. This is typically done with a PCI read
+  transaction from the PCI controller prior to calling Flush().
 
-   @param This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   
-   @retval EFI_SUCCESS        The PCI posted write transactions were flushed 
from the PCI host
-                              bridge to system memory.
-   @retval EFI_DEVICE_ERROR   The PCI posted write transactions were not 
flushed from the PCI
-                              host bridge due to a hardware error.
+  @param This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
 
+  @retval EFI_SUCCESS        The PCI posted write transactions were flushed
+                             from the PCI host bridge to system memory.
+
+  @retval EFI_DEVICE_ERROR   The PCI posted write transactions were not flushed
+                             from the PCI host bridge due to a hardware error.
 **/
 EFI_STATUS
 EFIAPI
@@ -477,24 +640,30 @@ RootBridgeIoFlush (
   );
 
 /**
-   Gets the attributes that a PCI root bridge supports setting with 
SetAttributes(), and the
-   attributes that a PCI root bridge is currently using.  
+  Gets the attributes that a PCI root bridge supports setting with
+  SetAttributes(), and the attributes that a PCI root bridge is currently
+  using.
 
-   The GetAttributes() function returns the mask of attributes that this PCI 
root bridge supports
-   and the mask of attributes that the PCI root bridge is currently using.
+  The GetAttributes() function returns the mask of attributes that this PCI
+  root bridge supports and the mask of attributes that the PCI root bridge is
+  currently using.
 
-   @param This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param Supported   A pointer to the mask of attributes that this PCI root 
bridge
-                      supports setting with SetAttributes().
-   @param Attributes  A pointer to the mask of attributes that this PCI root 
bridge is
-                      currently using.
-   
-   @retval  EFI_SUCCESS           If Supports is not NULL, then the attributes 
that the PCI root
-                                  bridge supports is returned in Supports. If 
Attributes is
-                                  not NULL, then the attributes that the PCI 
root bridge is currently
-                                  using is returned in Attributes.
-   @retval  EFI_INVALID_PARAMETER Both Supports and Attributes are NULL.
+  @param This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
 
+  @param Supported   A pointer to the mask of attributes that this PCI root
+                     bridge supports setting with SetAttributes().
+
+  @param Attributes  A pointer to the mask of attributes that this PCI root
+                     bridge is currently using.
+
+
+  @retval  EFI_SUCCESS           If Supports is not NULL, then the attributes
+                                 that the PCI root bridge supports is returned
+                                 in Supports. If Attributes is not NULL, then
+                                 the attributes that the PCI root bridge is
+                                 currently using is returned in Attributes.
+
+  @retval  EFI_INVALID_PARAMETER Both Supports and Attributes are NULL.
 **/
 EFI_STATUS
 EFIAPI
@@ -505,33 +674,47 @@ RootBridgeIoGetAttributes (
   );
 
 /**
-   Sets attributes for a resource range on a PCI root bridge.
-
-   The SetAttributes() function sets the attributes specified in Attributes 
for the PCI root
-   bridge on the resource range specified by ResourceBase and ResourceLength. 
Since the
-   granularity of setting these attributes may vary from resource type to 
resource type, and from
-   platform to platform, the actual resource range and the one passed in by 
the caller may differ. As a
-   result, this function may set the attributes specified by Attributes on a 
larger resource range
-   than the caller requested. The actual range is returned in ResourceBase and
-   ResourceLength. The caller is responsible for verifying that the actual 
range for which the
-   attributes were set is acceptable.
-
-   @param[in]       This            A pointer to the 
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in]       Attributes      The mask of attributes to set. If the 
attribute bit
-                                    MEMORY_WRITE_COMBINE, MEMORY_CACHED, or
-                                    MEMORY_DISABLE is set, then the resource 
range is specified by
-                                    ResourceBase and ResourceLength. If
-                                    MEMORY_WRITE_COMBINE, MEMORY_CACHED, and
-                                    MEMORY_DISABLE are not set, then 
ResourceBase and
-                                    ResourceLength are ignored, and may be 
NULL.
-   @param[in, out]  ResourceBase    A pointer to the base address of the 
resource range to be modified
-                                    by the attributes specified by Attributes.
-   @param[in, out]  ResourceLength  A pointer to the length of the resource 
range to be modified by the
-                                    attributes specified by Attributes.
-   
-   @retval  EFI_SUCCESS     The current configuration of this PCI root bridge 
was returned in Resources.
-   @retval  EFI_UNSUPPORTED The current configuration of this PCI root bridge 
could not be retrieved.
-   @retval  EFI_INVALID_PARAMETER Invalid pointer of 
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL
+  Sets attributes for a resource range on a PCI root bridge.
+
+  The SetAttributes() function sets the attributes specified in Attributes for
+  the PCI root bridge on the resource range specified by ResourceBase and
+  ResourceLength. Since the granularity of setting these attributes may vary
+  from resource type to resource type, and from platform to platform, the
+  actual resource range and the one passed in by the caller may differ. As a
+  result, this function may set the attributes specified by Attributes on a
+  larger resource range than the caller requested. The actual range is returned
+  in ResourceBase and ResourceLength. The caller is responsible for verifying
+  that the actual range for which the attributes were set is acceptable.
+
+  @param[in]       This            A pointer to the
+                                   EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in]       Attributes      The mask of attributes to set. If the
+                                   attribute bit MEMORY_WRITE_COMBINE,
+                                   MEMORY_CACHED, or MEMORY_DISABLE is set,
+                                   then the resource range is specified by
+                                   ResourceBase and ResourceLength. If
+                                   MEMORY_WRITE_COMBINE, MEMORY_CACHED, and
+                                   MEMORY_DISABLE are not set, then
+                                   ResourceBase and ResourceLength are ignored,
+                                   and may be NULL.
+
+  @param[in, out]  ResourceBase    A pointer to the base address of the
+                                   resource range to be modified by the
+                                   attributes specified by Attributes.
+
+  @param[in, out]  ResourceLength  A pointer to the length of the resource
+                                   range to be modified by the attributes
+                                   specified by Attributes.
+
+  @retval  EFI_SUCCESS     The current configuration of this PCI root bridge
+                           was returned in Resources.
+
+  @retval  EFI_UNSUPPORTED The current configuration of this PCI root bridge
+                           could not be retrieved.
+
+  @retval  EFI_INVALID_PARAMETER Invalid pointer of
+                                 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL
 
 **/
 EFI_STATUS
@@ -544,27 +727,35 @@ RootBridgeIoSetAttributes (
   ); 
 
 /**
-   Retrieves the current resource settings of this PCI root bridge in the form 
of a set of ACPI 2.0
-   resource descriptors.
+  Retrieves the current resource settings of this PCI root bridge in the form
+  of a set of ACPI 2.0 resource descriptors.
 
-   There are only two resource descriptor types from the ACPI Specification 
that may be used to
-   describe the current resources allocated to a PCI root bridge. These are 
the QWORD Address
-   Space Descriptor (ACPI 2.0 Section 6.4.3.5.1), and the End Tag (ACPI 2.0 
Section 6.4.2.8). The
-   QWORD Address Space Descriptor can describe memory, I/O, and bus number 
ranges for dynamic
-   or fixed resources. The configuration of a PCI root bridge is described 
with one or more QWORD
-   Address Space Descriptors followed by an End Tag.
+  There are only two resource descriptor types from the ACPI Specification that
+  may be used to describe the current resources allocated to a PCI root bridge.
+  These are the QWORD Address Space Descriptor (ACPI 2.0 Section 6.4.3.5.1),
+  and the End Tag (ACPI 2.0 Section 6.4.2.8). The QWORD Address Space
+  Descriptor can describe memory, I/O, and bus number ranges for dynamic or
+  fixed resources. The configuration of a PCI root bridge is described with one
+  or more QWORD Address Space Descriptors followed by an End Tag.
 
-   @param[in]   This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[out]  Resources   A pointer to the ACPI 2.0 resource descriptors 
that describe the
-                            current configuration of this PCI root bridge. The 
storage for the
-                            ACPI 2.0 resource descriptors is allocated by this 
function. The
-                            caller must treat the return buffer as read-only 
data, and the buffer
-                            must not be freed by the caller.
-   
-   @retval  EFI_SUCCESS     The current configuration of this PCI root bridge 
was returned in Resources.
-   @retval  EFI_UNSUPPORTED The current configuration of this PCI root bridge 
could not be retrieved.
-   @retval  EFI_INVALID_PARAMETER Invalid pointer of 
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL
+  @param[in]   This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
 
+  @param[out]  Resources   A pointer to the ACPI 2.0 resource descriptors that
+                           describe the current configuration of this PCI root
+                           bridge. The storage for the ACPI 2.0 resource
+                           descriptors is allocated by this function. The
+                           caller must treat the return buffer as read-only
+                           data, and the buffer must not be freed by the
+                           caller.
+
+  @retval  EFI_SUCCESS     The current configuration of this PCI root bridge
+                           was returned in Resources.
+
+  @retval  EFI_UNSUPPORTED The current configuration of this PCI root bridge
+                           could not be retrieved.
+
+  @retval  EFI_INVALID_PARAMETER Invalid pointer of
+                                 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL
 **/
 EFI_STATUS
 EFIAPI
@@ -615,16 +806,17 @@ UINT8 mOutStride[] = {
 };
 
 /**
-
   Construct the Pci Root Bridge Io protocol
 
   @param Protocol         Point to protocol instance
+
   @param HostBridgeHandle Handle of host bridge
+
   @param Attri            Attribute of host bridge
+
   @param ResAperture      ResourceAperture for host bridge
 
   @retval EFI_SUCCESS Success to initialize the Pci Root Bridge.
-
 **/
 EFI_STATUS
 RootBridgeConstructor (
@@ -718,28 +910,39 @@ RootBridgeConstructor (
 /**
   Check parameters for IO,MMIO,PCI read/write services of PCI Root Bridge IO.
 
-  The I/O operations are carried out exactly as requested. The caller is 
responsible 
-  for satisfying any alignment and I/O width restrictions that a PI System on 
a 
-  platform might require. For example on some platforms, width requests of 
-  EfiCpuIoWidthUint64 do not work. Misaligned buffers, on the other hand, will 
-  be handled by the driver.
-  
+  The I/O operations are carried out exactly as requested. The caller is
+  responsible for satisfying any alignment and I/O width restrictions that a PI
+  System on a platform might require. For example on some platforms, width
+  requests of EfiCpuIoWidthUint64 do not work. Misaligned buffers, on the other
+  hand, will be handled by the driver.
+
   @param[in] This           A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
   @param[in] OperationType  I/O operation type: IO/MMIO/PCI.
+
   @param[in] Width          Signifies the width of the I/O or Memory operation.
-  @param[in] Address        The base address of the I/O operation. 
-  @param[in] Count          The number of I/O operations to perform. The 
number of  
-                            bytes moved is Width size * Count, starting at 
Address.
-  @param[in] Buffer         For read operations, the destination buffer to 
store the results.
-                            For write operations, the source buffer from which 
to write data.
 
-  @retval EFI_SUCCESS            The parameters for this request pass the 
checks.
+  @param[in] Address        The base address of the I/O operation.
+
+  @param[in] Count          The number of I/O operations to perform. The number
+                            of bytes moved is Width size * Count, starting at
+                            Address.
+
+  @param[in] Buffer         For read operations, the destination buffer to
+                            store the results. For write operations, the source
+                            buffer from which to write data.
+
+  @retval EFI_SUCCESS            The parameters for this request pass the
+                                 checks.
+
   @retval EFI_INVALID_PARAMETER  Width is invalid for this PI system.
+
   @retval EFI_INVALID_PARAMETER  Buffer is NULL.
+
   @retval EFI_UNSUPPORTED        The Buffer is not aligned for the given Width.
-  @retval EFI_UNSUPPORTED        The address range specified by Address, 
Width, 
+
+  @retval EFI_UNSUPPORTED        The address range specified by Address, Width,
                                  and Count is not valid for this PI system.
-
 **/
 EFI_STATUS
 RootBridgeIoCheckParameter (
@@ -859,22 +1062,34 @@ RootBridgeIoCheckParameter (
 }
 
 /**
-   Internal help function for read and write memory space.
-
-   @param[in]   This          A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in]   Write         Switch value for Read or Write.
-   @param[in]   Width         Signifies the width of the memory operations.
-   @param[in]   UserAddress   The address within the PCI configuration space 
for the PCI controller.
-   @param[in]   Count         The number of PCI configuration operations to 
perform. Bytes
-                              moved is Width size * Count, starting at Address.
-   @param[in, out] UserBuffer For read operations, the destination buffer to 
store the results. For
-                              write operations, the source buffer to write 
data from.
-   
-   @retval EFI_SUCCESS            The data was read from or written to the PCI 
root bridge.
-   @retval EFI_INVALID_PARAMETER  Width is invalid for this PCI root bridge.
-   @retval EFI_INVALID_PARAMETER  Buffer is NULL.
-   @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a 
lack of resources.
+  Internal help function for read and write memory space.
 
+  @param[in]   This          A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in]   Write         Switch value for Read or Write.
+
+  @param[in]   Width         Signifies the width of the memory operations.
+
+  @param[in]   UserAddress   The address within the PCI configuration space for
+                             the PCI controller.
+
+  @param[in]   Count         The number of PCI configuration operations to
+                             perform. Bytes moved is Width size * Count,
+                             starting at Address.
+
+  @param[in, out] UserBuffer For read operations, the destination buffer to
+                             store the results. For write operations, the
+                             source buffer to write data from.
+
+  @retval EFI_SUCCESS            The data was read from or written to the PCI
+                                 root bridge.
+
+  @retval EFI_INVALID_PARAMETER  Width is invalid for this PCI root bridge.
+
+  @retval EFI_INVALID_PARAMETER  Buffer is NULL.
+
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a
+                                 lack of resources.
 **/
 EFI_STATUS
 RootBridgeIoMemRW (
@@ -951,22 +1166,35 @@ RootBridgeIoMemRW (
 }
 
 /**
-   Internal help function for read and write IO space.
-
-   @param[in]   This          A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in]   Write         Switch value for Read or Write.
-   @param[in]   Width         Signifies the width of the memory operations.
-   @param[in]   UserAddress   The address within the PCI configuration space 
for the PCI controller.
-   @param[in]   Count         The number of PCI configuration operations to 
perform. Bytes
-                              moved is Width size * Count, starting at Address.
-   @param[in, out] UserBuffer For read operations, the destination buffer to 
store the results. For
-                              write operations, the source buffer to write 
data from.
-   
-   @retval EFI_SUCCESS            The data was read from or written to the PCI 
root bridge.
-   @retval EFI_INVALID_PARAMETER  Width is invalid for this PCI root bridge.
-   @retval EFI_INVALID_PARAMETER  Buffer is NULL.
-   @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a 
lack of resources.
+  Internal help function for read and write IO space.
 
+  @param[in]   This          A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in]   Write         Switch value for Read or Write.
+
+  @param[in]   Width         Signifies the width of the memory operations.
+
+  @param[in]   UserAddress   The address within the PCI configuration space for
+                             the PCI controller.
+
+  @param[in]   Count         The number of PCI configuration operations to
+                             perform. Bytes moved is Width size * Count,
+                             starting at Address.
+
+  @param[in, out] UserBuffer For read operations, the destination buffer to
+                             store the results. For write operations, the
+                             source buffer to write data from.
+
+
+  @retval EFI_SUCCESS            The data was read from or written to the PCI
+                                 root bridge.
+
+  @retval EFI_INVALID_PARAMETER  Width is invalid for this PCI root bridge.
+
+  @retval EFI_INVALID_PARAMETER  Buffer is NULL.
+
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a
+                                 lack of resources.
 **/
 EFI_STATUS
 RootBridgeIoIoRW (
@@ -1082,22 +1310,35 @@ RootBridgeIoIoRW (
 }
 
 /**
-   Internal help function for read and write PCI configuration space.
-
-   @param[in]   This          A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in]   Write         Switch value for Read or Write.
-   @param[in]   Width         Signifies the width of the memory operations.
-   @param[in]   UserAddress   The address within the PCI configuration space 
for the PCI controller.
-   @param[in]   Count         The number of PCI configuration operations to 
perform. Bytes
-                              moved is Width size * Count, starting at Address.
-   @param[in, out] UserBuffer For read operations, the destination buffer to 
store the results. For
-                              write operations, the source buffer to write 
data from.
-   
-   @retval EFI_SUCCESS            The data was read from or written to the PCI 
root bridge.
-   @retval EFI_INVALID_PARAMETER  Width is invalid for this PCI root bridge.
-   @retval EFI_INVALID_PARAMETER  Buffer is NULL.
-   @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a 
lack of resources.
+  Internal help function for read and write PCI configuration space.
 
+  @param[in]   This          A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in]   Write         Switch value for Read or Write.
+
+  @param[in]   Width         Signifies the width of the memory operations.
+
+  @param[in]   UserAddress   The address within the PCI configuration space for
+                             the PCI controller.
+
+  @param[in]   Count         The number of PCI configuration operations to
+                             perform. Bytes moved is Width size * Count,
+                             starting at Address.
+
+  @param[in, out] UserBuffer For read operations, the destination buffer to
+                             store the results. For write operations, the
+                             source buffer to write data from.
+
+
+  @retval EFI_SUCCESS            The data was read from or written to the PCI
+                                 root bridge.
+
+  @retval EFI_INVALID_PARAMETER  Width is invalid for this PCI root bridge.
+
+  @retval EFI_INVALID_PARAMETER  Buffer is NULL.
+
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a
+                                 lack of resources.
 **/
 EFI_STATUS
 RootBridgeIoPciRW (
@@ -1182,33 +1423,48 @@ RootBridgeIoPciRW (
 }
 
 /**
-   Polls an address in memory mapped I/O space until an exit condition is met, 
or 
-   a timeout occurs. 
-
-   This function provides a standard way to poll a PCI memory location. A PCI 
memory read
-   operation is performed at the PCI memory address specified by Address for 
the width specified
-   by Width. The result of this PCI memory read operation is stored in Result. 
This PCI memory
-   read operation is repeated until either a timeout of Delay 100 ns units has 
expired, or (Result &
-   Mask) is equal to Value.
-
-   @param[in]   This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in]   Width     Signifies the width of the memory operations.
-   @param[in]   Address   The base address of the memory operations. The 
caller is
-                          responsible for aligning Address if required.
-   @param[in]   Mask      Mask used for the polling criteria. Bytes above 
Width in Mask
-                          are ignored. The bits in the bytes below Width which 
are zero in
-                          Mask are ignored when polling the memory address.
-   @param[in]   Value     The comparison value used for the polling exit 
criteria.
-   @param[in]   Delay     The number of 100 ns units to poll. Note that timer 
available may
-                          be of poorer granularity.
-   @param[out]  Result    Pointer to the last value read from the memory 
location.
-   
-   @retval EFI_SUCCESS            The last data returned from the access 
matched the poll exit criteria.
-   @retval EFI_INVALID_PARAMETER  Width is invalid.
-   @retval EFI_INVALID_PARAMETER  Result is NULL.
-   @retval EFI_TIMEOUT            Delay expired before a match occurred.
-   @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a 
lack of resources.
+  Polls an address in memory mapped I/O space until an exit condition is met,
+  or a timeout occurs.
 
+  This function provides a standard way to poll a PCI memory location. A PCI
+  memory read operation is performed at the PCI memory address specified by
+  Address for the width specified by Width. The result of this PCI memory read
+  operation is stored in Result. This PCI memory read operation is repeated
+  until either a timeout of Delay 100 ns units has expired, or (Result & Mask)
+  is equal to Value.
+
+  @param[in]   This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in]   Width     Signifies the width of the memory operations.
+
+  @param[in]   Address   The base address of the memory operations. The caller
+                         is responsible for aligning Address if required.
+
+  @param[in]   Mask      Mask used for the polling criteria. Bytes above Width
+                         in Mask are ignored. The bits in the bytes below Width
+                         which are zero in Mask are ignored when polling the
+                         memory address.
+
+  @param[in]   Value     The comparison value used for the polling exit
+                         criteria.
+
+  @param[in]   Delay     The number of 100 ns units to poll. Note that timer
+                         available may be of poorer granularity.
+
+  @param[out]  Result    Pointer to the last value read from the memory
+                         location.
+
+  @retval EFI_SUCCESS            The last data returned from the access matched
+                                 the poll exit criteria.
+
+  @retval EFI_INVALID_PARAMETER  Width is invalid.
+
+  @retval EFI_INVALID_PARAMETER  Result is NULL.
+
+  @retval EFI_TIMEOUT            Delay expired before a match occurred.
+
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a
+                                 lack of resources.
 **/
 EFI_STATUS
 EFIAPI
@@ -1283,35 +1539,48 @@ RootBridgeIoPollMem (
   }
   return EFI_TIMEOUT;
 }
-  
+
 /**
-   Reads from the I/O space of a PCI Root Bridge. Returns when either the 
polling exit criteria is
-   satisfied or after a defined duration.
-
-   This function provides a standard way to poll a PCI I/O location. A PCI I/O 
read operation is
-   performed at the PCI I/O address specified by Address for the width 
specified by Width.
-   The result of this PCI I/O read operation is stored in Result. This PCI I/O 
read operation is
-   repeated until either a timeout of Delay 100 ns units has expired, or 
(Result & Mask) is equal
-   to Value.
-
-   @param[in] This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in] Width     Signifies the width of the I/O operations.
-   @param[in] Address   The base address of the I/O operations. The caller is 
responsible
-                        for aligning Address if required.
-   @param[in] Mask      Mask used for the polling criteria. Bytes above Width 
in Mask
-                        are ignored. The bits in the bytes below Width which 
are zero in
-                        Mask are ignored when polling the I/O address.
-   @param[in] Value     The comparison value used for the polling exit 
criteria.
-   @param[in] Delay     The number of 100 ns units to poll. Note that timer 
available may
-                        be of poorer granularity.
-   @param[out] Result   Pointer to the last value read from the memory 
location.
-   
-   @retval EFI_SUCCESS            The last data returned from the access 
matched the poll exit criteria.
-   @retval EFI_INVALID_PARAMETER  Width is invalid.
-   @retval EFI_INVALID_PARAMETER  Result is NULL.
-   @retval EFI_TIMEOUT            Delay expired before a match occurred.
-   @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a 
lack of resources.
+  Reads from the I/O space of a PCI Root Bridge. Returns when either the
+  polling exit criteria is satisfied or after a defined duration.
 
+  This function provides a standard way to poll a PCI I/O location. A PCI I/O
+  read operation is performed at the PCI I/O address specified by Address for
+  the width specified by Width.
+  The result of this PCI I/O read operation is stored in Result. This PCI I/O
+  read operation is repeated until either a timeout of Delay 100 ns units has
+  expired, or (Result & Mask) is equal to Value.
+
+  @param[in] This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in] Width     Signifies the width of the I/O operations.
+
+  @param[in] Address   The base address of the I/O operations. The caller is
+                       responsible for aligning Address if required.
+
+  @param[in] Mask      Mask used for the polling criteria. Bytes above Width in
+                       Mask are ignored. The bits in the bytes below Width
+                       which are zero in Mask are ignored when polling the I/O
+                       address.
+
+  @param[in] Value     The comparison value used for the polling exit criteria.
+
+  @param[in] Delay     The number of 100 ns units to poll. Note that timer
+                       available may be of poorer granularity.
+
+  @param[out] Result   Pointer to the last value read from the memory location.
+
+  @retval EFI_SUCCESS            The last data returned from the access matched
+                                 the poll exit criteria.
+
+  @retval EFI_INVALID_PARAMETER  Width is invalid.
+
+  @retval EFI_INVALID_PARAMETER  Result is NULL.
+
+  @retval EFI_TIMEOUT            Delay expired before a match occurred.
+
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a
+                                 lack of resources.
 **/
 EFI_STATUS
 EFIAPI
@@ -1386,27 +1655,38 @@ RootBridgeIoPollIo (
 }
 
 /**
-   Enables a PCI driver to access PCI controller registers in the PCI root 
bridge memory space.
-
-   The Mem.Read(), and Mem.Write() functions enable a driver to access PCI 
controller
-   registers in the PCI root bridge memory space.
-   The memory operations are carried out exactly as requested. The caller is 
responsible for satisfying
-   any alignment and memory width restrictions that a PCI Root Bridge on a 
platform might require.
-
-   @param[in]   This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in]   Width     Signifies the width of the memory operation.
-   @param[in]   Address   The base address of the memory operation. The caller 
is
-                          responsible for aligning the Address if required.
-   @param[in]   Count     The number of memory operations to perform. Bytes 
moved is
-                          Width size * Count, starting at Address.
-   @param[out]  Buffer    For read operations, the destination buffer to store 
the results. For
-                          write operations, the source buffer to write data 
from.
-   
-   @retval EFI_SUCCESS            The data was read from or written to the PCI 
root bridge.
-   @retval EFI_INVALID_PARAMETER  Width is invalid for this PCI root bridge.
-   @retval EFI_INVALID_PARAMETER  Buffer is NULL.
-   @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a 
lack of resources.
+  Enables a PCI driver to access PCI controller registers in the PCI root
+  bridge memory space.
 
+  The Mem.Read(), and Mem.Write() functions enable a driver to access PCI
+  controller registers in the PCI root bridge memory space.
+  The memory operations are carried out exactly as requested. The caller is
+  responsible for satisfying any alignment and memory width restrictions that a
+  PCI Root Bridge on a platform might require.
+
+  @param[in]   This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in]   Width     Signifies the width of the memory operation.
+
+  @param[in]   Address   The base address of the memory operation. The caller
+                         is responsible for aligning the Address if required.
+
+  @param[in]   Count     The number of memory operations to perform. Bytes
+                         moved is Width size * Count, starting at Address.
+
+  @param[out]  Buffer    For read operations, the destination buffer to store
+                         the results. For write operations, the source buffer
+                         to write data from.
+
+  @retval EFI_SUCCESS            The data was read from or written to the PCI
+                                 root bridge.
+
+  @retval EFI_INVALID_PARAMETER  Width is invalid for this PCI root bridge.
+
+  @retval EFI_INVALID_PARAMETER  Buffer is NULL.
+
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a
+                                 lack of resources.
 **/
 EFI_STATUS
 EFIAPI
@@ -1422,26 +1702,38 @@ RootBridgeIoMemRead (
 }
 
 /**
-   Enables a PCI driver to access PCI controller registers in the PCI root 
bridge memory space.
-
-   The Mem.Read(), and Mem.Write() functions enable a driver to access PCI 
controller
-   registers in the PCI root bridge memory space.
-   The memory operations are carried out exactly as requested. The caller is 
responsible for satisfying
-   any alignment and memory width restrictions that a PCI Root Bridge on a 
platform might require.
-
-   @param[in]   This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in]   Width     Signifies the width of the memory operation.
-   @param[in]   Address   The base address of the memory operation. The caller 
is
-                          responsible for aligning the Address if required.
-   @param[in]   Count     The number of memory operations to perform. Bytes 
moved is
-                          Width size * Count, starting at Address.
-   @param[in]   Buffer    For read operations, the destination buffer to store 
the results. For
-                          write operations, the source buffer to write data 
from.
-   
-   @retval EFI_SUCCESS            The data was read from or written to the PCI 
root bridge.
-   @retval EFI_INVALID_PARAMETER  Width is invalid for this PCI root bridge.
-   @retval EFI_INVALID_PARAMETER  Buffer is NULL.
-   @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a 
lack of resources.
+  Enables a PCI driver to access PCI controller registers in the PCI root
+  bridge memory space.
+
+  The Mem.Read(), and Mem.Write() functions enable a driver to access PCI
+  controller registers in the PCI root bridge memory space.
+  The memory operations are carried out exactly as requested. The caller is
+  responsible for satisfying any alignment and memory width restrictions that a
+  PCI Root Bridge on a platform might require.
+
+  @param[in]   This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in]   Width     Signifies the width of the memory operation.
+
+  @param[in]   Address   The base address of the memory operation. The caller
+                         is responsible for aligning the Address if required.
+
+  @param[in]   Count     The number of memory operations to perform. Bytes
+                         moved is Width size * Count, starting at Address.
+
+  @param[in]   Buffer    For read operations, the destination buffer to store
+                         the results. For write operations, the source buffer
+                         to write data from.
+
+  @retval EFI_SUCCESS            The data was read from or written to the PCI
+                                 root bridge.
+
+  @retval EFI_INVALID_PARAMETER  Width is invalid for this PCI root bridge.
+
+  @retval EFI_INVALID_PARAMETER  Buffer is NULL.
+
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a
+                                 lack of resources.
 **/
 EFI_STATUS
 EFIAPI
@@ -1457,22 +1749,33 @@ RootBridgeIoMemWrite (
 }
 
 /**
-   Enables a PCI driver to access PCI controller registers in the PCI root 
bridge I/O space.
-
-   @param[in]   This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in]   Width       Signifies the width of the memory operations.
-   @param[in]   Address     The base address of the I/O operation. The caller 
is responsible for
-                            aligning the Address if required.
-   @param[in]   Count       The number of I/O operations to perform. Bytes 
moved is Width
-                            size * Count, starting at Address.
-   @param[out]  Buffer      For read operations, the destination buffer to 
store the results. For
-                            write operations, the source buffer to write data 
from.
-   
-   @retval EFI_SUCCESS              The data was read from or written to the 
PCI root bridge.
-   @retval EFI_INVALID_PARAMETER    Width is invalid for this PCI root bridge.
-   @retval EFI_INVALID_PARAMETER    Buffer is NULL.
-   @retval EFI_OUT_OF_RESOURCES     The request could not be completed due to 
a lack of resources.
+  Enables a PCI driver to access PCI controller registers in the PCI root
+  bridge I/O space.
 
+  @param[in]   This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in]   Width       Signifies the width of the memory operations.
+
+  @param[in]   Address     The base address of the I/O operation. The caller is
+                           responsible for aligning the Address if required.
+
+  @param[in]   Count       The number of I/O operations to perform. Bytes moved
+                           is Width size * Count, starting at Address.
+
+  @param[out]  Buffer      For read operations, the destination buffer to store
+                           the results. For write operations, the source buffer
+                           to write data from.
+
+
+  @retval EFI_SUCCESS              The data was read from or written to the PCI
+                                   root bridge.
+
+  @retval EFI_INVALID_PARAMETER    Width is invalid for this PCI root bridge.
+
+  @retval EFI_INVALID_PARAMETER    Buffer is NULL.
+
+  @retval EFI_OUT_OF_RESOURCES     The request could not be completed due to a
+                                   lack of resources.
 **/
 EFI_STATUS
 EFIAPI
@@ -1488,22 +1791,32 @@ RootBridgeIoIoRead (
 }
 
 /**
-   Enables a PCI driver to access PCI controller registers in the PCI root 
bridge I/O space.
-
-   @param[in]   This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in]   Width       Signifies the width of the memory operations.
-   @param[in]   Address     The base address of the I/O operation. The caller 
is responsible for
-                            aligning the Address if required.
-   @param[in]   Count       The number of I/O operations to perform. Bytes 
moved is Width
-                            size * Count, starting at Address.
-   @param[in]   Buffer       For read operations, the destination buffer to 
store the results. For
-                            write operations, the source buffer to write data 
from.
-   
-   @retval EFI_SUCCESS              The data was read from or written to the 
PCI root bridge.
-   @retval EFI_INVALID_PARAMETER    Width is invalid for this PCI root bridge.
-   @retval EFI_INVALID_PARAMETER    Buffer is NULL.
-   @retval EFI_OUT_OF_RESOURCES     The request could not be completed due to 
a lack of resources.
+  Enables a PCI driver to access PCI controller registers in the PCI root
+  bridge I/O space.
 
+  @param[in]   This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in]   Width       Signifies the width of the memory operations.
+
+  @param[in]   Address     The base address of the I/O operation. The caller is
+                           responsible for aligning the Address if required.
+
+  @param[in]   Count       The number of I/O operations to perform. Bytes moved
+                           is Width size * Count, starting at Address.
+
+  @param[in]   Buffer      For read operations, the destination buffer to store
+                           the results. For write operations, the source buffer
+                           to write data from.
+
+  @retval EFI_SUCCESS              The data was read from or written to the PCI
+                                   root bridge.
+
+  @retval EFI_INVALID_PARAMETER    Width is invalid for this PCI root bridge.
+
+  @retval EFI_INVALID_PARAMETER    Buffer is NULL.
+
+  @retval EFI_OUT_OF_RESOURCES     The request could not be completed due to a
+                                   lack of resources.
 **/
 EFI_STATUS
 EFIAPI
@@ -1519,28 +1832,41 @@ RootBridgeIoIoWrite (
 }
 
 /**
-   Enables a PCI driver to copy one region of PCI root bridge memory space to 
another region of PCI
-   root bridge memory space.
-
-   The CopyMem() function enables a PCI driver to copy one region of PCI root 
bridge memory
-   space to another region of PCI root bridge memory space. This is especially 
useful for video scroll
-   operation on a memory mapped video buffer.
-   The memory operations are carried out exactly as requested. The caller is 
responsible for satisfying
-   any alignment and memory width restrictions that a PCI root bridge on a 
platform might require.
-
-   @param[in] This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL 
instance.
-   @param[in] Width       Signifies the width of the memory operations.
-   @param[in] DestAddress The destination address of the memory operation. The 
caller is
-                          responsible for aligning the DestAddress if required.
-   @param[in] SrcAddress  The source address of the memory operation. The 
caller is
-                          responsible for aligning the SrcAddress if required.
-   @param[in] Count       The number of memory operations to perform. Bytes 
moved is
-                          Width size * Count, starting at DestAddress and 
SrcAddress.
-   
-   @retval  EFI_SUCCESS             The data was copied from one memory region 
to another memory region.
-   @retval  EFI_INVALID_PARAMETER   Width is invalid for this PCI root bridge.
-   @retval  EFI_OUT_OF_RESOURCES    The request could not be completed due to 
a lack of resources.
+  Enables a PCI driver to copy one region of PCI root bridge memory space to
+  another region of PCI root bridge memory space.
 
+  The CopyMem() function enables a PCI driver to copy one region of PCI root
+  bridge memory space to another region of PCI root bridge memory space. This
+  is especially useful for video scroll operation on a memory mapped video
+  buffer.
+  The memory operations are carried out exactly as requested. The caller is
+  responsible for satisfying any alignment and memory width restrictions that a
+  PCI root bridge on a platform might require.
+
+  @param[in] This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL
+                         instance.
+
+  @param[in] Width       Signifies the width of the memory operations.
+
+  @param[in] DestAddress The destination address of the memory operation. The
+                         caller is responsible for aligning the DestAddress if
+                         required.
+
+  @param[in] SrcAddress  The source address of the memory operation. The caller
+                         is responsible for aligning the SrcAddress if
+                         required.
+
+  @param[in] Count       The number of memory operations to perform. Bytes
+                         moved is Width size * Count, starting at DestAddress
+                         and SrcAddress.
+
+  @retval  EFI_SUCCESS             The data was copied from one memory region
+                                   to another memory region.
+
+  @retval  EFI_INVALID_PARAMETER   Width is invalid for this PCI root bridge.
+
+  @retval  EFI_OUT_OF_RESOURCES    The request could not be completed due to a
+                                   lack of resources.
 **/
 EFI_STATUS
 EFIAPI
@@ -1608,27 +1934,39 @@ RootBridgeIoCopyMem (
 }
 
 /**
-   Enables a PCI driver to access PCI controller registers in a PCI root 
bridge's configuration space.
-
-   The Pci.Read() and Pci.Write() functions enable a driver to access PCI 
configuration
-   registers for a PCI controller.
-   The PCI Configuration operations are carried out exactly as requested. The 
caller is responsible for
-   any alignment and PCI configuration width issues that a PCI Root Bridge on 
a platform might
-   require.
-
-   @param[in]   This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in]   Width     Signifies the width of the memory operations.
-   @param[in]   Address   The address within the PCI configuration space for 
the PCI controller.
-   @param[in]   Count     The number of PCI configuration operations to 
perform. Bytes
-                          moved is Width size * Count, starting at Address.
-   @param[out]  Buffer    For read operations, the destination buffer to store 
the results. For
-                          write operations, the source buffer to write data 
from.
-   
-   @retval EFI_SUCCESS            The data was read from or written to the PCI 
root bridge.
-   @retval EFI_INVALID_PARAMETER  Width is invalid for this PCI root bridge.
-   @retval EFI_INVALID_PARAMETER  Buffer is NULL.
-   @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a 
lack of resources.
+  Enables a PCI driver to access PCI controller registers in a PCI root
+  bridge's configuration space.
 
+  The Pci.Read() and Pci.Write() functions enable a driver to access PCI
+  configuration registers for a PCI controller.
+  The PCI Configuration operations are carried out exactly as requested. The
+  caller is responsible for any alignment and PCI configuration width issues
+  that a PCI Root Bridge on a platform might require.
+
+  @param[in]   This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in]   Width     Signifies the width of the memory operations.
+
+  @param[in]   Address   The address within the PCI configuration space for the
+                         PCI controller.
+
+  @param[in]   Count     The number of PCI configuration operations to perform.
+                         Bytes moved is Width size * Count, starting at
+                         Address.
+
+  @param[out]  Buffer    For read operations, the destination buffer to store
+                         the results. For write operations, the source buffer
+                         to write data from.
+
+  @retval EFI_SUCCESS            The data was read from or written to the PCI
+                                 root bridge.
+
+  @retval EFI_INVALID_PARAMETER  Width is invalid for this PCI root bridge.
+
+  @retval EFI_INVALID_PARAMETER  Buffer is NULL.
+
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a
+                                 lack of resources.
 **/
 EFI_STATUS
 EFIAPI
@@ -1644,27 +1982,39 @@ RootBridgeIoPciRead (
 }
 
 /**
-   Enables a PCI driver to access PCI controller registers in a PCI root 
bridge's configuration space.
-
-   The Pci.Read() and Pci.Write() functions enable a driver to access PCI 
configuration
-   registers for a PCI controller.
-   The PCI Configuration operations are carried out exactly as requested. The 
caller is responsible for
-   any alignment and PCI configuration width issues that a PCI Root Bridge on 
a platform might
-   require.
-
-   @param[in]   This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in]   Width     Signifies the width of the memory operations.
-   @param[in]   Address   The address within the PCI configuration space for 
the PCI controller.
-   @param[in]   Count     The number of PCI configuration operations to 
perform. Bytes
-                          moved is Width size * Count, starting at Address.
-   @param[in]   Buffer    For read operations, the destination buffer to store 
the results. For
-                          write operations, the source buffer to write data 
from.
-   
-   @retval EFI_SUCCESS            The data was read from or written to the PCI 
root bridge.
-   @retval EFI_INVALID_PARAMETER  Width is invalid for this PCI root bridge.
-   @retval EFI_INVALID_PARAMETER  Buffer is NULL.
-   @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a 
lack of resources.
+  Enables a PCI driver to access PCI controller registers in a PCI root
+  bridge's configuration space.
 
+  The Pci.Read() and Pci.Write() functions enable a driver to access PCI
+  configuration registers for a PCI controller.
+  The PCI Configuration operations are carried out exactly as requested. The
+  caller is responsible for any alignment and PCI configuration width issues
+  that a PCI Root Bridge on a platform might require.
+
+  @param[in]   This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in]   Width     Signifies the width of the memory operations.
+
+  @param[in]   Address   The address within the PCI configuration space for the
+                         PCI controller.
+
+  @param[in]   Count     The number of PCI configuration operations to perform.
+                         Bytes moved is Width size * Count, starting at
+                         Address.
+
+  @param[in]   Buffer    For read operations, the destination buffer to store
+                         the results. For write operations, the source buffer
+                         to write data from.
+
+  @retval EFI_SUCCESS            The data was read from or written to the PCI
+                                 root bridge.
+
+  @retval EFI_INVALID_PARAMETER  Width is invalid for this PCI root bridge.
+
+  @retval EFI_INVALID_PARAMETER  Buffer is NULL.
+
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a
+                                 lack of resources.
 **/
 EFI_STATUS
 EFIAPI
@@ -1680,30 +2030,53 @@ RootBridgeIoPciWrite (
 }
 
 /**
-   Provides the PCI controller-specific addresses required to access system 
memory from a
-   DMA bus master.
-
-   The Map() function provides the PCI controller specific addresses needed to 
access system
-   memory. This function is used to map system memory for PCI bus master DMA 
accesses.
-
-   @param[in]       This            A pointer to the 
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in]       Operation       Indicates if the bus master is going to 
read or write to system memory.
-   @param[in]       HostAddress     The system memory address to map to the 
PCI controller.
-   @param[in, out]  NumberOfBytes   On input the number of bytes to map. On 
output the number of bytes that were mapped.
-   @param[out]      DeviceAddress   The resulting map address for the bus 
master PCI controller to use
-                                    to access the system memory's HostAddress.
-   @param[out]      Mapping         The value to pass to Unmap() when the bus 
master DMA operation is complete.
-   
-   @retval EFI_SUCCESS            The range was mapped for the returned 
NumberOfBytes.
-   @retval EFI_INVALID_PARAMETER  Operation is invalid.
-   @retval EFI_INVALID_PARAMETER  HostAddress is NULL.
-   @retval EFI_INVALID_PARAMETER  NumberOfBytes is NULL.
-   @retval EFI_INVALID_PARAMETER  DeviceAddress is NULL.
-   @retval EFI_INVALID_PARAMETER  Mapping is NULL.
-   @retval EFI_UNSUPPORTED        The HostAddress cannot be mapped as a common 
buffer.
-   @retval EFI_DEVICE_ERROR       The system hardware could not map the 
requested address.
-   @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a 
lack of resources.
+  Provides the PCI controller-specific addresses required to access system
+  memory from a DMA bus master.
 
+  The Map() function provides the PCI controller specific addresses needed to
+  access system memory. This function is used to map system memory for PCI bus
+  master DMA accesses.
+
+  @param[in]       This            A pointer to the
+                                   EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in]       Operation       Indicates if the bus master is going to read
+                                   or write to system memory.
+
+  @param[in]       HostAddress     The system memory address to map to the PCI
+                                   controller.
+
+  @param[in, out]  NumberOfBytes   On input the number of bytes to map. On
+                                   output the number of bytes that were mapped.
+
+  @param[out]      DeviceAddress   The resulting map address for the bus master
+                                   PCI controller to use to access the system
+                                   memory's HostAddress.
+
+  @param[out]      Mapping         The value to pass to Unmap() when the bus
+                                   master DMA operation is complete.
+
+  @retval EFI_SUCCESS            The range was mapped for the returned
+                                 NumberOfBytes.
+
+  @retval EFI_INVALID_PARAMETER  Operation is invalid.
+
+  @retval EFI_INVALID_PARAMETER  HostAddress is NULL.
+
+  @retval EFI_INVALID_PARAMETER  NumberOfBytes is NULL.
+
+  @retval EFI_INVALID_PARAMETER  DeviceAddress is NULL.
+
+  @retval EFI_INVALID_PARAMETER  Mapping is NULL.
+
+  @retval EFI_UNSUPPORTED        The HostAddress cannot be mapped as a common
+                                 buffer.
+
+  @retval EFI_DEVICE_ERROR       The system hardware could not map the
+                                 requested address.
+
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a
+                                 lack of resources.
 **/
 EFI_STATUS
 EFIAPI
@@ -1824,20 +2197,26 @@ RootBridgeIoMap (
 }
 
 /**
-   Completes the Map() operation and releases any corresponding resources.
+  Completes the Map() operation and releases any corresponding resources.
 
-   The Unmap() function completes the Map() operation and releases any 
corresponding resources.
-   If the operation was an EfiPciOperationBusMasterWrite or
-   EfiPciOperationBusMasterWrite64, the data is committed to the target system 
memory.
-   Any resources used for the mapping are freed.  
+  The Unmap() function completes the Map() operation and releases any
+  corresponding resources.
+  If the operation was an EfiPciOperationBusMasterWrite or
+  EfiPciOperationBusMasterWrite64, the data is committed to the target system
+  memory.
+  Any resources used for the mapping are freed.
 
-   @param[in] This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in] Mapping   The mapping value returned from Map().
-   
-   @retval EFI_SUCCESS            The range was unmapped.
-   @retval EFI_INVALID_PARAMETER  Mapping is not a value that was returned by 
Map().
-   @retval EFI_DEVICE_ERROR       The data was not committed to the target 
system memory.
+  @param[in] This      A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
 
+  @param[in] Mapping   The mapping value returned from Map().
+
+  @retval EFI_SUCCESS            The range was unmapped.
+
+  @retval EFI_INVALID_PARAMETER  Mapping is not a value that was returned by
+                                 Map().
+
+  @retval EFI_DEVICE_ERROR       The data was not committed to the target
+                                 system memory.
 **/
 EFI_STATUS
 EFIAPI
@@ -1881,25 +2260,39 @@ RootBridgeIoUnmap (
 }
 
 /**
-   Allocates pages that are suitable for an 
EfiPciOperationBusMasterCommonBuffer or
-   EfiPciOperationBusMasterCommonBuffer64 mapping.
-  
-   @param This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param Type        This parameter is not used and must be ignored.
-   @param MemoryType  The type of memory to allocate, EfiBootServicesData or 
EfiRuntimeServicesData.
-   @param Pages       The number of pages to allocate.
-   @param HostAddress A pointer to store the base system memory address of the 
allocated range.
-   @param Attributes  The requested bit mask of attributes for the allocated 
range. Only
-                      the attributes EFI_PCI_ATTRIBUTE_MEMORY_WRITE_COMBINE, 
EFI_PCI_ATTRIBUTE_MEMORY_CACHED, 
-                      and EFI_PCI_ATTRIBUTE_DUAL_ADDRESS_CYCLE may be used 
with this function.
-   
-   @retval EFI_SUCCESS            The requested memory pages were allocated.
-   @retval EFI_INVALID_PARAMETER  MemoryType is invalid.
-   @retval EFI_INVALID_PARAMETER  HostAddress is NULL.
-   @retval EFI_UNSUPPORTED        Attributes is unsupported. The only legal 
attribute bits are
-                                  MEMORY_WRITE_COMBINE, MEMORY_CACHED, and 
DUAL_ADDRESS_CYCLE.
-   @retval EFI_OUT_OF_RESOURCES   The memory pages could not be allocated.
+  Allocates pages that are suitable for an EfiPciOperationBusMasterCommonBuffer
+  or EfiPciOperationBusMasterCommonBuffer64 mapping.
 
+  @param This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param Type        This parameter is not used and must be ignored.
+
+  @param MemoryType  The type of memory to allocate, EfiBootServicesData or
+                     EfiRuntimeServicesData.
+
+  @param Pages       The number of pages to allocate.
+
+  @param HostAddress A pointer to store the base system memory address of the
+                     allocated range.
+
+  @param Attributes  The requested bit mask of attributes for the allocated
+                     range. Only the attributes
+                     EFI_PCI_ATTRIBUTE_MEMORY_WRITE_COMBINE,
+                     EFI_PCI_ATTRIBUTE_MEMORY_CACHED, and
+                     EFI_PCI_ATTRIBUTE_DUAL_ADDRESS_CYCLE may be used with this
+                     function.
+
+  @retval EFI_SUCCESS            The requested memory pages were allocated.
+
+  @retval EFI_INVALID_PARAMETER  MemoryType is invalid.
+
+  @retval EFI_INVALID_PARAMETER  HostAddress is NULL.
+
+  @retval EFI_UNSUPPORTED        Attributes is unsupported. The only legal
+                                 attribute bits are MEMORY_WRITE_COMBINE,
+                                 MEMORY_CACHED, and DUAL_ADDRESS_CYCLE.
+
+  @retval EFI_OUT_OF_RESOURCES   The memory pages could not be allocated.
 **/
 EFI_STATUS
 EFIAPI
@@ -1952,18 +2345,21 @@ RootBridgeIoAllocateBuffer (
 }
 
 /**
-   Frees memory that was allocated with AllocateBuffer().
+  Frees memory that was allocated with AllocateBuffer().
 
-   The FreeBuffer() function frees memory that was allocated with 
AllocateBuffer().
+  The FreeBuffer() function frees memory that was allocated with
+  AllocateBuffer().
 
-   @param This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param Pages       The number of pages to free.
-   @param HostAddress The base system memory address of the allocated range.
-   
-   @retval EFI_SUCCESS            The requested memory pages were freed.
-   @retval EFI_INVALID_PARAMETER  The memory range specified by HostAddress 
and Pages
-                                  was not allocated with AllocateBuffer().
+  @param This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
 
+  @param Pages       The number of pages to free.
+
+  @param HostAddress The base system memory address of the allocated range.
+
+  @retval EFI_SUCCESS            The requested memory pages were freed.
+
+  @retval EFI_INVALID_PARAMETER  The memory range specified by HostAddress and
+                                 Pages was not allocated with AllocateBuffer().
 **/
 EFI_STATUS
 EFIAPI
@@ -1977,23 +2373,26 @@ RootBridgeIoFreeBuffer (
 }
 
 /**
-   Flushes all PCI posted write transactions from a PCI host bridge to system 
memory.
+  Flushes all PCI posted write transactions from a PCI host bridge to system
+  memory.
 
-   The Flush() function flushes any PCI posted write transactions from a PCI 
host bridge to system
-   memory. Posted write transactions are generated by PCI bus masters when 
they perform write
-   transactions to target addresses in system memory.
-   This function does not flush posted write transactions from any PCI 
bridges. A PCI controller
-   specific action must be taken to guarantee that the posted write 
transactions have been flushed from
-   the PCI controller and from all the PCI bridges into the PCI host bridge. 
This is typically done with
-   a PCI read transaction from the PCI controller prior to calling Flush().
+  The Flush() function flushes any PCI posted write transactions from a PCI
+  host bridge to system memory. Posted write transactions are generated by PCI
+  bus masters when they perform write transactions to target addresses in
+  system memory.
+  This function does not flush posted write transactions from any PCI bridges.
+  A PCI controller specific action must be taken to guarantee that the posted
+  write transactions have been flushed from the PCI controller and from all the
+  PCI bridges into the PCI host bridge. This is typically done with a PCI read
+  transaction from the PCI controller prior to calling Flush().
 
-   @param This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   
-   @retval EFI_SUCCESS        The PCI posted write transactions were flushed 
from the PCI host
-                              bridge to system memory.
-   @retval EFI_DEVICE_ERROR   The PCI posted write transactions were not 
flushed from the PCI
-                              host bridge due to a hardware error.
+  @param This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
 
+  @retval EFI_SUCCESS        The PCI posted write transactions were flushed
+                             from the PCI host bridge to system memory.
+
+  @retval EFI_DEVICE_ERROR   The PCI posted write transactions were not flushed
+                             from the PCI host bridge due to a hardware error.
 **/
 EFI_STATUS
 EFIAPI
@@ -2008,24 +2407,29 @@ RootBridgeIoFlush (
 }
 
 /**
-   Gets the attributes that a PCI root bridge supports setting with 
SetAttributes(), and the
-   attributes that a PCI root bridge is currently using.  
+  Gets the attributes that a PCI root bridge supports setting with
+  SetAttributes(), and the attributes that a PCI root bridge is currently
+  using.
 
-   The GetAttributes() function returns the mask of attributes that this PCI 
root bridge supports
-   and the mask of attributes that the PCI root bridge is currently using.
+  The GetAttributes() function returns the mask of attributes that this PCI
+  root bridge supports and the mask of attributes that the PCI root bridge is
+  currently using.
 
-   @param This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param Supported   A pointer to the mask of attributes that this PCI root 
bridge
-                      supports setting with SetAttributes().
-   @param Attributes  A pointer to the mask of attributes that this PCI root 
bridge is
-                      currently using.
-   
-   @retval  EFI_SUCCESS           If Supports is not NULL, then the attributes 
that the PCI root
-                                  bridge supports is returned in Supports. If 
Attributes is
-                                  not NULL, then the attributes that the PCI 
root bridge is currently
-                                  using is returned in Attributes.
-   @retval  EFI_INVALID_PARAMETER Both Supports and Attributes are NULL.
+  @param This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
 
+  @param Supported   A pointer to the mask of attributes that this PCI root
+                     bridge supports setting with SetAttributes().
+
+  @param Attributes  A pointer to the mask of attributes that this PCI root
+                     bridge is currently using.
+
+  @retval  EFI_SUCCESS           If Supports is not NULL, then the attributes
+                                 that the PCI root bridge supports is returned
+                                 in Supports. If Attributes is not NULL, then
+                                 the attributes that the PCI root bridge is
+                                 currently using is returned in Attributes.
+
+  @retval  EFI_INVALID_PARAMETER Both Supports and Attributes are NULL.
 **/
 EFI_STATUS
 EFIAPI
@@ -2058,34 +2462,47 @@ RootBridgeIoGetAttributes (
 }
 
 /**
-   Sets attributes for a resource range on a PCI root bridge.
-
-   The SetAttributes() function sets the attributes specified in Attributes 
for the PCI root
-   bridge on the resource range specified by ResourceBase and ResourceLength. 
Since the
-   granularity of setting these attributes may vary from resource type to 
resource type, and from
-   platform to platform, the actual resource range and the one passed in by 
the caller may differ. As a
-   result, this function may set the attributes specified by Attributes on a 
larger resource range
-   than the caller requested. The actual range is returned in ResourceBase and
-   ResourceLength. The caller is responsible for verifying that the actual 
range for which the
-   attributes were set is acceptable.
-
-   @param[in]       This            A pointer to the 
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[in]       Attributes      The mask of attributes to set. If the 
attribute bit
-                                    MEMORY_WRITE_COMBINE, MEMORY_CACHED, or
-                                    MEMORY_DISABLE is set, then the resource 
range is specified by
-                                    ResourceBase and ResourceLength. If
-                                    MEMORY_WRITE_COMBINE, MEMORY_CACHED, and
-                                    MEMORY_DISABLE are not set, then 
ResourceBase and
-                                    ResourceLength are ignored, and may be 
NULL.
-   @param[in, out]  ResourceBase    A pointer to the base address of the 
resource range to be modified
-                                    by the attributes specified by Attributes.
-   @param[in, out]  ResourceLength  A pointer to the length of the resource 
range to be modified by the
-                                    attributes specified by Attributes.
-   
-   @retval  EFI_SUCCESS     The current configuration of this PCI root bridge 
was returned in Resources.
-   @retval  EFI_UNSUPPORTED The current configuration of this PCI root bridge 
could not be retrieved.
-   @retval  EFI_INVALID_PARAMETER Invalid pointer of 
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL
+  Sets attributes for a resource range on a PCI root bridge.
 
+  The SetAttributes() function sets the attributes specified in Attributes for
+  the PCI root bridge on the resource range specified by ResourceBase and
+  ResourceLength. Since the granularity of setting these attributes may vary
+  from resource type to resource type, and from platform to platform, the
+  actual resource range and the one passed in by the caller may differ. As a
+  result, this function may set the attributes specified by Attributes on a
+  larger resource range than the caller requested. The actual range is returned
+  in ResourceBase and ResourceLength. The caller is responsible for verifying
+  that the actual range for which the attributes were set is acceptable.
+
+  @param[in]       This            A pointer to the
+                                   EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
+
+  @param[in]       Attributes      The mask of attributes to set. If the
+                                   attribute bit MEMORY_WRITE_COMBINE,
+                                   MEMORY_CACHED, or MEMORY_DISABLE is set,
+                                   then the resource range is specified by
+                                   ResourceBase and ResourceLength. If
+                                   MEMORY_WRITE_COMBINE, MEMORY_CACHED, and
+                                   MEMORY_DISABLE are not set, then
+                                   ResourceBase and ResourceLength are ignored,
+                                   and may be NULL.
+
+  @param[in, out]  ResourceBase    A pointer to the base address of the
+                                   resource range to be modified by the
+                                   attributes specified by Attributes.
+
+  @param[in, out]  ResourceLength  A pointer to the length of the resource
+                                   range to be modified by the attributes
+                                   specified by Attributes.
+
+  @retval  EFI_SUCCESS     The current configuration of this PCI root bridge
+                           was returned in Resources.
+
+  @retval  EFI_UNSUPPORTED The current configuration of this PCI root bridge
+                           could not be retrieved.
+
+  @retval  EFI_INVALID_PARAMETER Invalid pointer of
+                                 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL
 **/
 EFI_STATUS
 EFIAPI
@@ -2120,27 +2537,35 @@ RootBridgeIoSetAttributes (
 }
 
 /**
-   Retrieves the current resource settings of this PCI root bridge in the form 
of a set of ACPI 2.0
-   resource descriptors.
+  Retrieves the current resource settings of this PCI root bridge in the form
+  of a set of ACPI 2.0 resource descriptors.
 
-   There are only two resource descriptor types from the ACPI Specification 
that may be used to
-   describe the current resources allocated to a PCI root bridge. These are 
the QWORD Address
-   Space Descriptor (ACPI 2.0 Section 6.4.3.5.1), and the End Tag (ACPI 2.0 
Section 6.4.2.8). The
-   QWORD Address Space Descriptor can describe memory, I/O, and bus number 
ranges for dynamic
-   or fixed resources. The configuration of a PCI root bridge is described 
with one or more QWORD
-   Address Space Descriptors followed by an End Tag.
+  There are only two resource descriptor types from the ACPI Specification that
+  may be used to describe the current resources allocated to a PCI root bridge.
+  These are the QWORD Address Space Descriptor (ACPI 2.0 Section 6.4.3.5.1),
+  and the End Tag (ACPI 2.0 Section 6.4.2.8). The QWORD Address Space
+  Descriptor can describe memory, I/O, and bus number ranges for dynamic or
+  fixed resources. The configuration of a PCI root bridge is described with one
+  or more QWORD Address Space Descriptors followed by an End Tag.
 
-   @param[in]   This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
-   @param[out]  Resources   A pointer to the ACPI 2.0 resource descriptors 
that describe the
-                            current configuration of this PCI root bridge. The 
storage for the
-                            ACPI 2.0 resource descriptors is allocated by this 
function. The
-                            caller must treat the return buffer as read-only 
data, and the buffer
-                            must not be freed by the caller.
-   
-   @retval  EFI_SUCCESS     The current configuration of this PCI root bridge 
was returned in Resources.
-   @retval  EFI_UNSUPPORTED The current configuration of this PCI root bridge 
could not be retrieved.
-   @retval  EFI_INVALID_PARAMETER Invalid pointer of 
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL
+  @param[in]   This        A pointer to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
 
+  @param[out]  Resources   A pointer to the ACPI 2.0 resource descriptors that
+                           describe the current configuration of this PCI root
+                           bridge. The storage for the ACPI 2.0 resource
+                           descriptors is allocated by this function. The
+                           caller must treat the return buffer as read-only
+                           data, and the buffer must not be freed by the
+                           caller.
+
+  @retval  EFI_SUCCESS     The current configuration of this PCI root bridge
+                           was returned in Resources.
+
+  @retval  EFI_UNSUPPORTED The current configuration of this PCI root bridge
+                           could not be retrieved.
+
+  @retval  EFI_INVALID_PARAMETER Invalid pointer of
+                                 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL
 **/
 EFI_STATUS
 EFIAPI
-- 
1.8.3.1



------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to