Am79C965A
57
Descriptor DMA Transfers
PCnet-32 controller will determine when a descriptor
access is required. A descriptor DMA read will consist
of two double-word transfers. A descriptor DMA write
will consist of one
or
two double word transfer. The
transfers within a descriptor DMA transfer mastership
period will always be of the same type (either all read
or all write). The transfers will be to addresses in the
order as specified in Table 19 and Table 20 (note that
MD indicates TMD or RMD).
If buffer chaining is used (see Transmit and Receive
Descriptor Table Entry sections), writes to the
descriptors that do
not
contain the End of Packet bit will
consist of only one double-word. This write will be to
the same location as the second of the two writes
performed when the End of Frame has been processed
(i.e. to the location that contains the descriptor
OWNership bit, MD1[31]).
Descriptor DMA transfers will never be executed using
linear burst mode. During read accesses, the byte
enable signals will indicate that all byte lanes are
active. Should some of the bytes not be needed, then
the PCnet-32 controller will internally discard the
extraneous information that was gathered during such
a read. During write accesses, only the bytes which
need to be written are enabled, by activating the
corresponding byte enable pins. See Figure 9 and
Figure 10.
If a bus preemption event occurs during a descriptor
DMA transfer, then the PCnet-32 controller will com-
plete both of the two data transfer cycles of the descrip-
tor DMA transfer, before releasing the HOLD signal and
relinquishing the bus.
The only significant differences between descriptor
DMA transfers and initialization DMA transfers are that
the addresses of the accesses follow different ordering.
Table 19. Bus Master Reads of Descriptors
Table 20. Bus Master Writes of Descriptors
* Address values for A[31:8] are constant throughout any single descriptor DMA transfer. Note that even though bits
A{1:0] do not physically exist in the system, these bits must be set to ZERO in the descriptor base address.
16-Bit Software Mode
32-Bit Software Mode
Address
SequenceA[7:0]
LANCE
Item Accessed
PCnet-32
Item Accessed
Address
SequenceA[7:0]*
LANCE
Item Accessed
PCnet-32
Item Accessed
00
MD1[15:0],
MD0[15:0]
MD1[31:24],
MD0[23:0]
04
MD1[15:8],
MD2[15:0]
MD1[31:0]
04
MD3[15:0],
MD2[15:0]
MD2[15:0],
MD1[15:0]
00
MD1[7:0],
MD0[15:0]
MD0[31:0]
Bus Break
Bus Break
16-Bit Software Mode
32-Bit Software Mode
Address
SequenceA[7:0]
LANCE
Item Accessed
PCnet-32
Item
Accessed
Address
SequenceA[7:0]*
LANCE
Item Accessed
PCnet-32
Item Accessed
04
MD3[15:0],
MD2[15:0]
MD2[15:0],
MD1[15:0]
08
MD3[15:0],
MD2[15:0]
MD2[31:0]
00
MD1[15:0],
MD0[15:0]
MD1[31:24],
MD0[23:0]
04
MD1[15:8],
MD2[15:0]
MD1[31:0]
Bus Break
Bus Break