Commit Graph

7985 Commits

Author SHA1 Message Date
Lars Amsel
94f857518c Host: Move find logic into the find_t calls
In 8f6c7e5 we cleaned up uhd::find to have a consistent experience independend
from the underlying registered device type (usrp1/usrp2/b200/mpm/…).

Removing the filtering of found devices from the find_t broke existing
workflows. The image loader uses the find_t of, e.g. of mpm which now does
no filtering anymore, so

    uhd_image_loader --args addr=<ip>,tpye=x4xx,fpga=X4_200

would load the bitfile, because when finding for a specific ID UHD does no
broadcast so the result will be either no or a single result while

    uhd_image_loader --args serial=<id>,tpye=x4xx,fpga=X4_200

would do a broadcast an find a potentially more that one device. The
image loader will then fail, because we do not support multi device updates.

This commit fixes this by moving the filtering methods into some place
visible for all find_t methods. uhd::find does not filter anymore.
Instead the filtering is done in the find_t's itself. This ensures that the
filter is also applied if the find_t is invoked by anything else than
uhd::find (e.g. the image loader). At the same time it is ensured that we
keep the cleaned up find we introduces in the commit mentioned above.
2026-06-24 09:19:45 +02:00
Martin Braun
af31944702 fbx/hbx/zbx: Include fail flag in nco_locked sensor
Previously, the `nco_locked` sensor value only returned the reset status
(i.e., was the NCO out of reset). We now also include the status of the
fail flag, i.e., the NCO must be out of reset, and the fail flag must be
clear to signal a positive `nco_locked` value.

Note that the `nco_locked` sensor is named this way to mimic the
lo_locked sensors available on other daughterboards. Those other sensors
report on the physical lock status of analog PLLs, but this simply
returns the status of the NCO.
2026-06-22 13:42:30 +02:00
Martin Braun
6cb25a298b lib: x400: Add fail-flag APIs to RFDC control
Two new APIs are added to x400_rfdc_control:
- get_nco_good(): Combines the reset and FAIL flags into a single "good"
  value
- get_nco_no_fail(): Provides information on the current status of the
  NCO reset FAIL flag
2026-06-22 13:42:30 +02:00
Bjoern Bachmann
5faa6888f1 cmake: exclude CMake artifacts from Python module install
install(DIRECTORY) in UHD_PYTHON_INSTALL_MODULE copies the entire
build-tree module directory verbatim, including cmake_install.cmake
and CTestTestfile.cmake files generated by CMake.  These files embed
absolute build paths and do not belong on the target system.

Add PATTERN EXCLUDE rules to drop cmake_install.cmake and
CTestTestfile.cmake during installation.
2026-06-19 08:41:39 +02:00
Aki Tomita
624aa3e79c transport: Include winsock2 for Windows when appropriate
Latest versions of libusb no longer include winsock.h. If winsock.h
is not included, use winsock2.h since the rest of the codebase
uses it.
2026-06-18 07:42:01 +02:00
Lars Amsel
561bac04ea Host: Change include to fix boost bind pragma warning 2026-06-17 21:35:30 +02:00
Jakob Kukla
245532cd06 utils: Fix exit code on error in uhd_images_downloader
When the requests module is not available, the script exits, now with an
error code 1 (previously with error code 0).
2026-06-15 14:02:51 +02:00
Martin Braun
27c20969c1 tests: Update linking instructions for client_zero_test
On Arch Linux, users have reported linker error otherwise.
2026-06-15 12:53:58 +02:00
Martin Braun
736fd1b85c cmake: Remove some Boost dependencies
With the most recent changes, Boost.Thread and all Boost date/time
libraries are no longer required. This updates the CMake and Debian
files to reflect those changes.
2026-06-15 09:50:16 +02:00
Martin Braun
fa0c49e074 mpm: x4xx: Add sticky LMK DLD bits back as ref_stable sensor
This adds a new sensor called `ref_stable` to the X4xx series. Unlike
`ref_locked`, which only checks the current ref-lock status, this will
also query the sticky bits of the LMK04832 lock-detect circuitry, and
then clear them. This allows checking if ref-lock was lost any time
between queries to the `ref_stable` sensor (unlike the `ref_locked`
sensor, which queries the current ref-lock status).
2026-06-12 15:19:41 +02:00
Niels Garibaldi
fa7c91a285 fpga: radio: add TX fixed resampler disable X440_200 rf core 2026-06-12 14:30:31 +02:00
Max Köhler
6a7bf76dcd doc: x4xx: add notes for dual rate support on X4_200 image
Co-authored-by: Martin Braun <martin.braun@ettus.com>
2026-06-12 14:06:13 +02:00
Max Köhler
738f297df7 image builder: add support for parameters depending on each other 2026-06-12 14:06:13 +02:00
Max Köhler
06ed3cbca8 host: x440: add option for fabric resamplers in bsp 2026-06-12 14:06:13 +02:00
Max Köhler
8cd65ce2a1 fpga: x440: add fabric resamplers by 3 to 200 MHz variant
Main changes are:
- Creating Xilinx FIR filters based on the X410 ones
- Writing TX and RX resamplers with seperate testbenches
- Creating a RF core around the resamplers and rf_core_full for the 200M variant
  specifically.
