| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
consideration of the device type
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Added files which were previously maintained in meta-ettus
repository but which are better placed alongside MPM itself:
- eth0/int0/sfp0/sfp1.network: network configuration files
- 70-sfp-net.rules: udev rule for automatically naming the
network interfaces
Signed-off-by: Joerg Hofrichter <joerg.hofrichter@ni.com>
|
| |
|
|
|
|
| |
Add an entry for the internal NIC to E320.
|
|
|
|
|
|
| |
This changes MTU handling for the "internal" UDP type. Because MPM
echo packets will not be returned for internal NICs, use the iface's
programmed MTU instead.
|
| |
|
|
|
|
|
| |
Instead of using hard-coded values, detect the number of liberio
channels, and only offer liberio links if they exist.
|
|
|
|
|
|
| |
If the minor compat number does not match (older than expected), then
generate an error message only if argument fail_on_old_minor is True;
generate a warning otherwise.
|
|
|
|
|
| |
This adds some more details on mpm.conf, what it does, how it works, and
which keys it accepts.
|
|
|
|
|
|
|
|
| |
No functional changes. Fixes for things that PyLint complains about, but
are safe to change anyway, as well as a minor improvement to a docstring
that referenced non-existant args.
This touches files that are mpm.conf-related.
|
|
|
|
|
|
|
|
|
|
| |
The pca953x driver introduced a change for how the "label" property
populates. Instead of using the device model, it gives a device specific
name. As a replacement, use device/name. This affects the tca6424
and tca6408.
For the kernel change that causes this see:
https://github.com/torvalds/linux/commit/5128f8d4450159f59565d247437d3bedda3994cb
|
|
|
|
|
| |
This commit returns information on the filesystem and mender artifact
versions to clients of the MPM RPC connection.
|
|
|
|
|
|
|
|
|
| |
Though this information is also returned via usrp_probe, it can be
useful to provide this information to trackers which scrape the
get_device_info RPC call.
The dboard information is split up and cast to string just to
simplify parsing on the receiving end.
|
|
|
|
|
| |
The mpm_version key was being overridden by the MPM_COMPAT field in
rpc_server::get_device_info.
|
|
|
|
|
|
|
|
|
| |
udp_zero_copy requires the network send buffer size (net.core.wmem_max)
and the network receive buffer size (net.core.rmem_max) to be set to
2500000 bytes (UDP_DEFAULT_BUFF_SIZE in udp_common.hpp).
Add a sysconf file (usrp-hwd.conf) to automatically set the recommended
values.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
msgpack 0.6.1 suggests new default parameters which ensures compatibility
with the upcoming msgpack 1.0 release which will have breaking changes.
The parameter changes are described in
https://github.com/msgpack/msgpack-python/blob/v0.6.1/README.rst
The default parameters for msgpack 1.0 will be:
- packer: use_bin_type=True
- unpacker: raw=False
The packer use_bin_type=True option is already set in the client
(mpm_shell.py) but the unpacker option raw=False needs to be set
in the server (rpc_server.py)
This change allows the usage of a patched version of python3-mprpc
0.1.17 which removes passing the encoding option to the Packer and
Unpacker
Signed-off-by: Joerg Hofrichter <joerg.hofrichter@ni.com>
|
|
|
|
|
|
| |
Msgpack version 0.6 reduced the default max buffer size to 1MB which is
smaller than the bitfiles. This change sets the max buffer size to 50MB
which is larger than the bitfiles.
|
|
|
|
| |
When making context managers in Python, the yield statement has to be wrapped in a try/finally clause in order to properly clean up after exceptions happen.
|
|
|
|
|
| |
Modify the RPC claim timeout mechanism to use a contextmanager
helper function when enabling/disabling timeouts.
|
| |
|
|
|
|
|
| |
The Python code contained a typo which would cause a call to
get_gpio_srcs() to throw an exception.
|
|
|
|
|
|
|
| |
this fixes the error of a missing symbol
_ZNK5boost9gregorian10greg_month15as_short_stringEv
in /usr/lib/libusrp-periphs.so.4 when building
with Boost 1.71
|
|
|
|
|
| |
This avoids a linker error where set_thread_name and set_thread_priority
cannot be found.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MPM shell now supports script execution. It utilizes the cmdqueue of
Pythons cmd.Cmd class for this. The script to execute is a text file
containing the commands one per line.
The output decoration of MPM shell changed. Commands are decorated with
">" whereas responses use "<" at line start. Multiline responses are
decorated in each line.
Cleanup overwritten methods of cmd.Cmd to allow proper shutdow in
interactive as well as in scripted mode.
Improved pylint score.
|
| |
|
|
|
|
| |
This enables the *gpio_src* APIs for the E320 and the E31x.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The N310 has a feature that allows the front panel GPIOs to be driven by
various sources: The PS, or any of the radio channels. The MPM-based
APIs did not expose any way to change that.
Changes:
- Add MPM APIs to PeripheralManagerBase and n3xx classes
- Improve comments and explanations
- Add host-side hooks into these new APIs in mpmd_mb_controller
- Implement these APIs for N3xx
The N3xx devices will have the option to set the GPIO source to "PS", or
to one of "RF0", "RF1", "RF2", "RF3" (if there are four channels; the
N300 and N320 can only go up to RF1).
Note: The N310 radio does not have separate FP-GPIO banks for channels
0 and 1, which needs to be fixed in a separate commit.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The macro MPM_REGISTER_COMPONENT did not work as described: in case
the default enable was set to ON and all dependencies were met, the
module was still not enabled.
Also made the status prints more helpful:
- print the default value,
- print the user override (if one was provided)
- print the resulting VAR = VALUE
- print the override hint only if the user did not
already specify an override
Example of old incorrect behavior:
-- Configuring Mykonos support...
-- Dependency ENABLE_LIBMPM = ON
-- Disabling Mykonos support.
-- Override with -DENABLE_MYKONOS=ON/OFF
Example of new correct behavior (also with changed prints):
-- Configuring Mykonos support...
-- Default value ENABLE_MYKONOS = ON
-- Dependency ENABLE_LIBMPM = ON
-- Enabling Mykonos support (ENABLE_MYKONOS = ON)
-- Override with -DENABLE_MYKONOS=ON/OFF
|
|
|
|
|
|
|
|
|
|
|
|
| |
The cmake script (macro MPM_REGISTER_COMPONENT) has an issue that the default
value is ignored which will be fixed in the following commit.
As a result of this issue, the modules Mykonos, Magnesium, E320 and E300 never
got enabled per default. It was always necessary to use an override
like ENABLE_MYKONOS=ON.
Therefore, change the default enable values so that a fix to MPM_REGISTER_COMPONENT
does not change the current behavior.
|
|
|
|
|
| |
If the unittests are invoked with an extra argument -x, an XML report
is generated if the xmlrunner module is installed
|
|
|
|
|
| |
In some environments _GNU_SOURCE must be defined to use
O_LARGEFILE.
|
|
|
|
| |
This commit changes an mpm_shell error message to include the command
that failed when the mpm_shell does not have the claim token.
|
|
|
|
|
|
| |
The ad9371 call set_master_clock_rate() can take a while depending on
the rate change, so make it asynchronous in order not to lock out the
reclaimer loop.
|
|
|
|
|
|
|
|
|
| |
- ref_locked failure would throw a warning, even though this can happen
in normal operations, and the return value of the get_ref_locked()
function is all the info needed
- get_fpga_type() doesn't need to be called from e31x_periphs, because
it is not read from the motherboard registers (is read from the
EEPROM)
|
|
|
|
|
|
|
| |
The clock source on E310 is always internal. This patch removes the
variables regarding the clock source (since they are superfluous). This
fixes a bug where self._clock_source on the e31x class would never get
initialized.
|
|
|
|
| |
The GPS sensors are pulled in via gpsd_iface.
|
|
|
|
|
|
|
|
|
|
|
| |
- Remove superfluous INFO logging
- Improve formatting in many places
- Improve Pylint score in various places
- Add tear_down to DB object
- Simplify custom EEPROM code for E310
- Fix time source selection code
- Remove references to GPS_CTRL and GPS_STATUS (are E320 only)
- Move clock source control out of MboardRegs object
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Many small cleanups:
- Fix copyright headers
- Fix superfluous imports
- Pull some constants out of classes where appropriate
- Fix formatting
- Improve/fix some docstrings
- Disable specific Pylint warnings where appropriate
- Global catches use BaseException instead of Exception
- Don't use len() for empty checks
- Make sure to declare all self attributes in __init__ (note: this is
particularly of interest for E310, becuase its regular init happens
outside of __init__)
- Compacted some E310 code that had multi-DB checks
|
|
|
|
|
| |
This removes the token requirement for get_proto_ver() and
get_chdr_width().
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This assumes an existence of mboard_regs_control in PeriphManagerBase
and implements most TK controls there. All the *_periphs.py files can
now use a common class for registers, including the TK access, but also
git hash, build date, and device ID access.
This also fixes two issues:
- set_timekeeper_time() and set_tick_period() had a bug that would
incorrectly calculate the upper 32 bits of their respective registers.
- N3xx had a bug that would swap around set time now and next PPS. This
got auto-fixed because the common code never had this bug.
|
|
|
|
|
|
|
| |
- Replace some `if len(seq)` with `if seq`
- Replace some `lambda: f()` with `f`
- Formatting
- Add some pylint: disable where appropriate
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This removes the following Boost constructs:
- boost::shared_ptr, boost::weak_ptr
- boost::enable_shared_from_this
- boost::static_pointer_cast, boost::dynamic_pointer_cast
The appropriate includes were also removed. All C++11 versions of these
require #include <memory>.
Note that the stdlib and Boost versions have the exact same syntax, they
only differ in the namespace (boost vs. std). The modifications were all
done using sed, with the exception of boost::scoped_ptr, which was
replaced by std::unique_ptr.
References to boost::smart_ptr were also removed.
boost::intrusive_ptr is not removed in this commit, since it does not
have a 1:1 mapping to a C++11 construct.
|
|
|
|
|
| |
Ethernet now uses the same serialization of the RFNoC stream as all
the other transports.
|