Commit graph

24 commits

Author SHA1 Message Date
Martin Braun
b3662efeb3 mpm: Add temporary failure for FPGA reload
Note: This is subject to removal, but makes the FPGA reloading code
available to all until we fix the reload bug.
2017-12-22 15:05:57 -08:00
Brent Stapleton
19cdfb4148 mpm: Reset periph manager on update
Upon updating certain components (the FPGA, for example), the
Peripheral Manager is restarted, and the overlay is reapplied. In order
to facilitate this, the RPC server intercepts and handles the
update_component function.

Tested on the RJ45 ethernet connection. It probably won't work as well
if the SFP connection goes down when the overlay is removed.
2017-12-22 15:05:57 -08:00
Martin Braun
b12b9465ed mpm/mpmd: Move to request_xport()/commit_xport() architecture
This commit combines code from various branches to finally enable both
UDP and Liberio transports.
2017-12-22 15:05:06 -08:00
Martin Braun
fb5e10a8e4 mpm: Cache connection type in PeriphManagerBase
Now, when claiming a device, the connection type will be stored as a
string in PeriphManagerBase. This way we can read out the current
connection type even when not currently inside an RPC call.
2017-12-22 15:05:05 -08:00
Martin Braun
16da5da375 mpm: Remove leading _ from _get_device_info()
Use @norpc instead. This fixes some linting issues.
2017-12-22 15:05:05 -08:00
Martin Braun
bcf3f28e15 mpm: Improve exception/error handling
- Any RPC call with uncaught exceptions will result in additional
  logging on MPM side
- Adds get_last_error() API call
- get_last_error() is populated by various methods within rpc_server.py,
  but also from every uncaught exception
2017-12-22 15:05:05 -08:00
Brent Stapleton
2196878439 mpm: server supports binary strings being sent across rpc 2017-12-22 15:04:03 -08:00
Martin Braun
d711ad4c93 mpm: RPC methods now tell us if they need a claim
On the RPC server side, we keep track of which methods require a claim
token. MPM shell uses this info to automatically add claim tokens when
required.
2017-12-22 15:04:00 -08:00
Martin Braun
8063697d68 mpm: Check rpc server has matching lock release/acquires 2017-12-22 15:04:00 -08:00
Martin Braun
40235b8c5a mpm/mpmd: Call init() during UHD session init, not on hwd spawn 2017-12-22 15:03:59 -08:00
Martin Braun
797b61a3fb mpm: RPC servers own methods can no longer be overwritten 2017-12-22 15:03:59 -08:00
Martin Braun
4b9e07629d mpm: Improved token checking in RPC server 2017-12-22 15:03:58 -08:00
Martin Braun
664f471baf mpm: Addition Py3k fixes, all related to string/UTF-8/ascii differences
- Also fixed some error handling in various cases
2017-12-22 15:03:58 -08:00
Martin Braun
6183d9eeaa mpm: Made code Python3-compatible 2017-12-22 15:03:58 -08:00
Martin Braun
5dcaffcd0b mpm: RPC server now provides decorators for no token and no RPC
- Also token length is now variable, and 16 characters
2017-12-22 15:03:58 -08:00
Martin Braun
0a9632ad39 mpm: RPC server unitializes a device when claim is lost 2017-12-22 15:03:53 -08:00
Martin Braun
4efea95324 mpm: Enabled mboard EEPROM readout 2017-12-22 15:03:53 -08:00
Martin Braun
1b27c16dd3 mpm: Updating ref clock frequency will propagate to dboard, changed slot indexing to numbers 2017-12-22 15:03:52 -08:00
Martin Braun
285f14392b mpm: Moved over to new logging infrastructure
Also currently hardcodes some settings.
2017-12-22 15:03:45 -08:00
Andrej Rode
7f71111988 mpm: comment out functionality to make it work
- add uio udev find routine
 - add debug prints

Signed-off-by: Andrej Rode <andrej.rode@ettus.com>
Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
2017-12-22 15:03:45 -08:00
Andrej Rode
6a12add156 mpm: mpm reorganization 2017-12-22 15:03:45 -08:00
Andrej Rode
8ac9014d5c mpm: CMake cleanup, Python code enhancements
- Send user defined data in ping
- Improve rpc_shell, add mpm_debug.py, fix tracebacks in multiprocessing
2017-12-22 15:03:44 -08:00
Andrej Rode
ef6326a174 mpm: python refactoring 2017-12-22 15:03:44 -08:00
Martin Braun
1a4348038d Initial commit for N3xx development.
- Creates mpm/ subdirectory
- First pass at hardware daemon/MPM
- New code for LMK04828, AD9371
- spidev integration

Contributions by:

Martin Braun <martin.braun@ettus.com>
Derek Kozel <derek.kozel@ettus.com>
Mark Meserve <mark.meserve@ni.com>
Andrej Rode <andrej.rode@ettus.com>
2017-12-22 15:03:44 -08:00