- Integration of the core into the FPGA top level based on conditional
  parameters generated by the rfnoc_image_builder workflow
- Changing the 8 SPC to 2 SPC to save DSP resources for the 200M image only
- Adding reset handling from ps_rfdc_bd to the new rf_core.
2026-06-12 14:06:13 +02:00
Martin Braun
7241c8cdfd lib: rfnoc: Move ctrlport endpoint sleep out of boost
In chdr_ctrl_endpoint, we move from boost::this_thread::sleep_for() to
std::this_thread::sleep_for().
2026-06-11 09:42:48 +02:00
Lars Amsel
5d6a8af5f9 MPM: Improve RPC error propagation and deduplicate wrapper handling
Decode server-provided RPC error payloads when a remote call fails, instead of
always surfacing the generic "rpc::rpc_error during call" text. Error reporting
now prefers (in order):

* The structured RPC error payload from the exception
* The server-side last-error query
* The fallback exception message

Also refactor request/notify paths to remove duplicated catch/rethrow logic by
routing through shared internal helpers. This keeps behavior consistent across
all RPC entry point.
2026-06-10 16:45:48 +02:00
Martin Braun
99fc851022 tests: Redirect log_test to log_add_impl.hpp
This avoids a Boost.Posix_Time reference in any of our compiled code.
2026-06-10 10:05:25 +02:00
Martin Braun
28c4690cae examples: Deboostify twinrx_freq_hopping
This replaces all usage of Boost.Thread, Boost.Posix_Time, and
Boost.Format with standard C++ constructs.
2026-06-10 10:05:25 +02:00
Martin Braun
675baa5387 uhd: Remove more superfluous includes
- Mostly boost includes
- In some cases, trivial boost::format() calls were removed to enable
  removing the corresponding header
2026-06-10 08:34:02 +02:00
Martin Braun
510ecf6a9e udp: Reduce Boost usage
Note: Boost.Asio is not removed, but this removes the usage of Boost
timers.
2026-06-08 09:40:04 +02:00
Martin Braun
d2f4dc5aa1 cmake: Flag manifest.txt as CMAKE_CONFIGURE_DEPENDS
Previously, we used a hack with configure_file() to achieve the same
effect, but that would not allow building UHD on read-only volumes.
2026-06-08 09:38:59 +02:00
Martin Braun
cd23e5fcae lib: Remove spurious boost includes 2026-06-08 09:38:35 +02:00
Martin Braun
0daefae791 uhd: Remove Boost usage from bounded_buffer
Except for boost::circular_buffer, all Boost usage is removed.
2026-06-05 15:28:14 +02:00
Andre Zoch
cc04f39136 log: Add missing direct include of <map>
<map> is implied by <boost/date_time/posix_time/posix_time.hpp>. This
adds an explicit include so we can remove the Boost header in the
future.
2026-06-05 15:28:14 +02:00
Martin Anderseck
98bf5e02a0 doc: Add note about mgmt_addr
When using X420/X440 via their QSFP28 interfaces, an MPM reboot due to
clocking changes may cause timeout errors because the QSFP28 interfaces
are cycling down and up again during the MPM reboot and the connection
gets lost for some time. This commit adds a note about this and how to
circumvent this.
2026-06-01 15:24:33 +02:00
Martin Braun
017482c3b5 lib: Fix compiler warnings with GCC 16 / Python 3.14
sim_find.cpp: Python 3.14's pyconfig.h redefines _POSIX_C_SOURCE and
_XOPEN_SOURCE to older values, but only if they haven't been defined yet.
Moving <Python.h> to be the first include (before any system header that
pulls in features.h via <string>) prevents the -Wmacro-redefinition
warnings that become errors under -Werror.

