Low Latency Ethernet 10G MAC Intel® FPGA IP User Guide: Agilex™ 5 FPGAs and SoCs

ID 813663
Date 7/08/2024
Public
Document Table of Contents

6.10.3. PTP Register Configuration

Perform the following steps once after power up or link down event to calculate TX and RX datapath delay:
  1. Wait until the link is up and stable.
  2. Wait until tx_measure_valid and rx_measure_valid from 1G/2.5G/5G/10G Multirate Ethernet PHY IP register 0x420 are valid.
    1. For 1G/2.5G (MGBASE), the valid status are at register offset 0x17, bit 0 and bit 1.
    2. For 10M/100M/1G/2.5G/5G/10G (USXGMII), the valid status are at register offset 0x420, bit 0 and it 1.
  3. Read TX and RX datapath deterministic latency values from the Multi-rate Ethernet PHY IP and calculate TX/RX latency. Refer to Calculating Deterministic Latency.
    1. For 1G/2.5G (MGBASE), the TX DL latency value is at register offset 0x18 and 0x19 while the RX DL latency value is at register offset 0x1B and 0x1A.
    2. For 10M/100M/1G/2.5G/5G/10G (USXGMII), the TX DL latency value is at register offset 0x421 while the RX DL latency value is at register offset 0x422.
  4. Convert the latency values to 16-bit nanoseconds and 16-bit fractional nanoseconds by multiplying the values by 216 or 65536.
  5. Calculate the sum of the TX/RX DL latency values and the TX/RX PMA delay values (In nanoseconds and fractional nanoseconds).
  6. Write the calculated 16-bit values to the TX and RX latency registers of the Low Latency Ethernet 10G MAC:
    For 1G/2.5G (MGBASE):
    1. Write the lower 16-bit TX values to 0x10A register (TX fns value).
    2. Write the upper 16-bit TX values to 0x10C register (TX ns value).
    3. Write the lower 16-bit RX values to 0x12A register (RX fns value).
    4. Write the upper 16-bit RX values to 0x12C register (RX ns value).
    For 10M/100M/1G/2.5G/5G/10G (USXGMII):
    1. Write the lower 16-bit TX values to 0x0102 register (TX fns value).
    2. Write the upper 16-bit TX values to 0x0104 register (TX ns value).
    3. Write the lower 16-bit RX values to 0x0122 register (RX fns value).
    4. Write the upper 16-bit RX values to 0x0124 register (RX ns value).