Figure 26. conditions for switching to dma, 4 dma channel speed vs. missed frames, Cs8900a – Cirrus Logic CS8900A User Manual
Page 95

DS271F5
95
CS8900A
Crystal LAN™ Ethernet Controller
CIRRUS LOGIC PRODUCT DATASHEET
ered as normal. If there isn't, the CS8900A's
MAC engine compares the frame's Destina-
tion Address (DA) to the criteria programmed
into the DA filter. If the incoming DA fails the
DA filter, the frame is discarded. If the DA
passes the DA filter, the CS8900A automati-
cally switches to DMA mode and starts trans-
ferring the frame(s) currently being held in the
on-chip buffer into host memory. This frees up
buffer space for the incoming frame.
Figure 26 shows the steps the CS8900A goes
through in determining when to automatically
switch to DMA.
Whenever the CS8900A automatically enters
DMA, at least one complete frame is already
stored in the on-chip buffer. Because frames
are transferred to the host in the same order as
received (first in, first out), the beginning of the
received frame that triggered the switch to
DMA is not the first frame to be transferred. In-
stead, the oldest noncommitted frame in the
on-chip buffer is the first frame to use DMA.
When DMA begins, any pending RxEvent re-
ports in the Interrupt Status Queue are dis-
carded because the host cannot process
those events until the corresponding frames
have been completely DMAed.
Auto-Switch DMA works only on entire re-
ceived frames. The CS8900A does not use
Auto-Switch DMA to transfer partial frames.
Also, when a frame has been committed (see
Section 5.2.5 on page 85), the CS8900A will
not switch to DMA mode until the committed
frame has been transferred completely or
skipped.
After a complete frame has been moved to
host memory, the CS8900A updates the DMA
Start-of-Frame register (PacketPage base +
0126h), the DMA Frame Count register (Pack-
etPage base + 0128h), and the DMA Byte
Count register, then sets the RxDMAFrame bit
(Register C, BufEvent, bit 7). If RxDMAiE
(Register B, BufCFG, bit 7) is set, a corre-
sponding interrupt occurs.
5.4.4 DMA Channel Speed vs. Missed
Frames
When the CS8900A starts DMA, the entire old-
est, noncommitted frame must be placed in
host memory before on-chip buffer space will
be freed for the next incoming frame. If the old-
est frame is relatively large, and the next in-
All Frames
use DMA
Yes
Yes
No
No
Yes
No
No
Yes
Frame
Discarded
Frame Buffered
in On-chip RAM
Auto-Switch
DMA Disabled
Packet Received
Auto-Switch to DMA
Frame
Passed the
DA filter?
RxDMA only
Bit=1
More
Buffer Space
Available?
AutoRxDMA
Bit=1?
Figure 26. Conditions for Switching to DMA