Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

ID 814346
Date 4/01/2024
Public
Document Table of Contents

2.3.4.1.1. XGMAC Core

The XGMAC supports the following features:

  • IEEE 802.3-2018 standard compliant
  • Full-duplex operation at 10M/100M/1G/2.5 Gbps (GMII)
    • 2.5 Gbps operation using an 8-bit GMII interface operating at 312.5 MHz
  • Full-duplex RGMII support (10M/100M/1 G)
    • 10M/100M/1 Gbps operation using 4-bit RGMII interface working at 2.5/25/125 MHz
  • Half-duplex operation in 10/100 Mbps modes
    • Supports CSMA/CD protocol
    • Flow control using back pressure support
  • Separate transmission, reception, and configuration (control and status register) interfaces to the application
  • Configurable big-endian or little-endian support for transmission and reception data paths
  • 64-bit data transfer interface on the system side
  • Separate status word returned for each transmitted frame and up to 128-bit status word for each received frame
  • Preamble, SFD, and other control character insertion (in transmit path) and deletion (in receive path)
  • Support for internal loopback at GMII interface transmit data to receive path for debugging
  • MDIO interface for multiple PHY devices and their configuration and management
  • IPv4 header checksum offload on reception
  • TCP, UDP, or ICMP checksum offload (IPv4 and IPv6) for received packets
  • 32 bits cyclic redundancy check (CRC) generation for transmit frames and checking for received frames
    • Programmable support for receive-side CRC stripping
    • CRC addition or replacement on transmit side controllable on a per-frame basis
  • Padding in transmit side for short (less-than-64 byte long) frames received from the application plus pad stripping on the receive side for short frames
  • Programmable source address inclusion or replacement for transmit frames
  • Programmable frame length, supporting standard or jumbo Ethernet frames up to 9 KB
  • Supports IEEE 802.3-2018 flow-control and priority-based flow control (PFC):
    • Optional forwarding of received PAUSE/PFC control frames to the application
    • Automatic transmission of zero-quanta PAUSE/PFC frames on flow-control input deassertion
    • Support for unicast PAUSE/PFC frame reception
    • Transmission of PAUSE/PFC frames triggered by either software-controlled register bit or optional input signal or based on queue fill level (in MTL and AXI configurations)
  • Support for VLAN-tagged frame processing in compliance with the IEEE 802.1Q standard:
    • Support for VLAN-tagged frame detection, stripping, and filtering
    • Support for VLAN tag inclusion per-frame using the CSR
    • Support for up to two Stacked-VLAN tagged or QinQ tagged packets
  • Support for the following flexible address filtering modes for received frames:
    • Up to 32 destination address (DA) perfect match address filters with masks for each byte
    • Up to 31 source address (SA) perfect match filters with masks for each byte
    • 64-bit hash filter (optional) for multicast and unicast DAs
    • Option to pass all multicast-addressed frames
    • Promiscuous mode to pass all frames without any filtering for network monitoring
    • Up to 32 VLAN-based perfect matched and hash filtering
    • Up to 16 Layer 3- and Layer 4-based (TCP or UDP over IPv4 or IPv6) match filters
    • Pass all incoming packets with a status report as determined by the filter
    • Network statistics with RMON or MIB counters (RFC2819/RFC2665)
  • Support for Ethernet packet timestamping as described in IEEE 1588-2008:
    • Provides TX timestamps in CSR status register for 2-step timestamping with the option to store up to 16 timestamps with packet identifier in the CSR
    • Provides registers for asymmetric time correction
    • Flexibility to control the Pulse-Per-Second (PPS) output signal (ptp_pps_o)
    • Support for capturing timestamp based on external trigger and providing it in CSR
    • PTP offload module to support automatic generation and transmission of SYNC and Delay request/Response PTP packets