XRM Command Line Tool¶
XRM provides command line tool xrmadm to configure the FPGA hardware.
xrmadm will handle the xclbin and plugin load/unload. It will take JSON file as input.
FPGA Device Operation¶
Load xclbin to devices¶
source /opt/xilinx/xrm/setup.sh cd /opt/xilinx/xrm/test xrmadm load_devices_cmd.json
Input JSON file example load_devices_cmd.json:
{ "request": { "name": "load", "requestId": 1, "parameters": [ { "device": 0, "xclbin": "/tmp/xclbins/test_xrm.xclbin" }, { "device": 1, "xclbin": "/tmp/xclbins/test_xrm.xclbin" }, { "device": 2, "xclbin": "/tmp/xclbins/test_xrm.xclbin" }, { "device": 3, "xclbin": "/tmp/xclbins/test_xrm.xclbin" }, { "device": 4, "xclbin": "/tmp/xclbins/test_xrm.xclbin" }, { "device": 5, "xclbin": "/tmp/xclbins/test_xrm.xclbin" } ] } }
Output example:
{ "response": { "name": "load", "requestId": "1", "status": "ok" } }
Unload xclbin from devices¶
source /opt/xilinx/xrm/setup.sh cd /opt/xilinx/xrm/test xrmadm unload_devices_cmd.json
Input JSON file example unload_devices_cmd.json:
{ "request": { "name": "unload", "requestId": 1, "parameters": { "device": [0,1,2,3,4,5] } } }
Output example:
{ "response": { "name": "unload", "requestId": "1", "status": "ok", "data": { "ok": "unload completed" } } }
Disable devices with XRM¶
source /opt/xilinx/xrm/setup.sh cd /opt/xilinx/xrm/test xrmadm disable_devices_cmd.json
Input JSON file example disable_devices_cmd.json:
{ "request": { "name": "disableDevices", "requestId": 1, "parameters": { "device": [0,1] } } }
Output example:
{ "response": { "name": "disableDevices", "requestId": "1", "status": "ok", "data": { "ok": "disable devices completed" } } }
Enable devices with XRM¶
source /opt/xilinx/xrm/setup.sh cd /opt/xilinx/xrm/test xrmadm enable_devices_cmd.json
Input JSON file example enable_devices_cmd.json:
{ "request": { "name": "enableDevices", "requestId": 1, "parameters": { "device": [0,1] } } }
Output example:
{ "response": { "name": "enableDevices", "requestId": "1", "status": "ok", "data": { "ok": "enable devices completed" } } }
XRM Plugin Operation¶
Load XRM plugins¶
source /opt/xilinx/xrm/setup.sh cd /opt/xilinx/xrm/test xrmadm load_xrm_plugins_cmd.json
Input JSON file example load_xrm_plugins_cmd.json:
{ "request": { "name": "loadXrmPlugins", "requestId": 1, "parameters": [ { "xrmPluginFileName": "/opt/xilinx/xrm/plugin/libxrmpluginexample.so", "xrmPluginName": "xrmPluginExample" } ] } }
Output example:
{ "response": { "name": "loadXrmPlugins", "requestId": "1", "status": "ok" } }
Unload XRM plugins¶
source /opt/xilinx/xrm/setup.sh cd /opt/xilinx/xrm/test xrmadm unload_xrm_plugins_cmd.json
Input JSON file example unload_xrm_plugins_cmd.json:
{ "request": { "name": "unloadXrmPlugins", "requestId": 1, "parameters": [ { "xrmPluginName": "xrmPluginExample" } ] } }
Output example:
{ "response": { "name": "unloadXrmPlugins", "requestId": "1", "status": "ok" } }
Resource List Operation¶
List Devices and Plugins¶
source /opt/xilinx/xrm/setup.sh cd /opt/xilinx/xrm/test xrmadm list_cmd.json
Input JSON file example list_cmd.json:
{ "request": { "name": "list", "requestId": 1 } }
Output example:
{
"response": {
"name": "list",
"requestId": "1",
"status": "ok",
"data": {
"deviceNumber": "6",
......
"device_2": {
"dsaName ": "xilinx_u30_gen3x4_base_1",
"xclbinName ": "/tmp/xclbins/test_xrm.xclbin",
"uuid ": "d1e0415e27d349a29f0fdfa92e69f8ee",
"isExclusive": "false",
"cuNumber ": "70",
......
"cu_2": {
"cuId ": "2",
"cuType ": "IP Kernel",
"kernelName ": "lookahead",
"kernelAlias ": "LOOKAHEAD_MPSOC",
"instanceName ": "lookahead_2",
"cuName ": "lookahead:lookahead_2",
"kernelPlugin ": "/opt/xilinx/xma_plugins/libxlookahead.so",
"maxCapacity ": "497664000",
"numChanInuse ": "0",
"usedLoad ": "0 of 1000000",
"reservedLoad ": "0 of 1000000",
"resrvUsedLoad": "0 of 1000000"
},
......
},
......
"xrmPluginNumber": "1",
"xrmPlugin_0": {
"xrmPluginName ": "xrmPluginExample",
"xrmPluginFileName": "/opt/xilinx/xrm/plugin/libxrmpluginexample.so"
}
}
}
}