fpgamux¶
SYNOPSIS¶
fpgamux [-h] [-S|--socket-id SOCKET_ID] [-B|--bus-number BUS] [-D|--device DEVICE] [-F|--function FUNCTION]
[-G|--guid GUID] -m|--muxfile <filepath.json>
DESCRIPTION¶
fpgamux tests multiple AFUs that are synthesized into a single AFU along with the CCIP-MUX BBB (basic building block). The CCIP-MUX uses the upper bits in the MMIO addresses to route MMIO reads and writes to the AFU running on the corresponding CCIP-MUX port. fpgamux uses a configuration file that lists the software components and correct configuration. fpgamux only runs on the Integrated FPGA Platform. You cannot run it on the PCIe accelerator card (PAC).
The OPAE driver discovers only the first AFU. The first software component in the configuration
determines the GUID to use for enumeration. Use the -G|--guid option to override the GUID
for the first software component.
OPTIONS¶
-S SOCKET_ID, --socket-id SOCKET_ID
socket id of FPGA resource.
-B BUS, --bus BUS
bus id of FPGA resource.
-D DEVICE, --device DEVICE
device id of FPGA resource.
-F FUNCTION, --function FUNCTION
function id of FPGA resource.
-G, --guid
specifies the GUID to use for the AFC enumeration.
-m, --muxfile <filepath.json>
The path to the fpgamux configuration
file. This file must be in JSON format following the schema described
below.
CONFIGURATION¶
fpgamux uses a configuration file (in JSON format) to determine what software components to instantiate and how to configure them to work with the AFUs. The schema includes the following elements:
[
{
"app" : "fpga_app",
"name" : "String",
"config" : "Object"
}
]
EXAMPLES¶
The following example shows a configuration with two components:
[
{
"app" : "nlb0",
"name" : "nlb0",
"config" :
{
"begin" : 1,
"end" : 1,
"multi-cl" : 1,
"cont" : false,
"cache-policy" : "wrline-M",
"cache-hint" : "rdline-I",
"read-vc" : "vh0",
"write-vc" : "vh1",
"wrfence-vc" : "write-vc",
"timeout-usec" : 0,
"timeout-msec" : 0,
"timeout-sec" : 1,
"timeout-min" : 0,
"timeout-hour" : 0,
"freq" : 400000000
}
},
{
"app" : "nlb3",
"name" : "nlb3",
"config" :
{
"mode" : "read",
"begin" : 1,
"end" : 1,
"multi-cl" : 1,
"strided-access" : 1,
"cont" : false,
"warm-fpga-cache" : false,
"cool-fpga-cache" : false,
"cool-cpu-cache" : false,
"cache-policy" : "wrline-M",
"cache-hint" : "rdline-I",
"read-vc" : "vh0",
"write-vc" : "vh1",
"wrfence-vc" : "write-vc",
"alt-wr-pattern" : false,
"timeout-usec" : 0,
"timeout-msec" : 0,
"timeout-sec" : 1,
"timeout-min" : 0,
"timeout-hour" : 0,
"freq" : 400000000
}
}
]