usrprio_rpc_client.cpp: Value-initialize usrprio_device_info to silence
-Wmaybe-uninitialized on the interface_num member, caught by GCC 16.
2026-06-01 11:02:13 +02:00
Martin Braun
6bc3e89ce0 rfnoc: move chdr_ctrl_xport::make() out of header
GCC 16 eagerly instantiates std::_Sp_counted_ptr_inplace<chdr_ctrl_xport>
in every TU that includes chdr_ctrl_xport.hpp with the inline make()
definition. This causes the destructor to be referenced in TUs that do
not link against chdr_ctrl_xport.cpp (e.g. client_zero_test), resulting
in undefined reference linker errors.

Fix by moving make() from the inline header definition into the .cpp
file, so std::make_shared<chdr_ctrl_xport> is only instantiated where
~chdr_ctrl_xport() is also defined.
2026-06-01 11:02:13 +02:00
Martin Braun
1d75f2acc9 tests: suppress GCC 16 false positive -Warray-bounds warning
GCC 16 emits a spurious -Warray-bounds warning when std::make_shared
uses placement new into its internal control block buffer. This causes
build failures in client_zero_test.cpp and mb_controller_test.cpp.

Suppress the warning with #pragma GCC diagnostic around the affected
std::make_shared calls, guarded by __GNUC__ >= 16 to leave older
compilers unaffected.

Fixes: https://github.com/EttusResearch/uhd/issues/923
2026-06-01 11:02:13 +02:00
Clemens Felber
63a35841fa transport: match Linux UDP ICMP error behavior on Windows
On Linux, ICMP "Port Unreachable" is silently dropped on unconnected
UDP sockets but reported on connected sockets (ECONNREFUSED). Windows
reports WSAECONNRESET (10054) on all UDP sockets by default, breaking
device discovery when non-USRP hosts are on the subnet.

Apply SIO_UDP_CONNRESET=FALSE only for unconnected (broadcast) sockets,
leaving error reporting intact for connected sockets.
2026-05-28 17:29:00 +02:00
Martin Anderseck
16b9396fe8 host: x4xx: More selective triggering in experts
Originally, when the command time was changed, this triggered
programming experts in TX and RX direction. This caused long execution
times of any setters that were called at the same time (e.g.
set_*x_gain()). With this change, the calls with and without command
time are more on par. In HBX, the command time was used in an expert
where it was not necessary at all, so this has been removed, too.
2026-05-28 14:50:54 +02:00
Martin Anderseck
fc2b1abe95 host: hbx: Rebalance TX gain tables
This changes the TX gain tables for HBX in the range between 9 and 20
GHz to avoid overshoots that could occur otherwise when changing gains
especially from gain index 38 to 39.
2026-05-28 14:12:47 +02:00
Martin Braun
8f6e756608 rfnoc: python: Expose ref_clk_calibration feature
This enables the ref_clk_calibration_iface discoverable feature in
Python. It can be used like this:

```python
mb_ctrl = graph.get_mb_controller(0)
ref_cal = mb_ctrl.get_ref_clk_calibration()
ref_cal.set_ref_clk_tuning_word(0x24a)
word = ref_cal.get_ref_clk_tuning_word()
ref_cal.store_ref_clk_tuning_word(word)
```

This feature is also exposed as a devtest.
2026-05-27 08:28:38 +02:00
Martin Braun
9fb2a5dfc2 tests: devtest: Fix YAML dumper
This was using a baseloader for dumping. It is modified to use a safe
dumper.
2026-05-27 08:28:38 +02:00
Clemens Felber
21ba32dd78 host: set ZBX_LO_LOCK_TIMEOUT_MS to 50 ms
The previous value of 20 ms caused spurious timeout errors under load.
The ZBX LO lock consistently completes within 30 ms in integration
testing. 50 ms provides adequate margin without masking genuine LO lock
failures.
2026-05-14 08:39:02 +02:00
Clemens Felber
a4893220c4 rfnoc: fix stale ACK handling in ctrlport_endpoint
After FPGA image reload, the FPGA resets its CHDR sequence counter to
zero. Stale ACKs from the old session can then arrive with a seq_num
matching a pending request in the new session.

