cms-gem-daq-project / reg_utils

0 stars 9 forks source link

Bug Report: pickle file no longer understood on CTP7 #27

Closed bdorney closed 5 years ago

bdorney commented 6 years ago

Brief summary of issue

After we stripped sca.py, gbt.py, and reg_interface.py from xhal and migrated tools to reg_utils and gem specific additions ontop of that in xhal (post xhal tag 3.2.2 the CTP7 seems no longer able to understand the pickle file that is generated on the DAQ machine; additionally reg_interface.py on the CTP7 will not allow you to generate a pickle file on it.

This is a critical problem since gbt.py is relying on the gem_amc_top.pickle file to program the GBT's over the fiber link.

Types of issue

Expected Behavior

GBT's

Current Behavior

Steps to Reproduce (for bugs)

  1. Generate a pickle file on a machine that is using reg_utils and xhal post packaging split.
  2. Place pickle file on CTP7
  3. Call gbt.py 1 2 config <gbt config file for GBT2>

Example failure shown in this elog entry

Possible Solution (for bugs)

Unknown.

Context (for feature requests)

Presently rolled back the pickle file to what was last generated by xhal tag 3.2.2 but this only knows about 2 optohybrids in the address table and the CTP7 firmware now supports four (since v3.5.1).

This is pretty critical because with the superchamber construction the number of running OHv3c's that need gbt programming over the fiber link simultaneously are now more than 2 boards.

Your Environment

jsturdy commented 6 years ago

As a temporary workaround, can you just generate the new pickle file from the 3.2.2 tag, since it seems that tag was the last one to provide a working pickle file with the tools as they are?

bdorney commented 6 years ago

Yes okay I’ll give that a shot. Thanks for suggestion.

bdorney commented 6 years ago

To add some additional information on this.

@mexanick proposed the following via email:

please see the table below. These are first four lines of pickled files generated by old version of reg_interface (left) and new one (right). The only difference is in the line #3. So when you generate a new pickle file, just change the line #3 to the older (left) version.

<80>^Bccollections                                            | <80>^Bccollections
OrderedDict                                                       | OrderedDict
q^A]q^B(]q^C(U^GGEM_AMCq^D(crw_reg      | q^A]q^B(]q^C(U^GGEM_AMCq^D(creg_utils.reg_interface.common.reg_xml_parser
Node                                                                  | Node

So I have done that both on eagle60 and eagle64 however this resolved one issue and then created what appears to be another shown in this elog entry.

mexanick commented 6 years ago

The recipe has been updated to edit only the end of a line and not the whole line. Now it works.

bdorney commented 5 years ago

The recipe has been updated to edit only the end of a line and not the whole line. Now it works.

Sorry I didn't understand. What changes need to be done now?

mexanick commented 5 years ago

that's an old comment - if you remember, we iterated couple of times and reached an agreement on how one should modify the pickled file without introducing any show stopping characters in the file. Thus, I consider this issue as resolved and would like to close it.

bdorney commented 5 years ago

Ah okay, just as a sanity check can you confirm for me that step 27 is still valid?

https://github.com/cms-gem-daq-project/sw_utils/blob/develop/v3ElectronicsUserGuide.md#to-update-oh-fw-on-ctp7

mexanick commented 5 years ago

yes