Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

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

5.1.7.20.2. Transmit Side Programming

To enable the frame preemption function for the transmit side use the following steps:
  1. Enable at least two TX queues by programming appropriate values in the TXQEN field of the MTL_TxQ(#i)Operation_Mode registers; one for express and the other for preemption traffic (by setting the corresponding bit in the PEC field of MTL_FPE_CTRL_STS register) when preemption receive traffic is expected.
  2. Program the EFPE field of the MAC_FPE_CTRL_STS register to 1 to enable preemption function in the transmitter.
  3. Program the AFSZ field of the MTL_FPE_CTRL_STS register to set the minimum size of the non-final fragments.
  4. When 802.1Qbv/EST (enhancement to scheduled traffic) is also enabled, follow the programming guidelines for EST and GCL.
  5. Program the hold advance (HADV) and release advance (RADV) fields of MTL_FPE_Advance register with how much early the hold and release must be initiated respectively so that the hold and release happen at exactly the boundaries of GCL rows. The value of HADV must be equal to the time required to transmit minimum_fragment_size + IPG/EIPG + Preamble , in nanosecond, so that the packet can be preempted before the hold window start.
  6. Program the LBHT field of MTL_FPE_CTRL_STS register to 1, if the hold operation must start from the second row of new GCL without a 0 to 1 transition on the hold/release bit in GCL, that is, hold/release bits of GCL row 1 and 2 are set to 1.