aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp
Commit message (Collapse)AuthorAgeFilesLines
* twinrx: add lo charge pump propertiesMark Meserve2019-05-215-19/+116
|
* mpmd: Release resources on destructionVirendra Kakade2019-05-212-4/+6
| | | | | This will clear the property tree, block registry, transport managers, and motherboard list on destruction of mpmd_impl.
* mpmd: Fix spurious reclaim call after unclaimVirendra Kakade2019-05-211-3/+6
| | | | | | | | | The reclaim task loop is asnychronous to the main thread which can result in spurious reclaim call to the device after unclaim has been called. This is especially risky if the device has already entered a non-serviceable state after unclaim e.g. idle state. Signed-off-by: Virendra Kakade <virendra.kakade@ni.com>
* device3: Constraint send/recv_frame_size based on down/upstream MTUSugandha Gupta2019-05-218-1/+81
| | | | | | 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.
* ad9361: Fix return values for tune and set_clock_rateSugandha Gupta2019-05-212-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
* b200: enable usage of custom bootloaderMark Meserve2019-05-213-79/+292
| | | | | - Update MB EEPROM - Add bootloader load command to fx3 util
* uhdlib: Add dpdk_zero_copy.hppAlex Williams2019-05-213-3/+3
| | | | | 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-213-7/+166
| | | | | Use dpdk_simple together with a control transport factory. Where udp_zero_copy is used, use dpdk_zero_copy if use_dpdk=1.
* X300: add capability to flash NI-2974 FPGAThomas Vogel2019-05-211-2/+7
| | | | | | The NI-2974 has a X310 inside but reports a different "product" when polled. This prevents the image_loader from flashing a new FPGA image, this patch enables this.
* gpsd: fix API for 'gps_read'Michael Dickens2019-05-211-0/+4
|
* Revert b993f4f0d85eee53c1256e0381c3a173af7d5833Michael West2019-03-252-12/+8
| | | | | | Revert "cores: Update rx_frontend_gen3.v controls for 1/4-rate mixer" Commit introduced 180 degree ambiguity in TwinRX phase alignment.
* x300: Change PLL CP currents in x300_clock_ctrlmguyler-ni2019-03-051-8/+8
| | | | | - modify PLL charge pump values to improve phase coherence - affects reference clocks of 11.52 MHz, 23.04 MHz, and 30.72 MHz
* x300: device args: Removed invalid 200 MHz sysref rateMartin Braun2019-03-051-1/+1
|
* x300: Catch more inconsistencies in x300_device_argsMartin Braun2019-03-052-3/+24
| | | | | | - ADC self test had magic numbers for default duration - resource and addr can be no longer be both specified without a warning - second_addr requires addr now, or you get a warning
* x300: Enable x300_device_args.to_string()Martin Braun2019-03-051-2/+31
| | | | | Before, it was only returning the master clock rate. Note: This function is never used in UHD, this is merely for completion's sake.
* x300: Enable 11.52 MHz and 23.04 MHz system ref ratesMartin Braun2019-03-051-1/+2
| | | | | | | | The addition of the constrained device args didn't account for those rates, and thus, they were effectively unusuable ever since. This adds those rates back as valid system ref rates. This does not touch the actual clocking code in any way, x300_clock_control has supported those rates for a while now.
* rh: Fix typo in setting up RX frontendAlex Williams2019-02-271-1/+1
| | | | | | The function for setting up the RX frontend was erroneously looking at previous TX settings to determine whether to submit a command. This fixes the issue.
* mpmd: Fix typecast warning in property tree default settingsMartin Braun2019-02-221-1/+1
|
* mpmd: Allow reclaim failures on component updatesMartin Braun2019-02-223-14/+67
| | | | | | | | | | | | MPM has a flag that identifies component reloads as requiring to restart the RPC server. This change honours that flag, and doesn't cause a fatal failure when reclaims fail to ack for certain operations. For example, running uhd_image_loader on an N310 could fail after the FPGA was reloaded because the communication to the RPC server was temporarily interrupted. This is not always avoidable, since the RPC server does actually go down, and Ethernet connections might also be lost. So, we cut our losses and accept failures in that case.
* rh: revise correction data usageMark Meserve2019-02-223-11/+19
| | | | | | | | | | - UHD's calibration utilities use the LO frequency, so this is the frequency we should be using too. - Disables loaded corrections in lowband, as the utilities will not generate valid corrections at these frequencies. Manual corrections can still be added via the property tree. - Changed corrections logging to include frequency and less certainty of the correction file's existence.
* rh: reset rx iq balance on initMark Meserve2019-02-221-0/+1
| | | | | - Fixes a bug where a previous setting could carry over between sessions.
* RFNoC: Disable FC ACK packets for lossless linksMichael West2019-02-181-0/+1
| | | | | | | 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>
* x300: Enable ADC gain through RFNoC APIMartin Braun2019-02-182-29/+83
| | | | | | The RFNoC call set_rx_gain() would previously ignore the additional 6 dB that can be set on the ADC. On the BasicRX board in particular, this meant there was no RX gain setting at all.
* E31x: Destruct RFNoC before loading idle imagemichael-west2019-01-311-0/+2
| | | | | | | Eliminates errors during application shutdown by explicitly destroying RFNoC blocks before loading the idle image. Signed-off-by: michael-west <michael.west@ettus.com>
* Device3: Fix flow control window and intervalmichael-west2019-01-312-9/+14
| | | | | | Fixes streaming on E310 after BBFC changes. Signed-off-by: michael-west <michael.west@ettus.com>
* RFNoC: Limit number of control packets in flightmichael-west2019-01-312-17/+21
| | | | | | | | 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>
* X300: Fix tick and sample rate settingmichael-west2019-01-311-5/+1
| | | | | | | | | | | | - Removed incorrect function call to set tick rate in x300_radio_ctrl_impl. - Modified legacy compat layer to properly set tick and sample rates. These changes eliminate the tick and sample rate warnings during X300 initialization if TwinRX is used and allow for TwinRX to be used alongside other types of daughterboards in the same X300. Signed-off-by: michael-west <michael.west@ettus.com>
* Device3: Remove redundant function callmichael-west2019-01-311-1/+0
| | | | Signed-off-by: michael-west <michael.west@ettus.com>
* RFNoC: Prevent unnecessary FC ACK packetsmichael-west2019-01-313-11/+10
| | | | | | | | 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: use init timeout for update_componentTrung Tran2019-01-291-4/+1
| | | | | update_component will reinit the device therefore we should use MPMD_DEFAULT_INIT_TIMEOUT.
* 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
|
* mpmd,transport,prefs: Add xport_mgr for dpdk_zero_copyAlex Williams2019-01-255-0/+350
| | | | | | | | | | | | | | | | | | | | | | | 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.
* mpmd_xport: liberio: using 4096 bytes frame sizeTrung Tran2019-01-231-2/+6
| | | | | | | | Using a send_frame_size of 8192 locks up some devices while transmitting. The root cause of this is unknown, but the new value (4096) prevents this issue in most cases. Some device are still affected by the lock-up even after this change.
* device3: Replace NULL with 0 for empty function pointersMartin Braun2019-01-221-2/+2
| | | | | Technically, nullptr should be the correct replacement, but some compilers have issues with that. This is a continuation of e1c754f20.
* transport: muxed_zero_copy_if fixesmichael-west2019-01-212-26/+15
| | | | | | | | | | 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>
* mpmd_xport: honor users' send(recv)frame_size argsTrung Tran2019-01-212-8/+11
|
* mpmd: implement get_*x_hintsTrung Tran2019-01-212-6/+11
| | | | Fix transport related arguments passed down the stack.
* rh: increase timeout of set_rate's rpc callMark Meserve2019-01-211-1/+4
|
* math: Replace boost::*::{lcm,gcd}() with portable versionsMartin Braun2019-01-182-5/+6
| | | | | | 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-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-183-601/+679
| | | | Formatting files that will be touched in upcoming changes to uhd::math
* uhd: mpm: apply clang-format to all filesBrent Stapleton2019-01-1661-7418/+6799
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-1612-12/+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-166-1/+16
| | | | | | 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.
* mpmd: increase claim_rpc call timeout.Trung Tran2019-01-142-3/+6
| | | | | | | | | | | During certain RPC calls (e.g. update_component), the MPM RPC server is slow to respond to reclaim requests, which can causes RPC timeouts. These changes fix those timeouts. By setting the reclaiming timeout to twice the timeout of an RPC call, we have some margin for error on the host side, while not affecting the underlying claiming logic in MPM. The loop should still operate on a 5 second period, but now has more leeway during stressful conditions.
* rpc,mpmd: replace all set_timeout() to new apiTrung Tran2019-01-143-53/+11
| | | | | Using new rpc client new API that ensure atomic setting of timeout on each rpc call.
* mpmd_impl: move timeout constants to headerTrung Tran2019-01-142-9/+13
|
* tests: Add benchmark of streaming code pathsCiro Nishiguchi2019-01-101-0/+4
| | | | | Add a benchmark of packet handlers and device3 flow control. Benchmarks use mock transport objects.
* uhd: Move device3 flow control functions to header for benchmarkCiro Nishiguchi2019-01-102-291/+306
| | | | | Moving device3 flow control functions to a header file so they can be included in benchmark utility.