| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
This does not change the MPM/UHD API, but it makes the set_freq() call
asynchronous on the MPM side. The upside is that it will release the GIL
if the set_freq() call takes too long, e.g., because of MPM
calibrations.
|
|
|
|
|
| |
This will avoid importing API calls from the self.mykonos object onto
the Magnesium class if the Magnesium class already has such a method.
|
|
|
|
|
| |
Affects Magnesium and Rhodium classes, which where duplicating this
code.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This change will allow correct args to pass from mboard to dboards,
that in turn can be useful for dboard manager.
Details:
In N310, the dboard manager needs the time source to be updated before
calling update_ref_clock_source(), because it will trigger a reinit of
the dboard, for which the time_source is essential to determine correct
clock synchronizer settings.
The special case is the white rabbit time source needs a different
internal ref_clock_frequency for the clock synchronizer than the passed
in ref_clock_freq.
|
|
|
|
|
|
| |
Added set_sync_source method to set both the time and clock sources
without forcing a re-init twice. Modified the existing set_time_source
and set_clock_source methods to call into set_sync_source.
|
|
|
|
|
|
|
|
|
|
| |
When a device is re-initialized without any changes (e.g.,
master_clock_rate, ref_clock_freq) then we can skip the initialization
sequence and move on. This shaves a significant amount of time from the
init sequence.
Fast re-init can be overridden by providing the `force_reinit=1` device
arg.
|
| |
|
|
|
|
|
|
|
| |
All code relevant to initializing an N310/N300 daughterboard is moved to
its own module (mg_init.py).
No functional changes.
|
| |
|
|
|
|
|
|
| |
- Replace mykonos finish_initialization with async version
- Replace myknonos setup_cal with async version
- Remove disable_timeout on rpc_server init()
|
| |
|
|
|
|
| |
Reviewed-by: Martin Braun <martin.braun@ettus.com>
|
| |
|
|
|
|
| |
No functional changes.
|
|
|
|
|
|
| |
The log output at level 'INFO' was pretty cluttered. This cleans up the
log messages at the higher levels. In some cases, log message typos or
capitalizations were also fixed.
|
|
|
|
|
| |
- Fix typo in company name (missing 'a')
- Updated SPDX license identifier to version 3.0
|
| |
|
|
|
|
| |
Reviewed-by: Martin Braun <martin.braun@ettus.com>
|
| |
|
|
|
|
|
|
|
|
| |
Using string expression instead of passing in a total hex value.
Now user can passed in for example: init_cals=DEFAULT or
init_cals=BASIC|TX_QEC_INIT
Reviewed-by: Martin Braun <martin.braun@ettus.com>
|
|
|
|
|
| |
Updating the UIO usage in the debug functions in magnesium.py. Somehow
this didn't get updated before.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Slot A and Slot B are different in how the JESD lanes are connected.
We now pass in different deserializer_lane_xbar config values for each slot.
Reviewed-by: Martin Braun <martin.braun@ettus.com>
Reviewed-by: Daniel Jepson <daniel.jepson@ettus.com>
Reviewed-by: Mark Meserve <mark.meserve@ni.com>
|
|
|
|
| |
Reviewed-by: Martin Braun <martin.braun@ettus.com>
|
|
|
|
|
|
|
| |
There was a theoretical chance otherwise that we forgot to set the
ref_clock_freq value and it set up the LMK incorrectly.
Reviewed-by: Daniel Jepson <daniel.jepson@ettus.com>
|
|
|
|
|
| |
Reviewed-by: Ashish Chaudhari <ashish.chaudhari@ettus.com>
Reviewed-by: Martin Braun <martin.braun@ettus.com>
|
|
|
|
|
|
|
|
|
|
| |
- add version control checks and bump to match latest core
- add detailed mykonos reporting
- add detailed fpga deframer reporting
- misc cleanup
Reviewed-by: Ashish Chaudhari <ashish.chaudhari@ettus.com>
Reviewed-by: Martin Braun <martin.braun@ettus.com>
|
|
|
|
|
|
|
|
| |
Now checks the oldest-compat-rev register. Current rev is read out for
logging purposes.
Reviewed-by: Daniel Jepson <daniel.jepson@ettus.com>
Reviewed-by: Moritz Fischer <moritz.fischer@ettus.com>
|
|
|
|
| |
According to ADI, this bit toggles a lot so ignoring it for now.
|
|
|
|
| |
This is a band-aid solution.
|
|
|
|
|
|
| |
- Magnesium: Bad formatting in DRP setup
- PeriphManagerBase: Import order
- dtoverlay: Missed default value for param
|
|
|
|
| |
Reviewed-By: Martin Braun <martin.braun@ettus.com>
|
|
|
|
|
|
| |
For unknown revs, this now scales back to the last known rev.
Reviewed-By: Trung Tran <trung.tran@ettus.com>
|
|
|
|
| |
Now uses SPDX headers everywhere.
|
|
|
|
|
|
|
| |
Refactoring to use the C++-based UIO objects. The Liberio and Ethernet
objects now open the UIO before using it, and close it once done.
Reviewed-By: Martin Braun <martin.braun@ettus.com>
|
|
|
|
|
|
|
|
| |
- Moved nijesdcore to cores/
- Moved udev, net, dtoverlay, uio to sys_utils/
- Made all imports non-relative (except in __init__.py files)
- Removed some unnecessary imports
- Reordered some imports for Python conventions
|
|
|
|
|
|
|
|
| |
- re-structured Magnesium.init_jesd() sequence to accomodate the reconfiguration
- added DRP access protocols to nijesdcore.py
- cleaned up a few comments and log statements in nijesdcore.py for flow
Reviewed-By: Martin Braun <martin.braun@ettus.com>
|
|
|
|
|
|
|
| |
Simplify the process of setting external LO without calling through many API
layers.
Reviewed-By: Martin Braun <martin.braun@ettus.com>
|
|
|
|
| |
Reviewed-By: Martin Braun <martin.braun@ettus.com>
|
|
|
|
|
|
| |
- ClockSynchronizer object has no more permanent lifetime
- DboardClockControl object lives within `with' statement
- dboard_ctrl_regs are limited to init()
|
|
|
|
|
|
|
| |
Previously, the daughterboard requested an overlay file based on SFP
preference using magic values. This commit moves the decision making to
the peripheral manager, which uses our singular name (ie 'n3xx' for the
N310).
|
|
|
|
|
| |
Note: The sensor API for this lives in n310, but it queries the dboards
for a ref lock status, which is now no longer a stub.
|
|
|
|
| |
Note: On the first run, this flag will always assert.
|
| |
|
|
|
|
|
|
| |
The clock_synchronizer, jesdcore, and dboard_clk_control objects don't
need to exist for the full lifetime of the Magnesium class. Having them
around complicates management of UIO file descriptors.
|
| |
|
| |
|