
IBM2520L8767
IBM Processor for ATM Resources
atmrm.chapt04.01
08/27/99
DMA QUEUES (DMAQS)
Page 113 of 553
DMA Types/Options
The DMA descriptor is very versatile, and can perform many actions. The following list shows some examples
and possible flags to use (other combos are possible, see ®dmcntn.):
Note:
These are not the only options. Some of the above can be OR’d together also.
Using the above, you can efficiently do TCP checksumming, place user events in receive queues, do register
reads/writes, free buffers, and get buffers. Be creative.
DMA Types and Flags
Hex Flags
DMA Operation
3000
Clear the current TCP checksum and include this DMA in the TCP checksum.
1000
Include this DMA in the TCP checksum and use previous checksum as seed.
0800
This DMA transfer is done in Little Endian mode.
0400
Upon completion of this DMA descriptor, the destination address from this descriptor is used as a packet address
to be enqueued to transmit.
0100
Queue a DMA complete event when DMA is complete.
0080
Status in the status register is inhibited for this descriptor. This can be useful if ints/polling are being used to track
when a particular DMA is complete.
0001
Move system memory to the IBM2520L8767 memory.
0010
Move the IBM2520L8767 memory to system memory.
0012
Move a single IBM2520L8767 register to system memory.
0013
Move IBM2520L8767 memory to system memory and free buffer. Upon DMA completion, the source address is
used to free the IBM2520L8767 buffer as a get POOL ID.
0017
Auto-increment source address and move IBM2520L8767 memory to system memory and free buffer. Upon DMA
completion, the source address is used to free the IBM2520L8767 buffer as a get POOL ID.
0002
Move single IBM2520L8767 register to IBM2520L8767 memory.
0020
Move IBM2520L8767 Memory to single IBM2520L8767 register.
0021
Move system Memory to single IBM2520L8767 register.
0031
Move system memory to a new IBM2520L8767 buffer. A get buffer operation will be done to fill in the destination
address using the low four bits of the destination address as a get pool ID.
0050
Move something to source address of next descriptor. Allows indirection.
0062
Move single IBM2520L8767 register to destination address of next descriptor. Allows a get buffer operation in
descriptor chain. (see get buff flag for a better option)
0008
Use source address as immediate data. Allows up to four bytes of immediate data in the DMA descriptor.
0004
Auto-increment the source address. The source address picks up right were it left off from the previous DMA
descriptor.
000C
Auto-increment the source address and use as immediate data. One use is to free a packet after DMAing data.
(see free buff flags for better option)
0040
Auto-increment the destination address. The destination address picks up right were it left off from the previous
DMA descriptor. One use is transmit scatter into an IBM2520L8767 virtual buffer.
2200
Hold the destination address. Useful for freeing a scatter DMA list, or doing a repetitive write to an IBM2520L8767
register.
1200
Hold the source address. Useful for doing a repetitive read from an IBM2520L8767 register.