Description, Status codes returned – Intel Extensible Firmware Interface User Manual
Page 437
Protocols
— PCI Bus Support
Version 1.10
12/01/02
12-19
Description
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
.
This function will always perform at least one I/O access no matter how small
Delay
may be. If
Delay
is zero, then
Result
will be returned with a status of
EFI_SUCCESS
even if
Result
does not match the exit criteria. If
Delay
expires, then
EFI_TIMEOUT
is returned.
If
Width
is not
EfiPciWidthUint8
,
EfiPciWidthUint16
,
EfiPciWidthUint32
, or
EfiPciWidthUint64
, then
EFI_INVALID_PARAMETER
is returned.
The I/O operations are carried out exactly as requested. The caller is responsible satisfying any
alignment and I/O width restrictions that the PCI Root Bridge on a platform might require. For
example on some platforms, width requests of
EfiPciWidthUint64
do not work.
All the PCI transactions generated by this function are guaranteed to be completed before this
function returns.
Status Codes Returned
EFI_SUCCESS
The last data returned from the access matched the poll exit criteria.
EFI_INVALID_PARAMETER
Width
is invalid.
EFI_INVALID_PARAMETER
Result
is
NULL
.
EFI_TIMEOUT
Delay
expired before a match occurred.
EFI_OUT_OF_RESOURCES
The request could not be completed due to a lack of resources.