aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/x300/x300_impl.cpp
Commit message (Collapse)AuthorAgeFilesLines
* X300: fixed get_mtu for pcieMatthew Crymble2019-05-241-1/+4
| | | | Signed-off-by: Matthew Crymble <matthew.crymble@ni.com>
* device3: Constraint send/recv_frame_size based on down/upstream MTUSugandha Gupta2019-05-211-1/+6
| | | | | | 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.
* uhdlib: Add dpdk_zero_copy.hppAlex Williams2019-05-211-1/+1
| | | | | dpdk_zero_copy.hpp was referenced in multiple places using relative paths. Let's throw it in uhdlib for easy access.
* x300: Add support for DPDK transportsAlex Williams2019-05-211-6/+145
| | | | | Use dpdk_simple together with a control transport factory. Where udp_zero_copy is used, use dpdk_zero_copy if use_dpdk=1.
* RFNoC: Limit number of control packets in flightmichael-west2019-01-311-1/+13
| | | | | | | | Limit number of unacknowledged control packets to the number of receive frames in the transport to prevent the transport from getting locked up or being overrun by ACK packets. Signed-off-by: michael-west <michael.west@ettus.com>
* RFNoC: Prevent unnecessary FC ACK packetsmichael-west2019-01-311-0/+1
| | | | | | | | 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>
* transport: muxed_zero_copy_if fixesmichael-west2019-01-211-2/+2
| | | | | | | | | | 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>
* uhd: mpm: apply clang-format to all filesBrent Stapleton2019-01-161-833/+859
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* x300: Remove usage of boost::bindMartin Braun2019-01-021-12/+16
|
* x300: Factor our PID -> MB type and MB type -> product name mappingMartin Braun2019-01-021-137/+117
|
* x300: Remove some trailing spacesMartin Braun2019-01-021-6/+4
|
* x300: Add support for USRP-2974Thomas Vogel2018-12-141-1/+17
| | | | | This will enable a USRP 2974 to be registered as an X300 device. Its product ID is 'NI-2974'.
* uhd: Add device arg to enable dual ethernet for txCiro Nishiguchi2018-11-141-1/+7
| | | | | | | | UHD currently only uses a single ethernet link for tx data, even if the device is initialized with dual 10GbE links. Using both links when a DMA FIFO is present causes sequence errors due to DMA FIFO bandwidth limitations. This maintains the current default behavior but allows users to override it through a device arg "enable_tx_dual_eth".
* X300: Add recovery for duplicate IP addresses in EEPROMMichael West2018-10-251-18/+12
| | | | | - Limit initialization to ZPU communication if recover_mb_eeprom=1 is set in device args.
* x300_impl: remove default_buff_args propertiesTrung Tran2018-09-131-7/+0
| | | | ...that are already handled in udp_zero_copy.
* x300: Improve firmware compat error messageMartin Braun2018-08-221-15/+34
| | | | | Now matches the FPGA error message (go download, then run uhd_image_loader).
* x300: Enable clock_source and time_source device argsMartin Braun2018-08-101-2/+2
| | | | | | | | | | You can now change the time/clock source default through device args: auto usrp = uhd::usrp::multi_usrp::make( "type=x300,clock_source=external,time_source=external"); This also enables the use of config files for the clock/time source implicitly.
* x300: Use constrained_argsMartin Braun2018-08-101-47/+35
| | | | | | | x300_impl will now use a constrained_device_args_t-derived object to parse device args. No API or functional changes.
* x300: Move defaults to their own headerMartin Braun2018-08-101-55/+51
| | | | | | | Also puts all defaults into the uhd::usrp::x300 namespace. This commit does some renaming and refactoring, but no functional changes.
* x300: Log git hash and compat number as debug messageMartin Braun2018-08-011-3/+8
|
* X300: Change Ethernet bufferingMichael West2018-07-251-170/+177
| | | | | | | Ethernet buffering is now done so that most of the buffering is done in the socket buffers and multiple frames are only used to support the receive side offload of the socket I/O. Eliminates dropped packets at high full duplex rates.
* X300: Reduce Ethernet frame size to 4000michael-west2018-07-251-3/+3
| | | | | This is to avoid underruns caused by flow control packets being blocked by data packets at high rates.
* Device3: Change packet-based flow control to byte-based flow controlMartin Braun2018-07-251-2/+2
|
* x300: Fix incorrectly declared locksMartin Braun2018-07-231-3/+3
|
* UBX: Add support for phase synchronization at LTE clock ratesMichael West2018-07-171-1/+16
|
* X300: Change default dboard_clock_rate depending on master_clock_rateMichael West2018-07-171-2/+3
|
* fixup! lib: Purge some use of boost::system_timeMartin Braun2018-07-171-1/+0
|
* lib: Purge some use of boost::system_timeMartin Braun2018-07-121-5/+9
| | | | | These are all timeout loops, which now use std::chrono::steady_clock::now() to check for timeout events.
* x300_impl: Assign Channel Variable Before Err CheckMichael West2018-05-311-4/+5
|
* x300: e300: fix git_hash dirty bit positionTrung N Tran2018-05-301-1/+1
|
* x300: Replace all references to boost::this_thread::sleep()Martin Braun2018-04-171-10/+15
| | | | Use std::this_thread::sleep_for() instead.
* x300: handle bad weak_ptr during pcie discoveryMark Meserve2018-04-101-1/+9
|
* x300: Update loggingMartin Braun2018-03-301-37/+37
| | | | | | | | | No functional changes. - Demote some messages to DEBUG or TRACE - Use consistent logging styles - In some cases, adapted code to coding style when near logging statements
* x300: Refactor clock and time source prop tree setupMartin Braun2018-03-291-12/+27
| | | | | | - Remove boost::bind - Remove boost::assign::list_of - No functional changes
* x300: Properly coerce master clock rate (tick rate)Martin Braun2018-03-291-4/+22
| | | | | | | | - A call to multi_usrp::set_master_clock_rate() on the X3x0 will now properly coerce the value, and show a warning when it had to coerce. It will not throw an exception. - Did a minirefactoring of the tick_rate property setup and removed two more boost::binds.
* uhd: Move internal headers to uhdlib/Martin Braun2018-03-141-7/+8
| | | | | | | | | | | | | | | | 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: Fix some log statementsAndrej Rode2018-03-071-3/+3
| | | | Some log statements were incorrectly using multi-line log statements.
* uhd: Update license headersMartin Braun2018-02-191-1/+2
| | | | | | | All copyright is now attributed to "Ettus Research, a National Instruments company". SPDX headers were also updated to latest version 3.0.
* Move all license headers to SPDX format.Martin Braun2017-12-221-12/+1
|
* uhd: Changed mboard_eeprom_t interface, refactored MB EEPROM codeMartin Braun2017-09-291-16/+16
| | | | | | | | | | | | - uhd::usrp::mboard_eeprom_t is now simply a map. Its commit() method has no utility being a public API call, because the user never gets access to the appropriate I2C object (Minor API breakage) - The central mboard_eeprom.cpp file was broken up and put into many smaller compilation units in every device's implementation folder. - Renamed some of the constants (e.g. B000_* -> USRP1_*, N100_* -> N200_*) - Removed the N000_* EEPROM code, because, well, you know, there's no such device
* Merge branch 'maint'Martin Braun2017-07-171-1/+15
|\
| * fixup! x300: Changed discovery to return early if we find the serial requestedBrent Stapleton2017-07-051-1/+1
| |
| * x300: Changed discovery to return early if we find the serial requestedbstapleton2017-06-301-1/+15
| |
* | utils: add set_thread_name API call, move thread_priority to threadAndrej Rode2017-06-291-1/+1
| |
* | uhd: Replaced many lexical_cast with appropriate C++11 equivalentsMartin Braun2017-06-291-3/+3
| |
* | Merge branch 'maint'Martin Braun2017-06-271-15/+48
|\|
| * X300: Implement single DMA channel for all async messagesMichael West2017-06-261-11/+38
| |
| * X300: Dual channel TX performance improvementsMichael West2017-06-261-4/+10
| |
* | logging: remove unecessery newlines in log messagesAndrej Rode2017-04-071-1/+1
| |
* | Merge branch 'maint'Martin Braun2017-04-061-4/+4
|\|