aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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!')