
3–17
3.3.4
Access to the GRF is done with a read from the GRF, which requires a read from address C0h.
General-Receive FIFO (GRF)
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 0–6 reserved
Bit 7–10 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 4’b0.
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 13–14 RcvPktSpd – receive packet speed
00 – 100 Mbits/s
01 – 200 Mbits/s
10 – 400 Mbits/s
Bit 15–23 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 24–27 Tcode – received packet tcode. For received self-ID packets, phy configuration and
Link–on packets, the Tcode field contains 4’b1110 to indicate these special packets.
Bit 28–31 Ack – Ack code sent to the transmit node for this packet when PacComp = 1. If
PacComp = 0, this field is don’t care. If EnSp is 1( snoop mode is enabled), this field indicates
whether the entire packet snooped was correctly. For received Phy configuration and Link–on
packets, this field is 4’b0000.
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]}