Description, Status codes returned – Intel Extensible Firmware Interface User Manual

Page 437

Advertising
background image

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.

Advertising