beautypg.com

Intel Extensible Firmware Interface User Manual

Page 482

background image

Extensible Firmware Interface Specification

12-64

12/01/02

Version 1.10

DMA Bus Master Read Operation
• Call

Map()

for

EfiPciIoOperationBusMasterRead

.

• Program the DMA Bus Master with the

DeviceAddress

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

.

• Program the DMA Bus Master with the

DeviceAddress

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

EfiPciIoOperationBusMasterCommonBuffer

.

• Program the DMA Bus Master with the

DeviceAddress

returned by

Map()

.

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

Call

Unmap()

.

Call

FreeBuffer()

.