Intel Extensible Firmware Interface Network Router User Manual


  Open as PDF
of 1084
 
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.