|
Packit |
534379 |
# hssi_loopback #
|
|
Packit |
534379 |
|
|
Packit |
534379 |
## NAME ##
|
|
Packit |
534379 |
_hssi_loopback_ - Software utility to run HSSI loopback tests on FPGA
|
|
Packit |
534379 |
|
|
Packit |
534379 |
|
|
Packit |
534379 |
## SYNOPSIS ##
|
|
Packit |
534379 |
`hssi_loopback [[--bus|-b <bus number>] [--device | -d <device number>] [--function | -f <function number>]]|[--socket-id <socket-id>]
|
|
Packit |
534379 |
[--mode|-m auto|e40|e10]
|
|
Packit |
534379 |
[send [<source port> [<destination port>] [--packet-count|-c <count>] [--packet-delay|-d <delay>] [--packet-length|-l <length>]] |status [clear] | stop | readmacs`
|
|
Packit |
534379 |
|
|
Packit |
534379 |
## DESCRIPTION ##
|
|
Packit |
534379 |
|
|
Packit |
534379 |
The ```hssi_loopback``` utility works in conjunction with a packet generator accelerator function unit (AFU)
|
|
Packit |
534379 |
to test high-speed serial interface (HSSI) cards. The ```hssi_loopback``` utility tests both external and internal loopbacks.
|
|
Packit |
534379 |
```hssi_loopback``` runs an external loopback test when the command line arguments include both source and destination ports.
|
|
Packit |
534379 |
```hssi_loopback``` runs an internal loopback test when command line arguments include a single port. ```hssi_loopback```
|
|
Packit |
534379 |
only runs on the Intel Xeon with Arria 10 FPGA. You cannot run it on the Intel PAC (programmable accelerator card).
|
|
Packit |
534379 |
|
|
Packit |
534379 |
|
|
Packit |
534379 |
_NOTE_: The following limitations apply to the current version of hssi_loopback:
|
|
Packit |
534379 |
|
|
Packit |
534379 |
* For the external loopback the two port arguments can be the same. For the e10 design, the ports should be the same.
|
|
Packit |
534379 |
* The ```hssi_loopback``` test supports only the e40 and e10 E2E AFUs. The e10 E2E AFU tests HSSI with a retimer card.
|
|
Packit |
534379 |
* The ```hssi_loopback``` test uses the control and status registers (CSRs) defined in the AFU.
|
|
Packit |
534379 |
|
|
Packit |
534379 |
## OPTIONS ##
|
|
Packit |
534379 |
`-S SOCKET_ID, --socket-id SOCKET_ID`
|
|
Packit |
534379 |
|
|
Packit |
534379 |
Socket ID FPGA resource.
|
|
Packit |
534379 |
|
|
Packit |
534379 |
`-B BUS, --bus BUS`
|
|
Packit |
534379 |
|
|
Packit |
534379 |
Bus ID of FPGA resource.
|
|
Packit |
534379 |
|
|
Packit |
534379 |
`-D DEVICE, --device DEVICE`
|
|
Packit |
534379 |
|
|
Packit |
534379 |
Device ID of FPGA resource.
|
|
Packit |
534379 |
|
|
Packit |
534379 |
`-F FUNCTION, --function FUNCTION`
|
|
Packit |
534379 |
|
|
Packit |
534379 |
Function ID of FPGA resource.
|
|
Packit |
534379 |
|
|
Packit |
534379 |
`-G, --guid`
|
|
Packit |
534379 |
|
|
Packit |
534379 |
Specifies guid for the resource enumeration.
|
|
Packit |
534379 |
|
|
Packit |
534379 |
`-m, --mode`
|
|
Packit |
534379 |
|
|
Packit |
534379 |
One of the following: [`auto`, `e40`, `e10`]
|
|
Packit |
534379 |
`auto` is the default and indicates that the software runs the mode based on the first accelerator functional
|
|
Packit |
534379 |
unit it identifies.
|
|
Packit |
534379 |
|
|
Packit |
534379 |
`-t, --timeout`
|
|
Packit |
534379 |
|
|
Packit |
534379 |
Timeout (in seconds) before the application terminates in continuous mode. Continuous mode is the default
|
|
Packit |
534379 |
when you do not specify the number of packets.
|
|
Packit |
534379 |
|
|
Packit |
534379 |
`-y, --delay`
|
|
Packit |
534379 |
|
|
Packit |
534379 |
Delay (in seconds) between printing out a simple status line. Default is 0.100 seconds (100 milliseconds).
|
|
Packit |
534379 |
|
|
Packit |
534379 |
`-c, --packet-count`
|
|
Packit |
534379 |
|
|
Packit |
534379 |
The number of packets to send.
|
|
Packit |
534379 |
|
|
Packit |
534379 |
`-d, --packet-delay`
|
|
Packit |
534379 |
|
|
Packit |
534379 |
The delay in between packets. This delay is the number of 100 MHz clock cycles, roughly 10 nanoseconds.
|
|
Packit |
534379 |
|
|
Packit |
534379 |
`-s, --packet-size`
|
|
Packit |
534379 |
|
|
Packit |
534379 |
The packet size to send. The minimum is 46 bytes and the maximum is 1500 bytes. The default is 46 bytes.
|
|
Packit |
534379 |
|
|
Packit |
534379 |
## COMMANDS ##
|
|
Packit |
534379 |
`send <source port> [<destination port>] [--packet-count|-c <count>] [--packet-delay|-d <delay>] [--packet-length|-l <length>]`
|
|
Packit |
534379 |
|
|
Packit |
534379 |
Send packets from one port to the other. If the command line does not specify a destination port, the test runs an internal
|
|
Packit |
534379 |
loopback. Otherwise, the test runs an external loopback from the source port to the destination port.
|
|
Packit |
534379 |
|
|
Packit |
534379 |
`status [clear]`
|
|
Packit |
534379 |
|
|
Packit |
534379 |
Read and interpret the status registers and print to the screen. `clear` clears the status registers.
|
|
Packit |
534379 |
|
|
Packit |
534379 |
`stop`
|
|
Packit |
534379 |
|
|
Packit |
534379 |
Issue a stop command to all Ethernet controllers in the AFU.
|
|
Packit |
534379 |
|
|
Packit |
534379 |
`readmacs`
|
|
Packit |
534379 |
|
|
Packit |
534379 |
Read and display the port MAC addresses. An EEPROM stores the MAC addresses.
|
|
Packit |
534379 |
|
|
Packit |
534379 |
## EXIT CODES ##
|
|
Packit |
534379 |
|
|
Packit |
534379 |
0 Success - Number of packets received are equal to the number of packets sent and no errors
|
|
Packit |
534379 |
are reported.
|
|
Packit |
534379 |
|
|
Packit |
534379 |
-1 Loopback failure - Either number of packets does not match or the test detected errors.
|
|
Packit |
534379 |
|
|
Packit |
534379 |
-2 Errors parsing arguments.
|
|
Packit |
534379 |
|
|
Packit |
534379 |
## EXAMPLES ##
|
|
Packit |
534379 |
|
|
Packit |
534379 |
Read the MAC addresses of the AFU loaded on bus 0x5e:
|
|
Packit |
534379 |
|
|
Packit |
534379 |
```sh
|
|
Packit |
534379 |
>sudo hssi_loopback readmacs -B 0x5e
|
|
Packit |
534379 |
```
|
|
Packit |
534379 |
|
|
Packit |
534379 |
Run an external loopback, sending 100 packets from port 0 to port 1. The AFU is on bus 0x5e:
|
|
Packit |
534379 |
|
|
Packit |
534379 |
```sh
|
|
Packit |
534379 |
>sudo hssi_loopback -B 0x5e send 0 1 -c 100
|
|
Packit |
534379 |
```
|
|
Packit |
534379 |
|
|
Packit |
534379 |
Run an internal loopback until a timeout of 5 seconds is reached. The AFU is on bus 0x5e:
|
|
Packit |
534379 |
|
|
Packit |
534379 |
```sh
|
|
Packit |
534379 |
>sudo hssi_loopback -B 0x5e send 0 -t 5
|
|
Packit |
534379 |
|
|
Packit |
534379 |
```
|
|
Packit |
534379 |
## Revision History ##
|
|
Packit |
534379 |
|
|
Packit |
534379 |
| Document Version | Intel Acceleration Stack Version | Changes |
|
|
Packit |
534379 |
| ---------------- |------------------------------------|----------|
|
|
Packit |
534379 |
| 2018.05.21 | 1.1 Beta. (Supported with Intel Quartus Prime Pro Edition 17.1.) | Corrected typos. |
|