aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/x300/x300_impl.cpp
Commit message (Collapse)AuthorAgeFilesLines
* uhd: Apply clang-format against all .cpp and .hpp files in host/Martin Braun2020-03-031-6/+4
| | | | | Note: template_lvbitx.{cpp,hpp} need to be excluded from the list of files that clang-format gets applied against.
* x300,mpmd: Enable DPDKMartin Braun2019-12-201-0/+3
| | | | | | | | | | | | | | x300: - Remove obsolete variables from x300_eth_mgr and X300 motherboard components - Added some documentation / comments - Use constrained device args in more places - Enables the use of use_dpdk=1 - Switches between regular (kernel-based) and DPDK UDP mpmd: - Merge link_if_ctrl for udp and dpdk_udp - Update cmake options
* rfnoc: Unify endianness of transportsAlex Williams2019-11-261-1/+1
| | | | | Ethernet now uses the same serialization of the RFNoC stream as all the other transports.
* x300/mpmd: Port all RFNoC devices to the new RFNoC frameworkMartin Braun2019-11-261-475/+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>
* fixup! x300: Introduce conn_managerMartin Braun2019-10-111-1/+1
|
* x300: Introduce conn_managerMartin Braun2019-08-161-22/+23
| | | | | | | This is a superclass to eth_manager and pcie_manager, since they usually do the same thing. This saves storing and passing multiple pointers. Also, x300_impl now stores a shared_ptr of the conn_manager, because we'll need to pass it around in the future.
* x300: Refactor heavilyMartin Braun2019-08-021-1150/+68
| | | | | | | | | This pulls out a lot of code from x300_impl and puts it into its own compilation units: - EEPROM code goes to x300_mb_eeprom.* - Claim code goes to x300_claim.* - PCIe code goes to uhd::usrp::x300::pcie_manager - Ethernet code goes to uhd::usrp::x300::eth_manager
* x300: Factor out mb-type specific codeMartin Braun2019-08-021-161/+5
| | | | | This puts all functions that identify motherboards, distinguishes X310/X300/NI2974, checks MB revs etc. into its own compilation unit.
* Device3: Fix MTU and default frame sizesMichael West2019-07-181-73/+96
| | | | | | | | | | The latest changes to the get_*x_stream() functions to calculate the MTU for the channel caused default frame size values to be ignored. This change fixes that by changing the key from "send/recv_frame_size" to "mtu" and then changing the implementations of make_transport() constrain the frame size values based on the "mtu" value as well as any device and/or transport-specific limits. Signed-off-by: Michael West <michael.west@ettus.com>
* device3: Remove unused 'rate' argument from update_?x_streamers()Martin Braun2019-07-151-4/+2
|
* device3: rfnoc: formatting changesBrent Stapleton2019-07-151-26/+29
| | | | | | | | | | | | | Applying clang-format to files used in upcoming changes. clang-format -i --style=file host/include/uhd/rfnoc/node_ctrl_base.hpp clang-format -i --style=file host/lib/rfnoc/ddc_block_ctrl_impl.cpp \ host/lib/rfnoc/duc_block_ctrl_impl.cpp \ host/lib/rfnoc/legacy_compat.cpp \ host/lib/usrp/device3/device3_impl.cpp \ host/lib/usrp/device3/device3_impl.hpp \ host/lib/usrp/device3/device3_io_impl.cpp \ host/lib/usrp/x300/x300_impl.cpp
* X300: fixed get_mtu for pcieMatthew Crymble2019-05-251-1/+4
| | | | Signed-off-by: Matthew Crymble <matthew.crymble@ni.com>
* device3: Constraint send/recv_frame_size based on down/upstream MTUSugandha Gupta2019-05-011-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-04-101-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-04-101-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
|