GR740-UM-DS, Nov 2017, Version 1.7
209
www.cobham.com/gaisler
GR740
next 1 kB boundary has been reached (the descriptor at address offset 0x3F8 has been used). The WR
bit in the descriptors can be set to make the pointer wrap back to zero before the 1 kB boundary.
The pointer field has also been made writable for maximum flexibility but care should be taken when
writing to the descriptor pointer register. It should never be touched when reception is active.
The final step to activate reception is to set the receiver enable bit in the control register. This will
make the GRETH_GBIT read the first descriptor and wait for an incoming packet.
14.4.3 Descriptor handling after reception
The GRETH indicates a completed reception by clearing the descriptor enable bit. The other control
bits (WR, IE) are also cleared. The number of received bytes is shown in the length field. The parts of
the Ethernet frame stored are the destination address, source address, type and data fields. Bits 24-14
in the first descriptor word are status bits indicating different receive errors. Bits 18 - 14 are zero after
a reception without link layer errors. The status bits are described in table 227 (except the checksum
offload bits which are also described in section 14.4.6).
Packets arriving that are smaller than the minimum Ethernet size of 64 B are not considered as a
reception and are discarded. The current receive descriptor will be left untouched an used for the first
packet arriving with an accepted size. The TS bit in the status register is set each time this event
occurs.
If a packet is received with an address not accepted by the MAC, the IA status register bit will be set.
Packets larger than maximum size cause the FT bit in the receive descriptor to be set. The length field
is not guaranteed to hold the correct value of received bytes. The counting stops after the word con-
taining the last byte up to the maximum size limit has been written to memory.
The address word of the descriptor is never touched by the GRETH.
14.4.4 Reception with AHB errors
If an AHB error occurs during a descriptor read or data store, the Receiver AHB Error (RA) bit in the
status register will be set and the receiver is disabled. The current reception is aborted. The receiver
can be enabled again by setting the Receive Enable bit in the control register. See also the AMBA
ERROR propagation description in section 5.10.
14.4.5 Accepted MAC addresses
In the default configuration the core receives packets with either the unicast address set in the MAC
address register or the broadcast address. Multicast support can also be enabled and in that case a hash
function is used to filter received multicast packets. A 64-bit register, which is accessible through the
APB interface, determines which addresses should be received. Each address is mapped to one of the
64 bits using the hash function and if the bit is set to one the packet will be received. The address is
mapped to the table by taking the 6 least significant bits of the 32-bit Ethernet CRC calculated over
the destination address of the MAC frame. A bit in the receive descriptor is set if a packet with a mul-
ticast address has been received to it.
14.4.6 Checksum offload
Support is provided for checksum calculations in hardware for TCP/UDP over IPv4. The checksum
logic is always active and detects IPv4 packets with TCP or UDP payloads. If IPv4 is detected the ID
bit is set, UD is set if an UDP payload is detected in the IP packet and TD is set if a TCP payload is
detected in the IP packet (TD and UD are never set if an IPv4 packet is not detected). When one or
more of these packet types is detected its corresponding checksum is calculated and if an error is
detected the checksum error bit for that packet type is set. The error bits are never set if the corre-
sponding packet type is not detected. The core does not support checksum calculations for TCP and