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

Page 441

Advertising
background image

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.

Advertising