User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 497
UG585 (v1.11) September 27, 2016
Chapter 16: Gigabit Ethernet Controller
In the transmit direction, the DMA continues to fetch packet data up to a limit of 256 packets, or until
the buffer is full. The size of the buffer has a maximum usable size of 4 KB.
In the receive direction, if the buffer becomes full, then an overflow occur.s An overflow also occurs
if the limit of 256 packets is breached. The size of the external buffer has a maximum usable size of
4KB.
Tx Packet Buffer
The transmitter packet buffer continues to attempt to fetch frame data from the AHB system memory
until the packet buffer itself is full, at which point it attempts to maintain its full level.
To accommodate the status and statistics associated with each frame, three words per packet are
reserved at the end of the packet data. If the packet was bad and requires to be dropped, the status
and statistics are the only information held on that packet. Storing the status in the DPRAM is
required to decouple the DMA interface of the buffer from the MAC interface, to update the MAC
status/stats, and to generate interrupts in the order in which the packets that they represent were
fetched from the AHB memory.
If any errors occur on the AHB while reading the transmit frame, the fetching of packet data from
AHB memory is halted. The MAC transmitter continues to fetch packet data, thereby emptying the
packet buffer and allowing any good non-errored frames to be transmitted successfully. When these
have been fully transmitted, the status/stats for the errored frame is updated and software is
informed via an interrupt that an AHB error occurred. This way, the error is reported in the correct
packet order.
The transmit packet buffer only attempts to read more frame data from the AHB when space is
available in the packet buffer memory. If space is not available it must wait until the packet fetched
by the MAC completes transmission and is subsequently removed from the packet buffer memory.
Note that if full store and forward mode is active, and if a single frame is fetched that is too large for
the packet buffer memory, the frame is flushed and the DMA is halted with an error status. This is
because a complete frame must be written into the packet buffer before transmission can begin, and
therefore the minimum packet buffer memory size should be chosen to satisfy the maximum frame
to be transmitted in the application.
When the complete transmit frame is written into the packet buffer memory, a trigger is sent across
to the MAC transmitter, which then begins reading the frame from the packet buffer memory.
Because the whole frame is present and stable in the packet buffer memory, an underflow of the
transmitter is not possible. The frame is kept in the packet buffer until notification is received from
the MAC that the frame data has either been successfully transmitted or can no longer be
re-transmitted (too many retries in half duplex mode). When this notification is received the frame is
flushed from memory to make room for a new frame to be fetched from AHB system memory.
In half duplex mode, the frame is kept in the packet buffer until notification is received from the MAC
that the frame data has either been successfully transmitted or can no longer be re-transmitted (too
many retries in half duplex mode). When this notification is received the frame is flushed from
memory to make room for a new frame to be fetched from AHB system memory.
In full duplex mode, the frame is removed from the packet buffer on-the-fly.