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

Protocols
— PCI Bus Support
Version 1.10
12/01/02
12-23
Description
The
Io.Read()
, and
Io.Write()
functions enable a driver to access PCI controller registers in
the PCI root bridge I/O space.
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 PCI root bridge on a platform might require. For
example on some platforms, width requests of
EfiPciWidthUint64
do not work.
If
Width
is
EfiPciWidthUint8
,
EfiPciWidthUint16
,
EfiPciWidthUint32
, or
EfiPciWidthUint64
, then both
Address
and
Buffer
are incremented for each of the
Count
operations performed.
If
Width
is
EfiPciWidthFifoUint8
,
EfiPciWidthFifoUint16
,
EfiPciWidthFifoUint32
, or
EfiPciWidthFifoUint64
, then only
Buffer
is
incremented for each of the
Count
operations performed. The read or write operation is
performed
Count
times on the same
Address
.
If
Width
is
EfiPciWidthFillUint8
,
EfiPciWidthFillUint16
,
EfiPciWidthFillUint32
, or
EfiPciWidthFillUint64
, then only
Address
is
incremented for each of the
Count
operations performed. The read or write operation is
performed
Count
times from the first element of
Buffer
.
All the PCI transactions generated by this function are guaranteed to be completed before this
function returns.
Status Codes Returned
EFI_SUCCESS
The data was read from or written to the PCI root bridge
.
EFI_INVALID_PARAMETER
Width
is invalid for this PCI root bridge.
EFI_INVALID_PARAMETER
Buffer
is
NULL
.
EFI_OUT_OF_RESOURCES
The request could not be completed due to a lack of resources.