Commit graph

6272 commits

Author SHA1 Message Date
Cristina Fuentes
2e64cb1b28 multi_usrp: Add get_mb_controller() API call 2020-09-24 15:16:45 -05:00
Lars Amsel
bc20747808 cal: sync log output between file system and resource data
To make the debug output of the database more readable
the has_cal_data lookup for RC data prints the file that
is looked up similar to the lookup for file system.
2020-09-22 14:35:41 -05:00
michael-west
cf570707a2 package: Fix Python components
Update dependencies from python to python3.

Signed-off-by: michael-west <michael.west@ettus.com>
2020-09-13 20:03:49 -07:00
michael-west
90ce6062b6 Prepare branch for release
- Update CHANGELOG
- Update debian files

Signed-off-by: michael-west <michael.west@ettus.com>
2020-09-13 12:14:04 -07:00
michael-west
7c02eb0dd3 Examples: Fix install paths in OOT RFNoC example
- Add missing "uhd/" subdirectory.
- Update install path for YAML file.
- Fix include directories and link libraries for init_gain_block.

Signed-off-by: michael-west <michael.west@ettus.com>
2020-09-13 09:48:11 -07:00
michael-west
01e9f2855b E3xx: Add retry to loopback_self_test
The loopback test sometimes fails.  It was found that it would pass on a
retry.  The root cause of the failure is unknown at this time, but the
retry allows the test to pass.  This is intended as a temporary patch
until the root cause of the failure can be identified.

Signed-off-by: michael-west <michael.west@ettus.com>
2020-09-11 23:39:58 -07:00
Martin Braun
22593f490d tests: Fix build issue with Boost 1.67
Boost 1.67 will fail to build some tests that include mock_transport.hpp
if an additional include is missing.
2020-09-11 00:47:35 -07:00
Wade Fife
aaf69cb343 docs: Add new CHDR format to transports 2020-09-11 00:44:25 -07:00
Wade Fife
e86bfa1ba5 docs: Updated register maps for UHD 4.0
Updates e3xx and n3xx register map documentation.

- Add new RFNoC registers
- Remove depreicated RFNoC registers
- Add other missing registers
- Correct formatting
2020-09-11 00:44:25 -07:00
mattprost
a25f930627 docs: New mender commands for Zeus filesystems
Signed-off-by: mattprost <matt.prost@ni.com>
2020-09-09 17:22:58 -07:00
RobertWalstab
c44eeaaf31 doc: add section about network mode on E3xx devices 2020-09-09 10:13:16 -07:00
michael-west
ab9f4eab72 lib: Remove recursive locks in apply_corrections
There were locks in the apply_tx/rx_fe_corrections() methods that were
acquired before calling methods that re-acquired the locks.  The mutexes
were not recursive, so it caused applications to lock up.  The locks
are unnecessary in the top level methods, so they are being removed.

Signed-off-by: michael-west <michael.west@ettus.com>
2020-09-04 08:48:25 -07:00
Aaron Rossetto
8aedc75abc python: Add peek/poke bindings to noc_block_base 2020-09-03 22:17:02 -05:00
Steven Koo
21bf14cb99 rfnoc: replay: Update packet size on mtu update
Replay block would previously fail output on low mtu links because it
was creating packets based on the default contruction mtu of 8192.
This change will update the packet size when mtu gets updated.
This also removes a warning for large packet sizes because the replay
block uses a maximum packet size property. The block should be
free to coerce down based on mtu limitations.

Signed-off-by: Steven Koo <steven.koo@ni.com>
2020-09-03 16:25:24 -05:00
Wade Fife
8f09caaa06 fpga: Update DRAM IO signatures
This updates the IO signatures so that all devices and RFNoC blocks use
the same IO signature for the DRAM. This is needed because the IO
signatures must match between the RFNoC blocks and the devices. This
means that some devices have extra bits in the IO signature for the
address, but the extra bits will simply be ignored.
2020-09-03 15:26:33 -05:00
mattprost
d80d56114a twinrx: Bypass adf535x feedback divider
Bypass the LO1 feedback divider if it is not required. Some TwinRX units
have seen issues when tuning to frequencies between 3.5GHz and 5.1GHz
while following that data path.

Signed-off-by: mattprost <matt.prost@ni.com>
2020-09-03 15:02:05 -05:00
Wade Fife
148a2c5ee6 rfnoc: Set null source/sink block initial state
This gives the source generator some valid initial values in the Null
Source/Sink RFNoC block.
2020-09-03 15:01:34 -05:00
Aaron Rossetto
6024111d4b docs: Add DPDK link detection section 2020-09-03 15:01:12 -05:00
Aaron Rossetto
eada49e4d5 dpdk: Improve link status detection
This change improves the DPDK link status detection algorithm in the
following ways:

- The status of the links are checked at an interval of 250 ms. If all
  links report as being up, the driver proceeds.
