beautypg.com

4 master interface block, 1 dma interface, Master interface block 9.4.1 – Intel NETWORK PROCESSOR IXP2800 User Manual

Page 340: Dma interface

background image

340

Hardware Reference Manual

Intel

®

IXP2800 Network Processor

PCI Unit

9.4

Master Interface Block

The Master Interface consists of the DMA engine and the Push/pull target interface. Both can

generate initiator PCI transactions.

9.4.1

DMA Interface

There are two DMA channels, each of which can move blocks of data from DRAM to the PCI or

from the PCI to DRAM. The DMA channels read parameters from a list of descriptors in SRAM,
perform the data movement to or from DRAM, and stop when the list is exhausted. The descriptors

are loaded from predefined SRAM entries or may be set directly by CSR writes to DMA registers.

There is no restriction on byte alignment of the source address or the destination address. For PCI
to DRAM transfers, the PCI command is Memory Read, Memory Read line, or Memory Read

Multiple. For DRAM to PCI transfers, the PCI command is Memory Write. Memory Write

Invalidate is not supported.

DMA reads are unmasked reads (all byte enables asserted) from DRAM. After each transfer, the
byte count is decremented by the number of bytes read, and the source address is incremental by

one 64-bit double Dword. The whole data block is fetched from the DRAM. For a system using

RDRAM (like the IXP2800 Network Processor), the block size is 16 bytes.

DMA reads are masked reads from the PCI and writes are masked for both the PCI and DRAM.
When moving a block of data, the internal hardware adjusts the byte enables so that the data is

aligned properly on block boundaries and that only the correct bytes are transferred if the initial

and final data requires masking.

For DMA data, the DMA FIFO consists of two separate FBus initiator read FIFOs and two initiator
write FIFOs, which are inside the PCI Core and three DMA buffers (corresponding to the DMA

channels), which buffer data to and from the DRAM. Since there is no simultaneous DMA read and

write outstanding, one shared 64-byte buffer is used for both read and write DRAM data

Up to two DMA channels are running at a time with three descriptors outstanding. The two DMA
channels and the direct access channel to PCI Bus from Command Bus Master are contending to

use the address, read and write FIFOs inside the Core.

Effectively, the active channels interleave bursts to or from the PCI Bus. Each channel is required
to arbitrate for the PCI FIFOs after each PCI burst request.