Blame doc/src/fpga_tools/readme.md

Packit 534379
# fpga_tools #
Packit 534379
Packit 534379
# fpgainfo #
Packit 534379
Packit 534379
## NAME ##
Packit 534379
_fpgainfo_ - FPGA information tool
Packit 534379
Packit 534379
Packit 534379
## SYNOPSIS ##
Packit 534379
```console
Packit 534379
fpgainfo [-h | --help] [-s | --socket-id] <command> [<args>]
Packit 534379
```
Packit 534379
Packit 534379
Packit 534379
## DESCRIPTION ##
Packit 534379
fpgainfo is a tool to show FPGA information derived from sysfs files. The command argument
Packit 534379
is one of the following: errors, power, temp and is used to specify what type of information
Packit 534379
to report. Some commands may also have other arguments/options that can be used to control the
Packit 534379
behavior of that command.
Packit 534379
Packit 534379
## COMMON OPTIONS ##
Packit 534379
`--help, -h`
Packit 534379
Packit 534379
    Print help information and exit.
Packit 534379
Packit 534379
`--socket-id, -s`
Packit 534379
Packit 534379
    Socket ID encoded in BBS. Default=0
Packit 534379
Packit 534379
Packit 534379
### FPGAINFO COMMANDS ##
Packit 534379
`errors`
Packit 534379
Packit 534379
    Show/clear errors of an FPGA resource as specified by the first argument.
Packit 534379
    Error information is parsed to display in human readable form.
Packit 534379
Packit 534379
`power`
Packit 534379
Packit 534379
    Show total power consumed by the FPGA hardware in watts
Packit 534379
Packit 534379
`temp`
Packit 534379
Packit 534379
    Show FPGA temperature values in degrees Farenheit
Packit 534379
Packit 534379
### ERRORS OPTIONS ###
Packit 534379
`--clear, -c`
Packit 534379
Packit 534379
    Clear errors for the given FPGA resource
Packit 534379
Packit 534379
### ERRORS ARGUMENTS ###
Packit 534379
The first argument to the `errors` command is used to specify what kind of
Packit 534379
resource to act on. It must be one of the following:
Packit 534379
`fme`,`port`,`first_error`,`pcie0`,`pcie1`,`bbs`,`gbs`,`all`
Packit 534379
More details on the errors reported for the resource can be found below:
Packit 534379
Packit 534379
Packit 534379
### ERRORS RESOURCES ###
Packit 534379
`fme`
Packit 534379
Packit 534379
    Show/clear errors pertaining to the FME
Packit 534379
Packit 534379
`port`
Packit 534379
Packit 534379
    Show/clear errors pertaining to the PORT
Packit 534379
Packit 534379
`first_error`
Packit 534379
Packit 534379
    Show/clear first errors encountered by the FPGA
Packit 534379
Packit 534379
`pcie0`
Packit 534379
Packit 534379
    Show/clear errors pertaining to the PCIE0 lane
Packit 534379
Packit 534379
`pcie1`
Packit 534379
Packit 534379
    Show/clear errors pertaining to the PCIE1 lane
Packit 534379
Packit 534379
`bbs`
Packit 534379
Packit 534379
    Show/clear errors pertaining to the BBS (blue bitstream)
Packit 534379
Packit 534379
`gbs`
Packit 534379
Packit 534379
    Show/clear errors pertaining to the GBS (green bitstream)
Packit 534379
Packit 534379
`all`
Packit 534379
Packit 534379
    Show/clear errors for all resources
