SerDes Tuning

1. Introduction

This document describes how to configure and tune SerDes (Serializer/Deserializer) parameters on VelocityDRIVE-SP switches. SerDes tuning allows optimization of signal quality for different cable lengths and types.

2. The Tools

Two tools are used for SerDes configuration:

  • mup1cc - Apply SerDes configuration via YANG actions

  • mup1ct - Display current SerDes configuration

3. Configuring TX Equalizer

The TX equalizer uses a 3-tap Feed-Forward Equalizer (FFE) with pre-cursor, main cursor, and post-cursor coefficients.

3.1. Using YAML Configuration Files

Create a YAML file with the SerDes configuration:

serdes-test-tx-eq.yaml
---
- "/ietf-interfaces:interfaces/interface[name='25']/mchp-velocitysp-serdes:serdes/configure-tx-eq":
    input:
      pre: 10
      main: 50
      post: 15

Apply the configuration:

$ dr mup1cc action -i serdes-test-tx-eq.yaml -m post

3.2. Verifying Configuration

Display the current SerDes TX equalizer settings using the dump command:

$ dr mup1ct -t dump cil:serdes:24::10
Chip Interface Layer[0]
=======================

Serdes
------

Pre       (C-1):10
Main      (C0) :50
Post      (C+1):15

RESPONSE-CODE: class 2 detail 5 Success Content
The dump command uses 0-based port numbering. Port 24 corresponds to interface eth25.

4. Available SerDes Actions

4.1. configure-rx-ctle

Configure RX Continuous Time Linear Equalizer (CTLE).

Example: Manual RX CTLE configuration
---
- "/ietf-interfaces:interfaces/interface[name='0']/mchp-velocitysp-serdes:serdes/configure-rx-ctle":
    input:
      auto-enable: false
      vga: 5
      eqr: 3
      eqc: 2
Example: Automatic RX CTLE adaptation
---
- "/ietf-interfaces:interfaces/interface[name='1']/mchp-velocitysp-serdes:serdes/configure-rx-ctle":
    input:
      auto-enable: true

4.2. configure-rx-dfe

Configure RX Decision Feedback Equalizer (DFE).

Example: Enable RX DFE
---
- "/ietf-interfaces:interfaces/interface[name='2']/mchp-velocitysp-serdes:serdes/configure-rx-dfe":
    input:
      enable: true

4.3. configure-polarity

Configure TX/RX polarity inversion to correct for swapped differential pairs.

Example: Invert RX polarity
---
- "/ietf-interfaces:interfaces/interface[name='3']/mchp-velocitysp-serdes:serdes/configure-polarity":
    input:
      rx-invert: true
      tx-invert: false

5. Dump Command Reference

The dump command syntax for SerDes is:

$ dr mup1ct -t dump cil:serdes:<port>::<action>

Where:

  • <port> - 0-based port number

  • <action> - Action number (10 for TX EQ)

6. Board Configuration

SerDes TX equalizer settings can be embedded directly in the board configuration file, allowing the settings to be applied automatically at system startup.

6.1. Embedding in board.yaml

Add the SerDes configuration to the eth_port entry in the board configuration file:

Example: board.yaml excerpt for port 24
        - port_dev: 24
          phy_mode: 10gbase-r
          bandwidth: 10000
          serdes:
            tx_eq:
              - type: SPEED_10000MBIT
                pre: 10
                main: 50
                post: 15
            polarity:
              rx_inv: true
              tx_inv: false

The SerDes settings are applied during board initialization and persist across reboots.