aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/common
Commit message (Collapse)AuthorAgeFilesLines
* ad9361: Fix mask for product ID checkBrian Padalino2020-07-091-1/+1
| | | | | | | | The product ID check should be masked with 0xF8 and checked to be 0x08. With a device off and weak pull-ups, the readback would always read 0xFF, passing the ID check when it obviously wasn't there. Extending the mask to be 0xF8 shows that both 0's and 1's are read back from the device.
* fixup! lib: Add power cal managerMartin Braun2020-05-201-1/+2
| | | | | | - The tracking mode was not set to power when calling set_power() - The data consistency check had an inverted logic, thus always printing a warning
* lib: Add power cal managerMartin Braun2020-05-192-0/+275
| | | | | This is a utility class that can be used by USRP or daughterboard drivers to tie power calibration into their respective drivers.
* rh: Remove unnecessary register read during set frequencyCiro Nishiguchi2020-05-151-3/+0
| | | | | This unnecessary reads causes timed commands on rhodium to block. It also makes it behave differently based on whether logging is enabled.
* ad9361: Remove compiler warningMartin Braun2020-04-171-1/+1
| | | | | Adds UHD_UNUSED() to tag a variable that is only used in a UHD_LOG_TRACE() macro.
* uhd: cal: Use usrp::cal::database instead of CSV filesMartin Braun2020-04-021-167/+128
| | | | | | | | | Now that we have cal::iq_cal and cal::database, there's no need to manually wrangle CSV files for calibration data. This commit replaces all CSV operations with cal::database calls and uses cal::iq_cal as a container. CSV files can still be read, but are considered deprecated.
* uhd: Apply clang-format against all .cpp and .hpp files in host/Martin Braun2020-03-0312-1233/+1339
| | | | | 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-13/+10
| | | | | - Apply clang-format - Remove unnecessary boost::format
* usrp: Add I/O service manager for DPDKCiro Nishiguchi2019-12-202-0/+24
|
* rfnoc: Rename thread affinity argsCiro Nishiguchi2019-11-262-49/+52
| | | | | | 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: Restrict to inline I/O service based on link restrictionsCiro Nishiguchi2019-11-261-1/+33
| | | | | For links that do not support releasing buffers out of order, restrict the I/O service manager to always select the inline I/O service.
* rfnoc: Merge I/O service device args with stream argsCiro Nishiguchi2019-11-262-38/+105
| | | | | 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-263-0/+614
| | | | | | | | | | | | | | | | | | | | | | | | | | - 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 usage of boost smart pointers with C++11 counterpartsMartin Braun2019-11-264-15/+15
| | | | | | | | | | | | | | | | | | | 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-261-51/+49
| | | | | | | 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>
* uhd: Remove support for N230Martin Braun2019-11-261-2/+2
| | | | Note: N230 is still supported on the 3.15 LTS branch
* ad9361: Improve loggingMartin Braun2019-07-181-10/+15
| | | | | - Remove some spurious \n - Remove some usage of boost::format
* e310/e320: Move E310 to MPM architecture and refactorSugandha Gupta2019-05-012-2/+2
| | | | | | | | | | | | - Turns the E310 into an MPM device (like N3xx, E320) - Factor out common code between E320 and E310, maximize sharing between the two devices - Remove all pre-MPM E310 code that is no longer needed - Modify MPM to remove all existing overlays before applying new ones (this is necessary to enable idle image mode for E310) Co-authored-by: Virendra Kakade <virendra.kakade@ni.com> Signed-off-by: Virendra Kakade <virendra.kakade@ni.com>
* ad9361: Fix return values for tune and set_clock_rateSugandha Gupta2019-05-012-3/+11
| | | | | | This fixes a potential mismatch between the returned frequency and clock rate and the actual value. The new function get_clock_rate is need for async call to set_clock_rate in E3xx devices
* lmx2592: fixup for correct frequency borderstvogel-nid2019-03-131-2/+2
| | | | | LMX2592 frequency borders were missing the correct exponent ('e6') in some cases.
* uhd: mpm: update all license header w/ "-or-later"Brent Stapleton2019-03-081-1/+1
| | | | Updating all SPDX license identifiers to include "-or-later"
* uhd: Replace all usage of boost::noncopyable with uhd::noncopyableMartin Braun2019-02-151-2/+2
| | | | | | 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.
* ad9361: Replace Boost lock & mutex with std varietyMartin Braun2019-01-251-23/+21
|
* formatting: Apply clang-format to ad9361_ctrl.cppMartin Braun2019-01-251-72/+87
|
* math: Remove uhd::math::log2, replace with std::log2Martin Braun2019-01-181-1/+2
| | | | | Now that we're C++11, we can assume the existence of said symbol and need no more portability hacks.
* formatting: preparing for uhd::math cleanupBrent Stapleton2019-01-181-139/+108
| | | | Formatting files that will be touched in upcoming changes to uhd::math
* uhd: skip formatting misc arrays, maps, etc.Brent Stapleton2019-01-162-0/+6
| | | | | | 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.
* lmx2592: Better "abs()" compiler compatibilityMichael Dickens2018-12-121-3/+3
| | | | Use "std::abs" instead of "abs" for better compiler compatibility
* TwinRX: Tuning improvementsmichael-west2018-12-101-5/+5
| | | | | | - 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
* cmake: Update coding style to use lowercase commandsMartin Braun2018-11-141-6/+6
| | | | | | | | | | | | | | | | | Also updates our coding style file. Ancient CMake versions required upper-case commands. Later command names became case-insensitive. Now the preferred style is lower-case. Run the following shell code (with GNU compliant sed): cmake --help-command-list | grep -v "cmake version" | while read c; do echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g' done > convert.sed \ && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' \ '*CMakeLists.txt' | xargs -0 gsed -i -f convert.sed && rm convert.sed (Make sure the backslashes don't get mangled!)
* lmx2592: remove initial scratch register readbackMark Meserve2018-10-171-24/+0
| | | | | - This is the only read operation in the driver, so removing it simplifies the driver's requirements significantly.
* lmx2592: add spur dodgingMark Meserve2018-10-171-22/+326
|
* lib: ad9361: De-boostify AD9361 driverMartin Braun2018-10-172-106/+195
| | | | No functional or API changes.
* b100: Move fifo_ctrl_excelsior to b100 subdirMartin Braun2018-07-312-290/+0
| | | | | This device is the only one using it, and no one will ever use it going forward.
* lmx2592: fix calibration start during tuningMark Meserve2018-07-311-1/+3
| | | | - This bug could cause LO to not lock properly after a set_frequency call
* lmx2592: always mux lock detect after initMark Meserve2018-07-311-9/+5
|
* uhd: initial commit of UHD support for E320Brent Stapleton2018-07-182-10/+2
| | | | Co-authored-by: Sugandha Gupta <sugandha.gupta@ettus.com>
* mpm: initial commit of E320 codeBrent Stapleton2018-07-181-0/+15
| | | | Co-authored-by: Sugandha Gupta <sugandha.gupta@ettus.com>
* e300: remove time spiTrung N Tran2018-07-061-36/+1
|
* ad9361: Add API to set 1R1T/2R2T timing modesSugandha Gupta2018-06-153-0/+63
| | | | | LVDS interface can support both timing modes 1R1T/2R2T The API sets the required bit in catalina registers.
* LMX2592: Fix PFD calculationDerek Kozel2018-06-121-1/+1
|
* LMX2592: Skip output div-by-3 due to harmonicsDerek Kozel2018-06-061-0/+6
|
* lib: Remove some unnecessary use of boost::posix_timeMartin Braun2018-05-141-6/+6
| | | | Replace by std::chrono.
* uhd: Added LMX2592 driverDerek Kozel2018-05-032-0/+472
|
* lib: Purge all references to boost::this_thread::sleep()Martin Braun2018-04-302-26/+27
| | | | Replace with std::this_thread::sleep_for().
* ad9361: Fix bandwidth warnings and rangesVidush2018-04-274-30/+77
| | | | | | | 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-261-42/+76
| | | | | | | - 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
* adf4002: Fixed register programming for power down bitSugandha Gupta2018-04-121-1/+1
| | | | | The bit shift for power down is one off with respect to the ADF4001/ADF4002 data sheet
* uhd: Move internal headers to uhdlib/Martin Braun2018-03-1426-2917/+15
| | | | | | | | | | | | | | | | 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>
* uhd: Moved get_system_time outside of public APIMartin Braun2018-03-051-2/+4
| | | | | | | uhd::get_system_time() is an abstracted way of reading back a time, and is not UHD-specific. As such, there's no reason to keep it in the public part of the API where we're contractually obligated not to touch it. Instead, moving it to the internal API space.