-
Notifications
You must be signed in to change notification settings - Fork 10
Quick start guide
- You should have
xdaq
package installed on your system and its libraries location should be added to your systemLD_LIBRARY_PATH
- You should have
xerces-c
installed - You should have
protobuf-lite
,protobuf
andprotobuf-devel
packages installed (might be an overspec here) - You should have
wiscrpcsvc
library installed. An RPMs for SLC6 and CC7 are available at 904 NAS:/data/bigdisk/users/sturdy/software/rpcsvc_client_dev/rpm
- Clone the code with the command:
git clone https://github.com/cms-gem-daq-project/xhal.git
- Navigate to release area in your browser: XHAL release area
- Checkout the tag corresponding to desired release:
git checkout tags/<tag_name>
- Run the special script to retrieve binaries:
cd xhal
source setup.sh
python .github/get_binaries.py -t <tag_name> -l .github/uploads.cfg
If you feel like briefly discover the system and perform a connectivity check, you can run python CLI:
NB: make sure you have downloaded all the needed libraries from release (works if you have SLC6.5 machine - CERN default)
source setup.sh
python ./python/reg_interface/reg_interface.py
In the appeared command prompt type:
connect eagleXX
where eagleXX is the name of the board you want to use (eagle33 @P5, eagle34 @904 Integration Stand, eagle26 @QC8)
A command prompt will appear, allowing you to perform single or multi register write/read operations. Examples:
read reg_name
will return the register value.
write reg_name value
will write the value to the register.
CLI support tab completion for these operations.
fw
will return firmware version information for all links.
kw pattern
will return read of all the registers containing "pattern" is their names.
outputnode reg_name
will output node's address, mask, permissions and eventual comments describing what it controls and which values can take
broadcastOH mask action reg_name opt_value
will broadcast read or write reg_name command to all optohybrids specified in the mask. reg_name should start from the part after OHX in full register name.
Example: broadcastOH 0-3,5 read STATUS.FW.DATE
expected output should look like this (in this system only link 0 has OH connected):
`0x65030000 r GEM_AMC.OH.OH0.STATUS.FW.DATE 0x20170505
0x65070000 r GEM_AMC.OH.OH1.STATUS.FW.DATE Bus Error
0x650b0000 r GEM_AMC.OH.OH2.STATUS.FW.DATE Bus Error
0x650f0000 r GEM_AMC.OH.OH3.STATUS.FW.DATE Bus Error
0x65170000 r GEM_AMC.OH.OH5.STATUS.FW.DATE Bus Error`
- Power up OH
- reset SCA module:
python ./python/reg_interface/sca.py <card_name> <mask> r
, where <card_name> is DN of the ctp7 (e.g.eagle26
), is a bit-mask for links. I.e. to reset the OH at link 1 you need a mask of 0b10. To reset links 0-3 you need 0xF mask. After link reset powercycle corresponding OH.