|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | |  | 
| | 
| 
| 
| 
| 
| | Return value should be fpga image type and not
sfp type, fixes a bug with uhd_image_loader while
trying to update XG and AA images | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Previously, the init() procedure of the n3xx class passed either
the user-provided or the default clock_source and time_source values
to initialize the clocking configuration.
When the user did not provide these parameters, the default values
were assigned, overriding whatever configuration the device was
previously initialized with. Therefore, a dboard reinit was forced
when the currently configured state of the N3xx device did not match
the default configuration (i.e. internal sources).
Now, the init() procedure still provides the clock_source and
time_source values; but, if the user does not provide the
parameters, the previously used values are assigned (i.e.
self._clock_source and/or self._time_source).
By the time MPM runs this n3xx init() procedure for the first time,
both self._clock_source and self._time_source have been initialized
with the default internal values anyways in the
_init_ref_clock_and_time() procedure.
This change prevents additional, unnecessary calls to the
set_sync_source() procedure, which ultimately causes a daughterboard
reinitialization when either a new clock or time source is requested. | 
| | |  | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Also updates our coding style file.
Ancient CMake versions required upper-case commands.  Later command
names became case-insensitive.  Now the preferred style is lower-case.
Run the following shell code (with GNU compliant sed):
cmake --help-command-list | grep -v "cmake version" | while read c; do
  echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g'
done > convert.sed \
&& git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' \
'*CMakeLists.txt' | xargs -0 gsed -i -f convert.sed && rm convert.sed
(Make sure the backslashes don't get mangled!) | 
| | 
| 
| 
| | gps_locked should be a bool not int. | 
| | |  | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | - This is a combination of 5 commits.
- rh: add lo distribution board gpio expander
- rh: add lo distribution mpm functions
- rh: add code to conditionally initialize lo distribution
- rh: change empty i2c device from exception to assertion
- rh: add lo distribution board control | 
| | 
| 
| 
| 
| 
| | Co-authored-by: Humberto Jimenez <humberto.jimenez@ni.com>
Co-authored-by: Alex Williams <alex.williams@ni.com>
Co-authored-by: Derek Kozel <derek.kozel@ni.com> | 
| | |  | 
| | 
| 
| 
| 
| 
| | Add coercing behavior to set_time_source and set_clock_source to
a valid sync source. Also, skip set_sync_source if device already
set to the corresponding one. | 
| | 
| 
| 
| 
| 
| | This change to add skip_rfic as an device argument.
skip_rfic should be only used in ref_clock bist tests
to bring down the test time. | 
| | 
| 
| 
| 
| | - Allow generic path names to be given for each search parameter instead of
  only checking the label | 
| | 
| 
| 
| 
| | This commit contains whitespace and formatting changes only. No
functional changes. | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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. | 
| | |  | 
| | 
| 
| 
| 
| | N3xx and E320 were registering GPSDIface names as get_*_sensor instead
of just the sensor name. Fixing this to now register the sensor name. | 
| | |  | 
| | |  | 
| | 
| 
| 
| 
| 
| 
| 
| | Adding MPM Git hash and version to the MPM device info. This
information is currently only available through logs when MPM starts
(it is the first log message in usrp_hwd.py). Adding it to the device
info makes it accessible to any application which checks that, such as
uhd_usrp_probe. | 
| | |  | 
| | |  | 
| | |  | 
| | 
| 
| 
| 
| 
| | 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. | 
| | 
| 
| 
| 
| | - E320 will support only 3.3 V for the front panel GPIO
- Remove other voltage options | 
| | |  | 
| | 
| 
| 
| 
| | The product ID will fall back to the motherboard ID (n300, n310). This
will load FPGA images even if there is no daughterboard connected. | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | - Fix the syntax to open mboard-regs UIO objects, and change the open()
and close() functions to be private.
- We were calling open() twice in every context manager line- once
manually, and once in __enter__. This commit corrects those usages, and
allows the context manager to fully manage the opening and closing of
UIO objects. | 
| | 
| 
| 
| 
| | Specify skip_boot_init=1 to not init during boot. This will increase
boot time for an N310, typically by around 15 seconds. | 
| | 
| 
| 
| 
| 
| 
| 
| | Adding the following sensors:
- Catalina temperature, RSSI, and LO Lock sensors
- GPS lock, time, TPV, and SKY sensors
Co-authored-by: Brent Stapleton <brent.stapleton@ettus.com> | 
| | 
| 
| 
| | Co-authored-by: Sugandha Gupta <sugandha.gupta@ettus.com> | 
| | |  | 
| | 
| 
| 
| 
| 
| 
| | All code relevant to initializing an N310/N300 daughterboard is moved to
its own module (mg_init.py).
No functional changes. | 
| | |  | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | - Refactoring component (FPGA, DTS) updating functions out of
n3xx.py into their own components.py. The ZynqComponent class now
defines the methods to update these two components.
- Adding super().__init__() to the PeriphManagerBase class. This is
needed to get the multiple inheritance used in N3XX now to work, and
(apparently) good Python practice. | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | - Refactoring GPSd interface to be instead wrapped by a
GPSDIfaceExtension class. This class will faciliate "extending" an
object, allowing that object to call the GPSDIfaceExtension methods as
their own.
- New MPM devices (or whatever else) can now use the GPSDIfaceExtension
class instead of writing their own GPSDIface handling functions.
- N3XX now instantiates a GPSDIfaceExtension object, and extends
itself. This means that an n3xx object can call the `get_gps_time`
method as its own, for example.
- N3XX must get through initialization in order for the GPSd methods
to be registered. | 
| | 
| 
| 
| 
| 
| | Moving the RFNoC crossbar base port to the class overridables. MPM
devices may need to reserve different numbers of ports for non-blocks;
this can now be done by overriding the crossbar_base_port. | 
| | 
| 
| 
| | - change scoping of product_map in n3xx | 
| | |  | 
| | 
| 
| 
| 
| 
| | Since there is no simple mapping from an arbitrary tuple of mboard- and
dboard info dictionaries, we use generate_device_info() to figure out
the product key. | 
| | 
| 
| 
| 
| 
| | In the N3xx series, the motherboard ID and the device ID can differ. For
example, the N310 could share the same motherboard with a different
device that uses different daughterboards. | 
| | |  | 
| | 
| 
| 
| 
| | The readout of EEPROMs is moved to their own functions. This will allow
us to read out EEPROM values before starting the initialization. | 
| | |  | 
| | |  | 
| | 
| 
| 
| 
| 
| 
| | Bump maximum supported motherboard revision to 5 (RevF),
to support upcoming motherboard revisions.
Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com> | 
| | |  | 
| | 
| 
| 
| | Reviewed-by: Brent Stapleton <brent.stapleton@ettus.com> | 
| | |  | 
| | 
| 
| 
| | Reviewed-by: Martin Braun <martin.braun@ettus.com> |