aboutsummaryrefslogtreecommitdiffstats
path: root/mpm/python/usrp_mpm/periph_manager
diff options
context:
space:
mode:
Diffstat (limited to 'mpm/python/usrp_mpm/periph_manager')
-rw-r--r--mpm/python/usrp_mpm/periph_manager/n310.py21
1 files changed, 18 insertions, 3 deletions
diff --git a/mpm/python/usrp_mpm/periph_manager/n310.py b/mpm/python/usrp_mpm/periph_manager/n310.py
index 84a55c9d2..b1c4840d7 100644
--- a/mpm/python/usrp_mpm/periph_manager/n310.py
+++ b/mpm/python/usrp_mpm/periph_manager/n310.py
@@ -18,15 +18,14 @@
N310 implementation module
"""
from __future__ import print_function
-import struct
-import netaddr
+import time
from six import iteritems
from .base import PeriphManagerBase
from ..net import get_iface_addrs
from ..net import byte_to_mac
from ..net import get_mac_addr
from ..mpmtypes import SID
-from ..uio import UIO
+from usrp_mpm.uio import UIO
from ..sysfs_gpio import SysFSGPIO
from ..ethtable import EthDispatcherTable
from .. import libpyusrp_periphs as lib
@@ -134,6 +133,8 @@ class n310(PeriphManagerBase):
xbar.write("0x2")
# if header.get("dataversion", 0) == 1:
self.log.info("mboard info: {}".format(self.mboard_info))
+ # Define some attributes so PyLint stays quiet
+ self._eth_dispatchers = None
def init(self, args):
"""
@@ -147,6 +148,20 @@ class n310(PeriphManagerBase):
}
for ifname, table in iteritems(self._eth_dispatchers):
table.set_ipv4_addr(self._chdr_interfaces[ifname]['ip_addr'])
+ self.log.warning("Running a custom EISCAT-specific sequence to bring " \
+ "up 2 daughterboards without requiring UHD support. " \
+ "This effectively disables Magnesium and must be " \
+ "replaced before merging back into n3xx-master."
+ )
+ self.dboards[0].send_sysref()
+ for dboard in self.dboards:
+ dboard.init_adcs_and_deframers()
+ self.dboards[0].send_sysref()
+ time.sleep(0.5)
+ for dboard in self.dboards:
+ dboard.check_deframer_status()
+ assert dboard.initialized
+
def _allocate_sid(self, sender_addr, port, sid, xbar_src_addr, xbar_src_port):
"""