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()
.