| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
This is a continuation of 967be2a4.
$ clang-format -i -style=file host/lib/rfnoc/*.cpp
|
|
|
|
|
| |
Remove trailing vim hints in header files. This functionality will be
replaced by clang-format.
|
|
|
|
|
|
| |
- Corrects parameter from output port to input port of node
- Fixes issue on nodes with different number of input and output
connections
|
|
|
|
|
|
| |
- Allows different TX sample rates on separate channels
- Prevents stream commands from being issued on wrong ports
- Prevents some receive timeout errors
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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>
|
|
|
|
|
|
|
|
|
|
|
| |
In the block controllers, set the default response SIDs for input and
output ports. If we don't do this, the blocks may send their responses
to other blocks' responses ports.
For example, without this change, the DDC may send an error packet to
port 0x0000, which is assigned to the DmaFIFO. With this change, the
DDC would send that packet to 0xFFFF, which isn't assigned to any other
block.
|
|
|
|
|
| |
The HALT feature allows a command that takes a long time to run to be
stopped while it is in progress.
|
|
|
|
| |
Consolidate two constants for default replay packet size down to one.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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!)
|
|
|
|
|
| |
This makes it easier to detect errors in derived classes that expect
getters in radio_ctrl_impl to also do error checking.
|
|
|
|
|
| |
This will stop the exception throw during destructor of E310 where
new FPGA image(idle image) is load.
|
| |
|
|
|
|
|
|
|
|
| |
The DDC and DUC convert the requested rate to an integer before
selecting a decimated / interpolated rate. This causes the selection to
select a lower rate than requested in some corner cases. The effect is
more pronounced when the input rate of the DDC or the output rate of the
DUC is very small.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Change the RB_FIFOSIZE register to store the FIFO size in bytes
instead of log2 of bytes.
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- UHD will now "disconnect" the noc_block data-path from
the crossbar when the block's dtor is invoked. This allows
long running or slow blocks to empty out rapidly during
teardown.
- UHD will also attempt to flush at init time in case a block
is destroyed abnormally. The goal of the flush mechanism is
to not lock up the FPGA
- noc_shell compat number is now 3
|
| |
|
|
|
|
|
|
|
|
| |
This will populate tx/rx channel map (radio and port index) considering
number of channels, radios and mboards.
On TwinRX and N310, the default subdev spec will now include all
available channels.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Before, a block description file could specify a block controlley key
which was not mapped to a registered block controller, and it would fall
back to the default. While that behaviour is desired, it was lacking
a warning when it made that decision.
|
|
|
|
| |
0, radio 0, and port 1
|
| |
|
|
|
|
|
|
| |
We don't need to assert error if there are not enough fifo ports to connect
to radio. Radio ports still can be connected to all available fifo ports until they're running
out.
|
|
|
|
|
|
|
| |
Replaced with initialization lists.
Note: uhd::dict does not work with initializer lists without making
changes to said data structure. This commit has no functional changes,
so keeping the boost::assigns for uhd::dict.
|
|
|
|
| |
Replace with std::this_thread::sleep_for().
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Updated the following blocks and components: Radio, DmaFIFO,
block_ctrl_base and node_ctrl_base, blockdef_xml_impl, device3_impl.
No functional changes.
- Demoted some log messages
- Consistent log style (use unique_id())
- Some adaptation of coding style where close to log statements
|
| |
|
|
|
|
|
|
|
|
|
|
| |
When doing a NUM_SAMPS_AND_DONE stream command, there is a limit to the
number of samples that can be requested (as of now, there's 28 bits for
this counter). When the number was exceeded, the previous error message
was not helpful.
Note that the DDC block will multiply the number of requested samples by
the decimation rate. This means the number of samples requested from the
radio is higher than the number of samples requested by the application.
|
|
|
|
| |
- Bump compat number for DDC/DUC to 2.0
|
|
|
|
|
|
|
|
|
|
| |
- ctrl_iface is now longer a wb_iface. All it can do now is send command
packets, and receive responses to those.
- ctrl_iface does not store command time or tick rate
- wb_iface_adapter is no longer a set of functors, but a wrapper around
ctrl_iface. Command times are stored once, in the block.
- DMA FIFO and radio block controllers have an easier time getting
access to a timed_wb_iface
|
|
|
|
| |
Before, we were calling peeks with the number of the readback register.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
This change will allow legacy compat connect any in/out ports
radios/ddcs/ducs/dmafifo block connect together in a legacy graph:
[HOST]=>DFIFO/SFIFO=>DUC=>RADIO=>DDC=>[HOST]
|
|
|
|
| |
Some log statements were incorrectly using multi-line log statements.
|
| |
|