aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/include/uhdlib/usrp/common
Commit message (Collapse)AuthorAgeFilesLines
* uhd: Apply clang-format against all .cpp and .hpp files in host/Martin Braun2020-03-0315-633/+604
| | | | | Note: template_lvbitx.{cpp,hpp} need to be excluded from the list of files that clang-format gets applied against.
* ad9361: Fix formattingMartin Braun2020-02-101-6/+6
| | | | | - Apply clang-format - Remove unnecessary boost::format
* mpm/mpmd: Expose APIs to drive GPIO sourcesMartin Braun2020-01-231-0/+8
| | | | | | | | | | | | | | | | | | | 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.
* uhd: fixing MSVC warningsBrent Stapleton2020-01-092-12/+21
| | | | | | | | | | | Small changes to remove various compiler warnings found in MSVC - Adding uhd::narrow_cast to verious spots - wavetable.hpp: all floats literals in the wavetable. - paths_test: unnecessary character escape - replay example: remove unreferenced noc_id - adfXXXX: Fixing qualifiers to match between parent and derived classes - rpc, block_id: Removing unused name in try...catch
* usrp: Add I/O service manager for DPDKCiro Nishiguchi2019-12-201-0/+69
|
* rfnoc: Rename thread affinity argsCiro Nishiguchi2019-11-261-24/+21
| | | | | | Rename thread affinity args such that they do not end with an integer. Arg names ending with an integer are interpreted as being targeted at a specific motherboard index in device_addr methods.
* rfnoc: Merge I/O service device args with stream argsCiro Nishiguchi2019-11-262-3/+18
| | | | | This makes it possible for users to put I/O service-related args in either the device args or stream args.
* uhd: Introduce I/O service managerAaron Rossetto2019-11-262-0/+197
| | | | | | | | | | | | | | | | | | | | | | | | | | - Implement I/O service detach link methods - The I/O service manager instantiates new I/O services or connects links to existing I/O services based on options provided by the user in stream_args. - Add a streamer ID parameter to methods to create transports so that the I/O service manager can group transports appropriately when using offload threads. - Change X300 and MPMD to use I/O service manager to connect links to I/O services. - There is now a single I/O service manager per rfnoc_graph (and it is also stored in the graph) - The I/O service manager now also knows the device args for the rfnoc_graph it was created with, and can make decisions based upon those (e.g, use a specific I/O service for DPDK, share cores between streamers, etc.) - The I/O Service Manager does not get any decision logic with this commit, though - The MB ifaces for mpmd and x300 now access this global I/O service manager - Add configuration of link parameters with overrides Co-Authored-By: Martin Braun <martin.braun@ettus.com> Co-Authored-By: Aaron Rossetto <aaron.rossetto@ni.com>
* uhd: Replace boost::function with std::functionMartin Braun2019-11-264-6/+6
| | | | | | | This is mostly a search-and-replace operation, with few exceptions: - boost::function has a clear() method. In C++11, this is achieved by assigning nullptr to the std::function object. - The empty() method is replaced by std::function's bool() operator
* uhd: Replace usage of boost smart pointers with C++11 counterpartsMartin Braun2019-11-267-13/+13
| | | | | | | | | | | | | | | | | | | 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.
* x300/mpmd: Port all RFNoC devices to the new RFNoC frameworkMartin Braun2019-11-262-22/+119
| | | | | | | Co-Authored-By: Alex Williams <alex.williams@ni.com> Co-Authored-By: Sugandha Gupta <sugandha.gupta@ettus.com> Co-Authored-By: Brent Stapleton <brent.stapleton@ettus.com> Co-Authored-By: Ciro Nishiguchi <ciro.nishiguchi@ni.com>
* lib: adf535x: Add trace logs for synth configurationMartin Braun2019-11-261-0/+18
|
* lib: Replace uhd::get_system_time() with steady_clockMartin Braun2019-11-261-6/+10
| | | | | | Benchmarks show that using C++ chrono features beats uhd::get_system_time(), and the latter is simply not appropriate unless a uhd::time_spec_t is required.
* max287x: improve loggingMark Meserve2019-06-121-7/+12
| | | | | - Split tuning log into 3 lines - Remove duplicated MAX287X
* adf435x: run clang-formatMark Meserve2019-05-071-146/+251
|
* adf435x: add low spur tuning modeMark Meserve2019-05-071-5/+56
| | | | | - adds a new mode to the adf435x driver which provides general spur performance improvements
* adf535x: add charge pump controlMark Meserve2019-05-021-3/+55
|
* adf435x: add charge pump with double parameterMark Meserve2019-05-021-0/+34
|
* adf435x: enhance logging messagesMark Meserve2019-05-021-10/+13
|
* uhd: mpm: update all license header w/ "-or-later"Brent Stapleton2019-03-081-1/+1
| | | | Updating all SPDX license identifiers to include "-or-later"
* include: max287x: Fix conversion warningMartin Braun2019-02-281-1/+1
|
* uhd: Replace all usage of boost::noncopyable with uhd::noncopyableMartin Braun2019-02-152-3/+3
| | | | | | This fixes the build errors that occur due to switching locations of noncopyable.hpp within Boost, and also allows us to remove boost::noncopyable in one fell swoop.
* math: Replace boost::*::{lcm,gcd}() with portable versionsMartin Braun2019-01-182-6/+4
| | | | | | Boost changed the lcm() and gcd() functions in Boost 1.67. This creates portable UHD versions to be used instead. They use various Boost versions under the hood conditionally.
* formatting: preparing for uhd::math cleanupBrent Stapleton2019-01-182-370/+450
| | | | Formatting files that will be touched in upcoming changes to uhd::math
* uhd: skip formatting misc arrays, maps, etc.Brent Stapleton2019-01-161-0/+2
| | | | | | Various data structures are nicely formatted to be human-readable. clang-format makes these structures harder to read, so we can skip formatting these sections.
* TwinRX: Fix tuningMichael West2019-01-021-7/+4
| | | | | - Set SPI clock back to 3 MHz - Fix returned frequency for ADF5355 (rev A and B boards)
* TwinRX: Enable phase resync on ADF535xmichael-west2018-12-101-17/+9
|
* TwinRX: Tuning improvementsmichael-west2018-12-101-10/+8
| | | | | | - Added delay for VTUNE calibration as per ADF5355 and ADF5356 data sheets - Increased SPI clock to 10 MHz - Removed write to register 10 during tuning of ADF5356 to match ADF5355 code and reduce tune time
* twinrx: revise adf5356 frac2 register calculationMark Meserve2018-10-171-1/+1
| | | | | - If FRAC2 isn't exactly FRAC1 at certain frequencies, drifting spurs can be seen in the spectrum
* lmx2592: add spur dodgingMark Meserve2018-10-171-1/+4
|
* b100: Move fifo_ctrl_excelsior to b100 subdirMartin Braun2018-07-311-51/+0
| | | | | This device is the only one using it, and no one will ever use it going forward.
* mpm: initial commit of E320 codeBrent Stapleton2018-07-181-0/+6
| | | | Co-authored-by: Sugandha Gupta <sugandha.gupta@ettus.com>
* fixup! e300: merge files from rfnoc-develMartin Braun2018-07-061-0/+3
|
* e300: merge files from rfnoc-develTrung N Tran2018-06-291-7/+0
| | | | This disables the ability to do "network mode" on the E310.
* ad9361: Add API to set 1R1T/2R2T timing modesSugandha Gupta2018-06-151-0/+3
| | | | | LVDS interface can support both timing modes 1R1T/2R2T The API sets the required bit in catalina registers.
* uhd: Added LMX2592 driverDerek Kozel2018-05-031-0/+55
|
* lib: Purge all references to boost::this_thread::sleep()Martin Braun2018-04-301-5/+6
| | | | Replace with std::this_thread::sleep_for().
* ad9361: Fix bandwidth warnings and rangesVidush2018-04-271-3/+3
| | | | | | | Allows full bandwidth range to user. Reviewed-by: Michael West <michael.west@ettus.com> Reviewed-by: Martin Braun <martin.braun@ettus.com>
* ad936x: De-boostify ad936x_manager, minor cleanupMartin Braun2018-04-262-3/+4
| | | | | | | - Remove all use of boost::bind and boost::function - Demote some log messages to DEBUG - Change some formatting to match coding guidelines - B2xx/E310: Match changes in loopback function
* lib: move atomic.hpp and system_time.hpp to uhdlibMartin Braun2018-04-061-1/+1
|
* uhd: Move internal headers to uhdlib/Martin Braun2018-03-1413-0/+2760
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>