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 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 or
EfiPciOperationBusMasterRead64.
• 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 EfiPciOperationBusMasterCommonBuffer or
EfiPciOperationBusMasterCommonBuffer64.
• 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()
.