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:
---
- "/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).
---
- "/ietf-interfaces:interfaces/interface[name='0']/mchp-velocitysp-serdes:serdes/configure-rx-ctle":
input:
auto-enable: false
vga: 5
eqr: 3
eqc: 2
---
- "/ietf-interfaces:interfaces/interface[name='1']/mchp-velocitysp-serdes:serdes/configure-rx-ctle":
input:
auto-enable: true
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:
- 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.