aboutsummaryrefslogtreecommitdiffstats
path: root/mpm
diff options
context:
space:
mode:
authordjepson1 <daniel.jepson@ni.com>2017-12-20 16:44:27 -0600
committerMartin Braun <martin.braun@ettus.com>2017-12-22 15:06:03 -0800
commit62efbfff1e242f87f11bde65f27af602e22777ea (patch)
treebe9e7fbc5d0879b9a404d2db01ffd4d9cb6c3dc5 /mpm
parent3980f7401e6c461a9359f229b6b940e580452e08 (diff)
downloaduhd-62efbfff1e242f87f11bde65f27af602e22777ea.tar.gz
uhd-62efbfff1e242f87f11bde65f27af602e22777ea.tar.bz2
uhd-62efbfff1e242f87f11bde65f27af602e22777ea.zip
mpm: mg: Repeat deframer init upon failure
This is a band-aid solution.
Diffstat (limited to 'mpm')
-rw-r--r--mpm/python/usrp_mpm/dboard_manager/magnesium.py9
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!')