Datasheet

320
3.3.4 General-Receive FIFO (GRF)
Access to the GRF is done with a read from the GRF, which requires a read from address C0h.
Read from the GRF can be done in burst mode. Before reading the GRF, check whether the RxDta interrupt
is set, which indicates data stored in GRF is ready to read. The GRF status register may also be read and
the cd bit checked if it is 1 and the write count is greater than 0. The cd bit is equal to 1 means the packet
token is on top of GRF. The whole block of data contains one packet token followed by received quadlets
equal to the write count.
When packet token is read, it has the following format:
Bit 06 reserved
Bit 710 ackSnpd. When snoop mode is enabled, this field indicates the acknowledge seen on
the bus after the packet is received. If snoop mode is disabled, ackSnpd contains 4b0.
Bit 11 PacComp same value as in the GRF status register when cd bit is 1. PacComp means
packet complete. If PacComp is 1, this block is the last block of this packet or this block contains
the whole receive packet.
Bit 12 EnSp ( bit0 of diagnostic register). If EnSp is 1, GRF contains snooped packets which
includes asynchronous packets and isochronous packets. When snoop mode is enabled, all
header and data CRC quadlets are stored in the GRF.
Bit 1314 RcvPktSpd receive packet speed
00 100 Mbits/s
01 200 Mbits/s
10 400 Mbits/s
Bit 1523 WriteCount quadlet count in this block excluding packet token. WriteCount is the
same number shown in GRF status register when cd bit is 1.
Bit 2427 Tcode received packet tcode. For received self-ID packets, phy configuration and
Linkon packets, the Tcode field contains 4b1110 to indicate these special packets.
Bit 2831 Ack Ack code sent to the transmit node for this packet when PacComp = 1. If
PacComp = 0, this field is dont care. If EnSp is 1( snoop mode is enabled), this field indicates
whether the entire packet snooped was correctly. For received PHY configuration and Linkon
packets, this field is 4b0000.
If trigger size function is enabled, RxDta interrupt triggers whenever each block in GRF is available for read
for the same long received packet. To enable trigger size, TrgEn of control register should set to 1 , FhBad
of control register should be cleared to 0 and trigger size of FIFO control register should be set to greater
than 5. Therefore, the trigger size function does not apply to receive self-ID packets, PHY configuration
packets, link-on packets, or quadlet read or write packets.
As an example, if a read response for data block packet is received at 400 Mbits/s, total received data is
14 quadlets excluding header CRC and data CRC, trigger size function is enabled, and trigger size is 6. The
packet token is shown in hex format.
The following example generates three RxDta interrupts.
The data is stored in GRF as follows:
{1, 0004_0670} < first packet token, PacComp = 0
{0, quadlet_1[0:31]}
{0, quadlet_2[0:31]}
{0, quadlet_3[0:31]}
{0, quadlet_4[0:31]}