Commit Graph

12184 Commits

Author SHA1 Message Date
Martin Anderseck
44791931c8 host: examples: Add Python SPI example for X4xx
Since with the availability of discoverable features in Python it is
possible to use the front panel SPI of the X4xx series from there, this
example shows how to do this. It is pretty much on par with the C++
version.
2026-08-24 23:12:45 +02:00
Martin Anderseck
538a2e3fb3 python: Make discoverable features available
This makes all discoverable features available and creates a pattern for
any future discoverable features.
2026-08-24 23:12:45 +02:00
Abhishek Verma
05443d301d host/mpm: make gRPC robust to idle teardowns
The main RPC channel can sit idle for a long time (e.g. an interactive
Python session) while only the claim-loop channel sees traffic. Without
keepalive, gRPC self-closes the idle transport (~30 min) and the next
RPC fails re-establishing within its per-call deadline.

With this change the client now pings every 30 s to keep the channel
warm, and the server is configured to accept that cadence instead of
replying GOAWAY "too_many_pings".
2026-08-23 02:23:02 +02:00
Abhishek Verma
a076ee6dd7 rpc_server: disable BDP pings on server
The MPM gRPC server runs on a single-threaded gevent hub. gRPC's BDP
(bandwidth-estimation) probe fires repeatedly while the reclaim loop
keeps the link busy, and its ACK must return within grpcio's short,
RTT-derived internal BDP deadline. Any blocking hardware register read
(e.g. a ClkMgr PLL-lock poll) stalls all socket I/O on the hub until it
returns; , but these polls also run periodically in steady state.
When a stall outlasts the BDP deadline the server sends GOAWAY
"ping_timeout" and drops the transport. The fix is to disable BDP on
the server. The default flow-control window is fine on the LAN link,
so this costs nothing here. BDP is left enabled on the client, whose
native-threaded stack never freezes.
2026-08-23 02:23:02 +02:00
Jörg Hofrichter
dfc1ad17c3 mpm: e320: fix reading of FAN speed
The fan is named fan0 in the hwmon based implementation.
2026-08-23 02:19:52 +02:00
Lars Amsel
29c459f1b3 fpga: enable clock watch circuit on X440 images
Enable clock watch circuit for images with 200 and 400MHz bandwidth
as well. With this we also move from watch the rfdc_clk to watch the
radio_clk. This makes is easier to calculate the max clock rate for
all flavours of images.
2026-08-23 02:17:12 +02:00
Marian Koop
f9e8c5896f python: Fix error in python import warning on Windows 2026-08-23 02:11:55 +02:00
Jörg Hofrichter
e23454654f mpm: xportmgr_udp: create nft tables only if missing 2026-08-23 02:11:21 +02:00
Abhishek Verma
c4cf03925a mpm: replace mprpc with grpc pkg requirements 2026-08-23 02:08:45 +02:00
Max Köhler
f0b5d454cc doc: add phase coherency information 2026-08-23 02:03:43 +02:00
Niels Garibaldi
344c6793ac doc: fpga: host: Updated Wideband DDC DUC related documentation
Updated the references to DDC and DUC RFNoC blocks to reflect the
new split between legacy(singlesample) and wideband(multisample)
implementations.
Updated the related manual references as well as the C++ block
controller API comments that are pulled in by doxygen.
Also fixed a minor outdated comment in the FPGA source code.
2026-08-23 02:03:43 +02:00
Marian Koop
8d9c53c83e ci: fpga: Added pipeline switch to optionally build alternate X420 designs
Added pipeline switch to select between building X420_CG targets
with (default) or w/o DDC/DUC (alternate). In the pipeline the default
is to build the alternative design because of the low compile success
rates for these fpga designs when DDC/DUC is included.
2026-08-23 02:02:27 +02:00
Niels Garibaldi
6ab55e0cf4 fpga: add wideband ddc and duc blocks to default fpga images(Part2)
Adding the RFNoC DDC and DUC blocks to our shipping bitfiles.

The new wideband DxC implementation allow processing input/output
rates up to a maximum of 2000MSps.
This commit adds the DDC/DUC blocks to some of our shipping
bitfiles for all channels.

