aboutsummaryrefslogtreecommitdiffstats
path: root/host/include
Commit message (Collapse)AuthorAgeFilesLines
* device3: Constraint send/recv_frame_size based on down/upstream MTUSugandha Gupta2019-05-212-0/+24
| | | | | | We need to properly contraint the send/recv_frame_size based on the minimum MTU of all the down/upstream blocks. This fixes the issue with E310 tx/rx streaming as it has smaller MTU sizes than the other usrps.
* Revert "RFNoC: Fix flush in source_block_ctrl_base"Michael West2019-03-051-3/+3
| | | | | | This reverts commit 655b9b0f8e8f8556d434404da51aaccd124bbc3a. Signed-off-by: Michael West <michael.west@ettus.com>
* types: sid: Remove duplicate operator=()Martin Braun2019-03-051-6/+0
| | | | | This fixes a warning about multiple operators. Doesn't change any functionality.
* node_ctrl_base: add check valid num_input_portsTrung Tran2019-02-221-2/+3
| | | | | | | | | | | | A node is not a block, it doesn't use any block definition to populate the number of input and output ports. This is equivalent to it have undefined number of input and output ports. The _find_child_node function relies on node input and output port size. When port size is not defined we should not follow the active channel; instead, we need to greedily to find all child node. Without this change graph_search_test will fail. Signed-off-by: Trung Tran<trung.tran@ettus.com>
* nirio: Demote rpc client start/stop log messages to DEBUGMartin Braun2019-02-221-2/+2
|
* RFNoC: Fix flush in source_block_ctrl_baseMichael West2019-02-181-3/+3
| | | | | | | | | | The configure_flow_control_out function was set to dump any packets onto the crossbar, which could cause issues on the crossbar and in downstream blocks. Replacing wil a call to the _flush() function in the block_ctrl_base parent class, which drops the packets so they do not get put onto the crossbar. Signed-off-by: Michael West <michael.west@ettus.com>
* RFNoC: Disable FC ACK packets for lossless linksMichael West2019-02-182-7/+9
| | | | | | | FC ACK packets are unnecessary on lossless links and degrade overall performance. This change disables those packets on all lossless links. Signed-off-by: Michael West <michael.west@ettus.com>
* E3xx: Increase spp limit for E3xx radiomichael-west2019-01-311-2/+1
| | | | | | | Increase frame size from 364 to 508 samples. Reduces overhead. For some reason yet to be understood, sizes over 508 do not work. Signed-off-by: michael-west <michael.west@ettus.com>
* fixup! RFNoC: More graph traversal fixesmichael-west2019-01-312-30/+10
|
* RFNoC: More graph traversal fixesmichael-west2019-01-312-3/+31
| | | | | | | | | | - Store number of input and ouptput ports from block definition. - Use number of input and ouptut ports for graph traversal rather than number of connected blocks. - Fixes DAC synchronization failure errors when using only one TX channel on X300. Signed-off-by: michael-west <michael.west@ettus.com>
* RFNoC: Update FIFO XML definitionmichael-west2019-01-291-0/+2
| | | | | | Added explicit use of default block controller to remove warnings. Signed-off-by: michael-west <michael.west@ettus.com>
* transport: muxed_zero_copy_if fixesmichael-west2019-01-211-0/+4
| | | | | | | | | | Changed muxed_zero_copy_if to make each stream buffer the same number of frames as the underlying transport and changed the size of the underlying control transport for X300 and MPMD devices to match the size of the command FIFO in order to prevent starvation of any single control transport. Added some constants to remove hard coded values. Signed-off-by: michael-west <michael.west@ettus.com>
* endianness: Replace Boost macros with custom onesMartin Braun2019-01-213-6/+37
| | | | | | | | Boost changed the macros for endianness identification in 1.69, and the deprecation warning is a pretty noisy one during compilation. This abstracts away the Boost macro, so we have two UHD macros, UHD_BIG_ENDIAN and UHD_LITTLE_ENDIAN. They indicate big and little endian byte order.
* lib: transport: convert: apply clang-formatBrent Stapleton2019-01-211-74/+96
| | | | | | | | | | | | | This is a continuation of 967be2a4. Applying clang-format to files needed for endianness changes. $ clang-format -i --style=file \ host/include/uhd/types/endianness.hpp \ host/include/uhd/utils/byteswap.hpp \ host/include/uhd/utils/byteswap.ipp $ clang-format -i --style=file \ host/lib/convert/convert_with_tables.cpp \ host/lib/transport/chdr.cpp
* multi_usrp: fix get_{tx/rx}_dc_offset_range default argumentChristian Hahn2019-01-181-2/+2
| | | | | | | The use of the wildcard channel index, ALL_CHANS, as the default value for the argument chan in the methods get_{tx/rx}_dc_offset_range seems inappropriate. A default value of 0 is consistent with other getters.
* math: Replace boost::*::{lcm,gcd}() with portable versionsMartin Braun2019-01-181-0/+23
| | | | | | 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.
* math: Remove uhd::math::log2, replace with std::log2Martin Braun2019-01-181-9/+0
| | | | | Now that we're C++11, we can assume the existence of said symbol and need no more portability hacks.
* rfnoc: Fix detection of outstanding acks by ctrl_ifaceMartin Braun2019-01-171-1/+1
| | | | | | | There was a bug where the number of outstanding ACKS in RFNoC's ctrl_iface was derived from the number of recv frames, which was wrong. A number that was too low would effectively break timed commands on tune, which would, e.g., affect phase alignment.
* formatting: Add modified clang-format for headersMartin Braun2019-01-171-0/+94
| | | | | | | Because our headers do not require C++11, they need a different syntax (e.g., vector<vector<int> >, note the space between the >). Since some editors automatically pick up a .clang-format from a parent dir, this helps when editing headers.
* uhd: mpm: apply clang-format to all filesBrent Stapleton2019-01-16115-5118/+5170
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Applying formatting changes to all .cpp and .hpp files in the following directories: ``` find host/examples/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/tests/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/lib/usrp/dboard/neon/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/lib/usrp/dboard/magnesium/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/lib/usrp/device3/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/lib/usrp/mpmd/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/lib/usrp/x300/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/utils/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find mpm/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file ``` Also formatted host/include/, except Cpp03 was used as a the language standard instead of Cpp11. ``` sed -i 's/ Cpp11/ Cpp03/g' .clang-format find host/include/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file ``` Formatting style was designated by the .clang-format file.
* formatting: remove vim hints in headersBrent Stapleton2019-01-1620-20/+0
| | | | | Remove trailing vim hints in header files. This functionality will be replaced by clang-format.
* includes: Make sure BOOST_VERSION is always availableMartin Braun2019-01-151-0/+1
| | | | | Boost changed the includes, and boost/version.hpp was being implicitly imported. This makes the include explicit.
* log: Fix MSVC warnings by changing a size_t to unsigned intMartin Braun2019-01-031-1/+1
| | | | This fixes a warning C4267 which pops up a lot in this file.
* RFNoC: Fix for late packet errorsmichael-west2018-12-211-1/+3
| | | | - Fix variable name in recent graph traversal changes
* RFNoC: Fix graph traversalmichael-west2018-12-191-10/+40
| | | | | | - Allows different TX sample rates on separate channels - Prevents stream commands from being issued on wrong ports - Prevents some receive timeout errors
* uhd/mpm: eiscat: Various changesRyan Marlow2018-12-192-10/+66
| | | | | | | | | | | | | | - correct lmk initialization parameters - adding missing parameters and consts wrt clock synchronization. - fixed default master clock rate - eiscat, ddc: update xml. - remove references to CORDIC_FREQ in ddc_eiscat - update readback reg addr in radio_eiscat - set default spp from 3992 to 3968. - updated jesd mode sequence initialization - updating eiscat_radio_ctrl_impl - add rx_codecs to property tree to display correct ADC chip. - updated issue_stream_cmd
* Device3: Fix block control flushingBrent Stapleton2018-12-171-0/+3
| | | | | | | | | | | | | | | | | | | - Factor out the _start_drain helper function, which starts flushing data out of the block. We should always be disabling flow control after we write to the flushing registers. - Always attempt to flush when calling the _flush function. Previously, we would check if data appeared to be moving when _flush was called, and only write to the flush registers if data was moving. However, if data is stuck for some reason (for example, the block ran out of flow control credits), this check will give us a false positive, and we won't flush. Instead, we need to always begin the flushing process, then check those counters, and return once the counters stop changing. Note: we need to start flushing before disabling flow control so that the flushed data isn't flooded onto the crossbar. Co-authored-by: michael-west <michael.west@ettus.com> Co-authored-by: Sugandha Gupta <sugandha.gupta@ettus.com>
* C API: Add support for Tx LO controlMartin Braun2018-12-141-0/+74
| | | | | The Rx LO control was always there, but the Tx LO control was not exposed into the C API.
* time_spec: include <stdint.h> for int64_tMichael Dickens2018-12-131-0/+1
| | | | | + needed on some older OS / compilers; + won't hurt newer ones that already include this header.
* various: use "std::abs" instead of "std::fabs"Michael Dickens2018-12-122-9/+9
| | | | | | + better compiler compatibility + let the compiler figure out the actual function IO signature that makes sense, instead of forcing float.
* rh: add highband spur reduction optionMark Meserve2018-12-121-0/+5
| | | | | | | | | - When highband_spur_reduction is enabled, the lowband LO will be disabled during highband operation. This improves spur performance, but also renders timed tune commands unusable due to the MPM call. - A warning is logged if the user uses a timed tune command that would change the state of the lowband LO, as the MPM call will occur immediately instead of at the given command time.
* filter: Fix return value in get_rolloffDerek Kozel2018-11-281-1/+1
|
* rfnoc: Add halt to replay APIWade Fife2018-11-271-0/+3
| | | | | The HALT feature allows a command that takes a long time to run to be stopped while it is in progress.
* multi_usrp: Fixed get_tx_stream referenceGregory Eslinger2018-11-201-1/+1
|
* cmake: Update coding style to use lowercase commandsMartin Braun2018-11-148-29/+29
| | | | | | | | | | | | | | | | | 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!)
* uhd: Changes to traffic counter register namesCiro Nishiguchi2018-10-311-12/+8
| | | | | | This makes the noc traffic counter register actually reflect the registers in the FPGA. The FPGA register names were changed prior to merging to master, and the ready count registers were removed.
* rh: add support for rhodium devicesMark Meserve2018-10-251-0/+42
| | | | | | Co-authored-by: Humberto Jimenez <humberto.jimenez@ni.com> Co-authored-by: Alex Williams <alex.williams@ni.com> Co-authored-by: Derek Kozel <derek.kozel@ni.com>
* multi_usrp: Improve documentation for set_{time,clock,sync}_sourceMartin Braun2018-10-221-14/+95
| | | | | - Added note on bad-value-handling (throws uhd::value_error) - Added notes on what happens on re-init
* uhd: Improve documentation for the UHD exception typesMartin Braun2018-10-121-0/+51
|
* multi_usrp: Add sync_source APIMartin Braun2018-10-111-0/+51
| | | | | | | | | | The sync_source API is an atomic setter for all sync-related settings. If supported by the underlying USRP, it can be faster to call set_sync_source() rather than sequentially calling set_clock_source() and set_time_source(). If the underlying device does not support the sync_source API, it will fall back to the set_clock_source() and set_time_source() APIs, making this change backward-compatiple.
* uhd: Add traffic counter to null source sinkCiro Nishiguchi2018-10-111-0/+81
|
* multi_usrp: move definition of constantsAndrew Lynch2018-10-041-2/+2
| | | | ALL_MBOARDS and ALL_CHANS will be exported on GCC and MSVC
* uhd: reconcile time_spec operators with boost conceptsMark Meserve2018-09-281-4/+5
| | | | | | - Removes operator+ which was ambiguously defined in some cases - Adds additive concept for time_spec_t and double operators - Remove unnecessary ctime header
* rfnoc: install the DMA FIFO block headerMarcus Müller2018-09-261-0/+1
| | | | Reported-by: Brian Padalino <bpadalino@gmail.com>
* radio_ctrl: add disable time stampTrung Tran2018-09-141-0/+3
|
* RFNoC: Add Replay API and exampleWade Fife2018-08-295-0/+291
|
* uhd: Define UHD_API as empty string when building static libCiro Nishiguchi2018-08-222-8/+19
| | | | | | | | | | Fixes #2484 When building uhd host as a static library on Windows, UHD_API is defined as __declspec(dllimport). This results in MSVC returning error C2491 during compilation. Added a preprocessor define UHD_STATIC_LIB in cmake and made the config headers set UHD_API to empty string when UHD_STATIC_LIB is defined.
* RFNoC: Convert SR_READBACK_REG_FIFOSIZE to bytesTrung N Tran2018-08-221-1/+1
| | | | | Change the RB_FIFOSIZE register to store the FIFO size in bytes instead of log2 of bytes.
* uhd: Remove usage of time_t (except when required)Martin Braun2018-08-203-16/+18
| | | | | | | | | | The C/C++ standards don't define what time_t is, only that it is arithmetic (and real for C11, and integral for C++). It should not be used in portable software and is only used as the return value for some libc calls. A common definition for time_t is int64_t, so we'll switch to that permanently in our own APIs. System APIs will of course stick with time_t.
* multi_usrp: Add get_user_settings_iface() API callMartin Braun2018-08-161-0/+27
| | | | | | | | | | | For USRPs that support user settings (e.g., B2xx, N230), this will return an object that will allow peeking and poking user-defined settings registers. Mock code example: auto usrp = multi_usrp::make(...); auto user_settings_iface = usrp->get_user_settings_iface(); user_settings_iface->poke32(0, 23);