User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 491
UG585 (v1.11) September 27, 2016
Chapter 16: Gigabit Ethernet Controller
The start location of the receive-buffer descriptor list must be written with the receive-buffer queue
base address before reception is enabled (receive enable in the Network Control register). Once
reception is enabled, any writes to the Receive-buffer Queue Base Address register are ignored.
When read, it returns the current pointer position in the descriptor list, though this is only valid and
stable when receive is disabled.
If the filter block indicates that a frame should be copied to memory, the receive data DMA
operation starts writing data into the receive buffer. If an error occurs, the buffer is recovered.
An internal counter represents the receive-buffer queue pointer and it is not visible through the CPU
interface. The receive-buffer queue pointer increments by two words after each buffer has been
used. It re-initializes to the receive-buffer queue base address if any descriptor has its wrap bit set.
As receive AHB buffers are used, the receive AHB buffer manager sets bit zero of the first word of the
descriptor to logic one indicating the AHB buffer has been used.
Software should search through the “used” bits in the AHB buffer descriptors to find out how many
frames have been received, checking the start of frame and end of frame bits.
Received frames are written out to the AHB buffers as soon as enough frame data exists in the packet
buffer. This might mean that several full AHB buffers are used before some error conditions can be
detected. If a receive error is detected the receive buffer currently being written is recovered.
Previous buffers are not recovered. For example, when receiving frames with CRC errors or excessive
length, it is possible that a frame fragment might be stored in a sequence of AHB receive buffers.
Software can detect this by looking for the start of frame bit set in a buffer following a buffer with no
end of frame bit set.
For a properly working 10/100/1000 Ethernet system there should be no excessive length frames or
frames greater than 128 bytes with CRC errors. Collision fragments are less than 128 bytes long,
therefore it is a rare occurrence to find a frame fragment in a receive AHB buffer, when using the
default value of 128 bytes for the receive buffers size.
14 Start of frame – when set the buffer contains the start of a frame. If both bits 15 and 14 are set, the
buffer contains a whole frame.
13 This bit has a different meaning depending on whether ignore FCS mode are enabled. This bit is
zero if ignore FCS mode is disabled.
With ignore FCS mode enabled: (bit [26] set in Network Configuration Register). This indicates per
frame FCS status as follows:
0b: Frame had good FCS.
1b: Frame had bad FCS, but was copied to memory as ignore FCS enabled.
12:0 These bits represent the length of the received frame which might or might not include FCS
depending on whether FCS discard mode is enabled.
With FCS discard mode disabled: (bit [17] clear in Network Configuration Register) Least
significant 12-bits for length of frame including FCS.
With FCS discard mode enabled: (bit [17] set in Network Configuration Register) Least significant
12-bits for length of frame excluding FCS.
Table 16-2: Rx Buffer Descriptor Entry (Contd)
Bit Function