| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
- 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.
|
| |
|
|
|
|
|
| |
Adding ADF400X driver to MPM. This uses the Boost.Python bound spidev,
and is largely a translation from the C++ driver in UHD.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce dt-compat and mcu-compat fields into the eeprom
structure.
For the motherboard eeprom this is straightforward, since
there's still padding bytes that could be (ab)used for this.
On the dboard side more creativity is required and the
original revision field of 2 bytes is reduced to only
one byte revision and one byte dt-compat.
Since this will only affect new units being backwards
compatible with older versions of the bootloader is not
an issue.
Reviewed-by: Brent Stapleton <brent.stapleton@ettus.com>
Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
|
| |
|
|
|
|
| |
- change scoping of product_map in n3xx
|
| |
|
|
|
|
|
|
|
| |
This manager first detects all valid Ethernet devices. The checks for
validity happen across multiple calls in a non-atomic fashion, so it's
possible to end up with inconsistent results. To avoid such issues, we
filter results without talking to the network stack as a final pass.
|
|
|
|
|
|
|
| |
Because the detection of valid Ethernet devices happens across multiple
calls in a non-atomic fashion, we cannot assume that a device passed to
net.get_iface_info() actually has a valid IP address, so we don't make
that assumption.
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
Replaced 'clock_int' (which is not implemented) with 'fan'.
|
| |
|
|
|
|
|
|
| |
This changes the sorting algorithm for the xport<->SFP mapping. When
multiple SFPs are used, this sorting will avoid a criss-cross mapping
(e.g., mapping ports 0 and 1 of 0/Radio_0 to different SFPs).
|
| |
|
|
|
|
|
| |
The async calls to long C++ methods allows the claimer loop to smoothly
continue during init, so this hack is no longer necessary.
|
|
|
|
|
|
| |
- Replace mykonos finish_initialization with async version
- Replace myknonos setup_cal with async version
- Remove disable_timeout on rpc_server init()
|
|
|
|
|
|
| |
Usually, the current timeout is fine, but there are cases when a lot of
RPC traffic could drown out the reclaim calls. 5 seconds is an
experimentally derived safe value.
|
| |
|
| |
|
|
|
|
|
|
| |
Separating Boost.Python bindings into device-specific files. N3XX code
now lives in n3xx/pyusrp_periphs. Only one src file should be added for
pyusrp_periphs.so by CMake.
|
|
|
|
|
| |
For a minimal build, default to off for components unless the MPM_DEVICE
or the user requests it specifically.
|
| |
|
|
|
|
|
|
|
| |
Bump maximum supported motherboard revision to 5 (RevF),
to support upcoming motherboard revisions.
Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
|
|
|
|
|
|
|
| |
We need to set it before including UHDPython.cmake where PythonInterp is set without
version requirement.
Reviewed-by: Martin Braun <martin.braun@ettus.com>
|
| |
|
| |
|
| |
|
|
|
|
| |
Reviewed-by: Brent Stapleton <brent.stapleton@ettus.com>
|
| |
|
| |
|
|
|
|
| |
Reviewed-by: Martin Braun <martin.braun@ettus.com>
|
| |
|
|
|
|
|
|
| |
Adding address offset to all MBoard and DBoard EEPROM reads. This
matches what we're doing for the user portion of the EEPROM, and
allows us to share access to an EEPROM.
|
|
|
|
|
|
|
|
|
|
|
|
| |
UIO objects now count references on open and close calls. This should
prevent problems with nested function calls that open/close the same
UIO object.
References counts are not atomic -- this is intended for nesting with
statements within the same thread context.
Reviewed-by: Martin Braun <martin.braun@ettus.com>
Reviewed-by: Trung Tran <trung.tran@ettus.com>
|
| |
|
| |
|
|
|
|
|
| |
The N300-variant has no front-panel LO connectors, so we need to warn
ther user when trying to use them.
|
| |
|
|
|
|
|
| |
In case of a lost connection to a sysfs-gpio device, this will trigger
the correct errors.
|
| |
|
| |
|
| |
|