Co-authored-by: Niels Garibaldi <niels.steffen.garibaldi@emerson.com>
Co-authored-by: André Zoch <andre.zoch@emerson.com>
Co-authored-by: Meghana Halladamath <meghana.halladamath@emerson.com>
Co-authored-by: Wade Fife <wade.fife@ettus.com>
Co-authored-by: Max Köhler <max.koehler@emerson.com>
2026-08-23 02:02:27 +02:00
Virendra Kakade
c0be7431c0 fixup! docs: add b310 kernel driver docs 2026-08-23 00:22:47 +02:00
Virendra Kakade
cc29eb4496 docs: add b310 transport notes
Signed-off-by: Virendra Kakade <virendra.kakade@ni.com>
2026-08-23 00:22:47 +02:00
Virendra Kakade
add2d9efa6 docs: add b310 kernel driver docs
Signed-off-by: Virendra Kakade <virendra.kakade@ni.com>
2026-08-23 00:22:47 +02:00
Grant Meyerhoff
0e9a62834f docs: Add B310 documentation 2026-08-23 00:22:47 +02:00
Grant Meyerhoff
e98e866709 b300: fix external ref assignment 2026-08-23 00:22:03 +02:00
Grant Meyerhoff
bc64ff0ad6 b300: disallow changing clock source mid-session 2026-08-23 00:22:03 +02:00
Grant Meyerhoff
9291d7e18b adrv9032: store nco as per channel 2026-08-23 00:18:25 +02:00
Grant Meyerhoff
e8079eca45 adrv9032: fix nco source check 2026-08-23 00:18:25 +02:00
Grant Meyerhoff
b8d34e36be adrv9032: correct channel assignment for agc 2026-08-23 00:18:25 +02:00
Virendra Kakade
3716dd0884 b300: depend on installed nib310rio.h for Linux PCIe support
Remove the vendored copy of nib310rio.h from the inchworm tree and
replace it with a build-time dependency on the header installed by
the nib310rio-dev package:

    /usr/include/nib310rio/nib310rio.h

CMake now searches for this header before registering the B300
component. On Linux, if the header is absent, B300 support is
silently skipped with a status message pointing to the missing
package. If the user explicitly passes -DENABLE_B300=ON without
the header present, CMake fails with a clear error.

Update the two Linux-only include sites to use the system path:

    #include <nib310rio/nib310rio.h>

This makes the build-time dependency on the kernel driver explicit
and removes the risk of the vendored copy drifting out of sync with
the installed driver.

Signed-off-by: Virendra Kakade <virendra.kakade@ni.com>
2026-08-23 00:17:02 +02:00
Max Köhler
a9ddd67fb9 fpga: lib: rfnoc: Merge payload and async FIFO
Merge the payload and async FIFOs in the axis_data_to_chdr and
chdr_to_axis_data conversion conversion modules.
2026-08-20 17:31:01 +02:00
Max Köhler
2ff1a639eb fpga: lib: Make axis_width_conv FIFO size configurable 2026-08-20 17:31:01 +02:00
Niels Garibaldi
2f0fb8a1fa ci: add ddc/duc ats template tests for x410_x4_400 2026-08-20 17:08:19 +02:00
Frank Dietze
879ed08bb1 ci: usrp4 sim: only run this stage if source is not master 2026-08-20 16:07:33 +02:00
Max Köhler
27e8768431 ci: remove unused hwtools references 2026-08-20 13:27:17 +02:00
Max Köhler
5cb4e4f57f fpga: ci: use latest version of hwtools 2026-08-20 13:27:17 +02:00
Marian Koop
f88231c7c1 ci: Add Python 3.13 support 2026-08-20 02:03:09 +02:00
Marian Koop
6efbd7986b ci: docker: Re-add python 3.13 targets 2026-08-20 02:03:09 +02:00
Marian Koop
414e99f509 ci: docker: Re-add support for using vcpkg pipeline cache
Re-add steps to use and create pipeline cache for vcpkg binary caching.
Enable optionally disabling consuming and creating cache via
pipeline variable.
2026-08-20 02:03:09 +02:00
Marian Koop
b9f346664a ci: docker: Improve build success rate for windows containers
Resolve common transitive docker build failures on Windows,
which forced commit 4d0c9c8dfd
   Author: Marian Koop <marian.koop@emerson.com>
   Date:   Tue Aug 11 17:01:53 2026 +0200

       ci: docker: Revert docker build improvements

