| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The example had organically grown and was getting hard to read, and also
had some known issues. Summary of fixes:
- Default GPIO bank and connector are now derived from the device. This
allows this example to pass without throwing an exception on E3xx and
X4xx series when using default arguments.
- The bitbang test is moved into its own code section, to make the rest
more readable.
- We move all the streamer-related code into a helper struct
- Some repetitive parts of the code are moved into their own functions
- The argument --require-loopback is added, which will fail tests if
GPIO pins are not correctly looped back externally
- --list-banks is renamed to --list_banks for consistency
|
|
|
|
|
| |
FP0 is now listed first. This helps with determining a default GPIO
bank.
|
| |
|
|
|
|
|
|
|
| |
When an assert statement fails, pytest will determine whether that should
be a fail or an xfail. By explicitly calling pytest.fail, we were
preventing pytest from doing that determination, so an individual
test case that had an xfail mark would have been a hard failure.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit fixes an issue in `replay_block_control_impl` with the
initialization of the `_cmd_fifo_spaces` vector member variable.
`std::vector<>::reserve()` only allocates memory for the vector items;
it does not resize the vector (i.e., instantiating an `std::vector<>`
and then calling `reserve()` leaves it with a size of 0). Attempting to
index a zero-sized vector causes some C++ debug mode runtimes to throw
an index out-of-range exception. The commit instantiates the vector
using the constructor variant that allocates memory sufficient for the
entries and default initializes them so that it can be indexed without
issue.
|
|
|
|
|
|
| |
Note: This function is currently unused. However, it is not correctly
implemented. During init, it would call the routing configuration
function instead of the init configuration function.
|
|
|
|
|
| |
This commit *only* touches comments in the code for RFNoC streaming,
link management and management portal.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
The use_dpdk will be false for all B210 test cases, but still needs
to be defined since the main test_streaming() function requires
a value for it.
|
|
|
|
|
|
| |
The dual_SFP test case parameter will be false for all B210 and
E320 test cases, but it still needs to be defined since the main
test_streaming() function requires a value for it.
|
|
|
|
|
|
|
|
|
|
| |
This commit enables runs for X310, X310 TwinRx, E320, and N310.
By default, python's argparse module will expect a value to be
provided for each argument defined. Specifying an nargs value of '?'
for the pytest options allows us to use a single pytest invocation
in our pipeline configuration, even though some options don't apply
to some DUT types.
|
|
|
|
|
|
| |
The frontend corrections for N320 (IQ imbalance, DC offset) require the
DB serial. However, there was an error in reading the DB serial in the
code that applies the corrections.
|
|
|
|
|
| |
result of get double was saved in an int value instead of double
replaced C cast by static_cast
|
|
|
|
|
| |
The N320 code include some constants that were either unused or
incorrect. This clarifies the lowband frequency.
|
|
|
|
|
|
| |
This causes the latest RFNoC protocol version to be used by default
and avoids the need to update YAML files every time the RFNoC
protocol version gets bumped.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Prompt users for download confirmation of files larger than 1 GiB
instead of 100 MiB. Improve messaging to make this process less
concerning for users. The defined limit is only for the user's
convenience. A 1 GiB limit should allow users to download most uhd
images and related files without being prompted.
Signed-off-by: mattprost <matt.prost@ni.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds support for read only registers in generated interfaces.
For this the default is extended to an option string. The old format
is still supported for backward compability, so if options string is
just a number it will be handled as a writable number.
The option string is a comma separated list with key=value pairs. The
value is optional and treated as None if missing.
common.py now allows to pass in **kwargs to the generate method which
is used by gen_zbx_cpld_regs.py to pass a filter function for registers
used by mpm only.
get_all_addr now has an additional (optional, defaults to false) flag
to indicate whether read only addresses are to be returned or not.
It also supports type generic for the result to align with
get_changed_addr function.
The ZBX CPLD CTRL map is adapted accordingly to reflect read only
registers. The power registers are flagged as MPM scope only (and not
used in ZBX CPLD control of UHD).
Co-authored-by: Martin Braun <martin.braun@ettus.com>
|
|
|
|
|
|
|
|
|
| |
Adds cmake option for replacing dashes in the UHD Component version with
underscores. This is necessary as Fedora package management is now
enforcing the format <Package>-<Version>-<Release> for all rpm builds,
so dashes in the UHD_VERSION from dev branches is not supported.
Signed-off-by: mattprost <matt.prost@ni.com>
|
|
|
|
|
|
|
|
| |
If ALL option is specified, set lo source for both lo's. Do not report
an error if user sets LO2 to internal. Enforce single lo target for
queries about lo state.
Signed-off-by: mattprost <matt.prost@ni.com>
|
|
|
|
|
|
| |
Building .deb files has an entire ecosystem dedicated to it which is
superior to cpack, and we don't test cpack, either. Users wanting to
build .deb files should take a look at tools/debs/uhd_ubuntu_deb.py.
|
|
|
|
|
| |
When a file exceeds the download limit, print the name of the file in
the message that asks if we want to continue downloading.
|
| |
|
|
|
|
|
|
|
| |
This outputs the variable in the CMakeCache, so that we can
scrape the version later for building package
Signed-off-by: Steven Koo <steven.koo@ni.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When running uhd_usrp_probe, this adds the daughterboard revision if
available:
```
| _____________________________________________________
| /
| | RX Dboard: 0/Radio#0
| | ID: TwinRX Rev C (0x0095)
| | Serial: ABC1234
| | Revision: 4
```
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This PR makes a couple of minor changes to Debian packaging files to
resolve errors reported by Lintian during CI and manual building of
.debs after having been updated in 38fb5e262:
- Remove instances of `${python3:Depends}` in the rules file, as this
substitution directive cannot be used without specifying `--with
python3` in the `dh` debhelper command invocation. However, the Docker
containers that are spun up to build .debs as part of UHD CI do not
include the Debian Python helper package necessary to use the
substitution even if `--with python3` is specified. Thus, the
substitution was removed and replaced with the actual names of the
dependent Python packages.
- Remove the `Files-Excluded` section from the copyright file. Lintian
flags an error whenever a file in that section is present in the source
tree (which the specified files are). The addition of this section was
supposed to bring UHD's built-in Debian packaging files more in line
with those used by the actual Debian package maintainer, but it is
likely that the actual Debian packing process runs additional steps that
reference this section and uses it to remove the specified files which
we currently don't run.
|
|
|
|
|
| |
- Updated CHANGELOG
- Updated Debian changelog
|
|
|
|
|
|
|
|
| |
On some installs, pkg-path and install-prefix aren't equivalent. Since
uhd_images_downloader defaults to installing into
$CMAKE_INSTALL_PREFIX/share/uhd/images, we should look there too.
Signed-off-by: Steven Koo <steven.koo@ni.com>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Adds checks for deprecated blocks (e.g., radio_1x64.yml instead of
radio.yml) as well as deprecated IO signature types (e.g., ctrl_port
instead of ctrlport).
Deprecated block descriptions are no longer parsed. Old IO signature
types are automatically converted to the new type. Warnings are
printed in both cases.
|
|
|
|
|
|
|
| |
This resolves a typo intoduced by
multi_usrp_rfnoc: Add TX buffering using Replay
Signed-off-by: Steven Koo <steven.koo@ni.com>
|
| |
|
|
|
|
|
|
| |
- images: Updated manifest
- uhd: Updated changelog and version string
- debian: Updated changelog
|
|
|
|
| |
Signed-off-by: mattprost <matt.prost@ni.com>
|
|
|
|
|
| |
Co-authored-by: bpadalino <bpadalino@gmail.com>
Signed-off-by: mattprost <matt.prost@ni.com>
|
|
|
|
|
|
|
|
|
|
| |
Add the Filter API to n3xx specifically for the AD937x device. The TX
filter is limited to 32 taps, and the RX filter is limited to 48 taps.
This feature requires MPM version 4.2 or later on the device.
Co-authored-by: bpadalino <bpadalino@gmail.com>
Signed-off-by: mattprost <matt.prost@ni.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allow users to control the Mykonos frontend bandwidth settings for
Rx and Tx. Note that this operation requires the daughterboard to
re-initialize, so it may take some time. Values for frontend filter
settings were derived using ADI's AD9371 Filter Wizard.
This feature requires MPM version 4.1 or later on the device.
Co-authored-by: bpadalino <bpadalino@gmail.com>
Signed-off-by: mattprost <matt.prost@ni.com>
|
|
|
|
|
|
|
|
|
| |
This allows the user to get the current state of the tx atr bits and set
them back to a given state. This is useful for the n310 when resetting
the front end, in order to avoid any tx power out of the frontend when
the init_cals are run.
Signed-off-by: mattprost <matt.prost@ni.com>
|
|
|
|
|
|
|
|
| |
Auto-generated IC Register Maps (e.g. magnesium_cpld_regs,
rhodium_cpld_regs, etc.) now provide getter methods for all attributes.
This gives access to the save state information for the device.
Signed-off-by: mattprost <matt.prost@ni.com>
|
|
|
|
| |
Signed-off-by: mattprost <matt.prost@ni.com>
|
|
|
|
| |
Signed-off-by: mattprost <matt.prost@ni.com>
|
|
|
|
|
|
| |
This test mimics the Radio <-> Replay loop graph. Because we need one
back-edge in this graph, this test makes sure the atomic item sizes
still resolve.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, the property propagation algorithm would first forward and
resolve properties only along forward edges. Then, we would check that
properties also align across back-edges. The assumption is that graphs
are always structured in a way such that back-edges would align when the
resolution is done.
However, for the following graph, this would fail:
Radio ---> Replay
^ |
+---------+
The reason is that the radio block and the replay block both have an
"atomic_item_size" property, which needs to be resolved both ways. If
the default atomic_item_size is 4 for the radio, and 8 for the replay
block, then the input atomic_item_size on the radio will never be
aligned with the output atomic_item_size of the replay block, and there
is no other mechanism to align those.
The solution is to run the edge property propagation and resolution
twice, first for the forward edges, then for the back-edges. For graphs
that would previously work, this makes no difference: The additional
step of propagation properties across the back-edges will not dirty any
properties. However, for graphs like the one above, it will provide an
additional resolution path for properties that are otherwise not
connected.
|
|
|
|
|
|
| |
The internal helper function graph_t::_forward_edge_props() receives
another argument, which decides if properties are forwarded on forward-
or back-edges. Previously, only forward-edges were possible.
|
|
|
|
|
|
|
|
|
|
|
| |
Enabled with the "tx_replay_buffer" device argument. Buffers TX data in
DRAM using the Replay block (version 1.1 or higher required), allowing
more buffering of data on the device. May reduce underruns for certain
applications. The Replay block is currently limited to 32 play
commands, so fewer calls to send() with larger buffers will perform
better than more calls with smaller buffers.
Signed-off-by: michael-west <michael.west@ettus.com>
|