network_config (GEM) Register

Zynq UltraScale+ Devices Register Reference (UG1087)

Document ID
UG1087
Release Date
2024-03-13
Revision
1.10

network_config (GEM) Register Description

Register Namenetwork_config
Offset Address0x0000000004
Absolute Address 0x00FF0B0004 (GEM0)
0x00FF0C0004 (GEM1)
0x00FF0D0004 (GEM2)
0x00FF0E0004 (GEM3)
Width32
TyperwNormal read/write
Reset Value0x00280000
DescriptionThe network configuration register contains functions for setting the mode of operation for the Gigabit Ethernet MAC.

network_config (GEM) Register Bit-Field Summary

Field NameBitsTypeReset ValueDescription
uni_direction_enable31rwNormal read/write0x0Uni-direction-enable. When low the PCS will transmit idle symbols if the link goes down. When high the PCS can transmit frame data when the link is down.
ignore_ipg_rx_er30rwNormal read/write0x0Ignore IPG rx_er. When set rx_er has no effect on the GEMs operation when rx_dv is low. Set this when using the RGMII wrapper in half-duplex mode.
nsp_change29rwNormal read/write0x0Receive bad preamble. When set frames with non-standard preamble are not rejected.
ipg_stretch_enable28rwNormal read/write0x0IPG stretch enable - when set the transmit IPG can be increased above 96 bit times depending on the previous frame length using the IPG stretch register.
sgmii_mode_enable27rwNormal read/write0x0SGMII mode enable - changes behaviour of the auto-negotiation advertisement and link partner ability registers to meet the requirements of SGMII and reduces the duration of the link timer from 10 ms to 1.6 ms.
ignore_rx_fcs26rwNormal read/write0x0Ignore RX FCS - when set frames with FCS/CRC errors will not be rejected. FCS error statistics will still be collected for frames with bad FCS and FCS status will be recorded in frames DMA descriptor. For normal operation this bit must be set to zero.
en_half_duplex_rx25rwNormal read/write0x0Enable frames to be received in half-duplex mode while transmitting.
receive_checksum_offload_enable24rwNormal read/write0x0Receive checksum offload enable - when set, the receive checksum engine is enabled. Frames with bad IP, TCP or UDP checksums are discarded.
disable_copy_of_pause_frames23rwNormal read/write0x0Disable copy of pause frames - set to one to prevent valid pause frames being copied to memory. When set, pause frames are not copied to memory regardless of the state of the copy all frames bit; whether a hash match is found or whether a type ID match is identified. If a destination address match is found the pause frame will be copied to memory. Note that valid pause frames received will still increment pause statistics and pause the transmission of frames as required.
data_bus_width22:21rwNormal read/write0x1Data bus width - set according to AMBA AXI or external FIFO data bus width.
00: 32 bit
data bus width (External FIFO mode)
01: 64 bit AMBA AXI data bus width (AMBA AXI DMA mode)
10: Reserved
11: Reserved
mdc_clock_division20:18rwNormal read/write0x2MDC clock division - set according to cpu_1xclk speed.
These three bits determine the number cpu_1xclk will be divided by to generate MDC. For conformance with the 802.3 specification, MDC must not exceed 2.5 MHz (MDC is only active during MDIO read and write operations).
000: divide cpu_1xclk by 8 (cpu_1xclk up to 20 MHz)
001: divide cpu_1xclk by 16 (cpu_1xclk up to 40 MHz)
010: divide cpu_1xclk by 32 (cpu_1xclk up to 80 MHz)
011: divide cpu_1xclk by 48 (cpu_1xclk up to 120MHz)
100: divide cpu_1xclk by 64 (cpu_1xclk up to 160 MHz)
101: divide cpu_1xclk by 96 (cpu_1xclk up to 240 MHz)
110: divide cpu_1xclk by 128 (cpu_1xclk up to 320 MHz)
111: divide cpu_1xclk by 224 (cpu_1xclk up to 540 MHz)
fcs_remove17rwNormal read/write0x0FCS remove - setting this bit will cause received frames to be written to memory without their frame check sequence (last 4 bytes). The frame length indicated will be reduced by four bytes in this mode.
length_field_error_frame_discard16rwNormal read/write0x0Length field error frame discard - setting this bit causes frames with a measured length shorter than the extracted length field (as indicated by bytes 13 and 14 in a non-VLAN tagged frame) to be discarded. This only applies to frames with a length field less than 0x0600.
receive_buffer_offset15:14rwNormal read/write0x0Receive buffer offset - indicates the number of bytes by which the received data is offset from the start of the receive buffer.
pause_enable13rwNormal read/write0x0Pause enable - when set, transmission will pause if a non zero 802.3 classic pause frame is received and PFC has not been negotiated.
retry_test12rwNormal read/write0x0Retry test - must be set to zero for normal operation. If set to one the backoff between collisions will always be one slot time. Setting this bit to one helps test the too many retries condition. Also used in the pause frame tests to reduce the pause counters decrement time from 512 bit times, to every rx_clk cycle.
pcs_select11rwNormal read/write0x0PCS select - selects between MII/GMII and TBI. Must be set for SGMII operation.0: GMII/MII interface enabled, TBI disabled1: TBI enabled, GMII/MII disabled
gigabit_mode_enable10rwNormal read/write0x0Gigabit mode enable - setting this bit configures the GEM for 1000 Mbps operation.0: 10/100 operation using MII or TBI interface1: Gigabit operation using GMII or TBI interface
external_address_match_enable 9rwNormal read/write0x0External address match enable - when set the external address match interface can be used to copy frames to memory.
receive_1536_byte_frames 8rwNormal read/write0x0Receive 1536 byte frames - setting this bit means the GEM will accept frames up to 1536 bytes in length. Normally the GEM would reject any frame above 1518 bytes.
unicast_hash_enable 7rwNormal read/write0x0Unicast hash enable - when set, unicast frames will be accepted when the 6 bit hash function of the destination address points to a bit that is set in the hash register.
multicast_hash_enable 6rwNormal read/write0x0Multicast hash enable - when set, multicast frames will be accepted when the 6 bit hash function of the destination address points to a bit that is set in the hash register.
no_broadcast 5rwNormal read/write0x0No broadcast - when set to logic one, frames addressed to the broadcast address of all ones will not be accepted.
copy_all_frames 4rwNormal read/write0x0Copy all frames - when set to logic one, all valid frames will be accepted.
jumbo_frames 3rwNormal read/write0x0Jumbo frames - set to one to enable jumbo frames up to `gem_jumbo_max_length bytes to be accepted. The default length is 10,240 bytes.
discard_non_vlan_frames 2rwNormal read/write0x0Discard non-VLAN frames - when set only VLAN tagged frames will be passed to the address matching logic.
full_duplex 1rwNormal read/write0x0Full duplex - if set to logic one, the transmit block ignores the state of collision and carrier sense and allows receive while transmitting. Also controls the half_duplex pin.
speed 0rwNormal read/write0x0Speed select:
0: 10 Mb/s
1: 100 Mb/s
Note: The value of this bit is reflected on the speed_mode[0] output pin.
Note: 10 and 100 Mb/s are supported in RGMII only (not in SGMII).