aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/include/uhdlib
Commit message (Collapse)AuthorAgeFilesLines
...
* uhd: add new transport interface and base class implementationCiro Nishiguchi2019-11-262-0/+334
| | | | | | | | | | New interface aimed to replace zero_copy_if for new code, including new RFNoC development and redesign of streamer objects. Generic implementation of send and receive transport interfaces to allow reuse by various transport types. Derived classes implement transport-specific functions that are invoked by the base classes through CRTP.
* rfnoc: Added clock_iface to convey info about clocksAshish Chaudhari2019-11-263-4/+69
| | | | | The inteface provides a mechanism for users of clocks to query information such as the running status or rate
* rfnoc: Support for new backend iface plus fixesAshish Chaudhari2019-11-262-2/+6
| | | | | | - Add support for new backend iface with max_async_msgs and mtu moved to after the noc ID - Fixed offsets for block info registers
* rfnoc: Move graph_edge data structure to its own header, add to_string()Martin Braun2019-11-261-59/+3
| | | | | | | | This structure represents information about a graph edge. Required by detail::graph and rfnoc_graph. graph_edge_t::to_string() will now provide a textual representation of the edge.
* rfnoc: Add rfnoc_device base classMartin Braun2019-11-262-0/+83
| | | | | All USRP device impls that are RFNoC devices will need to derive from this (instead of device3).
* rfnoc: Add block registry/factory and make_argsMartin Braun2019-11-261-0/+32
| | | | | | - noc_block_base now has a ctor defined - The registry stores factory functions to the individual Noc-Block implementations
* rfnoc: adding client_zeroBrent Stapleton2019-11-261-0/+199
| | | | | | | | | | - Adding client_zero class, which gathers information about our device form the global registers on port 0 of the RFNoC backend registers. - adding unit tests to exercise client_zero - mock_reg_iface class: adding fake register_iface so we can run unit tests in software only Co-authored-by: Martin Braun <martin.braun@ettus.com>
* rfnoc: Added impl for reg_iface and ctrl_endpointAshish Chaudhari2019-11-263-0/+131
| | | | | | | | - Added new register_iface class that translates high-level peek/poke calls into CHDR control payloads - Added new chdr_ctrl_endpoint class that emulates a control stream endpoint in SW. It can create and handle multiple register interfaces
* rfnoc: Add action APIMartin Braun2019-11-262-1/+68
| | | | | | | | - Added action_info class - Allow to send actions from node to node - Allow to post actions into nodes - Allow to set default forwarding policies - Added unit tests
* rfnoc: Added initial impl for mgmt_portalAshish Chaudhari2019-11-261-0/+191
| | | | | | | - The management portal is the interface for the framework to allow discovering the data topology, setup routes between stream endpoints and configure streamers - Use a zero_copy_if and the mgmt_paylod to send/recv packets
* rfnoc: Refactored CHDR packet interfacesAshish Chaudhari2019-11-262-0/+1127
| | | | | | | - Moved packet interface code from public to private include - Split packet interface into two files: payload paring and packet iface - Added support for all CHDR packet types - Added more test cases to unit test
* rfnoc: Add property propagation, Boost.Graph storageMartin Braun2019-11-262-2/+274
| | | | | | | | | | | | - Adds a detail::graph_t class, which handles the propagation - Adds methods to node_t to aid with propagation - Adds unit tests - Adds dynamic property forwarding: Nodes are now able to forward properties they don't know about by providing a forwarding policy. A good example is the FIFO block which simply forwards most properties verbatim. - node: Temporarily disabling consistency check at init
* rfnoc: Add detail::block_container_t classMartin Braun2019-11-261-0/+57
| | | | | This is a storage for the noc_block_base derivatives. It supports finding blocks.
* rfnoc: Add rfnoc::mb_iface interface classMartin Braun2019-11-261-0/+76
| | | | | Its purpose is to provide a device-agnostic back-channel interface into the device guts for all rfnoc_graph devices.
* rfnoc: Add properties, nodes, and accessorsMartin Braun2019-11-262-0/+180
| | | | | | | | | | | | | | Adds the following classes: - uhd::rfnoc::node_t, the base class for RFNoC nodes - uhd::rfnoc::node_accessor_t, a class to access private properties - uhd::rfnoc::res_source_info, a struct that identifies where properties come from - uhd::rfnoc::property_t, and property_base_t (its parent) - uhd::rfnoc::prop_accessor_t, a class to access properties Add always dirty property (dirtifier). Also adds unit tests for properties.
* lib: adf535x: Add trace logs for synth configurationMartin Braun2019-11-261-0/+18
|
* lib: Replace uhd::get_system_time() with steady_clockMartin Braun2019-11-262-9/+14
| | | | | | 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.
* uhd: utils: Add compat check for 32-bit compat numbersMartin Braun2019-11-261-0/+13
|
* lib: utils: Add new signature to get_freq_and_freq_word()Martin Braun2019-11-261-1/+7
| | | | | The new signature uses tuple as the return value, instead of passing in output variables as references (C-style).
* rpc: add exception when client constructor failsMark Meserve2019-10-151-3/+36
|
* rpc: convert client to sptrMark Meserve2019-10-151-12/+13
|
* lib: utils: Add is_a_tty()Martin Braun2019-10-071-0/+55
| | | | | | | This is a portable version of POSIX's isatty(). Windows has its own version, called _isatty(). UHD thus gains its own, portable version. The underscores aren't beautiful, but they're necessary so we can distinguish the POSIX version from the UHD version.
* rfnoc: Read cmd FIFO size from blocks & configure ctrl_ifaceMartin Braun2019-09-041-0/+11
| | | | | | | | | | This requires noc_shell compat number 6.0. It will allow sending as many command packets, but no more, than there is space. Updated FPGA images for devices: - X310/X300 - N300/N310/N320 - E310/E320
* rx_fe_3000: formatting for upcoming changesBrent Stapleton2019-08-251-5/+5
|
* boost: Replaced units::demangle with core::demangle where appropriateMartin Braun2019-08-221-3/+3
| | | | Boost moved this around in version 1.58.
* max287x: improve loggingMark Meserve2019-06-121-7/+12
| | | | | - Split tuning log into 3 lines - Remove duplicated MAX287X
* fixup! uhdlib: add rational approximation to math utilitiesMartin Braun2019-05-231-1/+1
|
* cores: Apply clang-format to ?x_dsp_core_3000.*Martin Braun2019-05-222-13/+12
|
* lib: rfnoc: Apply clang-format to graph_impl.hppMartin Braun2019-05-221-35/+26
|
* 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
* uhdlib: add rational approximation to math utilitiesMark Meserve2019-05-071-0/+75
|
* 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
|
* include: Remove BOOST_VERSION hacks for 1.58Martin Braun2019-04-241-5/+0
| | | | | This removes all version hacks that were required for Boost versions 1.53 through 1.58 (since we now require 1.58).
* uhdlib: Add dpdk_zero_copy.hppAlex Williams2019-04-101-0/+45
| | | | | dpdk_zero_copy.hpp was referenced in multiple places using relative paths. Let's throw it in uhdlib for easy access.
* transport: Make dpdk_simple subclass udp_simpleAlex Williams2019-04-101-28/+14
| | | | With the same APIs, this will make it easier to add support for X310.
* lib: Allow "0" and "1" as false/true values for constrained device argsMartin Braun2019-03-201-2/+6
| | | | | | | | | | Example: $ uhd_usrp_probe --args type=x300,ignore_cal_file=0 is equivalent to (the currently supported): $ uhd_usrp_probe --args type=x300,ignore_cal_file=false
* 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-1526-56/+57
| | | | | | 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.
* lib: fix includes for boost::noncopyableMichael Dickens2019-02-112-0/+7
| | | | | | | - expert_nodes.hpp: fix to work with BOOST_VERSION < 105600, since UHD still supports Boost 1.53.00. - gpio_atr_3000.hpp: requires boost::noncopyable header, so replicate that (now) in export_nodes.hpp.
* RFNoC: Prevent unnecessary FC ACK packetsmichael-west2019-01-311-2/+3
| | | | | | | | Avoid sending flow control ACK packets for lossless transports. Add 'send_no_fc_acks' device argument to explicitly prevent flow control ACK packets from being sent. Signed-off-by: michael-west <michael.west@ettus.com>
* mpmd,transport,prefs: Add xport_mgr for dpdk_zero_copyAlex Williams2019-01-254-7/+235
| | | | | | | | | | | | | | | | | | | | | | | Add configuration sections to the UHD config file for NIC entries. Keys are based on MAC addresses, and the entries beneath the section describe which CPU and I/O thread to use for the NIC and its IPv4 address. Make ring sizes configurable for uhd-dpdk. Ring size is now an argument for packet buffers. Note that the maximum number of available buffers is still determined at init! Add ability to receive broadcasts to uhd-dpdk. This is controllable by a boolean in the sockarg during socket creation. dpdk_zero_copy will filter broadcast packets out. Add dpdk_simple transport (to mirror udp_simple). This transport allows receiving from broadcast addresses, but it only permits one outstanding buffer at a time. Fix IP checksum handling in UHD-DPDK. TX checksums were not being calculated in the NIC, and in RX, the check for IP checksums allowed values of zero (reported as none). Now packets with bad IP checksums will be dropped.
* 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
* formatting: remove vim hints in headersBrent Stapleton2019-01-166-6/+0
| | | | | Remove trailing vim hints in header files. This functionality will be replaced by clang-format.
* 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.
* transport: Move uhd-dpdk header to uhdlibAlex Williams2019-01-151-0/+261
|