diff options
author | djepson1 <daniel.jepson@ni.com> | 2017-12-20 16:44:27 -0600 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2017-12-22 15:06:03 -0800 |
commit | 62efbfff1e242f87f11bde65f27af602e22777ea (patch) | |
tree | be9e7fbc5d0879b9a404d2db01ffd4d9cb6c3dc5 | |
parent | 3980f7401e6c461a9359f229b6b940e580452e08 (diff) | |
download | uhd-62efbfff1e242f87f11bde65f27af602e22777ea.tar.gz uhd-62efbfff1e242f87f11bde65f27af602e22777ea.tar.bz2 uhd-62efbfff1e242f87f11bde65f27af602e22777ea.zip |
mpm: mg: Repeat deframer init upon failure
This is a band-aid solution.
-rw-r--r-- | mpm/python/usrp_mpm/dboard_manager/magnesium.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/mpm/python/usrp_mpm/dboard_manager/magnesium.py b/mpm/python/usrp_mpm/dboard_manager/magnesium.py index 23bf1d24c..baf3ebb01 100644 --- a/mpm/python/usrp_mpm/dboard_manager/magnesium.py +++ b/mpm/python/usrp_mpm/dboard_manager/magnesium.py @@ -651,6 +651,13 @@ class Magnesium(DboardManagerBase): # Allow a bit of time for CGS/ILA to complete. time.sleep(0.100) + for attempt in range(5): + if not jesdcore.get_deframer_status(): + self.log.warning("FPGA Deframer Error! Re-starting FPGA deframer (attempt {}/5)...".format(attempt+1)) + jesdcore.init_deframer() + else: + break + if not jesdcore.get_framer_status(): self.log.error("FPGA Framer Error!") raise Exception('JESD Core Framer is not synced!') @@ -659,7 +666,7 @@ class Magnesium(DboardManagerBase): raise Exception('Mykonos Deframer is not synced!') if not jesdcore.get_deframer_status(): self.log.error("FPGA Deframer Error!") - raise Exception('JESD Core Deframer is not synced!') + raise Exception('JESD Core Deframer is not synced, even after 5 attempts!') if (self.mykonos.get_framer_status() & 0xFF) != 0x3E: self.log.error("Mykonos Framer Error: 0x{:X}".format((self.mykonos.get_framer_status() & 0xFF))) raise Exception('Mykonos Framer is not synced!') |