Commit Graph

11911 Commits

Author SHA1 Message Date
Martin Anderseck
045aee0d11 pre-commit: Add Doxygen comment format check
This adds a basic check for the correct format of Doxygen comments.
Since there were comments that started with `//!` and continued in the
next line with `//`, but Doxygen only used the first line, this ensures
that there aren't any such comments anymore. Refer to the coding
guidelines to see the correct format for documentation in the code.
2026-05-28 14:10:22 +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
Marian Koop
f0cc0b46c9 ci: docs: Breakout doxygen build check into py script 2026-05-14 08:39:17 +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
Frank Dietze
3d05ced7c7 ci: add rfnoc complex gain tests 2026-05-12 14:43:29 +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
Marian Koop
9e603ed1d4 ci: Enable PR trigger for docs 2026-05-11 12:49:18 +02:00
Frank Dietze
d468a81a59 ci: rftest: obx: fix skipped rftest execution 2026-05-11 12:33:50 +02:00
Abhishek Verma
db04ca1a79 ci: parameterize osmium duts where possible
replace devSerial, devAddr and jtagSerial with agent's
env varaibles.
2026-05-11 12:31: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
Ahmed Salman
34bf82ad2b ci: x420: add s175 stage for rf & dev tests 2026-05-05 13:34:21 +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
2c411fc8cd fpga: x420: increase radio ctrl fifo size 2026-04-30 09:20:13 +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
Max Köhler
5b368a6dcf fpga: rfnoc: radio: Add control output FIFO size parameter 2026-04-30 09:20:13 +02:00
Max Köhler
6bd71fbda3 fpga: tools: enable printing of all Vivado messages 2026-04-29 23:22:53 -05:00
Max Köhler
5949ab1999 fpga: lib: adjust chdr stream endpoint testbenches due to changed timing 2026-04-29 12:43:04 +02:00
Max Köhler
39acb3e136 fpga: ci: enable X420 configuration file to run chdr_stream_endpoint_tb 2026-04-29 12:43:04 +02:00
Max Köhler
f94c799930 fpga: lib: Add max latency arbitration scheme to axi_mux 2026-04-29 12:43:04 +02:00
Max Köhler
c505ee3d86 fpga: lib: rfnoc: Adding two entry cache for CHDR crossbar 2026-04-29 12:31:56 +02:00
Max Köhler
fd3b2e5d62 fpga: x410: fix critical timing path in adc_gearbox 2026-04-29 12:29:45 +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
Wade Fife
4fe3aaff82 fpga: rfnoc: radio: Add control FIFO size parameter 2026-04-27 10:22:57 +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
a344193226 fpga: x420: double CG_1000 image endpoint buffer size 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
Max Köhler
f3ae0f6ac6 fpga: lib: rfnoc: remove deprecated FIFO modules 2026-04-27 09:22:10 +02:00
Max Köhler
26903f0ce1 fpga: lib: rfnoc: replace CHDR ingress FIFO with large AXI FIFO 2026-04-27 09:22:10 +02:00
Max Köhler
2eb2ac20d3 fpga: lib: create new URAM and large AXI FIFO 2026-04-27 09:22:10 +02:00
Max Köhler
3d93412dec fpga: lib: rfnoc: crossbar: compress AXI mux output signals 2026-04-24 10:54:33 +02:00