| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
dpdk_zero_copy.hpp was referenced in multiple places using relative
paths. Let's throw it in uhdlib for easy access.
|
|
|
|
|
| |
Use dpdk_simple together with a control transport factory.
Where udp_zero_copy is used, use dpdk_zero_copy if use_dpdk=1.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Revert "cores: Update rx_frontend_gen3.v controls for 1/4-rate mixer"
Commit introduced 180 degree ambiguity in TwinRX phase alignment.
|
|
|
|
|
| |
- modify PLL charge pump values to improve phase coherence
- affects reference clocks of 11.52 MHz, 23.04 MHz, and 30.72 MHz
|
| |
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
| |
Before, it was only returning the master clock rate. Note: This function
is never used in UHD, this is merely for completion's sake.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Remove trailing vim hints in header files. This functionality will be
replaced by clang-format.
|
|
|
|
|
|
|
| |
These compiler warnings mostly pop up on MSVC. Most of them are due to
inconsistent usage of size_t, uint{8,16,32}_t, and even int.
This commit changes types mostly such that variables have the correct
type to begin with, although it also contains a few explicit type-casts.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This will enable a USRP 2974 to be registered as an X300 device.
Its product ID is 'NI-2974'.
|
|
|
|
|
|
| |
+ better compiler compatibility
+ let the compiler figure out the actual function IO signature that
makes sense, instead of forcing float.
|
| |
|
|
|
|
|
| |
Recent clocking changes set the minimum master clock rate to 187.5MHz,
instead of the actual 184.32MHz. This change corrects that.
|
|
|
|
|
|
|
|
| |
Add a new clocking mode to automatically configure arbitrary master
clock rates.
Co-authored-by: Brent Stapleton <brent.stapleton@ettus.com>
Co-authored-by: Martin Braun <martin.braun@ettus.com>
|
|
|
|
|
|
|
|
| |
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".
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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!)
|
|
|
|
|
| |
None of our FPGA images support a 120 MHz master clock rate, so the UHD
code should match that.
|
| |
|
|
|
|
| |
EEPROM
|
|
|
|
|
| |
- Limit initialization to ZPU communication if recover_mb_eeprom=1 is
set in device args.
|
|
|
|
|
|
|
| |
This tracks the changes on rx_frontend_gen3.v, which was updated to use
a quarter-rate downconverter instead of a generic CORDIC. The X3x0 FPGA
compat number is incremented as the rx_frontend is part of the device
architecture rather than an RFNoC block.
|
|
|
|
| |
...that are already handled in udp_zero_copy.
|
|
|
|
|
| |
Now matches the FPGA error message (go download, then run
uhd_image_loader).
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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_impl will now use a constrained_device_args_t-derived object to
parse device args.
No API or functional changes.
|
|
|
|
|
|
|
| |
Also puts all defaults into the uhd::usrp::x300 namespace.
This commit does some renaming and refactoring, but no functional
changes.
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This is to avoid underruns caused by flow control packets being blocked
by data packets at high rates.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
These are all timeout loops, which now use
std::chrono::steady_clock::now() to check for timeout events.
|
| |
|