diff options
Diffstat (limited to 'mpm')
| -rw-r--r-- | mpm/python/usrp_mpm/periph_manager/base.py | 17 | 
1 files changed, 13 insertions, 4 deletions
diff --git a/mpm/python/usrp_mpm/periph_manager/base.py b/mpm/python/usrp_mpm/periph_manager/base.py index a619247ad..f5b3f39e8 100644 --- a/mpm/python/usrp_mpm/periph_manager/base.py +++ b/mpm/python/usrp_mpm/periph_manager/base.py @@ -148,11 +148,16 @@ class PeriphManagerBase(object):          # Set up logging          self.log = get_logger('PeriphManager')          self.claimed = False -        self._init_mboard_with_eeprom() -        self._init_mboard_overlays(self._eeprom_head, args) -        self._init_dboards(args.override_db_pids) -        self._available_endpoints = list(range(256))          self._init_args = {} +        self._available_endpoints = list(range(256)) +        try: +            self._init_mboard_with_eeprom() +            self._init_mboard_overlays(self._eeprom_head, args) +            self._init_dboards(args.override_db_pids) +            self._device_initialized = True +        except Exception as ex: +            self.log.error("Failed to initialize device: %s", str(ex)) +            self._device_initialized = False      def _init_mboard_with_eeprom(self):          """ @@ -326,6 +331,10 @@ class PeriphManagerBase(object):          self.log.info("Mboard init() called with device args `{}'.".format(              ",".join(['{}={}'.format(x, args[x]) for x in args])          )) +        if not self._device_initialized: +            self.log.error( +                "Cannot run init(), device was never fully initialized!") +            return False          self._init_args = args          self.log.debug("Initializing dboards...")          return all((dboard.init(args) for dboard in self.dboards))  | 
