From 15264cdc0656a4df0c402bfcdf0373558d90be8f Mon Sep 17 00:00:00 2001 From: Abhishek Verma Date: Wed, 22 Jul 2026 23:30:26 +0200 Subject: [PATCH] Update CHANGELOG --- CHANGELOG | 74 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 64 insertions(+), 10 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index c23f875e4..5db57c54a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -3,37 +3,85 @@ Change Log for Releases ## 004.next * Highlights / Main Changes - - The X440_X4_200 image now uses fabric resamplers instead of RFdc resamplers, - which enables repeatable phase offsets between devices and reboots. Note - that this feature is currently mutually exclusive with dual rate support. + - Update underlying OE version on embedded devices to Scarthgap (5.0 LTS). + Note that some of the MPM updates require this update. + - Migrated the MPM RPC transport layer from mprpc (msgpack-RPC) to gRPC/Protobuf, + impacting all embedded devices running MPM. * New Features - X440: - - The X440_X4_200 image now uses fabric resamplers instead of RFdc - resamplers, which enables repeatable phase offsets between devices and + - The X440_X4_200 image now uses fabric resamplers instead of RFDC + resamplers, which ensures repeatable phase offsets between devices and reboots. Note that this feature is currently mutually exclusive with dual rate support, and it increases the resource utilization. To revert to the previous image with non-repeatable phase offsets, a custom image must be - built. By default, it is set to false (i.e., same as old behaviour), + built. By default, it is set to false (i.e., same as old behavior), except for the X440_X4_200 image. - A new BSP parameter (USE_FABRIC_RESAMPLERS) is introduced to toggle this new feature. + - X4xx: The ref_locked sensor no longer queries the sticky bits; instead, it + only reports the current lock state. The ref_stable sensor is added to + include the sticky bits. - Python: - The ref_clk_calibration feature is now accessible in the Python API. - Streamers: - Added get_stream_info() API call to streamers, which allows reading out internal information about streamer objects. + - RFNoC: + - Added support for RFNoC 2.0 control operations, including block + read/write, poll, and burst read/write operations. + - Control packet sequence number width was increased to 8 bits, which + improves stability in environments with high packet loss or reordering + (e.g., in WSL containers). Note that this is a break in the protocol version; + Wireshark dissectors have been updated (but old dissectors will no + longer work). + - RFNoC control packets no longer require unnecessary dummy data words, + improving control interface efficiency. + - Improve ability to control the block CHDR width (aside from the regular + CHDR width). + - Allow parallel initialization of RFNoC-based devices for faster session + start when using multiple USRPs in a multi_usrp or rfnoc_graph object. + - MPM-based devices can now be initialized in parallel within a MultiUSRP + session. + - X420: + - Added support for the 400 MHz FPGA variants, including the X420_CG_400 + and X420_X4_400 images. + - Added fabric-resampler support to the X420 FPGA designs. + - GPS: + - Added support for UBLOX communication. + - Improved compatibility with GPS receivers by accepting additional + constellation messages and handling device-specific message timing. + - Embedded devices: Migrated thermal/fan sensor handling to hwmon/sysfs. This + requires the embedded OS to be at least Scarthgap. * Bug Fixes - - Fixed X420 powerup issue caused by glitchy power readouts. + - Fixed an X420 power-up issue caused by glitchy power readouts. + - Improved X4xx clock initialization and reference-lock handling, including + recovery from reference-clock glitches between UHD sessions. + - X4xx ADC self-calibration now honors skip_adc_selfcal during clock + reconfiguration. + - Fixed device filtering for image loading and other callers of + device-specific find_t implementations, including serial-based image + updates. + - Improved GPS message parsing and receive-buffer handling. + - Corrected the exit status reported by uhd_images_downloader on errors. + - RFNoC now reports the detected and expected RFNoC versions when a version + mismatch is encountered. + - Fixed `rfnoc_modtool make-yaml`; it produced an incorrect make_var entry. + - Many other, minor bug fixes (see commit list for details). * API Changes - - All usage of boost::optional within the library is removed. Public APIs - that used boost::optional are retained, but flagged deprecated. + - All usage of boost::optional within the library has been removed. Public APIs + that used boost::optional are retained, but marked as deprecated. - Some logging APIs that previously used boost::posix_time are now declared deprecated, and alternatives that use standard C++ constructs have been introduced. + - MPM device initialization is parallel by default. The serialize_init=1 + device argument restores serial initialization. + - Added an option to resynchronize X4xx SPLL R-dividers after reference-lock + loss using reset_spll_r_divider=1 in the synchronization arguments. This + is intended for advanced users only. * Codebase Management - Fully removed Boost.Thread, Boost.Date_Time, and Boost.Chrono dependencies for libuhd. Other Boost usage has been reduced. - - Improved compatibility with newest compiler versions (e.g., gcc16). + - Improved compatibility with newer compiler versions (e.g., gcc16). - MPM RPC transport migrated from mprpc (msgpack-RPC) to gRPC/Protobuf. The mprpc Python dependency is replaced by grpcio. On Linux, the host build-time dependencies are libgrpc++-dev, libprotobuf-dev, and @@ -41,6 +89,12 @@ Change Log for Releases so gRPC and Protobuf (including the grpc_cpp_plugin code-generation plugin) must be obtained either by building from source (https://github.com/grpc/grpc) or via a package manager such as vcpkg. + - Improved build reproducibility by removing the build-directory path from + embedded build information. +* FPGA + - Many improvements to resource utilization for improved build success rate + and compilation time. + - Enabled usage of VHDL 2008. ## 004.010.000.000 * Highlights / Main Changes