cs89712 Cirrus Logic, Inc., cs89712 Datasheet - Page 60

no-image

cs89712

Manufacturer Part Number
cs89712
Description
High-performance, Low-power System-on-chip With 10base-t Ethernet Controller
Manufacturer
Cirrus Logic, Inc.
Datasheet
the RxStatus register, and its length can be read
from the RxLength register.
2.32.6
The receive frame byte counter describes the num-
ber of bytes received for the current frame. The
counter is incremented in real time as bytes are re-
ceived from the Ethernet. The byte counter can be
used by the driver to determine how many bytes are
available for reading out of the Ethernet port. Max-
imum Ethernet throughput can be achieved by ded-
icating the CPU to reading this counter, and using
the count to read the frame out of the Ethernet port
at the same time it is being received by the
CS89712 from the Ethernet (parallel frame-recep-
tion and frame-read-out tasks).
Following an RxDest or Rx128 interrupt the regis-
ter contains the number of bytes which are avail-
able to be read by the CPU. When the end of frame
is reached, the count contains the final count value
for the frame, including the allowance for the Buff-
erCRC option. When this final count is read by the
CPU the count register is set to zero. Therefore to
read a complete frame using the byte count register,
the register can be read and the data moved until a
count of zero is detected. Then the RxEvent regis-
ter can be read to determine the final frame status.
The sequence is as follows:
1) At the start of a frame, the byte counter matches
2) At the end of the frame, the final count, includ-
3) When a read of the byte counter returns a count
4) RxEvent should be read to obtain a final status
60
the incoming character counter. The byte
counter will have an even value prior to the end
of the frame.
ing the allowance for the CRC (if the Buffer-
CRC option is enabled), is held until the byte
counter is read.
of zero, the previous count was the final count.
The count may now have an odd value.
Receive Frame Byte Counter
Note that all RxEvents should be processed before
using the byte counter. The byte counter should be
used following a BufEvent when RxDest or Rx128
interrupts are enabled.
2.32.7 Receive Ethernet Port Locations
The receive status/length/frame locations are read
through repetitive reads from one Ethernet port at
the I/O base address.
Random access is not needed. However, the first
118 bytes of the receive frame can be accessed ran-
domly if word reads, on even word boundaries, are
used. Beyond 118 bytes, the memory reads must be
sequential. Byte reads, or reads on odd-word
boundaries, can be performed only in sequential
read mode.
The RxStatus word reports the status of the current
received frame. RxEvent has the same contents as
the RxStatus register, except RxEvent is cleared
when read.
The RxLength (receive length) word is the length,
in bytes, of the data to be transferred to the host
RAM. The register describes the length from the
start of Destination Address to the end of CRC, as-
suming that CRC has been selected (via RxCFG
register bit BufferCRC). If CRC has not been se-
lected, then the length does not include the CRC,
and the CRC is not present in the receive buffer.
After the RxLength has been read, the receive
frame can be read. When some portion of the frame
is read, the entire frame should be read before read-
ing the RxEvent register either directly or through
the ISQ register. Reading the RxEvent register sig-
nals to the Ethernet port that the software is fin-
ished with the current frame, and wants to start
processing the next frame. In this case, the current
frame will no longer be accessible. The current
frame will also become inaccessible if a Skip com-
of the frame, followed by a Skip command to
complete the operation.
CS89712
DS502PP2

Related parts for cs89712