Local driver¶
What is the "local" driver?¶
In order to ensure absolute consistency with the software externals, the DUNE readout external packages from the ATLAS FELIX Software Suite are built in-house and deployed as external products. Hence the reason, the driver being a foundation that connects firmware with software, it is also part of this product.
Build and start script¶
With sudo
rights or as root
one can use the setup_felix_driver.sh script to build and start the drivers.
How to build and start it, step by step¶
With sudo
rights or as root
one needs to do the following steps:
mkdir -p /opt/felix
cp -r /cvmfs/dunedaq.opensciencegrid.org/products/felix/v1_2_2 /opt/felix/
if [[ `lsb_release -rs` == 8 ]]; then cd /opt/felix/v1_2_2/Linux64bit+4.18-2.28-e19-prof/drivers_rcc/src/; else cd /opt/felix/v1_2_2/Linux64bit+3.10-2.17-e19-prof/drivers_rcc/src/; fi;
make -j
cd ../script
sed -i 's/gfpbpa_size=4096/gfpbpa_size=8192/g' ./drivers_flx_local
./drivers_flx_local stop
./drivers_flx_local start
./drivers_flx_local status
The expected output is similar to this:
[root@host script]# ./drivers_flx_local status
cmem_rcc 8431913 0
>>>>>> Status of the cmem_rcc driver
CMEM RCC driver (FELIX release 4.5.0)
The driver was loaded with these parameters:
gfpbpa_size = 8192
gfpbpa_quantum = 4
gfpbpa_zone = 0
numa_zones = 1
alloc_pages and alloc_pages_node
PID | Handle | Phys. address | Size | Locked | Order | Type | Name
GFPBPA (NUMA = 0, size = 8192 MB, base = 0x00000013b1000000)
PID | Handle | Phys. address | Size | Locked | Type | Name
The command 'echo <action> > /proc/cmem_rcc', executed as root,
allows you to interact with the driver. Possible actions are:
debug -> enable debugging
nodebug -> disable debugging
elog -> Log errors to /var/log/messages
noelog -> Do not log errors to /var/log/messages
freelock -> release all locked segments
io_rcc 21598 0
>>>>>> Status of the io_rcc driver
IO RCC driver for release tdaq831_for_felix (based on tag ROSRCDdrivers-00-01-00)
Dumping table of linked devices
Handle | Vendor ID | Device ID | Occurrence | Process ID
The command 'echo <action> > /proc/io_rcc', executed as root,
allows you to interact with the driver. Possible actions are:
debug -> enable debugging
nodebug -> disable debugging
elog -> Log errors to /var/log/messages
noelog -> Do not log errors to /var/log/messages
Current values of the parameter(s)
debug = 0
errorlog = 1
flx 43300 0
>>>>>> Status of the flx driver
FLX driver 4.5.0 for RM4 F/W only
Debug = 0
Number of devices detected = 2
Locked resources
device | global_locks
=============|=============
0 | 0x00000000
1 | 0x00000000
Locked resources
device | resource bit | PID | tag
=======|==============|=========|=====
Error: Device 0 does not have the required F/W. The regmap register contains 0x00000500
Error: This version of the driver is for regmap 4.0
Error: Device 1 does not have the required F/W. The regmap register contains 0x00000500
Error: This version of the driver is for regmap 4.0
The command 'echo <action> > /proc/flx', executed as root,
allows you to interact with the driver. Possible actions are:
debug -> Enable debugging
nodebug -> Disable debugging
elog -> Log errors to /var/log/message
noelog -> Do not log errors to /var/log/message
swap -> Enable automatic swapping of 0x7038 / 0x7039 and 0x427 / 0x428
noswap -> Disable automatic swapping of 0x7038 / 0x7039 and 0x427 / 0x428
clearlock -> Clear all lock bits (Attention: Close processes that hold lock bits before you do this)
Please ignore the last errors which are complaining about regmap missmatch.
Last git commit to the markdown source of this page:
Author: roland-sipos
Date: Tue Apr 26 10:19:16 2022 +0200
If you see a problem with the documentation on this page, please file an Issue at https://github.com/DUNE-DAQ/flxlibs/issues