Blame doc/src/fpga_tools/hssi_loopback/readme.md

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. |