5.3. Tuning Information
sysfs Tree
Before you proceed further, you must install and load the OPAE driver and tools. For more information, refer to the Intel Acceleration Stack Quick Start Guide: Intel FPGA ProgrammableAcceleration Card D5005.
Sysfs entries allow reading or writing to HSSI configuration and status registers (CSR):
/sys/class/fpga/intel-fpga-dev.0/intel-fpga-fme.0/intel-pac-hssi.<1/2>.auto/
The HSSI sysfs tree is as follows:
- qsfp<0/1>
- ctrl HSSI_CTRL_QSFP<0/1> CSR: allows access to control registers
- stat HSSI_STAT_QSFP<0/1> CSR: allows access to status registers
- chan<0/1/2/3>: analog settings of each of the 4 transceiver channels per QSFP interface
- tx_post_tap: Pre-emphasis 1st post-tap magnitude and polarity
- tx_pre_tap: Pre-emphasis 1st pre-tap magnitude and polarity
- tx_vod: TX output differential swing
- tx_comp: TX Compensation
tx_post_tap
- Use tx_post_tap sysfs entry to tune the transmitter pre-emphasis 1st post-tap magnitude and polarity.
- Valid magnitude is between -24 and 24.
Example:
- Change directory to the desired QSFP interface and channel:
$ cd /sys/class/fpga/intel-fpga-dev.0/intel-fpga-fme.0/intel-pac-hssi.<1/2>.auto/qsfp<0/1>/chan<0/1/2/3>
- Read current tx_post_tap setting:
Output: 0$ cat tx_post_tap
- Write new tx_post_tap magnitude and polarity, assume it as magnitude of 1 with positive polarity:
$ sudo -- sh -c 'echo +1 > tx_post_tap'
- Verify that tx_post_tap:
Output: +1$ cat tx_post_tap
tx_pre_tap
- Use tx_pre_tap sysfs entry to tune the transmitter pre-emphasis 1st pre-tap magnitude and polarity.
- Valid magnitude is between -15 and 15.
tx_vod
- Use tx_vod sysfs entry to tune the transmitter output differential swing.
- Valid output swing level is between 17 (600 mV) and 31 (VCCT or Transmitter Power Supply Voltage)
Example:
- Change directory to the desired QSFP interface and channel:
$ cd /sys/class/fpga/intel-fpga-dev.0/intel-fpga-fme.0/intel-pac-hssi.<1/2>.auto/qsfp<0/1>/chan<0/1/2/3>
- Read current tx_vod setting:
Output: 31$ cat tx_vod
- Write new tx_vod output, assume it as 29:
$ sudo -- sh -c 'echo 29 > tx_vod
- Verify that tx_vod:
Output: 29$ cat tx_vod
tx_comp
- Use tx_comp sysfs entry to tune the transmitter compensation, which helps reduce the PDN induced ISI jitter when enabled.
- Valid compensation value is either 0 (off) or 1 (on)
- Change directory to the desired QSFP interface and channel:
$ cd /sys/class/fpga/intel-fpga-dev.0/intel-fpga-fme.0/intel-pac-hssi.<1/2>.auto/qsfp<0/1>/chan<0/1/2/3>
- Read current tx_comp setting:
Output: 1$ cat tx_comp
- TX compensation is currently enabled, let's turn it off:
$ sudo -- sh -c 'echo 0 > tx_comp
- Verify that tx_comp:
Output: 0$ cat tx_comp
Monitor dmesg for Errors
Example: Error in setting the transmitter output differential swing to 100
$ echo 100 > tx_vod
bash: echo: write error: Invalid argument
Check dmesg
$ dmesg
[ 7597.306591] intel-pac-hssi intel-pac-hssi.2.auto: Max VOD is 31
Example: Error in setting a legal tx_vod value
$ echo 31 > tx_vod
bash: echo: write error: Connection timed out
Check dmesg
$ dmesg
[ 7812.184357] intel-pac-hssi intel-pac-hssi.2.auto: timeout, HSSI ack not received
Check if the channel is held in reset
$ cat stat
0x000f000f000f000f
Deaasert the reset
$ echo 0x0 > ctrl
$ cat stat0xf3c0f3c0f3c0f3c0