- Abstract vcpkg triplet port creation in ps script to
  implement error trapping and inspect logs prior to failing
- Move vs_buildtools install to front, to fail fast
- Abstract vs_buildtools install in ps script to
  - implement error trapping and inspect logs prior to failing
  - reduce docker layers
  - eliminate incl. temporary installer data into docker layers
- Switch to using powershell script to trap choco install errors
  and expose error logs during docker build. Script also
  - combines all choco installs into single container layers
  - attempt (by default) 2 retry attempts per package install
    (workaround for temporary URL download/access failues)
- Combine some python commands into single RUN statement
  to reduce docker layers
- Implement docker build step retry attempts (3) to address
  other temporary failures like ability to create layer.
2026-08-20 02:03:09 +02:00
Grant Meyerhoff
9015e01d3c b300: bump expected minor compat number for FPGA 2026-08-20 02:00:29 +02:00
Grant Meyerhoff
e7ea67c2c7 ci: add FPGA image loading before testing 2026-08-20 01:59:34 +02:00
Grant Meyerhoff
27cd1c5a6f ci: update B310 ATS to a new host machine 2026-08-20 01:59:34 +02:00
Grant Meyerhoff
b035928f19 b300: reset Thunderbolt PD after image load 2026-08-20 01:59:34 +02:00
Virendra Kakade
cbcf8a46c6 ci: add nib310rio-dev install step to UHD builds
Add steps-install-nib310rio-dev.yml template that downloads
the deb or rpm artifact based on buildOSName and installs
nib310rio-dev before the build. This satisfies the nib310rio.h
build-time dependency required by UHD.

Signed-off-by: Virendra Kakade <virendra.kakade@ni.com>
2026-08-20 01:51:42 +02:00
Jörg Hofrichter
af4058bd64 fpga: n3xx: fix UART initialization for WX image
In kernel 6.12, the "current-speed" parameter is required,
otherwise the UART is not initialized.
2026-08-20 01:48:27 +02:00
Max Köhler
fc6e355f24 fpga: refactor modules still using 2clk IP cores 2026-08-20 01:46:19 +02:00
Max Köhler
7537a2a909 fpga: removing deprecated FIFO IP cores 2026-08-20 01:46:19 +02:00
Max Köhler
04bb66663e fpga: lib: enable XPM fifo for all Xilinx FPGAs 2026-08-20 01:46:19 +02:00
Markus Schill
0b80e7f011 fpga: x410: Add rfdc_clk_1_4 to MMCM output
Adds a direct MMCM output for the quarter rfdc_clk.
Additionally, all other consumers of the rfdc_clk and rfdc_clk_2x
receive their clock from the MMCM output directly instead of
the clock buffers. Thus, making the clock buffers obsolete and
removing them from the design.
2026-08-20 01:40:05 +02:00
Javier Valenzuela
9c3959cdb0 fpga: b310: add synchronizers on async inputs 2026-08-19 11:42:54 -05:00
Max Köhler
87ee25d152 fpga: tools: exclude xsim kernel panic testbenches 2026-08-19 10:38:38 -05:00
Max Köhler
e503aaff88 fpga: tools: capture xsim fatal error in testbench execution 2026-08-19 10:38:38 -05:00
Javier Valenzuela
1c0dfa23d8 fpga: b310: update LMK_SYNC constraint 2026-08-18 12:39:10 -05:00
Javier Valenzuela
ed156ae6cf fpga: b310: removing stale comment 2026-08-18 12:39:10 -05:00
Abhishek Verma
99a05593d8 mpm: import no_claim in e31x
no_claim decorator was recently added in method
get_device_info_dyn() but it was missed to get imported from
usrp_mpm.rpc_utils which causes device initialize failure.
2026-08-17 11:01:17 +02:00
Javier Valenzuela
8676b3e257 fpga: b310: remove vhook comments 2026-08-14 16:33:50 -05:00