5 committing buffer space to a dmaed frame, 6 dma buffer organization, 7 rxdmaframe bit – Cirrus Logic CS8900A User Manual
Page 92: Table 28. rxdmaframe bit, 8 receive dma example without wrap-around, 9 receive dma operation for rxdma- only mode, Cs8900a

92
DS271F5
CS8900A
Crystal LAN™ Ethernet Controller
CIRRUS LOGIC PRODUCT DATASHEET
Note that when in DMA mode, reading the con-
tents of the RxEvent register will return 0000h.
Status information should be obtained from
the DMA buffer.
5.3.5 Committing Buffer Space to a
DMAed Frame
Although a receive frame may occupy space in
the host memory's circular DMA buffer, the
CS8900A's Memory Manager does not com-
mit the buffer space to the receive frame until
the entire frame has been transferred and the
host learns of the frame's existence by reading
the Frame Count register (PacketPage base +
0028h).
When the CS8900A commits DMA buffer
space to a particular DMAed receive frame
(termed a committed received frame), no data
from subsequent frames can be written to that
buffer space until the committed received
frame is freed from commitment. (The commit-
ted received frame may or may not have been
received error free.)
A committed DMAed receive frame is freed
from commitment by any one of the following
conditions:
1) The host rereads the DMA Frame Count
register (PacketPage base + 0028h).
2) New frames have been transferred via
DMA, and the host reads the BufEvent reg-
ister (either directly or from the ISQ) and
sees that the RxDMAFrame bit is set (this
condition is termed an "implied Skip").
3) The host issues a Reset-DMA command
by setting the ResetRxDMA bit (Register
17, BusCTL, Bit 6).
5.3.6 DMA Buffer Organization
When DMA is used to transfer receive frames,
the DMA Start-of-Frame register (PacketPage
Base + 0026h) defines the offset from the
DMA base to the start of the most recently
transferred received frame. Frames stored in
the DMA buffer are transferred as words and
maintain double-word (32-bit) alignment. Un-
filled memory space between successive
frames stored in the DMA buffer may result
from double-word alignment. These "holes"
may be 1, 2, or 3 bytes, depending on the
length of the frame preceding the hole.
5.3.7 RxDMAFrame Bit
The RxDMAFrame bit (Register C, BufEvent,
bit 7) is controlled by the CS8900A and is set
whenever the value in the DMA Frame Count
register is non-zero. The host cannot clear Rx-
DMAFrame by reading the BufEvent register
(Register C). Table 28 summarizes the criteria
used to set and clear RxDMAFrame.
5.3.8 Receive DMA Example Without
Wrap-Around
Figure 24 shows three frames stored in host
memory by DMA without wrap-around.
5.3.9 Receive DMA Operation for RxDMA-
Only Mode
In an RxDMAOnly mode, a system DMA
moves all the received frames from the on-
chip memory to an external 16- or 64-Kbyte
buffer memory. The received frame must have
passed the destination address filter, and must
Non-Stream
Transfer Mode
Stream Transfer
Mode (see
To set RxD-
MAFrame
The RxDMAFrame
bit is set whenever
the DMA Frame
Count register
(PacketPage base +
0028h) transitions to
non-zero.
The RxDMAFrame
bit is set at the end
of a Stream Transfer
cycle.
To Clear
RxDMA-
Frame
The DMA Frame
Count is zero.
The DMA Frame
Count is zero.
Table 28. RxDMAFrame Bit