Packit 534379
Packit 534379
Packit 534379
## EXAMPLES ##
Packit 534379
This command shows the current power consumtion:
Packit 534379
```console
Packit 534379
./fpgainfo power
Packit 534379
```
Packit 534379
Packit 534379
This command shows the current temperature reading:
Packit 534379
```console
Packit 534379
./fpgainfo temp
Packit 534379
```
Packit 534379
Packit 534379
This command shows the errors for the FME resource:
Packit 534379
```console
Packit 534379
./fpgainfo errors fme
Packit 534379
```
Packit 534379
This command clears all the errors on all resources:
Packit 534379
```console
Packit 534379
./fpgainfo errors all -c
Packit 534379
```
Packit 534379
# fpgaconf #
Packit 534379
Packit 534379
## NAME ##
Packit 534379
Packit 534379
fpgadiag - Configure a green bitstream to an FPGA
Packit 534379
Packit 534379
## SYNOPSIS ##
Packit 534379
Packit 534379
`fpgaconf [-hvn] [-b <bus>] [-d <device>] [-f <function>] [-s <socket>] <gbs>`
Packit 534379
Packit 534379
## DESCRIPTION ##
Packit 534379
Packit 534379
fpgaconf writes accelerator configuration bitstreams (also referred to as "green
Packit 534379
bitstreams" to an FPGA device recognized by OPAE. In the process, it also checks
Packit 534379
the green bitstream file for compatibility with the targeted FPGA and its
Packit 534379
current infrastructure bitstream (the "blue bistream"). fpgaconf takes the
Packit 534379
following arguments:
Packit 534379
Packit 534379
`-h, --help`
Packit 534379
Packit 534379
	Print usage information
Packit 534379
Packit 534379
`-v, --verbose`
Packit 534379
Packit 534379
	Print more verbose messages while enumerating and configuring. Can be
Packit 534379
	given more than once
Packit 534379
Packit 534379
`-n, --dry-run`
Packit 534379
Packit 534379
	Perform enumeration, but skip any operations with side-effects (like the
Packit 534379
	actual configuration of the bitstream
Packit 534379
Packit 534379
`-b, --bus`
Packit 534379
Packit 534379
	PCI bus number of the FPGA to target
Packit 534379
Packit 534379
`-d, --device`
Packit 534379
Packit 534379
	PCI device number of the FPGA to target
Packit 534379
Packit 534379
`-f, --function`
Packit 534379
Packit 534379
	PCI function number of the FPGA to target
Packit 534379
Packit 534379
`-s, --socket`
Packit 534379
Packit 534379
	Socket number of the FPGA to target
Packit 534379
Packit 534379
fpgaconf will enumerate available FPGA devices in the system and select
Packit 534379
compatible FPGAs for configuration. If there are more than one candidate FPGAs
Packit 534379
that are compatible with the given green bitstream, fpgaconf will exit and ask
Packit 534379
you to be more specific in selecting the target FPGAs (e.g. by specifying a
Packit 534379
socket number, or a PCIe bus/device/function).
Packit 534379
Packit 534379
## EXAMPLES ##
Packit 534379
Packit 534379
`fpgaconf my_green_bitstream.gbs`
Packit 534379
Packit 534379
	Program "my_green_bitstream.gbs" to a compatible FPGA
Packit 534379
Packit 534379
`fpgaconf -v -s 0 my_green_bitstream.gbs`
Packit 534379
Packit 534379
	Program "my_green_bitstream.gbs" to the FPGA in socket 0, if compatible,
Packit 534379
	while printing out slightly more verbose information
Packit 534379
# fpgad #
Packit 534379
Packit 534379
## NAME ##
Packit 534379
fpgad - log errors and generate events
Packit 534379
Packit 534379
## SYNOPSIS ##
Packit 534379
`fpgad --daemon [--directory=<dir>] [--logfile=<file>] [--pidfile=<file>] [--umask=<mode>] [--socket=<sock>] [--null-bitstream=<file>]`
Packit 534379
`fpgad [--socket=<sock>] [--null-bitstream=<file>]`
Packit 534379
Packit 534379
## DESCRIPTION ##
Packit 534379
Periodically monitors/reports the error status reflected in the device driver's error status sysfs files.
Packit 534379
Establishes the channel by which events are communicated to the OPAE application. Programs a NULL bitstream
Packit 534379
in response to AP6 event.
Packit 534379
Packit 534379
fpgad is required to be running before API calls `fpgaRegisterEvent` and `fpgaUnregisterEvent` will succeed.
Packit 534379
Packit 534379
Use SIGINT to stop fpgad.
Packit 534379
Packit 534379
`-d, --daemon`
Packit 534379
Packit 534379
    When given, fpgad executes as a system demon process.
Packit 534379
Packit 534379
`-D, --directory <dir>`
Packit 534379
Packit 534379
    When running in daemon mode, execute from the given directory.
Packit 534379
    If omitted when daemonizing, /tmp is used.
Packit 534379
Packit 534379
`-l, --logfile <file>`
Packit 534379
Packit 534379
    When running in daemon mode, send output to file. When not in daemon mode, the output is sent to stdout.
Packit 534379
    If omitted when daemonizaing, /tmp/fpgad.log is used.
Packit 534379
Packit 534379
`-p, --pidfile <file>`
Packit 534379
Packit 534379
    When running in daemon mode, write the daemon's process id to file.
Packit 534379
    If omitted when daemonizing, /tmp/fpgad.pid is used.
Packit 534379
Packit 534379
`-m, --umask <mode>`
Packit 534379
Packit 534379
    When running in daemon mode, use the mode value as the file mode creation mask passed to umask.
Packit 534379
    If omitted when daemonizing, 0 is used.
Packit 534379
Packit 534379
`-s, --socket <sock>`
Packit 534379
Packit 534379
    Listen for event API registration requests on sock. The default socket value used by the API is
Packit 534379
    /tmp/fpga_event_socket. 
Packit 534379
Packit 534379
`-n, --null-bitstream <file>`
Packit 534379
Packit 534379
    Specify the NULL bitstream to program when an AP6 event occurs. This option may be given multiple
Packit 534379
    times. The bitstream, if any, that matches the FPGA's PR interface id will be programmed when AP6
Packit 534379
    is detected.
Packit 534379
Packit 534379
## TROUBLESHOOTING ##
Packit 534379
Packit 534379
If any issues are encountered, try the following for additional debug information:
Packit 534379
Packit 534379
1. Examine the log file when in daemon mode.
Packit 534379
2. Run in non-daemon mode and view stdout.
Packit 534379
Packit 534379
## EXAMPLES ##
Packit 534379
Packit 534379
`fpgad --daemon --null-bitstream=my_null_bits.gbs`
Packit 534379
Packit 534379
## SEE ALSO ##
Packit 534379
Packit 534379
umask
Packit 534379
Packit 534379
# fpgadiag #
Packit 534379
Packit 534379
## NAME ##
Packit 534379
_fpgadiag_ - FPGA diagnosis and testing tool.
Packit 534379
Packit 534379
Packit 534379
## SYNOPSIS ##
Packit 534379
```console
Packit 534379
fpgadiag [-m | --mode=] <mode> [-t | --target=] <target> [options]
Packit 534379
```
Packit 534379
Packit 534379
Packit 534379
## DESCRIPTION ##
Packit 534379
_fpgadiag_ includes several tests to diagnose, test and report on the FPGA hardware.
Packit 534379
Packit 534379
`<mode>` chooses which test to run. `<target>` specifies on what platform to
Packit 534379
run the test. `<target>` can be either `fpga` or `ase`, where `ase` stands for
Packit 534379
"AFU Simulation Environment".
Packit 534379
Packit 534379
The tests that can be selected by `<mode>` include:
Packit 534379
Packit 534379
**lpbk1**
Packit 534379
Packit 534379
    The test performs loopback test on the number of cachelines specified with 
Packit 534379
    the `BEGIN` option. _fpgadiag_ sets up source and  destination buffers in 
Packit 534379
    main memory. The FPGA then performs a memcpy from a source buffer to the 
Packit 534379
    destination buffer, one cacheline at a time. 
Packit 534379
Packit 534379
    A cacheline is 64 bytes. When `BEGIN = END`, you perform one iteration. When 
Packit 534379
    `BEGIN = END + x`, you perform `x` iterations. The first iteration consists 
Packit 534379
    of copying `BEGIN` cachelines; the second iteration consists of copying 
Packit 534379
    `BEGIN+1` cache lines; the third iteration consists of copying `BEGIN+3` 
Packit 534379
    cache lines, etc. 
Packit 534379
    
Packit 534379
    The latency is shown as the number of clock ticks. 
Packit 534379
    
Packit 534379
    When you specify `MULTI-CL`, you copy `MULTI-CL` cache lines at a time.
Packit 534379
    There is always a WrFence. `WR-FENCE` chooses what virtual channel the 
Packit 534379
    WrFence occurs on. 
Packit 534379
    
Packit 534379
    If you specify continuous mode with `--cont`, the program runs an iteration
Packit 534379
    until the timeout specified in `TIMEOUT` completes.
Packit 534379
Packit 534379
Packit 534379
**read**
Packit 534379
Packit 534379
    This test performs only a read, not a memcpy. It is used to measure read 
Packit 534379
    bandwidth. 
Packit 534379
Packit 534379
Packit 534379
**write** 
Packit 534379
Packit 534379
    This test is used to measure write bandwidth. 
Packit 534379
Packit 534379
Packit 534379
**trput**
Packit 534379
Packit 534379
    This test measures both read and write bandwidth by performing 50% read and 
Packit 534379
    50% write tests.
Packit 534379
Packit 534379
Packit 534379
**sw**
Packit 534379
Packit 534379
    This is a send-and-respond (ping-pong) test where one side sends data and 
Packit 534379
    waits for answer.
Packit 534379
Packit 534379
Each test requires presence of one of these bitstreams, as documented below.
Packit 534379
Before running a test, make sure its required bitstream is properly configured
Packit 534379
on the platform.
Packit 534379
Packit 534379
* **nlb mode 0** for the `lpbk1` test.
Packit 534379
* **nlb mode 3** for the `trput`, `read`, and `write` tests.
Packit 534379
* **nlb mode 7** for the `sw` test.
Packit 534379
Packit 534379
Packit 534379
## OPTIONS ##
Packit 534379
### Common options ###
Packit 534379
`--help, -h`
Packit 534379
Packit 534379
    Print help information and exit.
Packit 534379
Packit 534379
`--target=, -t`
Packit 534379
Packit 534379
    Values accepted for this switch are fpga or ase. Default=fpga
Packit 534379
Packit 534379
`--mode=, -m`
Packit 534379
Packit 534379
    The test to run. Values accepted for this switch are `lpbk1`, `read`,
Packit 534379
    `write`, `trput`, `sw`
Packit 534379
Packit 534379
`--config=, -c`
Packit 534379
Packit 534379
    A configuration file in the JSON format that specifies options for a test.
Packit 534379
    If an option is specified both in the configuration file and on the command 
Packit 534379
    line, the value in the configuration file prevails
Packit 534379
Packit 534379
`--socket-id=, -s`
Packit 534379
Packit 534379
    Socket ID encoded in BBS. Default=0 
Packit 534379
Packit 534379
`--bus-number=, -B`
Packit 534379
Packit 534379
    Bus number of the PCIe device. Default=0 
Packit 534379
Packit 534379
`--device=, -D`
Packit 534379
Packit 534379
    Device number of the PCIe device. Default=0 
Packit 534379
Packit 534379
`--function=, -F`
Packit 534379
Packit 534379
    Function number of the PCIe device. Default=0 
Packit 534379
Packit 534379
`--freq=, -T`
Packit 534379
Packit 534379
    Clock frequency in Hz. Default=400 MHz 
Packit 534379
Packit 534379
`--suppress-hdr, -S`
Packit 534379
Packit 534379
    Suppress column headers for text output. Default=off
Packit 534379
Packit 534379
`--csv, -V`
Packit 534379
Packit 534379
    Comma separated value format. Default=off 
Packit 534379
Packit 534379
Packit 534379
### **lpbk1** test options ###
Packit 534379
`--guid=, -g`
Packit 534379
Packit 534379
    Accelerator ID to enumerate. Default=D8424DC4-A4A3-C413-F89E-433683F9040B 
Packit 534379
Packit 534379
`--begin=B, -b`
Packit 534379
Packit 534379
    1 <= B <= 65535. Default=1, B = number of cache lines 
Packit 534379
Packit 534379
`--end=E, -e`
Packit 534379
Packit 534379
    1 <= E <= 65535. Default=B, B and E designate number of cache lines 
Packit 534379
Packit 534379
`--multi-cl=M, -U`
Packit 534379
Packit 534379
    M can equal 1, 2, or 4. Default=1 
Packit 534379
Packit 534379
`--cont, -L`
Packit 534379
Packit 534379
    Continuous mode. Default=off 
Packit 534379
Packit 534379
`--timeout-usec=, --timeout-msec=, --timeout-sec=, --timeout-min=, --timeout-hour=`
Packit 534379
Packit 534379
    timeout for --cont mode (microseconds portion default=0; milliseconds 
Packit 534379
    portion default=0; seconds portion default=1; minutes portion default=0;
Packit 534379
    hours portion default=0)
Packit 534379
Packit 534379
`--cache-policy=, -p`
Packit 534379
Packit 534379
    Can be wrline-I, wrline-M, or wrpush-I Default=wrline-M 
Packit 534379
Packit 534379
`--cache-hint=, -i`
Packit 534379
Packit 534379
    Can be rdline-I or rdline-S. Default=rdline-I 
Packit 534379
Packit 534379
`--read-vc=, -r`
Packit 534379
Packit 534379
    Can be auto, vl0, vh0, vh1, random. Default=auto 
Packit 534379
Packit 534379
`--write-vc=, -w`
Packit 534379
Packit 534379
    Can be auto, vl0, vh0, vh1, random. Default=auto 
Packit 534379
Packit 534379
`--wrfence-vc=, -f`
Packit 534379
Packit 534379
    Can be auto, vl0, vh0, vh1. Default=auto 
Packit 534379
Packit 534379
Packit 534379
### **read** test options ###
Packit 534379
`--guid=, -g`
Packit 534379
Packit 534379
    Accelerator ID to enumerate. Default=F7DF405C-BD7A-CF72-22F1-44B0B93ACD18 
Packit 534379
Packit 534379
`--begin=B, -b`
Packit 534379
Packit 534379
    1 <= B <= 65535. Default=1, B = number of cache lines 
Packit 534379
Packit 534379
`--end=E, -e`
Packit 534379
Packit 534379
    1 <= E <= 65535. Default=B, B and E designate number of cache lines 
Packit 534379
Packit 534379
`--multi-cl=M, -u`
Packit 534379
Packit 534379
    M can equal 1, 2, or 4. Default=1 
Packit 534379
Packit 534379
`--strided-access=S, -a`
Packit 534379
Packit 534379
    1<= S <= 64. Default=1 
Packit 534379
Packit 534379
`--cont, -L`
Packit 534379
Packit 534379
    Continuous mode. Default=off 
Packit 534379
Packit 534379
`--timeout-usec=, --timeout-msec=, --timeout-sec=, --timeout-min=, --timeout-hour=`
Packit 534379
Packit 534379
    timeout for --cont mode (microseconds portion default=0; milliseconds 
Packit 534379
    portion default=0; seconds portion default=1; minutes portion default=0;
Packit 534379
    hours portion default=0)
Packit 534379
Packit 534379
`--cache-hint=, -i`
Packit 534379
Packit 534379
    Can be rdline-I or rdline-S. Default=rdline-I 
Packit 534379
Packit 534379
`--warm-fpga-cache -H; --cool-fpga-cache -M`
Packit 534379
Packit 534379
    Attempt to prime the cache with hits. Default=off, Attempt to prime the 
Packit 534379
    cache with misses. Default=off 
Packit 534379
Packit 534379
`--cool-cpu-cache, -C`
Packit 534379
Packit 534379
    Attempt to prime the cpu cache with misses. Default=off 
Packit 534379
Packit 534379
`--read-vc=, -r`
Packit 534379
Packit 534379
    Can be auto, vl0, vh0, vh1, random. Default=auto 
Packit 534379
Packit 534379
Packit 534379
### **write** test options ###
Packit 534379
`--guid=, -g`
Packit 534379
Packit 534379
    Accelerator ID to enumerate. Default=F7DF405C-BD7A-CF72-22F1-44B0B93ACD18 
Packit 534379
Packit 534379
`--begin=B, -b`
Packit 534379
Packit 534379
    1 <= E <= 65535. Default=B, B and E designate number of cache lines 
Packit 534379
Packit 534379
`--multi-cl=M, -u`
Packit 534379
Packit 534379
    M can equal 1, 2, or 4. Default=1 
Packit 534379
Packit 534379
`--strided-access=S, -a`
Packit 534379
Packit 534379
    1<= S <= 64. Default=1 
Packit 534379
Packit 534379
`--cont, -L`
Packit 534379
Packit 534379
    Continuous mode. Default=off 
Packit 534379
Packit 534379
`--timeout-usec=, --timeout-msec=, --timeout-sec=, --timeout-min=, --timeout-hour=`
Packit 534379
Packit 534379
    timeout for --cont mode (microseconds portion default=0; milliseconds 
Packit 534379
    portion default=0; seconds portion default=1; minutes portion default=0;
Packit 534379
    hours portion default=0)
Packit 534379
Packit 534379
`--cache-policy=, -p`
Packit 534379
Packit 534379
    Can be wrline-I, wrline-M, or wrpush-I Default=wrline-M 
Packit 534379
Packit 534379
`--warm-fpga-cache -H; --cool-fpga-cache -M`
Packit 534379
Packit 534379
    Attempt to prime the cache with hits. Default=off, Attempt to prime the 
Packit 534379
    cache with misses. Default=off 
Packit 534379
Packit 534379
`--cool-cpu-cache, -C`
Packit 534379
Packit 534379
    Attempt to prime the cpu cache with misses. Default=off 
Packit 534379
Packit 534379
`--write-vc=, -w`
Packit 534379
Packit 534379
    Can be auto, vl0, vh0, vh1, random. Default=auto 
Packit 534379
Packit 534379
`--wrfence-vc=, -f`
Packit 534379
Packit 534379
    Can be auto, vl0, vh0, vh1, random. Default=`WRITE-VC`
Packit 534379
Packit 534379
`--alt-wr-pattern, -l`
Packit 534379
Packit 534379
    Alternate Write Pattern. Default=off 
Packit 534379
Packit 534379
Packit 534379
### **trput** test options ###
Packit 534379
`--guid=, -g`
Packit 534379
Packit 534379
    Accelerator ID to enumerate. Default=F7DF405C-BD7A-CF72-22F1-44B0B93ACD18 
Packit 534379
Packit 534379
`--begin=B, -b`
Packit 534379
Packit 534379
    1 <= B <= 65535. Default=1, B = number of cache lines 
Packit 534379
Packit 534379
`--end=E, -e`
Packit 534379
Packit 534379
    1 <= E <= 65535. Default=B, B and E designate number of cache lines 
Packit 534379
Packit 534379
`--multi-cl=M, -u`
Packit 534379
Packit 534379
    M can equal 1, 2, or 4. Default=1 
Packit 534379
Packit 534379
`--strided-access=S, -a`
Packit 534379
Packit 534379
    1<= S <= 64. Default=1 
Packit 534379
Packit 534379
`--cont, -L`
Packit 534379
Packit 534379
    Continuous mode. Default=off 
Packit 534379
Packit 534379
`--timeout-usec=, --timeout-msec=, --timeout-sec=, --timeout-min=, --timeout-hour=`
Packit 534379
Packit 534379
    timeout for --cont mode (microseconds portion default=0; milliseconds 
Packit 534379
    portion default=0; seconds portion default=1; minutes portion default=0;
Packit 534379
    hours portion default=0)
Packit 534379
Packit 534379
`--cache-policy=, -p`
Packit 534379
Packit 534379
    Can be wrline-I, wrline-M, or wrpush-I Default=wrline-M 
Packit 534379
Packit 534379
`--cache-hint=, -i`
Packit 534379
Packit 534379
    Can be rdline-I or rdline-S. Default=rdline-I 
Packit 534379
Packit 534379
`--read-vc=, -r`
Packit 534379
Packit 534379
    Can be auto, vl0, vh0, vh1, random. Default=auto 
Packit 534379
Packit 534379
`--write-vc=, -w`
Packit 534379
Packit 534379
    Can be auto, vl0, vh0, vh1, random. Default=auto 
Packit 534379
Packit 534379
`--wrfence-vc=, -f`
Packit 534379
Packit 534379
    Can be  auto, vl0, vh0, vh1. Default=`WRITE-VC`
Packit 534379
Packit 534379
Packit 534379
### **sw** test options ###
Packit 534379
`--guid=, -g`
Packit 534379
Packit 534379
    Accelerator ID to enumerate. Default=7BAF4DEA-A57C-E91E-168A-455D9BDA88A3 
Packit 534379
Packit 534379
`--begin=B, -b`
Packit 534379
Packit 534379
    1 <= B <= 65535. Default=1, B = number of cache lines 
Packit 534379
Packit 534379
`--end=E, -e`
Packit 534379
Packit 534379
    1 <= E <= 65535. Default=B, B and E designate number of cache lines 
Packit 534379
Packit 534379
`--multi-cl=M, -u`
Packit 534379
Packit 534379
    M can equal 1, 2, or 4. Default=1 
Packit 534379
Packit 534379
`--strided-access=S, -a`
Packit 534379
Packit 534379
    1<= S <= 64. Default=1 
Packit 534379
Packit 534379
`--cache-policy=, -p`
Packit 534379
Packit 534379
    Can be wrline-I, wrline-M, or wrpush-I. Default=wrline-M 
Packit 534379
Packit 534379
`--cache-hint= -i`
Packit 534379
Packit 534379
    Can be rdline-I or rdline-S. Default=rdline-I 
Packit 534379
Packit 534379
`--read-vc=, -r`
Packit 534379
Packit 534379
    Can be auto, vl0, vh0, vh1, random Default=auto 
Packit 534379
Packit 534379
`--write-vc=, -w`
Packit 534379
Packit 534379
    Can be auto, vl0, vh0, vh1, random Default=auto 
Packit 534379
Packit 534379
`--wrfence-vc=, -f`
Packit 534379
Packit 534379
    Can be auto, vl0, vh0, vh1. Default=`WRITE-VC`
Packit 534379
Packit 534379
`--notice=, -N`
Packit 534379
Packit 534379
    Can be poll, csr-write, umsg-data, or umsg-hint. Default=poll 
Packit 534379
Packit 534379
Packit 534379
## EXAMPLES ##
Packit 534379
This command starts an `lpbk1` test on the FPGA on bus `0x5e`. The test 
Packit 534379
copies 57535, 57536, 57537, ..., up to 65535 cache lines, one line at a time.
Packit 534379
The test output is printed in the CSV format with header suppressed.
Packit 534379
```console
Packit 534379
./fpgadiag --mode=lpbk1 --target=fpga -SV --bus-number=0x5e --begin=57535
Packit 534379
--end=65535 --cache-hint=rdline-I --cache-policy=wrpush-I --multi-cl=1
Packit 534379
--write-vc=vl0 --read-vc=vh1 --wrfence-vc=auto
Packit 534379
```
Packit 534379
Packit 534379
This command starts a `read` test on the FPGA located on bus `0xbe`. The test
Packit 534379
reads 2045 cache lines in the continuous mode with a 15-second timeout period. 
Packit 534379
Data is accessed with a strided pattern with a 10-byte stride length.
Packit 534379
```console
Packit 534379
./fpgadiag --mode=read --target=fpga -SV --bus-number=0xbe --begin=2045 --cont
Packit 534379
--timeout-sec=15   --cache-hint=rdline-I --multi-cl=1 -a=10 --write-vc=vh1
Packit 534379
--read-vc=auto --wrfence-vc=auto
Packit 534379
```
Packit 534379
Packit 534379
This command starts an `sw` test on the FPGA located on bus `0xbe`. The test
Packit 534379
notifies completion using a CSR write.
Packit 534379
```console
Packit 534379
./fpgadiag --mode=sw --target=fpga -SV --bus-number=0xbe --begin=4 --end=8192
Packit 534379
--cache-hint=rdline-I --cache-policy=wrline-I --notice=csr-write --write-vc=vl0
Packit 534379
--wrfence-vc=auto --read-vc=random 
Packit 534379
```
Packit 534379
Packit 534379
Packit 534379
## TROUBLESHOOTING ##
Packit 534379
When a test fails to run or gives errors, check the following:
Packit 534379
Packit 534379
* Is Intel FPGA driver properly installed? 
Packit 534379
See [Installation Guide](/fpga-doc/docs/install_guide/installation_guide.html) 
Packit 534379
for driver installation instructions.
Packit 534379
* Are FPGA port permissions set properly? Check the permission bits of the
Packit 534379
port, for example, `/dev/intel-fpga-port-0`. Users need READ and WRITE
Packit 534379
permissions to run `fpgadiag` tests.
Packit 534379
* Is hugepage properly configured on the system? 
Packit 534379
See [Installation Guide](/fpga-doc/docs/install_guide/installation_guide.html)
Packit 534379
for hugepage configuration steps.
Packit 534379
* Is the required bitstream loaded? See [DESCRIPTION](#description) for
Packit 534379
information about what bitstream is required by which test.
Packit 534379
* Are `--begin` and `--end` values set properly? `--end` must be no
Packit 534379
smaller than the `--begin`. Also, `--begin` must be a multiple of the
Packit 534379
`--multi-cl` value.
Packit 534379
* The `--warm-fpga-cache` and `--cool-fpga-cache` options in the `read`
Packit 534379
and `write` tests are mutually exclusive.
Packit 534379
* The timeout options are only meaningful for the continuous mode 
Packit 534379
(with the `--cont` option).
Packit 534379
Packit 534379
# mmlink #
Packit 534379
Packit 534379
## NAME ##
Packit 534379
 MMLink - Debugging RTL.
Packit 534379
Packit 534379
## SYNOPSIS  ##
Packit 534379
Packit 534379
`mmlink [-B <bus>] [-D <device>] [-F <function>] [-S <socket>] [-P <TCP port>] [-I <IP Address>]`
Packit 534379
Packit 534379
Packit 534379
## DESCRIPTION ##
Packit 534379
Packit 534379
Remote signaltap is software  tool used for debug RTL (AFU), effectively a signal trace capability that Quartus places into a green bitstream.
Packit 534379
Remote Signal Tap provides  access the RST part of the Port MMIO space, and then runs the remote protocol on top.
Packit 534379
Packit 534379
## EXAMPLES  ##
Packit 534379
Packit 534379
`./mmlink  -B 0x5e -P 3333`
Packit 534379
Packit 534379
  MMLink app starts and listens for connection.
Packit 534379
Packit 534379
## OPTIONS ##
Packit 534379
Packit 534379
`-B,--bus` FPGA Bus number.
Packit 534379
Packit 534379
`-D,--device` FPGA Device number.
Packit 534379
Packit 534379
`-F,--functio` FPGA function number.
Packit 534379
Packit 534379
`-S,--socket` FPGA socket number.
Packit 534379
Packit 534379
`-P,--port` TCP port number.
Packit 534379
Packit 534379
`-I,--ip ` IP address of FPGA system. 
Packit 534379
Packit 534379
Packit 534379
## NOTES ##
Packit 534379
Packit 534379
Driver privilege:
Packit 534379
Packit 534379
Change AFU driver privilege to user .
Packit 534379
Packit 534379
command: chmod 777 /dev/intel-fpga-port.0
Packit 534379
Packit 534379
set memlock:    
Packit 534379
Packit 534379
command: ulimit -l 10000
Packit 534379
Packit 534379
# coreidle #
Packit 534379
Packit 534379
## NAME ##
Packit 534379
 coreidle - idles cores for shared TDP sockets to run online cores at maximum capacity.
Packit 534379
Packit 534379
## SYNOPSIS  ##
Packit 534379
Packit 534379
`coreidle [-B <bus>] [-D <device>] [-F <function>] [-S <socket>] [-G <GBS path>] `
Packit 534379
Packit 534379
Packit 534379
## DESCRIPTION ##
Packit 534379
Packit 534379
This tools parses input GBS, extracts power from metadata ,calculates fpga power, number of online and idle cores.
Packit 534379
It moves threads from idle cores to online cores.
Packit 534379
Packit 534379
## EXAMPLES  ##
Packit 534379
Packit 534379
`./coreidle  -B 0x5e -G /home/lab/gbs/mode0.gbs`
Packit 534379
Packit 534379
  Idle cores to run online cores at maximum capacity.
Packit 534379
Packit 534379
## OPTIONS ##
Packit 534379
Packit 534379
`-B,--bus` FPGA Bus number.
Packit 534379
Packit 534379
`-D,--device` FPGA Device number.
Packit 534379
Packit 534379
`-F,--functio` FPGA function number.
Packit 534379
Packit 534379
`-S,--socket` FPGA socket number.
Packit 534379
Packit 534379
`-G,--gbs` Green bitstream file path.
Packit 534379
 
Packit 534379
# fpgamux #
Packit 534379
Packit 534379
## NAME ##
Packit 534379
    fpgamux - Software MUX for running multiple AFU (accelerator functional unit) tests in one GBS (green bitsream)
Packit 534379
Packit 534379
## SYNOPSIS ##
Packit 534379
```console
Packit 534379
fpgamux [-h] [-S|--socket-id SOCKET_ID] [-B|--bus-number BUS] [-D|--device DEVICE] [-F|--function FUNCTION]
Packit 534379
          [-G|--guid GUID] -m|--muxfile MUXFILE.json
Packit 534379
```
Packit 534379
Packit 534379
## DESCRIPTION ##
Packit 534379
fpgamux is a testing tool to interact with multiple AFUs that have been synthesized into one GBS along with
Packit 534379
the CCIP-MUX BBB (basic building block). The CCIP-MUX uses upper bits in the MMIO addresses to route MMIO
Packit 534379
reads/writes to the AFU running on the corresponding CCIP-MUX port. fpgamux uses a configuration file that
Packit 534379
lists the software components and configuration to use.
Packit 534379
Packit 534379
.. note::
Packit 534379
Packit 534379
```
Packit 534379
  Only one (the first) AFU is discoverable by the OPAE driver. Enumerating acceleration on an FPGA will find
Packit 534379
  the accelerator associated with the first AFU only. The first software component in the configuration will
Packit 534379
  be used to determine the GUID to use for enumeration. This can be overridden with the -G|--guid option.
Packit 534379
```
Packit 534379
Packit 534379
Packit 534379
## OPTIONS ##
Packit 534379
    -S SOCKET_ID, --socket-id SOCKET_ID
Packit 534379
       socket id of FPGA resource
Packit 534379
Packit 534379
    -B BUS, --bus BUS
Packit 534379
       bus id of FPGA resource
Packit 534379
Packit 534379
    -D DEVICE, --device DEVICE
Packit 534379
       device id of FPGA resource
Packit 534379
Packit 534379
Packit 534379
    -F FUNCTION, --function FUNCTION
Packit 534379
       function id of FPGA resource
Packit 534379
Packit 534379
    -G, --guid
Packit 534379
       specify what guid to use for the accelerator enumeration
Packit 534379
Packit 534379
## CONFIGURATION ##
Packit 534379
fpgamux uses a configuration file (in JSON format) to determine what software components to instantiate and
Packit 534379
how to configure them for interacting with the AFUs in the GBS. This schema for this is listed below:
Packit 534379
Packit 534379
Packit 534379
    [
Packit 534379
        {
Packit 534379
            "app" : "fpga_app",
Packit 534379
            "name" : "String",
Packit 534379
            "config" : "Object"
Packit 534379
        }
Packit 534379
    ]
Packit 534379
Packit 534379
Packit 534379
## EXAMPLES ##
Packit 534379
An example configuration with two components is listed below:
Packit 534379
Packit 534379
    [
Packit 534379
        {
Packit 534379
            "app" : "nlb0",
Packit 534379
            "name" : "nlb0",
Packit 534379
            "config" :
Packit 534379
            {
Packit 534379
                "begin" : 1,
Packit 534379
                "end" : 1,
Packit 534379
                "multi-cl" : 1,
Packit 534379
                "cont" : false,
Packit 534379
                "cache-policy" : "wrline-M",
Packit 534379
                "cache-hint" : "rdline-I",
Packit 534379
                "read-vc" : "vh0",
Packit 534379
                "write-vc" : "vh1",
Packit 534379
                "wrfence-vc" : "write-vc",
Packit 534379
                "timeout-usec" : 0,
Packit 534379
                "timeout-msec" : 0,
Packit 534379
                "timeout-sec" : 1,
Packit 534379
                "timeout-min" : 0,
Packit 534379
                "timeout-hour" : 0,
Packit 534379
                "freq" : 400000000
Packit 534379
            }
Packit 534379
        },
Packit 534379
        {
Packit 534379
            "app" : "nlb3",
Packit 534379
            "name" : "nlb3",
Packit 534379
            "config" :
Packit 534379
            {
Packit 534379
                "mode" : "read",
Packit 534379
                "begin" : 1,
Packit 534379
                "end" : 1,
Packit 534379
                "multi-cl" : 1,
Packit 534379
                "strided-access" : 1,
Packit 534379
                "cont" : false,
Packit 534379
                "warm-fpga-cache" : false,
Packit 534379
                "cool-fpga-cache" : false,
Packit 534379
                "cool-cpu-cache" : false,
Packit 534379
                "cache-policy" : "wrline-M",
Packit 534379
                "cache-hint" : "rdline-I",
Packit 534379
                "read-vc" : "vh0",
Packit 534379
                "write-vc" : "vh1",
Packit 534379
                "wrfence-vc" : "write-vc",
Packit 534379
                "alt-wr-pattern" : false,
Packit 534379
                "timeout-usec" : 0,
Packit 534379
                "timeout-msec" : 0,
Packit 534379
                "timeout-sec" : 1,
Packit 534379
                "timeout-min" : 0,
Packit 534379
                "timeout-hour" : 0,
Packit 534379
                "freq" : 400000000
Packit 534379
            }
Packit 534379
        }
Packit 534379
    ]
Packit 534379
Packit 534379
# userclk #
Packit 534379
Packit 534379
## NAME ##
Packit 534379
 userclk - to set afu high and low clock frequency.
Packit 534379
Packit 534379
## SYNOPSIS  ##
Packit 534379
Packit 534379
`userclk [-B <bus>] [-D <device>] [-F <function>] [-S <socket>] [-P <Port id>] [-H <User clock high frequency>] -L <User clock low frequency>]`
Packit 534379
Packit 534379
Packit 534379
## DESCRIPTION ##
Packit 534379
Packit 534379
userclk tool used to set high and low clock frequency to acceleration function unit.
Packit 534379
Packit 534379
## EXAMPLES  ##
Packit 534379
Packit 534379
`./userclk  -B 0x5e -H 400 -L 200`
Packit 534379
Packit 534379
 Sets AFU frequency.
Packit 534379
Packit 534379
## OPTIONS ##
Packit 534379
Packit 534379
`-B,--bus` FPGA Bus number.
Packit 534379
Packit 534379
`-D,--device` FPGA Device number.
Packit 534379
Packit 534379
`-F,--functio` FPGA function number.
Packit 534379
Packit 534379
`-S,--socket` FPGA socket number.
Packit 534379
Packit 534379
`-P,--port` Port id.
Packit 534379
Packit 534379
`-H,--freq-high ` User clock high frequency. 
Packit 534379
Packit 534379
`-L,--freq-low ` User clock low frequency. 
Packit 534379
Packit 534379
Packit 534379
Packit 534379