
IBM3206K0424
Preliminary
IBM Processor for Network Resources
pnr25.chapt04.01
August 14, 2000
DMA QUEUES (DMAQS)
Page 155 of 676
DMA Types and Options
The DMA descriptor is very versatile and can perform many actions. The following list shows some examples 
and possible flags to use. Other combinations are possible: see 
GPDMA Transfer Count and Flag Register
on page 179.
Note:  
These are not the only options. Some of the above can be ORed 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.
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 IBM3206K0424 memory.
0010
Move the IBM3206K0424 memory to system memory.
0012
Move a single IBM3206K0424 register to system memory.
0013
Move IBM3206K0424 memory to system memory and free buffer. Upon DMA completion, the source address is 
used to free the IBM3206K0424 buffer. 
0017
Auto-increment source address and move IBM3206K0424 memory to system memory and free buffer. Upon DMA 
completion, the source address is used to free the IBM3206K0424 buffer.
0002
Move single IBM3206K0424 register to IBM3206K0424 memory.
0020
Move IBM3206K0424 Memory to single IBM3206K0424 register.
0021
Move system Memory to single IBM3206K0424 register.
0031
Move system memory to a new IBM3206K0424 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 IBM3206K0424 register to destination address of the next descriptor. Allows a get buffer operation in 
descriptor chain. See the 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 where 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 the free buff flags for better option.
0040
Auto-increment the destination address. The destination address picks up where it left off from the previous DMA 
descriptor. One use is transmit scatter into an IBM3206K0424 virtual buffer.
2200
Hold the destination address. Useful for freeing a scatter DMA list, or doing a repetitive write to an IBM3206K0424 
register.
1200
Hold the source address. Useful for doing a repetitive read from an IBM3206K0424 register.