aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/mpmd
Commit message (Collapse)AuthorAgeFilesLines
* mpmd: tighten reclaiming time.Trung N Tran2018-04-021-2/+3
| | | | | Reclaming interval was exec_time(claim+dump_logs)+MPMD_RECLAIM_INTERNVAL; this change will MAX(exec_time(claim+dump_logs),MPM_RECLAIM_INTERVAL)
* mpmd: Fixed MPM marking wrong device as reachableBrent Stapleton2018-03-301-1/+12
| | | | | | | | During MPMd find routine, added a check when connecting to a CHDR interface to make sure we're talking to the correct device. Without this check MPMd would sometimes incorrectly mark a device as reachable because they shared an addr (ie. 192.168.10.2 existed on multiple devices).
* mpmd: Provide list of MPM devices to fail fast on findMartin Braun2018-03-292-1/+34
| | | | | | | | With this fix, uhd_find_devices --args type=b200, for example, will not stall in this function. Reviewed-by: Ashish Chaudhari <ashish.chaudhari@ettus.com> Reviewed-by: Brent Stapleton <brent.stapleton@ettus.com>
* uhd: Move internal headers to uhdlib/Martin Braun2018-03-142-2/+9
| | | | | | | | | | | | | | | | To avoid the proliferation of additional include directories and multiple ways of including project-local headers, we now default to moving all headers that are used across UHD into the uhdlib/ subdirectory. Some #include statements were also reordered as they were modified for closer compliance with the coding guidelines. Internal cpp source files should now include files like this: #include <uhdlib/rfnoc/ctrl_iface.hpp> Reviewed-by: Ashish Chaudhari <ashish.chaudhari@ettus.com>
* n310: Make MPM report FPGA version and description, UHD read itMartin Braun2018-03-021-2/+6
| | | | | | | The FPGA and MPM version as well as the description of the device ("N300-Series Device") and its name (its the hostname) are now properly reported coming from MPM, properly saved in the prop tree, and uhd_usrp_probe can nicely display them this way.
* mpmd: Fix typo in image loaderMartin Braun2018-02-201-3/+4
|
* mpmd: image loader: add default pathBrent Stapleton2018-02-191-5/+58
| | | | | | | | | | | Added default FPGA image path, similar to how we do it in X300. We determine the path to the fpga image path by checking the following: 1. --fpga-path provided by the user and that file exists 2. FPGA type (`fgpa`) provided in the args 3. Checking the fpga type of the currently loaded image on the device (pulled through `MPM.get_component_info`) 4. Otherwise, error out
* mpmd: add getter for components in property treeBrent Stapleton2018-02-192-4/+32
| | | | | | Adding a publisher for updateable components listed in the property tree. This calls MPM.get_component_info for the desired component, and returns a dictionary containing that metadata.
* mpmd: components: Add doxygen for update componentBrent Stapleton2018-02-191-0/+6
| | | | Adding doxygen comment for _update_component in mpmd.
* uhd: Update license headersMartin Braun2018-02-1914-14/+14
| | | | | | | All copyright is now attributed to "Ettus Research, a National Instruments company". SPDX headers were also updated to latest version 3.0.
* mpmd: Fix compiler issuesMartin Braun2018-02-103-7/+5
| | | | | | - Initialization of device_addr_t from another using auto doesn't work across compilers - Moved MPMD_DISC_RESPONSE_PREAMBLE to mpmd_find where it belongs
* fixup! mpmd: Factor find and prop tree init code out of mpmd_impl.cppBrent Stapleton2018-02-092-4/+3
|
* mpmd: Factor find and prop tree init code out of mpmd_impl.cppMartin Braun2018-02-075-461/+503
| | | | No functional changes.
* mpmd: Let 'find' via broadcast check for reachabilityMartin Braun2018-02-073-6/+197
| | | | | | | | | In particular, when running uhd_find_devices, this will limit the devices to ones that can actually be reached via CHDR. There is a new key, find_all, which allows finding all devices even those not reachable from UHD. Reviewed-by: Brent Stapleton <brent.stapleton@ettus.com>
* mpmd: image loader: increased timeoutBrent Stapleton2018-01-292-2/+4
| | | | | | | | -Increased timeout from 10s to 20s. This time is also per component file being updated. For example, when updating the FPGA with new .bit and .dts files, the timeout will be 40s. -Also added log message to let user know their device is updating, not frozen.
* mpm/mpmd: Report device state using get_init_status() and verifyMartin Braun2018-01-161-0/+9
| | | | | | When trying to run init(), mpmd will first query the initialization status of the MPM device. If it is found to be in a bad state, it will not go forward with initialization, but instead print the error message.
* fixup! mpmd: Add API to read back logs from device and send to native loggingMartin Braun2018-01-111-1/+1
|
* fixup! fpga load: adding MPMD image loader functionBrent Stapleton2018-01-111-1/+1
|
* mpmd: Poll logs on claim and exitMartin Braun2018-01-101-0/+6
|
* mpmd: Add API to read back logs from device and send to native loggingMartin Braun2018-01-102-0/+71
|
* mpmd: Factor out compat number checkMartin Braun2018-01-081-26/+59
|
* mpmd: Refactor device initialization for better parallelizabilityMartin Braun2018-01-083-92/+125
| | | | | | | | | | Note: This doesn't add any concurrency, rather, it changes the structure of the code to allow that. Notable changes: - All prop tree inits in one place - No access to containers in methods that might be run in parallel - Split initialization and claiming in mpmd_mboard_impl, calling ctor will no longer run the full initialization. - Added comments to identify parallelizable spots
* mpm: Increase RPC timeout during update_componentBrent Stapleton2018-01-053-0/+14
| | | | | | | Increases the host's timeout during update_component times, then resets it to the default RPC timeout after the call is complete. Reviewed-by: Martin Braun <martin.braun@ettus.com>
* mpmd: Allow user-overrides for MPM portsMartin Braun2018-01-044-8/+32
| | | | | | | Adds two device args: discovery_port and rpc_port. Both are integers which override the respective constants. Reviewed-by: Ashish Chaudhari <ashish.chaudhari@ettus.com>
* mpmd: Add latency measurement functionalityMartin Braun2018-01-041-1/+43
| | | | | | | | | | By adding measure_rpc_latency, mpmd_impl will run a ping command in a loop at initialization, and estimate average and maximum RPC command latency. Note that the ping() RPC call only does an internal logging call and returns its argument, so it is a very coarse approximation to how fast RPC latency is. Reviewed-by: Ashish Chaudhari <ashish.chaudhari@ettus.com>
* mpmd: Fix fake results returned by mpmd_findAshish Chaudhari2017-12-281-1/+3
| | | | | | | | - For non-MPM Ethernet devices, mpmd_find would return a fake malformed discovery result which would accidentally trigger an mpmd_impl::make resulting in unexpected errors - Fixed mpmd_find to return an empty device_addrs_t object if no MPM devices are found
* Move all headers to SPDX format, harmonize license headersMartin Braun2017-12-221-13/+2
|
* mpmd: liberio: Factor out constants into top of fileMartin Braun2017-12-221-17/+29
|
* mpmd: liberio: Apply MTU of 2 page sizesMartin Braun2017-12-221-3/+4
|
* mpmd: Optionally parallelize all calls to setup_rpc_blocksMartin Braun2017-12-222-14/+39
| | | | Default is to not serialize inits.
* mpmd: Temporarily disable setting of clock and time sourceMartin Braun2017-12-221-2/+24
| | | | | | Currently, calling these APIs could potentially put the device into bad state. This will disable the APIs from UHD side and replace them with a warning if the user's setting did not take effect.
* mpmd: Expose get_mtu() API to mpmd_mboard_impl and to prop treeMartin Braun2017-12-225-12/+50
|
* mpmd: udp: Apply MTU to socket defaultsMartin Braun2017-12-221-8/+15
|
* n310: Move SID framing all the way to n310.pyMartin Braun2017-12-223-6/+1
| | | | | | | MPM will now no longer keep a SID framer variable. Reviewed-by: Trung Tran <trung.tran@ettus.com> Reviewed-by: Brent Stapleton <brent.stapleton@ettus.com>
* mpmd: Add get_mtu() API and MTU discovery for UDP transportsMartin Braun2017-12-225-0/+143
| | | | | | | | | The mpmd_xport_mgr classes can now return their own MTU. The UDP xport manager is a special case, it doesn't actually know its MTU, and thus runs an MTU discovery, using the MPM-ECHO command to discover MTU by sending variable-size packets as a probing mechanism. Reviewed-by: Trung Tran <trung.tran@ettus.com>
* mpmd: Device discovery fixes and cleanupAshish Chaudhari2017-12-224-32/+38
| | | | | | | | | - Fixed issue where the "addr" device args was not honored - Results returned by find only enumerate mgmt_addrs - Explicitly require addr to be specified for RFNoC comms - Cleaned up constants for mgmt_addr, addr and second_addr Reviewed-by: Martin Braun <martin.braun@ettus.com>
* mpmd: Implement better xport selection algorithmMartin Braun2017-12-221-8/+22
| | | | Reviewed-by: Trung Tran <trung.tran@ettus.com>
* mpmd: Refactor MPM transport architecture, use managersMartin Braun2017-12-2212-404/+843
| | | | | | | | | | | | | | This splits up the transport code in mpmd_impl across multiple classes to properly leverage the request_xport/commit_xport API in MPM. Different types of transport (UDP, liberio) use their own distinct classes, which are generated dynamically on request. This is a true refactoring despite the large amount of changes; there are no functional differences. Reviewed-By: Brent Stapleton <brent.stapleton@ettus.com> Reviewed-By: Trung Tran <trung.tran@ettus.com> Reviewed-By: Ashish Chaudhari <ashish.chaudhari@ettus.com>
* mpm: mpmd: Add MPM compat number checkBrent Stapleton2017-12-221-0/+27
| | | | Reviewed-by: Martin Braun <martin.braun@ettus.com>
* mpmd: Allow to connect via addr or mgmt_addrMartin Braun2017-12-221-51/+103
| | | | Reviewed-By: Brent Stapleton <brent.stapleton@ettus.com>
* types: Change eeprom_map_to to uint8_t vectorsMartin Braun2017-12-221-1/+4
| | | | | | | mpmd_impl was already using this type, fixed conversion from std::string to std::vector<uint8_t> there too. Reviewed-By: Brent Stapleton <brent.stapleton@ettus.com>
* mpmd: More gracefully quite the reclaim loop on failureMartin Braun2017-12-221-1/+6
|
* fpga load: Atomic updating of multiple componentsBrent Stapleton2017-12-222-57/+107
| | | | | | | - The MPM function update_component now accepts multiple components to be updated in one RPC call. - Updated the property tree and image loader to match this change. - Also added DTS loading to the image loader.
* mpmd: Bump init timeout to 120 seconds (sic)Martin Braun2017-12-221-1/+1
|
* mpm: added additional filtering to mpm find routineBrent Stapleton2017-12-221-1/+13
| | | | | | mpm_find now filters discovered devices using (if provided in args) name, serial, type, and product. This method follows the same logic as the x300 find routine.
* mpm/mpmd: Move to request_xport()/commit_xport() architectureMartin Braun2017-12-224-120/+342
| | | | | This commit combines code from various branches to finally enable both UDP and Liberio transports.
* fpga load: mpmd property tree now uses the MPM list_updateable_componentsBrent Stapleton2017-12-221-2/+4
| | | | Dynamically generates property tree by querying MPM device for a list of updateable components.
* mpmd: Bump initialization timeout to 45 secondsMartin Braun2017-12-221-1/+1
|
* mpmd: Use the get_last_error feature from the RPC clientMartin Braun2017-12-222-2/+6
| | | | | The RPC client will now query the MPM server for details when an error occured.
* fpga load: adding MPMD image loader functionBrent Stapleton2017-12-222-0/+107
| | | | uhd_image_loader now supports type=n310, and loads the FPGA provided in the arguments.