- If any of the DPDK links has not reported as being up by the end of
  the link status detection timeout (1000 ms by default), the algorithm
  throws a runtime error rather than proceeds with one or more down
  links.
- Users may override the default link status detection timeout by
  passing dpdk_link_timeout=N, where N is the desired timeout in
  milliseconds, either via device arguments or in the UHD configuration
  file.
2020-09-03 15:01:12 -05:00
Aaron Rossetto
61e10fc6b6 docs: Add Windows-specific UHD Python module notes 2020-09-03 11:49:12 -05:00
Steven Koo
6d414a4f22 x300,mpmd: Increase recv frames for dpdk streaming
With the default 32 frames, high rate DPDK streaming would overrun or
drop samples. This defaults num_recv_frames to 512 for DPDK, which has
shown to resolve these issues.

Signed-off-by: Steven Koo <steven.koo@ni.com>
2020-09-03 11:44:06 -05:00
Aaron Rossetto
73421ba19d docs: Add note about compiling on Ubuntu 20.04 2020-09-03 11:43:04 -05:00
ettus
5e7c0e61a8 rfnoc: replay: Add support for 32-bit memory address widths
Increases the supported memory sizes in software to 2^32 and beyond.

Signed-off-by: mattprost <matt.prost@ni.com>
2020-09-03 09:40:34 -05:00
Aaron Rossetto
c68977cffa cmake: Use relative path to Python lib location for Windows installer 2020-08-28 14:34:32 -05:00
Steven Koo
da1aeaeccc rfnoc: enable SEPs with connect_through_blocks
Calling on connect with SEPs in the path is not supported. This change
enables connect_through_blocks to find SEPs in the connection chain
and link the src and dest blocks directly.

Signed-off-by: Steven Koo <steven.koo@ni.com>
2020-08-28 12:28:08 -05:00
Aaron Rossetto
03e1b13d3d rfnoc: Exit disconnect() early if nodes not in node map 2020-08-28 12:10:35 -05:00
michael-west
49f230a8a3 utils: b2xx_fx3_utils: Add unload-bootloader
Added unload-bootloader option to cleanly unload a previously loaded
bootloader image.  It properly moves the VID, PID, and EEPROM data.

Signed-off-by: michael-west <michael.west@ettus.com>
2020-08-25 07:28:22 -05:00
Martin Braun
0d273bfe0c tests: fbs test: Fix issues around missing git
- update_fbs.py would use git directly, instead of the requested git
  executable
- There are other corner cases for the git executable detection, which
  are now all captured under a more general exception type

Credit to Christopher Friedt for pointing out the original issue.
2020-08-25 07:10:53 -05:00
michael-west
2a8ba91c1b NI-2974: Add cal support
Signed-off-by: michael-west <michael.west@ettus.com>
2020-08-19 17:50:21 -05:00
Martin Braun
86ab211b84 python: power cal: Minor fixes to power cal code
- Fix some typos
- Fix incorrect arg name for RFSGPowerGenerator.enable()
- Fix case where incorrect args would cause an uncaught TypeError. Now,
  if USRP is chose as signal generator, but fails to find one, a proper
  error is shown.
2020-08-17 16:23:46 -05:00
Martin Braun
b9f9ca2d0f uhd: Add APIs for getting the available power range
The previously added APIs for getting/setting power reference levels was
missing an option to read back the currently available power levels
(minimum and maximum power levels).
This adds getters for TX and RX power ranges to multi_usrp and
radio_control. The power API is thus now more similar to the gain API,
which always had getters for gain ranges.
2020-08-17 16:22:35 -05:00
michael-west
3472938173 X300: Adjusting 10GbE frame sizes for HW limits
Lowering X300 10GbE default frame sizes to max size supported by
hardware.

Signed-off-by: michael-west <michael.west@ettus.com>
2020-08-17 15:07:34 -05:00
Aaron Rossetto
5333d0d932 multi_usrp: Use multi_usrp::sptrs in graph disconnect lambdas 2020-08-17 15:07:14 -05:00
ettus
8ec7449d43 dpdk: clean up destruction order of dpdk context members
Clear the io service map and the dpdk port map in the dpdk context
destructor to force them to destruct before the dpdk context.

