Efi_pci_root_bridge_io_protocol.flush(), Flush(), Func – Intel Extensible Firmware Interface User Manual

Page 452

Advertising
background image

Extensible Firmware Interface Specification

12-34

12/01/02

Version 1.10

EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.Flush()

Summary

Flushes all PCI posted write transactions from a PCI host bridge to system memory.

Prototype

typedef
EFI_STATUS
(EFIAPI *EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_FLUSH) (
IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL

*This

);

Parameters

This

A pointer to the

EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL

.

Type

EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL

is defined in

Section 12.2.1.

Description

The

Flush()

function flushes any PCI posted write transactions from a PCI host bridge to system

memory. Posted write transactions are generated by PCI bus masters when they perform write
transactions to target addresses in system memory.

This function does not flush posted write transactions from any PCI bridges. A PCI controller
specific action must be taken to guarantee that the posted write transactions have been flushed from
the PCI controller and from all the PCI bridges into the PCI host bridge. This is typically done with
a PCI read transaction from the PCI controller prior to calling

Flush()

.

If the PCI controller specific action required to flush the PCI posted write transactions has been
performed, and this function returns

EFI_SUCCESS

, then the PCI bus master’s view and the

processor’s view of system memory are guaranteed to be coherent. If the PCI posted write
transactions cannot be flushed from the PCI host bridge, then the PCI bus master and processor are
not guaranteed to have a coherent view of system memory, and

EFI_DEVICE_ERROR

is returned.

Status Codes Returned

EFI_SUCCESS

The PCI posted write transactions were flushed from the PCI host
bridge to system memory.

EFI_DEVICE_ERROR

The PCI posted write transactions were not flushed from the PCI
host bridge due to a hardware error.

Advertising