Tighten the match check: also require op_code, address, and (for
WRITE/BLOCK_WRITE) data payload to agree. Mismatches are dropped and
ctrl_out_of_sequence is incremented. Add unit tests for both mismatch
cases.
2026-05-14 08:39:02 +02:00
Martin Braun
830e676f95 lib: usb: Remove Boost time functions
These time functions are specific to libusb1_zero_copy, which is used
for B2xx USB streaming. These functions are rarely used, don't compile
when enabled, and rely on Boost. If we ever need them again, we'll need
to put them back in using std equivalents.
2026-05-12 09:20:33 +02:00
Martin Anderseck
375e02bc1f doc: Adding streaming to general x4xx doc
This used to be in KB articles previously, but for the sake of
consolidation it moves into the manual and gets updated for X420, too.
2026-05-12 09:12:48 +02:00
Martin Braun
4a3873123b docs: Fix FPGA readme (Doxygen link) 2026-05-11 15:26:30 +02:00
Martin Braun
0290e1236e log: Replace boost::posix_time with std::chrono
The logging macros are not affected.

This is an API change, because the logging_info object is modified, and
this object is part of uhd::_log::log. However, neither of those objects
are supposed to be used directly, the only correct usage of those is via
the logging macros.

The exception is uhd::log::add_logger(). To not break the add_logger()
API, we create a backward compatibility layer and provide an add_logger()
API call that still supports the old version (that uses
boost::posix_time).
2026-05-11 10:53:36 +02:00
Martin Braun
10a33c2c2a lib: Add missing includes
This adds missing <cmath>, <algorithm>, <memory> and <string> includes.
These were previously implied by Boost includes that have now been
removed.
2026-05-11 10:53:36 +02:00
Marian Koop
57fc5f3b24 host: debian: Adapt patch to comment format changes 2026-05-08 08:08:28 +02:00
Martin Braun
fffe260c65 octoclock: Replace Boost usage with standard C++
The only remaining usage of Boost is some usage of boost::format, and
boost::asio.
2026-05-07 14:59:15 +02:00
Martin Braun
62efe55536 tests: Remove spurious boost/thread.hpp include 2026-05-07 14:59:15 +02:00
Martin Anderseck
40d6cf61aa doc: Fix documentation for Doxygen
This fixes many documentation issues where in the Doxygen output
sentences were incomplete and information was missing that is there in
the source files actually.
2026-05-07 14:58:01 +02:00
Martin Braun
3eb6fe492a uhd: Remove usage of boost::optional
- boost::optional is replaced by std::optional
- In public APIs, boost::optional is still usable, but it is declared
  deprecated. That means this is no API break (but it is an ABI break).
