DS271PP3
87
CS8900A
Crystal LAN™ ISA Ethernet Controller
CIRRUS LOGIC PRODUCT DATA SHEET
0120h) to assess the status of the receive frame
and sees the contents of the RxEvent register
(Register 4) with the RxOK bit (Bit 8) set.
3) The host reads the receive frame’s length from
the RxLength register (PacketPage base +
0402h).
4) The host reads the frame data by executing 32
consecutive MOV instructions starting with
PacketPage base + 0404h.
The memory map of the 64-byte frame is given in
Table 23.
5.2.9 Receive Frame Byte Counter
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 CS8900A. Maxi-
mum Ethernet throughput can be achieved by using
I/O or memory modes, and by dedicating the CPU
to reading this counter, and using the count to read
the frame out of the CS8900A at the same time it is
being received by the CS8900A from the Ethernet
(parallel frame-reception and frame-read-out
tasks).
The byte count register resides at PacketPage base
+ 50h.
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
the incoming character counter. The byte
counter will have an even value prior to the end
of the frame.
2) At the end of the frame, the final count, includ-
ing the allowance for the CRC (if the Buffer-
CRC option is enabled), is held until the byte
counter is read.
3) When a read of the byte counter returns a count
of zero, the previous count was the final count.
The count may now have an odd value.
4) RxEvent should be read to obtain a final status
of the frame, followed by a Skip command to
complete the operation.
Note that all RxEvent’s should be processed before
using the byte counter. The byte counter should be
used following a BufEvent when RxDest or Rx128
interrupts are enabled.
5.3 Receive Frame Address Filtering
The CS8900A is equipped with a Destination Ad-
dress (DA) filter used to determine which receive
frames will be accepted. (A receive frame is said to
be "accepted" by the CS8900A when the frame
data are placed in either on-chip memory, or in host
Memory Space
Word Offset
Description of Data Stored in On-
chip RAM
0400h
RxStatus Register (the host may
skip reading 0400h since RxEvent
was read from the ISQ.)
0402h
RxLength Register (In this example,
the length is 40h bytes. The frame
starts at 0404h, and runs through
0443h.)
0404h to 0409h 6-byte Source Address.
040Ah to 040Fh 6-byte Destination Address.
0410h to 011h
2-byte Length or Type Field.
0412h to 043Fh 46 bytes of data.
0440h
CRC, bytes 1 and 2
0442h
CRC, bytes 3 and 4
Table 23. Example Memory Map
Содержание Crystal LAN CS8900A
Страница 127: ... Notes ...