Signed-off-by: ettus <matt.prost@ni.com>
2020-08-14 15:10:34 -05:00
Steven Koo
bd851e7836 rfnoc: set a nop destructor for clang crash
Clang will generate an illegal instruction if a virtual destructor
isn't defined.
2020-08-12 07:13:04 -05:00
Steven Koo
c4216a079b rfnoc: Increase ctrlport_endpoint default timeout
The .1 second timeout fails on macOS. Expand this timeout to 1 second.
2020-08-12 07:13:04 -05:00
Steven Koo
552b17c0de uhd: Remove assignment to const var for mac build
These values are already correctly set upstream and should not be
modified since params is const.
2020-08-12 07:13:04 -05:00
Steven Koo
a518c5c771 uhd: Disable optimizations for Mac for build speed
twinrx_gain_tables takes long time to build with optimizations on
macOS / Clang. Turn them off for this platform.
2020-08-12 07:13:04 -05:00
Wade Fife
4f387c8ff0 fpga: lib: Change max FFT size to 1024
The max FFT size was 4096, but we don't currently have any devices that
can do that without modification. This is because, currently, the FFT
size must be the same as the packet size, and the largest packet
size supported by most devices is about 8000 bytes, or 2000
sc16 samples. Therefore, the largest FFT size supported without
modifying other code is 1024 samples.

This change frees up about 21% of the LUTs and 36% of the BRAM used by
axi_fft and makes the software block controller and the IP agree on the
maximum FFT size.
2020-08-11 16:20:51 -05:00
mattprost
fa2d383ff5 examples: replay samples from file
This example exercises the Replay Block RFNoC API. The Replay records
IQ data from a file and plays it back into a Radio for transmitting.

Signed-off-by: mattprost <matt.prost@ni.com>
2020-08-11 16:08:16 -05:00
Steven Koo
f9ef6757b1 rfnoc: Don't error when streamer isn't found
This commit resolves an issue where the disconnect call would fail
if the streamer was created, but not connected. If disconnect gets
called on a streamer that isn't on the graph, ignore it.
2020-08-11 16:07:40 -05:00
Steven Koo
be5bee81c4 rfnoc: Resolves streamer/link segfaults on python
This commit resolves a segfault that occurs during teardown. Since
teardown isn't detereministic in python, there were cases where the
graph would destruct before the streamers or links got chance to
cleanup. This would result in a segfault. This change gives the lambda
a shared pointer to the object the callback method is calling on, so
that it won't destruct before being called.
2020-08-11 16:07:40 -05:00
mattprost
fc3f91e0cf twinrx: update synthesizer register values for improved rf performance
Updated Register values for ADF5356:
R2) Expand Frac2 to a 28-bit value for ADF5356
R6) Use negative bleed current for improved spurious performance
R7) Set Fractional-N Lock Detect Precision to 12.0 ns because of bleed
currents
R8) Use magic number for reserved bits
R9) Fix VCO Band Division calculation for ADF5356
RD) Expand Frac2 to a 28-bit value for ADF5356

Signed-off-by: mattprost <matt.prost@ni.com>
2020-08-11 16:07:16 -05:00
Wade Fife
de8b6fcd71 python: Change default name for rfnoc_image_core
This changes the default name of the image core file to
<DEVICE>_rfnoc_image_core.v instead of naming it after the YAML file.
This ensures that when you use a custom YAML file, the resulting
FPGA build will use the generated rfnoc_image_core and static_router
files, rather than just the generated static_router file.
2020-08-10 15:18:46 -05:00
Steven Koo
2da3cdcb3b devtest: Support multi_usrp_test on Windows
Windows requires the command 'python' to prepend calls to .py files.
This change moves the path to multi_usrp_test.py to an argument on
Windows.
2020-08-10 15:14:36 -05:00
michael-west
7b3bf4bdc0 X300: Update frame sizes for 10GbE
Setting default frame sizes for 10 GbE to match an Ethernet MTU of
9000, which is recommended in the UHD manual for the X300.  The MTU
detection code is left untouched, so it will automatically adjust
if the MTU is lower than 9000.

Signed-off-by: michael-west <michael.west@ettus.com>
2020-08-07 08:47:48 -05:00
michael-west
8212691688 Python API: Add bindings for disconnect APIs
Add Python bindings for recently added rfnoc_graph::disconnect()
methods.

Signed-off-by: michael-west <michael.west@ettus.com>
2020-08-07 07:43:58 -05:00
michael-west
3a2a3610c2 RFNoC: Revert change in streamer initialization
Reverting inadvertent change in num_chans argument during
tx/rx_streamer_impl construction.

Signed-off-by: michael-west <michael.west@ettus.com>
2020-08-07 07:43:58 -05:00
Martin Braun
c969ccb039 mpmd: Clean out link_if_mgr
The link_if_mgr used to be a factory for Liberio, UDP, and DPDK. Now,
Liberio is gone and DPDK is handled by UDP. This makes the class
superfluous.

Instead of removing the class, we comment on this, and remove any DPDK
references from the file.
2020-08-07 07:25:08 -05:00
Steven Koo
6c213ecd09 rfnoc: Remove M_PI usage to fix Windows builds
M_PI may not exist if _USE_MATH_DEFINES isn't defined before the
first include of math.h or cmath on Windows. This changes avoids the
issue all together by defining our own PI.
2020-08-07 07:24:16 -05:00