beautypg.com

Intel Extensible Firmware Interface User Manual

Page 433

background image

Protocols

— PCI Bus Support

Version 1.10

12/01/02

12-15

DMA Bus Master Read Operation

• Call

Map()

for

EfiPciOperationBusMasterRead

or

EfiPciOperationBusMasterRead64

.

• Program the DMA Bus Master with the

DeviceAddres

s

returned by

Map()

.

• Start the DMA Bus Master.
• Wait for DMA Bus Master to complete the read operation.
• Call

Unmap()

.

DMA Bus Master Write Operation

• Call

Map()

for

EfiPciOperationBusMasterWrite

or

EfiPciOperationBusMasterRead64

.

• Program the DMA Bus Master with the

DeviceAddres

s

returned by

Map()

.

• Start the DMA Bus Master.
• Wait for DMA Bus Master to complete the write operation.

• Perform a PCI controller specific read transaction to flush all PCI write buffers (See PCI

Specification Section 3.2.5.2) .

• Call

Flush()

.

• Call

Unmap()

.

DMA Bus Master Common Buffer Operation

• Call

AllocateBuffer()

to allocate a common buffer.

• Call

Map()

for

EfiPciOperationBusMasterCommonBuffer

or

EfiPciOperationBusMasterCommonBuffer64

.

• Program the DMA Bus Master with the

DeviceAddres

s

returned by

Map()

.

• The common buffer can now be accessed equally by the processor and the DMA bus master.
• Call

Unmap()

.

• Call

FreeBuffer()

.