GEM Module

Zynq UltraScale+ Devices Register Reference (UG1087)

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

GEM Module Description

Module NameGEM Module
Modules of this TypeGEM0, GEM1, GEM2, GEM3
Base Addresses 0x00FF0B0000 (GEM0)
0x00FF0C0000 (GEM1)
0x00FF0D0000 (GEM2)
0x00FF0E0000 (GEM3)
DescriptionGigabit Ethernet Controller

GEM Module Register Summary

Register NameOffset AddressWidthTypeReset ValueDescription
network_control0x000000000032mixedMixed types. See bit-field details.0x00000000The network control register contains general MAC control functions for both receiver and transmitter.
network_config0x000000000432rwNormal read/write0x00280000The network configuration register contains functions for setting the mode of operation for the Gigabit Ethernet MAC.
network_status0x000000000832roRead-only0x00000004The network status register returns status information with respect to the PHY management interface.
dma_config0x000000001032mixedMixed types. See bit-field details.0x00020784DMA Configuration Register
transmit_status0x000000001432mixedMixed types. See bit-field details.0x00000000This register, when read, provides details of the status of a transmit. Once read, individual bits may be cleared by writing 1 to them. It is not possible to set a bit to 1 by writing to the register.
receive_q_ptr0x000000001832mixedMixed types. See bit-field details.0x00000000Start address of the receive buffer queue (receive buffers descriptor list). The receive buffer queue base address must be initialized before receive is enabled through bit 2 of the network control register. Once reception is enabled, any write to the receive buffer queue base address register is ignored. Reading this register returns the location of the descriptor currently being accessed. This value increments as buffers are used. Software should not use this register for determining where to remove received frames from the queue as it constantly changes as new frames are received. Software should instead work its way through the buffer descriptor queue checking the used bits.
In terms of system bus operation, the receive descriptors must be aligned at 64-bit boundaries for each pair of 32-bit descriptors.
transmit_q_ptr0x000000001C32mixedMixed types. See bit-field details.0x00000000Start address of the transmit buffer queue (transmit buffers descriptor list). The transmit buffer queue base address register must be initialized before transmit is started through bit 9 of the network control register. Once transmission has started, any write to the transmit buffer queue base address register is illegal and therefore ignored. Writing to the transmit buffer queue base address register during this time may produce unpredictable results. Reading this register returns the location of the descriptor currently being accessed. Since the DMA handles two frames at once, this may not necessarily be pointing to the current frame being transmitted.
In terms of system bus operation, the transmit descriptors must be aligned at 64-bit boundaries for each pair of 32-bit descriptors.
receive_status0x000000002032mixedMixed types. See bit-field details.0x00000000This register, when read provides details of the status of a receive. Once read, individual bits may be cleared by writing 1 to them. It is not possible to set a bit to 1 by writing to the register.
int_status0x000000002432mixedMixed types. See bit-field details.0x00000000Interrupt Status - non-priority queing.
int_enable0x000000002832mixedMixed types. See bit-field details.0x00000000At reset all interrupts are disabled. Writing a one to the relevant bit location enables the required interrupt. This register is write only and when read will return zero.
int_disable0x000000002C32mixedMixed types. See bit-field details.0x00000000Writing a 1 to the relevant bit location disables that particular interrupt. This register is write only and when read will return zero.
int_mask0x000000003032roRead-only0x3FFFFFFFThe interrupt mask register is a read only register indicating which interrupts are masked. All bits are set at reset and can be reset individually by writing to the interrupt enable register or set individually by writing to the interrupt disable register. Having separate address locations for enable and disable saves the need for performing a read modify write when updating the interrupt mask register. For test purposes there is a write-only function to this register that allows the bits in the interrupt status register to be set or cleared, regardless of the state of the mask register.
phy_management0x000000003432rwNormal read/write0x00000000PHY maintenance register is implemented as a shift register. Writing to the register starts a shift operation which is signalled as complete when bit-2 is set in the network status register. It takes about 125 LPD_LSBUS_CLK clock cycles to complete, when MDC is set for LPD_LSBUS_CLK divide by 2 in the network configuration register. An interrupt is generated upon completion.
During this time, the MSB of the register is output on the MDIO pin and the LSB updated from the MDIO pin with each MDC cycle. This causes transmission of a PHY management frame on MDIO. See Section 22.2.4.5 of the IEEE 802.3 standard. Reading during the shift operation will return the current contents of the shift register. At the end of management operation, the bits will have shifted back to their original locations. For a read operation, the data bits will be updated with data read from the PHY. It is important to write the correct values to the register to ensure a valid PHY management frame is produced. The MDIO interface can read IEEE 802.3 clause 45 PHYs as well as clause 22 PHYs. To read clause 45 PHYs, bit 30 should be written with a 0 rather than a 1. For a description of MDC generation, see Network Configuration Register.
pause_time0x000000003832roRead-only0x00000000Received Pause Quantum Register
tx_pause_quantum0x000000003C32mixedMixed types. See bit-field details.0x0000FFFFTransmit Pause Quantum Register
pbuf_txcutthru0x000000004032mixedMixed types. See bit-field details.0x00000FFFPartial store and forward is only applicable when using the the DMA configured in SRAM based packet buffer mode. It is also not available when using multi buffer frames. TX Partial Store and Forward
pbuf_rxcutthru0x000000004432mixedMixed types. See bit-field details.0x00000FFFRX Partial Store and Forward
jumbo_max_length0x000000004832mixedMixed types. See bit-field details.0x00003FFFMaximum Jumbo Frame Size.
external_fifo_interface0x000000004C32mixedMixed types. See bit-field details.0x00000000External FIFO Interface Enable (only valid when gem_host_if_soft_select is defined)
axi_max_pipeline0x000000005432mixedMixed types. See bit-field details.0x00000101Used to set the maximum amnount of outstanding transactions on the AXI bus between AR / R channels and AW / W channels. Cannot be more than the depth of the configured AXI pipeline FIFO.
Note: We recommend to use the default setting for this register.
hash_bottom0x000000008032rwNormal read/write0x00000000The unicast hash enable and the multicast hash enable bits in the network configuration register enable the reception of hash matched framesHash Register Bottom [31:0]
hash_top0x000000008432rwNormal read/write0x00000000Hash Register Top 63:32
spec_add1_bottom0x000000008832rwNormal read/write0x00000000The addresses stored in the specific address registers are deactivated at reset or when their corresponding specific address register bottom is written. They are activated when specific address register top is written.
spec_add1_top0x000000008C32mixedMixed types. See bit-field details.0x00000000Specific Address Top
spec_add2_bottom0x000000009032rwNormal read/write0x00000000The addresses stored in the specific address registers are deactivated at reset or when their corresponding specific address register bottom is written. They are activated when specific address register top is written.
spec_add2_top0x000000009432mixedMixed types. See bit-field details.0x00000000Specific Address Top
spec_add3_bottom0x000000009832rwNormal read/write0x00000000The addresses stored in the specific address registers are deactivated at reset or when their corresponding specific address register bottom is written. They are activated when specific address register top is written.
spec_add3_top0x000000009C32mixedMixed types. See bit-field details.0x00000000Specific Address Top
spec_add4_bottom0x00000000A032rwNormal read/write0x00000000The addresses stored in the specific address registers are deactivated at reset or when their corresponding specific address register bottom is written. They are activated when specific address register top is written.
spec_add4_top0x00000000A432mixedMixed types. See bit-field details.0x00000000Specific Address Top
spec_type10x00000000A832mixedMixed types. See bit-field details.0x00000000Type ID Match 1
spec_type20x00000000AC32mixedMixed types. See bit-field details.0x00000000Type ID Match 2
spec_type30x00000000B032mixedMixed types. See bit-field details.0x00000000Type ID Match 3
spec_type40x00000000B432mixedMixed types. See bit-field details.0x00000000Type ID Match 4
wol_register0x00000000B832mixedMixed types. See bit-field details.0x00000000Wake on LAN Register
stretch_ratio0x00000000BC32mixedMixed types. See bit-field details.0x00000000IPG stretch register
stacked_vlan0x00000000C032mixedMixed types. See bit-field details.0x00000000Stacked VLAN Register
tx_pfc_pause0x00000000C432mixedMixed types. See bit-field details.0x00000000Transmit PFC Pause Register
mask_add1_bottom0x00000000C832rwNormal read/write0x00000000Specific Address Mask 1 Bottom 31:0
mask_add1_top0x00000000CC32mixedMixed types. See bit-field details.0x00000000Specific Address Mask 1 Top 47:32
dma_addr_or_mask0x00000000D032mixedMixed types. See bit-field details.0x00000000Receive DMA Data Buffer Address Mask
rx_ptp_unicast0x00000000D432rwNormal read/write0x00000000PTP RX unicast IP destination address
tx_ptp_unicast0x00000000D832rwNormal read/write0x00000000PTP TX unicast IP destination address
tsu_nsec_cmp0x00000000DC32mixedMixed types. See bit-field details.0x00000000TSU timer comparison value nanoseconds
tsu_sec_cmp0x00000000E032rwNormal read/write0x00000000TSU timer comparison value seconds 31:0
tsu_msb_sec_cmp0x00000000E432mixedMixed types. See bit-field details.0x00000000TSU timer comparison value seconds 47:32
tsu_ptp_tx_msb_sec0x00000000E832roRead-only0x00000000PTP Event Frame Transmitted Seconds Register 47:32
tsu_ptp_rx_msb_sec0x00000000EC32roRead-only0x00000000PTP Event Frame Received Seconds Register 47:32
tsu_peer_tx_msb_sec0x00000000F032roRead-only0x00000000PTP Peer Event Frame Transmitted Seconds Register 47:32
tsu_peer_rx_msb_sec0x00000000F432roRead-only0x00000000PTP Peer Event Frame Received Seconds Register 47:32
dpram_fill_dbg0x00000000F832mixedMixed types. See bit-field details.0x00000000The fill levels for the TX & RX packet buffers can be read using this register, including the fill level for each queue in the TX direction.
revision_reg0x00000000FC32roRead-only0x40070106This register indicates a
module identification number and module revision. The value of this register is read only as defined by `gem_revision_reg_value
octets_txed_bottom0x000000010032rwNormal read/write0x00000000These registers reset to zero on a read and stick at all ones when they count to their maximum value. They should be read frequently enough to prevent loss of data. In order to reduce overall design area, the statistics registers may be optionally removed in the configuration file if they are deemed unnecsessary for a particular design. The receive statistics registers are only incremented when the receive enable bit is set in the network control register. The statistics registers optionally have a snapshot capability which, when exercised, will simultaneously store and clear the current values of all the statistics registers into a snapshot register set in order to allow a consistent set of statistics to be read by the processor. The snapshot is controlled using bit 13 of the network control register. The read snapshot control indicated by bit 14 of the network control register determines whether the processor reads the snapshot registers (logic 1) or the incrementing registers (logic 0). The default GEM configuration does not support the snapshot capability. See Parameterization section under Implementation Application Notes for an explanation of how to enable this function. All the statistics registers are read only. For test purposes they may be written by setting bit 7 (Write Enable) in the network control register. Setting bit 6 (increment statistics) in the network control register causes all the statistics registers to increment by one, again for test purposes. Once a statistics register has been read, it is automatically cleared. When reading the octets transmitted and octets received registers, bits 31:0 should be read prior to bits 47:32 to ensure reliable operation. The statistics register block contains the following registers. Octets Transmitted [31:0]
octets_txed_top0x000000010432mixedMixed types. See bit-field details.0x00000000Octets Transmitted 47:32
frames_txed_ok0x000000010832rwNormal read/write0x00000000Frames Transmitted
broadcast_txed0x000000010C32rwNormal read/write0x00000000Broadcast Frames Transmitted
multicast_txed0x000000011032rwNormal read/write0x00000000Multicast Frames Transmitted
pause_frames_txed0x000000011432mixedMixed types. See bit-field details.0x00000000Pause Frames Transmitted
frames_txed_640x000000011832rwNormal read/write0x0000000064 Byte Frames Transmitted
frames_txed_650x000000011C32rwNormal read/write0x0000000065 to 127 Byte Frames Transmitted
frames_txed_1280x000000012032rwNormal read/write0x00000000128 to 255 Byte Frames Transmitted
frames_txed_2560x000000012432rwNormal read/write0x00000000256 to 511 Byte Frames Transmitted
frames_txed_5120x000000012832rwNormal read/write0x00000000512 to 1023 Byte Frames Transmitted
frames_txed_10240x000000012C32rwNormal read/write0x000000001024 to 1518 Byte Frames Transmitted
frames_txed_15190x000000013032rwNormal read/write0x00000000Greater Than 1518 Byte Frames Transmitted
tx_underruns0x000000013432mixedMixed types. See bit-field details.0x00000000Transmit Under Runs
single_collisions0x000000013832mixedMixed types. See bit-field details.0x00000000Single Collision Frames
multiple_collisions0x000000013C32mixedMixed types. See bit-field details.0x00000000Multiple Collision Frames
excessive_collisions0x000000014032mixedMixed types. See bit-field details.0x00000000Excessive Collisions
late_collisions0x000000014432mixedMixed types. See bit-field details.0x00000000Late Collisions
deferred_frames0x000000014832mixedMixed types. See bit-field details.0x00000000Deferred Transmission Frames
crs_errors0x000000014C32mixedMixed types. See bit-field details.0x00000000Carrier Sense Errors
octets_rxed_bottom0x000000015032rwNormal read/write0x00000000Octets Received 31:0
octets_rxed_top0x000000015432mixedMixed types. See bit-field details.0x00000000Octets Received 47:32
frames_rxed_ok0x000000015832rwNormal read/write0x00000000Frames Received
broadcast_rxed0x000000015C32rwNormal read/write0x00000000Broadcast Frames Received
multicast_rxed0x000000016032rwNormal read/write0x00000000Multicast Frames Received
pause_frames_rxed0x000000016432mixedMixed types. See bit-field details.0x00000000Pause Frames Received
frames_rxed_640x000000016832rwNormal read/write0x0000000064 Byte Frames Received
frames_rxed_650x000000016C32rwNormal read/write0x0000000065 to 127 Byte Frames Received
frames_rxed_1280x000000017032rwNormal read/write0x00000000128 to 255 Byte Frames Received
frames_rxed_2560x000000017432rwNormal read/write0x00000000256 to 511 Byte Frames Received
frames_rxed_5120x000000017832rwNormal read/write0x00000000512 to 1023 Byte Frames Received
frames_rxed_10240x000000017C32rwNormal read/write0x000000001024 to 1518 Byte Frames Received
frames_rxed_15190x000000018032rwNormal read/write0x000000001519 to maximum Byte Frames Received
undersize_frames0x000000018432mixedMixed types. See bit-field details.0x00000000Undersized Frames Received
excessive_rx_length0x000000018832mixedMixed types. See bit-field details.0x00000000Oversize Frames Received
rx_jabbers0x000000018C32mixedMixed types. See bit-field details.0x00000000Jabbers Received
fcs_errors0x000000019032mixedMixed types. See bit-field details.0x00000000Frame Check Sequence Errors
rx_length_errors0x000000019432mixedMixed types. See bit-field details.0x00000000Length Field Frame Errors
rx_symbol_errors0x000000019832mixedMixed types. See bit-field details.0x00000000Receive Symbol Errors
alignment_errors0x000000019C32mixedMixed types. See bit-field details.0x00000000Alignment Errors
rx_resource_errors0x00000001A032mixedMixed types. See bit-field details.0x00000000Receive Resource Errors
rx_overruns0x00000001A432mixedMixed types. See bit-field details.0x00000000Receive Overruns
rx_ip_ck_errors0x00000001A832mixedMixed types. See bit-field details.0x00000000IP Header Checksum Errors
rx_tcp_ck_errors0x00000001AC32mixedMixed types. See bit-field details.0x00000000TCP Checksum Errors
rx_udp_ck_errors0x00000001B032mixedMixed types. See bit-field details.0x00000000UDP Checksum Errors
auto_flushed_pkts0x00000001B432mixedMixed types. See bit-field details.0x00000000Receive DMA Flushed Packets
tsu_timer_incr_sub_nsec0x00000001BC32mixedMixed types. See bit-field details.0x000000001588 Timer Increment Register sub nsec
tsu_timer_msb_sec0x00000001C032mixedMixed types. See bit-field details.0x000000001588 Timer Seconds Register 47:32
tsu_strobe_msb_sec0x00000001C432roRead-only0x000000001588 Timer Sync Strobe Seconds Register 47:32
tsu_strobe_sec0x00000001C832roRead-only0x000000001588 Timer Sync Strobe Seconds Register 31:0
tsu_strobe_nsec0x00000001CC32roRead-only0x000000001588 Timer Sync Strobe Nanoseconds Register
tsu_timer_sec0x00000001D032rwNormal read/write0x000000001588 Timer Seconds Register 31:0
tsu_timer_nsec0x00000001D432mixedMixed types. See bit-field details.0x000000001588 Timer Nanoseconds Register
tsu_timer_adjust0x00000001D832mixedMixed types. See bit-field details.0x00000000This register returns all zeroes when read.
tsu_timer_incr0x00000001DC32mixedMixed types. See bit-field details.0x000000001588 Timer Increment Register
tsu_ptp_tx_sec0x00000001E032roRead-only0x00000000PTP Event Frame Transmitted Seconds Register 31:0
tsu_ptp_tx_nsec0x00000001E432roRead-only0x00000000PTP Event Frame Transmitted Nanoseconds Register
tsu_ptp_rx_sec0x00000001E832roRead-only0x00000000PTP Event Frame Received Seconds Register 31:0
tsu_ptp_rx_nsec0x00000001EC32roRead-only0x00000000PTP Event Frame Received Nanoseconds Register
tsu_peer_tx_sec0x00000001F032roRead-only0x00000000PTP Peer Event Frame Transmitted Seconds Register 31:0
tsu_peer_tx_nsec0x00000001F432roRead-only0x00000000PTP Peer Event Frame Transmitted Nanoseconds Register
tsu_peer_rx_sec0x00000001F832roRead-only0x00000000PTP Peer Event Frame Received Seconds Register 31:0
tsu_peer_rx_nsec0x00000001FC32roRead-only0x00000000PTP Peer Event Frame Received Nanoseconds Register
pcs_control0x000000020032mixedMixed types. See bit-field details.0x00001040Note:All PCS registers are defined in the IEEE 802.3 Standard. PCS Control RegisterThis register provides the main control functions with respect to the PCS.
pcs_status0x000000020432roRead-only0x00000109This register indicates general status information concerning the PCS.
pcs_phy_top_id0x000000020832roRead-only0x00004007The value of this register indicates the upper 16-bits of the PHYs identification code. This is a read-only register with a value defined by `gem_phy_id_top
pcs_phy_bot_id0x000000020C32roRead-only0x00000106The value of this register indicates the lower 16-bits of the PHYs identification code. This is a read-only register with a value defined by `gem_phy_id_bot
pcs_an_adv0x000000021032mixedMixed types. See bit-field details.0x00000020The value of this register is used to transmit the base page of the GEM PCS capabilities. Note this is only valid for the default configuration where SGMII is not included in the GEM. In this case the registers is reserved. When SGMII is included, this register returns fixed 0x00000001 when read. SGMII specifies that the transmit configuration information sent from the MAC to the PHY is fixed with bit 14 set to 1 to indicate acknowledge, bit 0 set to 1 to indicate SGMII and all other bits set to 0.
pcs_an_lp_base0x000000021432roRead-only0x00000000For non SGMII (default) mode, the value of this register contains the link partners base page received information. This register is updated in the ABILITY_DETECT state of the PCS auto-negotiation state machine so bit 14 will only be set if the link partner is sending acknowledge while the PCS in this state. The register is not updated in the ACK_DETECT state. For SGMII mode, the contents of this register change to the one defined in the SGMII standard. The value of this register contains the link partners base page received information. In this case the link partner is the PHY connected by the SGMII.
pcs_an_exp0x000000021832roRead-only0x00000004This register contains auto-negotiation next page ability and page received information.
pcs_an_np_tx0x000000021C32mixedMixed types. See bit-field details.0x00000000The value of this register is used to transmit the next page information for the GEM PCS. For next page exchange to work this register must be written within 10 ms of receiving a new page from the link partner. If the link partner is requesting next pages and the GEM has none or no more to send then this register should be written with the null message (0x2001). The value 0x0000 must not be written to this register.
pcs_an_lp_np0x000000022032roRead-only0x00000000This value of this register contains the next page received information from the link partner.
pcs_an_ext_status0x000000023C32roRead-only0x00008000This register contains PCS auto-negotiation extended status information.
rx_lpi0x000000027032mixedMixed types. See bit-field details.0x00000000Received LPI transitions
rx_lpi_time0x000000027432rwNormal read/write0x00000000Received LPI time
tx_lpi0x000000027832mixedMixed types. See bit-field details.0x00000000Transmit LPI transitions
tx_lpi_time0x000000027C32mixedMixed types. See bit-field details.0x00000000Transmit LPI time
designcfg_debug10x000000028032roRead-only0x0450011CThe defined parameterized options to configure the IP are read here.
designcfg_debug20x000000028432roRead-only0x73313FFFDesign Configuration Register 2
designcfg_debug30x000000028832roRead-only0x04000000Design Configuration Register 3
designcfg_debug40x000000028C32roRead-only0x00000000Design Configuration Register 4
designcfg_debug50x000000029032roRead-only0x502F2744Design Configuration Register 5
designcfg_debug60x000000029432roRead-only0x02510002Design Configuration Register 6
designcfg_debug70x000000029832roRead-only0x00000000Design Configuration Register 7
designcfg_debug80x000000029C32roRead-only0x04040404Design Configuration Register 8
designcfg_debug90x00000002A032roRead-only0x00000000Design Configuration Register 9
designcfg_debug100x00000002A432roRead-only0x22242222Design Configuration Register 10
int_q1_status0x000000040032mixedMixed types. See bit-field details.0x00000000Priority Queue Interrupt Status Register
transmit_q1_ptr0x000000044032mixedMixed types. See bit-field details.0x00000000Start address of the transmit buffer queue (transmit buffers descriptor list). The transmit buffer queue base address register must be initialized before transmit is started through bit 9 of the network control register. Once transmission has started, any write to the transmit buffer queue base address register is illegal and therefore ignored. Writing to the transmit buffer queue base address register during this time may produce unpredictable results. Reading this register returns the location of the descriptor currently being accessed. Since the DMA handles two frames at once, this may not necessarily be pointing to the current frame being transmitted. In terms of the system bus operation, the transmit descriptors must be aligned at 64-bit boundaries for each pair of 32-bit descriptors is read from memory using a single bus access.
receive_q1_ptr0x000000048032mixedMixed types. See bit-field details.0x00000000Start address of the receive buffer queue (receive buffers descriptor list). The receive buffer queue base address must be initialized before receive is enabled through bit 2 of the network control register. Once reception is enabled, any write to the receive buffer queue base address register is ignored. Reading this register returns the location of the descriptor currently being accessed. This value increments as buffers are used. Software should not use this register for determining where to remove received frames from the queue as it constantly changes as new frames are received. Software should instead work its way through the buffer descriptor queue checking the used bits. In terms of the system bus operation, the receive descriptors must be aligned at 64-bit boundaries and each pair of 32-bit descriptors is written to using a single 64-bit bus access.
dma_rxbuf_size_q10x00000004A032mixedMixed types. See bit-field details.0x00000002Receive Buffer Queue Size
cbs_control0x00000004BC32mixedMixed types. See bit-field details.0x00000000The IdleSlope value is defined as the rate of change of credit when a packet is waiting to be sent. This must not exceed the portTransmitRate which is dependent on the speed of operation, eg, portTranmsitRate: 1Gb/sec= 32h07735940,100Mb/sec = 32h017D7840, 10Mb/sec
= 32h002625A0. If 50% of bandwidth was to be allocated to a particular queue in 1Gb/sec mode then the IdleSlope value for that queue would be calculated as 32h07735940/2. Note: Credit-Based Shaping should be disabled prior to updating the IdleSlope values.
upper_tx_q_base_addr0x00000004C832rwNormal read/write0x00000000Upper 32 bits of transmit buffer descriptor queue base address.
tx_bd_control0x00000004CC32mixedMixed types. See bit-field details.0x00000000TX BD control register
rx_bd_control0x00000004D032mixedMixed types. See bit-field details.0x00000000RX BD control register
upper_rx_q_base_addr0x00000004D432rwNormal read/write0x00000000Upper 32 bits of receive buffer descriptor queue base address.
screening_type_1_register_00x000000050032mixedMixed types. See bit-field details.0x00000000Screening type 1 registers are used to allocate two priority queues to received frames based on certain IP or UDP fields of incoming frames. Firstly, when DS/TC match enable is set (bit 28), the DS (Differentiated Services) field of the received IPv4 header or TCfield (traffic class) of IPv6 headers are matched against bits 11:4. Secondly, when UDP port match enable is set (bit 29), the UDP Destination Port of the received UDP frame is matched against bits 27:12. Both UDP and DS/TC matching can be enabled simultaneously or individually. If a match is successful, then the queue value programmed in bits 3:0 is allocated to the frame. The required number of Type 1 screening registers is configured in the gem defines file. Up to 16 type 1 screening registers have been allocated APB address space between 0x500 and 0x53C.
screening_type_1_register_10x000000050432mixedMixed types. See bit-field details.0x00000000Screening type 1 registers are used to allocate two priority queues to received frames based on certain IP or UDP fields of incoming frames. Firstly, when DS/TC match enable is set (bit 28), the DS (Differentiated Services) field of the received IPv4 header or TCfield (traffic class) of IPv6 headers are matched against bits 11:4. Secondly, when UDP port match enable is set (bit 29), the UDP Destination Port of the received UDP frame is matched against bits 27:12. Both UDP and DS/TC matching can be enabled simultaneously or individually. If a match is successful, then the queue value programmed in bits 3:0 is allocated to the frame. The required number of Type 1 screening registers is configured in the gem defines file. Up to 16 type 1 screening registers have been allocated APB address space between 0x500 and 0x53C.
screening_type_1_register_20x000000050832mixedMixed types. See bit-field details.0x00000000Screening type 1 registers are used to allocate two priority queues to received frames based on certain IP or UDP fields of incoming frames. Firstly, when DS/TC match enable is set (bit 28), the DS (Differentiated Services) field of the received IPv4 header or TCfield (traffic class) of IPv6 headers are matched against bits 11:4. Secondly, when UDP port match enable is set (bit 29), the UDP Destination Port of the received UDP frame is matched against bits 27:12. Both UDP and DS/TC matching can be enabled simultaneously or individually. If a match is successful, then the queue value programmed in bits 3:0 is allocated to the frame. The required number of Type 1 screening registers is configured in the gem defines file. Up to 16 type 1 screening registers have been allocated APB address space between 0x500 and 0x53C.
screening_type_1_register_30x000000050C32mixedMixed types. See bit-field details.0x00000000Screening type 1 registers are used to allocate two priority queues to received frames based on certain IP or UDP fields of incoming frames. Firstly, when DS/TC match enable is set (bit 28), the DS (Differentiated Services) field of the received IPv4 header or TCfield (traffic class) of IPv6 headers are matched against bits 11:4. Secondly, when UDP port match enable is set (bit 29), the UDP Destination Port of the received UDP frame is matched against bits 27:12. Both UDP and DS/TC matching can be enabled simultaneously or individually. If a match is successful, then the queue value programmed in bits 3:0 is allocated to the frame. The required number of Type 1 screening registers is configured in the gem defines file. Up to 16 type 1 screening registers have been allocated APB address space between 0x500 and 0x53C.
screening_type_2_register_00x000000054032mixedMixed types. See bit-field details.0x00000000Screener Type 2 match registers allow a screen to be configured that is the combination of all or any of the following comparisons:1) An enabled VLAN Priority. A VLAN Priority match will be performed if the VLAN priority enable is set. The extracted priority field in the VLAN header is compared against 3 bits within the screener type 2 register itself.2) An enabled EtherType.3) An enabled Field Compare A. 4) An enabled Field Compare B. 5) An enabled Field Compare C. If a match is successful, then the queue value programmed in bits 3:0 is allocated to the frame. The required number of Type 2 screening registers is configured in the gem defines file. Up to 16 type 2 screening registers have been allocated APB address space between 0x540 and 0x57C.
screening_type_2_register_10x000000054432mixedMixed types. See bit-field details.0x00000000Screener Type 2 match registers allow a screen to be configured that is the combination of all or any of the following comparisons:1) An enabled VLAN Priority. A VLAN Priority match will be performed if the VLAN priority enable is set. The extracted priority field in the VLAN header is compared against 3 bits within the screener type 2 register itself.2) An enabled EtherType.3) An enabled Field Compare A. 4) An enabled Field Compare B. 5) An enabled Field Compare C. If a match is successful, then the queue value programmed in bits 3:0 is allocated to the frame. The required number of Type 2 screening registers is configured in the gem defines file. Up to 16 type 2 screening registers have been allocated APB address space between 0x540 and 0x57C.
screening_type_2_register_20x000000054832mixedMixed types. See bit-field details.0x00000000Screener Type 2 match registers allow a screen to be configured that is the combination of all or any of the following comparisons:1) An enabled VLAN Priority. A VLAN Priority match will be performed if the VLAN priority enable is set. The extracted priority field in the VLAN header is compared against 3 bits within the screener type 2 register itself.2) An enabled EtherType.3) An enabled Field Compare A. 4) An enabled Field Compare B. 5) An enabled Field Compare C. If a match is successful, then the queue value programmed in bits 3:0 is allocated to the frame. The required number of Type 2 screening registers is configured in the gem defines file. Up to 16 type 2 screening registers have been allocated APB address space between 0x540 and 0x57C.
screening_type_2_register_30x000000054C32mixedMixed types. See bit-field details.0x00000000Screener Type 2 match registers allow a screen to be configured that is the combination of all or any of the following comparisons:1) An enabled VLAN Priority. A VLAN Priority match will be performed if the VLAN priority enable is set. The extracted priority field in the VLAN header is compared against 3 bits within the screener type 2 register itself.2) An enabled EtherType.3) An enabled Field Compare A. 4) An enabled Field Compare B. 5) An enabled Field Compare C. If a match is successful, then the queue value programmed in bits 3:0 is allocated to the frame. The required number of Type 2 screening registers is configured in the gem defines file. Up to 16 type 2 screening registers have been allocated APB address space between 0x540 and 0x57C.
int_q1_enable0x000000060032mixedMixed types. See bit-field details.0x00000000At reset all interrupts are disabled. Writing a one to the relevant bit location enables the required interrupt. This register is write only and when read will return zero.
int_q1_disable0x000000062032mixedMixed types. See bit-field details.0x00000000Writing a 1 to the relevant bit location disables that particular interrupt. This register is write only and when read will return zero.
int_q1_mask0x000000064032roRead-only0x00000CE6The interrupt mask register is a read only register indicating which interrupts are masked. All bits are set at reset and can be reset individually by writing to the interrupt enable register or set individually by writing to the interrupt disable register. Having separate address locations for enable and disable saves the need for performing a read modify write when updating the interrupt mask register. For test purposes there is a write-only function to this register that allows the bits in the interrupt status register to be set or cleared, regardless of the state of the mask register.
screening_type_2_ethertype_reg_00x00000006E032mixedMixed types. See bit-field details.0x00000000Ethertype Register
screening_type_2_ethertype_reg_10x00000006E432mixedMixed types. See bit-field details.0x00000000Ethertype Register
screening_type_2_ethertype_reg_20x00000006E832mixedMixed types. See bit-field details.0x00000000Ethertype Register
screening_type_2_ethertype_reg_30x00000006EC32mixedMixed types. See bit-field details.0x00000000Ethertype Register
type2_compare_0_word_00x000000070032rwNormal read/write0x00000000Compare A,B and C fields of the screener type 2 match register are pointers to a pool of up to 32 compare registers. If enabled the compare is true if the data at the OFFSET into the frame, ANDed with the MASK Value, is equal to the COMPARE Value. A 16 bit word comparison is done. The byte at the OFFSET number of bytes from the index start is compared thru bits 7:0 of the configured VALUE and MASK.
The byte at the OFFSET number of bytes + 1 from the index start is compared thru bits 15:8 of the configured VALUE and MASK. The OFFSET can be configured to be from 0 to 127 bytes from either the start of the frame, the byte following the etherType field (last EtherType in the header if the frame is VLAN tagged), the byte following the IP header (IPv4 or IPv6) or from the byte following the start of the TCP/UDP header. The required number of Type 2 screening registers up to a maximum of 32 is configurable in the gem defines file and have been allocated APB address space between 0x700 and 0x7fc.
Note. when using RX Partial Store and Forward mode and priority queues, the frame offset must be less than the Partial Store and Forward watermark. If the offset is higher than the watermark value its not possible to identify the priority queue before the frame is sent to the AMBA interface, and an incorrect priority queue may be used. The bit mapping for these registers is as follows:
type2_compare_0_word_10x000000070432mixedMixed types. See bit-field details.0x00000000Type2 Compare Word 1
type2_compare_1_word_00x000000070832rwNormal read/write0x00000000Compare A,B and C fields of the screener type 2 match register are pointers to a pool of up to 32 compare registers. If enabled the compare is true if the data at the OFFSET into the frame, ANDed with the MASK Value, is equal to the COMPARE Value. A 16 bit word comparison is done. The byte at the OFFSET number of bytes from the index start is compared thru bits 7:0 of the configured VALUE and MASK.
The byte at the OFFSET number of bytes + 1 from the index start is compared thru bits 15:8 of the configured VALUE and MASK. The OFFSET can be configured to be from 0 to 127 bytes from either the start of the frame, the byte following the etherType field (last EtherType in the header if the frame is VLAN tagged), the byte following the IP header (IPv4 or IPv6) or from the byte following the start of the TCP/UDP header. The required number of Type 2 screening registers up to a maximum of 32 is configurable in the gem defines file and have been allocated APB address space between 0x700 and 0x7fc.
Note. when using RX Partial Store and Forward mode and priority queues, the frame offset must be less than the Partial Store and Forward watermark. If the offset is higher than the watermark value its not possible to identify the priority queue before the frame is sent to the AMBA interface, and an incorrect priority queue may be used. The bit mapping for these registers is as follows:
type2_compare_1_word_10x000000070C32mixedMixed types. See bit-field details.0x00000000Type2 Compare Word 1
type2_compare_2_word_00x000000071032rwNormal read/write0x00000000Compare A,B and C fields of the screener type 2 match register are pointers to a pool of up to 32 compare registers. If enabled the compare is true if the data at the OFFSET into the frame, ANDed with the MASK Value, is equal to the COMPARE Value. A 16 bit word comparison is done. The byte at the OFFSET number of bytes from the index start is compared thru bits 7:0 of the configured VALUE and MASK.
The byte at the OFFSET number of bytes + 1 from the index start is compared thru bits 15:8 of the configured VALUE and MASK. The OFFSET can be configured to be from 0 to 127 bytes from either the start of the frame, the byte following the etherType field (last EtherType in the header if the frame is VLAN tagged), the byte following the IP header (IPv4 or IPv6) or from the byte following the start of the TCP/UDP header. The required number of Type 2 screening registers up to a maximum of 32 is configurable in the gem defines file and have been allocated APB address space between 0x700 and 0x7fc.
Note. when using RX Partial Store and Forward mode and priority queues, the frame offset must be less than the Partial Store and Forward watermark. If the offset is higher than the watermark value its not possible to identify the priority queue before the frame is sent to the AMBA interface, and an incorrect priority queue may be used. The bit mapping for these registers is as follows:
type2_compare_2_word_10x000000071432mixedMixed types. See bit-field details.0x00000000Type2 Compare Word 1
type2_compare_3_word_00x000000071832rwNormal read/write0x00000000Compare A,B and C fields of the screener type 2 match register are pointers to a pool of up to 32 compare registers. If enabled the compare is true if the data at the OFFSET into the frame, ANDed with the MASK Value, is equal to the COMPARE Value. A 16 bit word comparison is done. The byte at the OFFSET number of bytes from the index start is compared thru bits 7:0 of the configured VALUE and MASK.
The byte at the OFFSET number of bytes + 1 from the index start is compared thru bits 15:8 of the configured VALUE and MASK. The OFFSET can be configured to be from 0 to 127 bytes from either the start of the frame, the byte following the etherType field (last EtherType in the header if the frame is VLAN tagged), the byte following the IP header (IPv4 or IPv6) or from the byte following the start of the TCP/UDP header. The required number of Type 2 screening registers up to a maximum of 32 is configurable in the gem defines file and have been allocated APB address space between 0x700 and 0x7fc.
Note. when using RX Partial Store and Forward mode and priority queues, the frame offset must be less than the Partial Store and Forward watermark. If the offset is higher than the watermark value its not possible to identify the priority queue before the frame is sent to the AMBA interface, and an incorrect priority queue may be used. The bit mapping for these registers is as follows:
type2_compare_3_word_10x000000071C32mixedMixed types. See bit-field details.0x00000000Type2 Compare Word 1