- Within the library portion (host/lib/**) there is no more usage of
  boost::optional. Some backward-compatibility code (in actions.cpp and
  ctrlport_endpoint.cpp) was moved out to the header.

Note: The most difficult replacement was that for
parse_log_level_from_string(), where boost::optional is the return
value. To retain API compatibility, we had to create a helper function.
2026-05-05 14:41:39 +02:00
Max Köhler
1993ec9f25 modtool: set default value for output FIFO depth 2026-05-04 09:09:43 +02:00
Max Köhler
291888b8b0 modtool: Use localparam for the control output FIFO depth 2026-04-30 09:20:13 +02:00
Max Köhler
76235dc046 rfnoc: Expose control output FIFO size parameter in radio.yml 2026-04-30 09:20:13 +02:00
Martin Braun
962fd0b007 x300: Remove Boost time functions
Replaced with std::chrono equivalents.
2026-04-29 09:56:54 +02:00
Martin Braun
c45c32d725 nirio: Remove usage of Boost time functions
They are replaced by std::chrono equivalents.
2026-04-29 09:56:54 +02:00
Frank Dietze
d8a0026d1f host: docs: installation: update ubuntu dep "libncurses" 2026-04-28 18:01:39 +02:00
Marian Koop
7c4ee4e3a8 docs: Extend DPDK config file documentation 2026-04-28 15:26:58 +02:00
Martin Anderseck
169c4f7805 python: Fix DRAM utils reconnect with DDC/DUC
When the DRAM receiver was introduced in the DRAM utils, property
propagation needed to be turned off in the reconnect() method to avoid a
circular and thus unresolvable graph. However if resamplers are in the
graph that leads to the sample rate not being propagated properly and
thus leaving it at 1, so we get far less data than expected. By only
skipping the property propagation in the TX direction both issues are
resolved and this is what this commit does.
2026-04-28 14:56:35 +02:00
Martin Braun
c233df433f uhd: Deprecate set_thread_name() for Boost threads
Boost threads are no longer used, so this function is no longer
necessary. Because it's in a public header, it's turned into a nop
function and flagged deprecated. Its implementation is removed.
2026-04-27 22:15:38 +02:00
Martin Braun
5c29741eba lib: nirio: Remove boost::thread usage
Within the nirio library, the following changes are applied to reduce
the Boost footprint:

- boost::condition is replaced with std::condition_variable
  - In some places, this requires shifting from boost::posix_time to
    std::chrono
  - Note that boost::condition::timed_wait() is replaced with
    std::condition_variable::wait_for(), which has a different return
    value when used without a predicate (std::cv_status vs. bool).
- boost::thread is replaced with std::thread
- boost::shared_lock (and share_mutex) are replaced with
  std::shared_lock
- The "writer lock" becomes a simple std::unique_lock
2026-04-27 22:15:38 +02:00
Wade Fife
262fc3cb2f modtool: Use localparam for the control FIFO depth 2026-04-27 13:57:26 +02:00
Wade Fife
6b01cbae72 rfnoc: Expose control FIFO size parameter in radio.yml 2026-04-27 13:57:26 +02:00
Martin Braun
fa10144c12 lib: gps_ctrl: Remove usage of Boost time methods
Replace by std::chrono equivalents.
2026-04-27 10:18:12 +02:00
Max Köhler
81d9002651 fpga: x420: restore default crossbar optimize parameter 2026-04-27 09:22:10 +02:00
Max Köhler
895c8cd490 image builder: add calculation of URAM instances for Ultrascale devices 2026-04-27 09:22:10 +02:00
Martin Braun
d0f8a303c0 lib: Remove spurious Boost include in rx_vita_core_3000 2026-04-24 10:42:40 +02:00
Martin Braun
6517c0e0d3 examples: Remove boost::thread_group usage
This helps with removing boost::thread usage from UHD overall. The
functionality of the examples is not affected.
2026-04-24 10:42:40 +02:00
Martin Braun
a7278e0150 usrp1: Remove (almost) all Boost usage
This performs some simple modifications to get rid of most Boost code
from the USRP1 codebase (e.g., remove simple boost::format usage, use
std::chrono instead of Boost timers, etc.)
2026-04-24 10:42:30 +02:00
Martin Braun
2378080dbe stream: Add get_stream_info() API calls
This is a new API call for streamers. It will allow peeking into the
internal settings of streamers.

The exact content of this call is device-specific. It varies a lot
between RFNoC- and non-RFNoC devices.

It can be used as follows:

```python
my_usrp = uhd.usrp.MultiUSRP(device_args)
rx_streamer = my_usrp.get_rx_stream(stream_args)
print(rx_streamer.get_stream_info(0)) # Shows info about the streamer
```

For most use cases, this API is not required. It can help for debugging
(e.g., compare flow control parameters with expectations, or identify
EPIDs for a better understanding of Wireshark output), or it can be used
for remote streaming, when a 3rd party application needs to know
internal settings of streamers.
2026-04-24 10:42:19 +02:00
Max Köhler
8e407f26eb host cal: avoid reconnect on dram utils 2026-04-23 10:51:56 +02:00
Martin Anderseck
6b4e38df75 cal: Adapt max input pwr for X420
The maximum input power of X420 is 0 dBm. And to do the RX power
calibration it is required as otherwise the signal will be too low most
of the times during the cal and the cal may fail.
2026-04-23 09:27:45 +02:00
Max Köhler
3920800f90 host: cal: Fix thousands separator in help text
Use comma instead of period as thousands separator for the
--num_samples default value in uhd_iq_dc_correction.py, matching
English locale conventions.
2026-04-20 10:40:50 +02:00
Max Köhler
1a344c1b65 host: cal: Align waveform start addresses with DRAM
In the X420 IQ/DC offset compensation, waveforms get preloaded into the
DRAM. During the measurement they are then streamed to the radio. The
DRAM on the device operates at 4k boundaries. Therefore, the waveform
start addresses are rounded up to the next multiple of 4096 bytes to
ensure proper alignment and avoid potential underflows during playback.
2026-04-20 10:40:50 +02:00
Marian Koop
3ce6cd0c32 docs: Fix markdown syntax for app note inclusion in manual. 2026-04-20 10:38:41 +02:00
Martin Braun
484e8dd269 rfnoc newmod: Apply Windows and Python fixes
These changes enable usage of OOT modules on Windows, and also fixes
issues with Python usage of OOT modules on all platforms. Note that
existing OOT modules will need to apply these patches manually.

These changes are backported from rfnoc-oot-blocks. The following fixes
are included:

- We require UHD 4.9 so that we can use the UHD::uhd target for linking
  instead of using the older-style ${UHD_LIBRARIES}. This fixes some
  linker issues.
- The symbol export macro name is fixed (missing "DLL")
- The Python module is explicitly linked against the OOT DLL
- The Python module forces a loading of the UHD Python module, which
  helps resolve RTTI and allows blocks to be declared descendents of
  noc_block_base.
- RFNoC OOTs with a module name that contains a hyphen (like
  "oot-blocks") are now correctly generated (macro names, e.g., should
  include the string OOT_BLOCKS in this case)
- We can provide a Pybind11 path, which is helpful on Windows, because
  unlike UHD, OOTs don't carry their vendored version of that library.

Co-authored-by: Wade Fife <wade.fife@emerson.com>
2026-04-19 14:20:45 +02:00
Martin Braun
2dbe7bf28d docs: Add an app note on adding custom clocks 2026-04-19 14:20:36 +02:00
Martin Anderseck
6a9338ccf0 docs: Add X420 documentation
This adds the documentation for the 20 GHz USRP X420.
2026-04-14 10:42:51 +02:00
Marian Koop
474ad31c84 doc: Update minimum Boost version on Windows 2026-04-13 16:47:52 +02:00
Marian Koop
5228a58cf5 cmake: Update minimum MSVC version to 16.0 (VS2019) 2026-04-13 16:47:52 +02:00
Marian Koop
c65e7b7178 cmake: Use NEW policy CMP0167 when using cmake 3.30 or later.
Enable NEW cmake policy CMP0167 that stops using the depreciated FindBoost
module and rely in upstream BoostConfig.cmake configuration files.
This may also avoid conflicts between upstream BoostConfig.cmake configuration
files and the depreciated, legacy implementation in FindBoost.
2026-04-13 16:47:52 +02:00
Martin Braun
71bdc41233 mpmd: Fix rpc_version key check for multiple devices
When launching a multi_usrp or RFNoC session with multiple devices, an
assertion error would always be thrown (with a single device, it works).
This is because the existence of the key rpc_version was checked before
separating multiple devices from a device_args dictionary.
2026-04-13 10:27:51 +02:00
Marian Koop
d03af7b936 images: Update manifest for v4.10.0.0-rc2 2026-04-09 12:41:01 +02:00
Martin Braun
2d430f98c3 mpm: Add rpc_version key in device find routine
This adds a new key to the discovery information coming from MPM
devices (rpc_version). The purpose of this is to smooth a transition to
alternative RPC subsystems other than mprpc.

If a device reports a different RPC version than supported by UHD, it
can still be found, but cannot be used for UHD sessions.
2026-04-09 10:23:59 +02:00
Niels Garibaldi
bfed161608 example: gain: Fixed rx actual rate printout
Added missing Msps conversion for actual rx sampling rate print in
the rfnoc oot gain block example.
Also applied ni-python-styleguide changes for import order.
2026-04-03 01:06:15 +02:00
Martin Anderseck
3293d06bc4 host: hbx: Improve log IDs
This improves the logging IDs of files related to HBX. It adds the radio
as prefix to the logging ID to make it easier to recognize which
component wrote a log message as we typically have (at least) two in a
UHD session. Improved behavior for ADMV1320, ADMV1420, LTC5594
(demodulator) and for the TX and RX LOs.
2026-04-02 17:43:37 +02:00
Marian Koop
999b4862a9 debian: Remove obsolete distribution specific control files. 2026-03-30 14:07:21 +02:00
Marian Koop
b5e754e71f debian: Fix syntax-error-in-dep5-copyright 2026-03-30 14:07:21 +02:00
Martin Anderseck
04970550de host: hbx: Shorten TX gain map
This shortens the HBX TX gain map at the lower end. With this, these
high attenuations / low gain indexes will not be possible anymore
to avoid non-linearities that were discovered otherwise.
2026-03-27 14:54:59 +01:00
Martin Anderseck
f695321d09 host: hbx: Add warning for RX manual gain profile
This adds a warning when changing into the manual gain profile in the RX
direction. It warns the user that in manual gain mode it is possible to
increase individual gain stages in a way that the input level to RF
chain can be too high even if the input power is below or at the
specified damage level.
2026-03-27 14:52:07 +01:00
Martin Anderseck
7ae91bdf27 host: examples: Fix duration arg in tx_waveforms
This commit aligns the documented and the actual default value for the
waveform duration and corrects the value to pass for infinite playback
to be 0. With duration = -1 it would stop with an error immediately.
2026-03-26 21:08:18 +01:00
Marian Koop
dd41a0801f Prepare for 4.10.0.0 release 2026-03-25 16:18:00 +01:00
Martin Anderseck
b1cd2c7547 host: test: Add X420 devtest target and doc
This adds the X420 devtest target in the CMakeLists and adds information
about it in the documentation
2026-03-25 16:15:27 +01:00
Martin Anderseck
ddac409868 python: Fix TX to RX trigger for DDC in dram_utils
This adds the TX to RX trigger in the DDC portion of the dram_utils. Without
that, the trigger was not passed on from the issue_stream_cmd() wrapper to
the actual method which led to "late command" errors.
2026-03-25 16:14:45 +01:00
ahmedsalman-ni
09887343b0 ci: x420: Add devtests to pipeline
This makes the X420 devtests run in the test pipeline.
2026-03-25 16:13:52 +01:00
Marian Koop
7ba8fbf584 python: Remove obsolete license classifiers and update license field
Removed deprecated 'license classifiers' and updated license field with
valid SPDX license expression to to comply with Python packaging standards
(PEP 639).
2026-03-24 11:37:20 +01:00
A. Maitland Bottoms
f860a7a010 debian: Integrate python3-uhd package changes from community source 2026-03-24 11:37:20 +01:00
A. Maitland Bottoms
552e6e2cac debian: Integrate uhd-doc and uhd-host package changes from community source
https://salsa.debian.org/bottoms/pkg-uhd/-/blob/master/debian
2026-03-24 11:37:20 +01:00
A. Maitland Bottoms
766447bccc cmake: Enable building man pages without full manual (i.e. doxygen) 2026-03-24 11:37:20 +01:00
Marian Koop
292777e0d9 debian: Remove obsolete files 2026-03-24 11:37:20 +01:00
A. Maitland Bottoms
3d025f6940 debian: Integrate patches from debian gnuradio packages 2026-03-24 11:37:20 +01:00
Martin Braun
14b8e8eac9 rfnoc_image_builder: Fix generic module support
This fixes the following problems with generic modules in RFNoC image
core files:

- The schema had a typo that prevented third-party modules to be
  instantiated in the image core file
- Modules without explicit resets couldn't be instantiated
- The module generation code (both templates and builder_config.py) were
  using the module.desc information, not the sanitized content. This
  bypassed any checking and sanitization and would cause additional
  problems if there were either no clocks or no resets defined (or both)
2026-03-24 11:32:49 +01:00
Marian Koop
dbb607f20c cmake: Remove ineffective chmod on file(GENERATE) output
Removed the configure-time chmod on the test shell scripts in
UHDUnitTest.cmake. Commit 94349ae46f switched script generation
from configure_file to file(GENERATE), which defers file creation
to the generate phase. As a side effect, the pre-existing chmod
execute_process now runs during configure before the file exists,
producing a developer warning.

When using the test script with ctest the chmod is unnecessary
because ctest invokes the script explicitly via ${SHELL} and does
not require execute permission on the script itself.
2026-03-24 11:28:20 +01:00
Martin Anderseck
cac8fe48b3 host: test: Fix Windows build of HBX block tests
While Linux is fine with getting paths.cpp via CMakelists.txt and via
the UHD lib, Windows didn't like it. This commit fixes Windows build
errors.
2026-03-23 17:17:35 +01:00
Anil Gurses
2cfe437ec0 utils: Update converter_benchmark
This adds a new batch mode that tests a variety of converter
configurations and compares the performance of the various priorities.
2026-03-23 10:00:08 +01:00