aboutsummaryrefslogtreecommitdiffstats
path: root/host
Commit message (Collapse)AuthorAgeFilesLines
* DUC: Fix incorrect DDS_GAINmichael-west2020-10-261-1/+1
| | | | | | | Fixes incorrect value for the DDS_GAIN that was causing the TX output power to be 6 dB lower than it was supposed to be. Signed-off-by: michael-west <michael.west@ettus.com>
* multi_usrp: Fix streamer destruction callbackmichael-west2020-10-221-91/+74
| | | | | | | | | | | | | | | | | The streamers were keeping a reference to the multi_usrp object, so the object would not destruct when the user deleted or reset the shared pointer to the object. An error would occur if the user attempted to make the same device and get streamers on it without explicitly deleting the streamers first. This change refactors the code such that the streamer destructor only depends on the existence of a weak_ptr to the underlying rfnoc_graph and a vector of edges returned by the connect function. It checks to see if the graph has been deleted before calling the functions to disconnect the edges. This allows the multi_usrp object and streamer objects to be destructed in any order. Signed-off-by: michael-west <michael.west@ettus.com>
* graph: Serialize all graph-related functionsAaron Rossetto2020-10-222-8/+13
| | | | | | | | This commit expands the scope of the former _release_mutex, renaming it _graph_mutex and ensuring that all graph modification functions are serialized against each other. This ensures that callers to graph_t's public functions are always operating on a coherent view of the underlying BGL graph object.
* graph: Re-fetch dst_node descriptor after src_node potential removalAaron Rossetto2020-10-221-0/+3
| | | | | | | | | | | | | | | | | The graph_t::disconnect(src_node, dst_node) function removes connections (edges) from src_node to dst_node in the graph, and then removes the nodes (vertices) if their degree is zero after removing the connections. Because removing a vertex from the graph invalidates vertex descriptors, the graph_t::_remove_node() function resynchronizes the node-to-vertex descriptor map after removing the vertex. However, in graph_t::disconnect(), the vertex descriptor corresponding to dst_node was not being refetched after the potential removal of src_node, which results in the incorrect removal of innocent nodes under certain circumstances. This commit ensures that the node-to-vertex descriptor is reconsulted for the vertex descriptor corresponding to dst_node before removing it from the tree.
* fixup! rfnoc: Fix thread unsafe accesses in ctrlportCiro Nishiguchi2020-10-201-7/+5
|
* rfnoc: Fix thread unsafe accesses in ctrlportCiro Nishiguchi2020-10-201-56/+35
|
* python: Add access to the property_tree from PythonMartin Braun2020-10-167-0/+96
| | | | | | | Example: >>> usrp = uhd.usrp.multi_usrp("") >>> tree = usrp.get_tree() >>> print(tree.access_int("/name").get())
* uhd_images_downloader: Add environment variable for http authLane Kolbly2020-10-154-3/+79
| | | | | | | | | This allows the image downloader to download files from restricted sources using HTTP basic auth, specifying the credentials in the UHD_IMAGES_USER and UHD_IMAGES_PASSWORD environment variables: ``` UHD_IMAGES_USER=lane UHD_IMAGES_PASSWORD=MyS3cretPassword uhd_images_downloader.py ```
* uhd_images_downloader: Remove unused default_no parameterLane Kolbly2020-10-151-3/+2
| | | | | This parameter isn't used by any callers of the function. Additionally, it doesn't actually change the default answer.
* utils: Improve NMEA string outputmichael-west2020-10-121-47/+42
| | | | | | | | | | Separated output of GPGGA and GPRMC strings into separate try/catch so each one would display independently. Resolves issue of GPGGA string not displaying on devices that don't support the GPRMC string. Also removed unnecessary uses of boost::format. Signed-off-by: michael-west <michael.west@ettus.com>
* python: Move multi_usrp_python to its own moduleMartin Braun2020-10-123-192/+204
| | | | | This helps with recompilation times of UHD. No functional changes.
* examples: Fix --random option in benchmark_ratemichael-west2020-10-121-5/+11
| | | | | | | | The implementation was not properly configuring the stream command if the --random flag was used. It was especially bad when multiple channels were specified. Signed-off-by: michael-west <michael.west@ettus.com>
* deps: rpclib: Fix issue on socket closingMartin Braun2020-10-091-1/+7
| | | | | | | The rpclib server session closes its socket, which can fail. In our case, we only use the server for some tests, and we close the server on process exit, so we let the error slide. Since we close servers in dtors, not doing so would occasionally cause SIGABRT.
* tests: mock_block: Allow mock blocks to carry MB controllersMartin Braun2020-10-092-6/+9
|
* utils: Set rfnoc_create_verilog.py as executableWade Fife2020-10-091-0/+0
|
* n310/n300: Allow gain coercionMartin Braun2020-10-091-2/+14
| | | | | | | | | | | | The N310 had a different behaviour from other devices, where setting a gain out of range would cause an assertion error. This is problematic for two reasons: 1) Assertion errors should not be triggered by public APIs (if we throw public APIs, we should give a clear error message), and 2) Setting gain and frequency has a coercing behaviour on all other devices. This changeset clips the gain before calling into the gain table lookup.
* b200: handle overruns during continuous streamingmattprost2020-10-091-0/+3
| | | | | | | This allows the b200 devices to recover from overruns that occur during continuous streaming. Signed-off-by: mattprost <matt.prost@ni.com>
* rfnoc: Alphabetize sections in CMakeLists.txtAaron Rossetto2020-10-091-22/+22
|
* rfnoc: Add add'l header files to CMakeLists.txtAaron Rossetto2020-10-091-0/+3
|
* sim: Embed MPM into libpyuhdSamuel O'Brien2020-10-071-0/+57
| | | | | | | When ENABLE_SIM and ENABLE_PYTHON_API are set, this commit embeds MPM (Built with -DMPM_DEVICE=sim) into the pyuhd package. Signed-off-by: Samuel O'Brien <sam.obrien@ni.com>
* debian: Update Python3 dependenciesmichael-west2020-10-062-3/+18
| | | | Signed-off-by: michael-west <michael.west@ettus.com>
* Docs: Update Python3 dependenciesmichael-west2020-10-061-9/+12
| | | | Signed-off-by: michael-west <michael.west@ettus.com>
* ic_reg_map: Allow registers to be arraysMartin Braun2020-10-061-19/+114
| | | | | | | | | | This lets you declare registers like this: REG_NAME[ARRAY_LEN] ADDRESS[BITS] DEFAULT ENUMS The reg object will now carray REG_NAME as an array. So, you can do regs.REG_NAME[0] = VALUE;
* ic_reg_maps: Add common regmap template for PythonToni Jones2020-10-061-4/+88
| | | | | | | Add COMMON_PY_TMPL which is identical to COMMON_TMPL in functionality but generates Python syntax rather than C++ header syntax. Modify the generate function which will now determine if the destination regmap file is a Python file or not and will use the appropriate template.
* docs: Fix sensor names for N3xx boardsMartin Braun2020-10-061-1/+2
|
* lib: disable non pcie types in find with resourceSteven Koo2020-10-059-8/+56
| | | | | | | mpmd find doesn't respect the "resource" arg hint and can be detected when "resource" is set. This results in incorrect device selection when using PCIe. This change adds detection for "resource" as a prefix in the device hints for mpmd and the other devices.
* uhd: clang format device implSteven Koo2020-10-055-18/+19
|
* uhd: replace default initializers with named onesSteven Koo2020-09-252-8/+11
| | | | This resolves an issue with building on older compilers.
* lib: graph_utils: Error on single SEP edgeSteven Koo2020-09-251-10/+14
| | | | | It could be possible that we only find one SEP connected edge, which should be invalid.
* lib: graph_utils: Fix formatting and compiler warningsMartin Braun2020-09-251-13/+15
| | | | | | | | | | | The conditional setting of some variables lead the compiler to assume they might be used uninitialized. Circumventing compiler warning by initializing variables to a default value, even if that's not the right value (they will get set later). Also applied clang-format to the same code section. This fixes da1aeaeccc.
* multi_usrp: Add get_mb_controller() API callCristina Fuentes2020-09-245-27/+60
|
* cal: sync log output between file system and resource dataLars Amsel2020-09-221-1/+3
| | | | | | To make the debug output of the database more readable the has_cal_data lookup for RC data prints the file that is looked up similar to the lookup for file system.
* package: Fix Python componentsmichael-west2020-09-131-3/+4
| | | | | | Update dependencies from python to python3. Signed-off-by: michael-west <michael.west@ettus.com>
* Prepare branch for releasemichael-west2020-09-131-165/+896
| | | | | | | - Update CHANGELOG - Update debian files Signed-off-by: michael-west <michael.west@ettus.com>
* Examples: Fix install paths in OOT RFNoC examplemichael-west2020-09-133-10/+14
| | | | | | | | - Add missing "uhd/" subdirectory. - Update install path for YAML file. - Fix include directories and link libraries for init_gain_block. Signed-off-by: michael-west <michael.west@ettus.com>
* E3xx: Add retry to loopback_self_testmichael-west2020-09-111-27/+46
| | | | | | | | | The loopback test sometimes fails. It was found that it would pass on a retry. The root cause of the failure is unknown at this time, but the retry allows the test to pass. This is intended as a temporary patch until the root cause of the failure can be identified. Signed-off-by: michael-west <michael.west@ettus.com>
* tests: Fix build issue with Boost 1.67Martin Braun2020-09-111-0/+3
| | | | | Boost 1.67 will fail to build some tests that include mock_transport.hpp if an additional include is missing.
* docs: Add new CHDR format to transportsWade Fife2020-09-111-9/+21
|
* docs: Updated register maps for UHD 4.0Wade Fife2020-09-112-35/+28
| | | | | | | | | Updates e3xx and n3xx register map documentation. - Add new RFNoC registers - Remove depreicated RFNoC registers - Add other missing registers - Correct formatting
* docs: New mender commands for Zeus filesystemsmattprost2020-09-092-6/+6
| | | | Signed-off-by: mattprost <matt.prost@ni.com>
* doc: add section about network mode on E3xx devicesRobertWalstab2020-09-091-0/+16
|
* lib: Remove recursive locks in apply_correctionsmichael-west2020-09-041-3/+0
| | | | | | | | | There were locks in the apply_tx/rx_fe_corrections() methods that were acquired before calling methods that re-acquired the locks. The mutexes were not recursive, so it caused applications to lock up. The locks are unnecessary in the top level methods, so they are being removed. Signed-off-by: michael-west <michael.west@ettus.com>
* python: Add peek/poke bindings to noc_block_baseAaron Rossetto2020-09-031-0/+135
|
* rfnoc: replay: Update packet size on mtu updateSteven Koo2020-09-031-5/+4
| | | | | | | | | | | Replay block would previously fail output on low mtu links because it was creating packets based on the default contruction mtu of 8192. This change will update the packet size when mtu gets updated. This also removes a warning for large packet sizes because the replay block uses a maximum packet size property. The block should be free to coerce down based on mtu limitations. Signed-off-by: Steven Koo <steven.koo@ni.com>
* fpga: Update DRAM IO signaturesWade Fife2020-09-037-147/+6
| | | | | | | | This updates the IO signatures so that all devices and RFNoC blocks use the same IO signature for the DRAM. This is needed because the IO signatures must match between the RFNoC blocks and the devices. This means that some devices have extra bits in the IO signature for the address, but the extra bits will simply be ignored.
* twinrx: Bypass adf535x feedback dividermattprost2020-09-031-7/+13
| | | | | | | | Bypass the LO1 feedback divider if it is not required. Some TwinRX units have seen issues when tuning to frequencies between 3.5GHz and 5.1GHz while following that data path. Signed-off-by: mattprost <matt.prost@ni.com>
* rfnoc: Set null source/sink block initial stateWade Fife2020-09-031-0/+3
| | | | | This gives the source generator some valid initial values in the Null Source/Sink RFNoC block.
* docs: Add DPDK link detection sectionAaron Rossetto2020-09-031-1/+17
|
* dpdk: Improve link status detectionAaron Rossetto2020-09-032-16/+38
| | | | | | | | | | | | | | | | This change improves the DPDK link status detection algorithm in the following ways: - The status of the links are checked at an interval of 250 ms. If all links report as being up, the driver proceeds. - If any of the DPDK links has not reported as being up by the end of the link status detection timeout (1000 ms by default), the algorithm throws a runtime error rather than proceeds with one or more down links. - Users may override the default link status detection timeout by passing dpdk_link_timeout=N, where N is the desired timeout in milliseconds, either via device arguments or in the UHD configuration file.
* docs: Add Windows-specific UHD Python module notesAaron Rossetto2020-09-031-0/+30
|