head	1.4;
access;
symbols
	pkgsrc-2026Q3:1.4.0.4
	pkgsrc-2026Q3-base:1.4
	pkgsrc-2026Q2:1.4.0.2
	pkgsrc-2026Q2-base:1.4
	pkgsrc-2020Q1:1.1.0.2
	pkgsrc-2020Q1-base:1.1
	pkgsrc-2019Q4:1.1.0.4
	pkgsrc-2019Q4-base:1.1;
locks; strict;
comment	@# @;


1.4
date	2026.05.14.13.27.32;	author adam;	state Exp;
branches;
next	1.3;
commitid	zIgMgyzDp275JMFG;

1.3
date	2020.04.08.08.07.17;	author adam;	state dead;
branches;
next	1.2;
commitid	euxYrGZQzr13xy3C;

1.2
date	2020.04.07.15.51.50;	author mef;	state Exp;
branches;
next	1.1;
commitid	ew0BImHDOC0H8t3C;

1.1
date	2019.10.04.10.41.44;	author adam;	state Exp;
branches;
next	;
commitid	1wATPUIrCITVoxFB;


desc
@@


1.4
log
@uhd: updated to 4.10.0.0

UHD 4.10.0.0

Highlights / Main Changes
Support for USRP X420
Addition of timed complex gain feature, which allows setting a complex gain
value to fix phase and amplitude of signals from radio blocks
New Features
CMake:
Create UHD::uhd package for improved integration in downstream build
processes. The init_usrp example is used to showcase this feature.
Improved options for RFNoC OOT modules to write unit tests.
Add helper routines to up- and download data (reliably) from and to the
DRAM block
X310: Allow daughterboards to set dboard clock rate
Improve finding of MPM-based devices by making parts of the find call
asynchronous and allowing to skip reachability checks.
RFNoC:
Added new optional feature to all Radio blocks - Timed complex gain:
Allows specifying complex gain coefficients to be applied to all
TX and/or RX samples of a radio channel at the specified time.
Enabled by default for all TX and RX channels of the radio blocks,
but can be disabled at FPGA build time via the EN_COMP_GAIN_TX
and EN_COMP_GAIN_RX parameters of the radio blocks.
NOTE: For the x440_X4_400 default FPGA design provided with UHD,
enabling this feature for all 8 RX and TX channels necessitated
restricting the existing crossbar connections between the replay
blocks and the radio blocks. As a result, only blocks with the same
indices can be connected (e.g. replay0<->radio0 and replay1<->radio1
only) when using this pre-built USRP FPGA image.
Blocks may now drive the front-panel GPIO pins on all RFNoC-capable
devices. New IO signatures are added, and all device BSPs have IO ports
for accessing the GPIOs. Device controls are updated such that the user
can choose the source for GPIOs dynamically in this case (i.e., the
radio blocks and other GPIO sources are still available). In some cases,
the device BSP HDL had to be significantly refactored.
Add names and descriptions for block's and module's YAML files, so that
other tools may read information about those in an automated fashion
Allow mtu stream argument, which overrides the MTU value that is
derived from the link information.
Action handling is now moved to its own thread (there is one action
handling thread per graph). This allows actions to be handled
asynchronously, e.g., when triggering actions from async message handlers.
Add radio_state IO signature, so that other blocks can monitor the ATR
state of radio blocks.
All RFNoC devices can now take an mtu stream argument (which overrides
the detected link MTU) and a force_mtu device argument (which skips
automatic MTU detection and forces a fixed value). These are helpful in
scenarios where a specific network topology interferes with path MTU
discovery, and for remote streaming when the MTU for a remote stream link
cannot be inferred from UHD.
rfnoc_modtool has improved support for generating unit tests.
Add PPS IO signature for all targets
Add stream command to start receiving when a transmit occurs
Null source/sink: Add finite mode.
Add UX1/UX2/UX4 QSFP configurations for X4xx
API Changes
meta_range_t and uhd::dict can now be initialized from initializer lists
Add rfnoc_graph::get_chdr_xport_adapters()
Python API now allows creating SubdevSpec from a string
Some public APIs that used boost::optional now also work with std::optional
Unit tests for RFNoC blocks (in-tree and out-of-tree) no longer require a
dummy implementation of ~make_args_t()
uhd::cast::to_str() was added and uhd::cast::from_str() was extended to
be a full replacement for boost::lexical_cast
Examples
Overhauled many of the examples to improve documentation, as well as some
minor conveniences or bug fixes
Added continuous streaming to tx_samples_from_file
Improved gpio example.
Bug Fixes
Fix static UHD library builds
Fix compatibility with Boost 1.89
RFNoC:
Fix slicing notation in rfnoc_image_builder
Fix building of GRC files with empty default target (this would affect
builds of X410 and X440 device bitfiles from GNU Radio)
Fix installation of OOT modules in Python venvs
Fix time alignment of first sample
Unit tests in RFNoC OOT modules now preload their DLLs to ensure the
correct library version is loaded
Fix generation of GNU Radio C++ block controllers
rfnoc_modtool: Fix creation of spurious unit tests, fix package_data for
Python module installation
rfnoc_modtool: Fix connection check for invalid ports
Fix alignment of first sample coming from radio block.
Fix bug in ctrlport_endpoint which could cause the software to believe
the associated RFNoC block's command FIFO was full when packets were lost
Add parameter to skip waiting for ACKs in async messages
E31x: Fix GPIO control
E3xx/B2xx: Fix rounding bug for RF PLL tuning
B2xx: Fix image loading via b200_image_loader when multiple devices are
attached
X410: Fix tuning when power calibration and non-default gain profiles are
used.
Power calibration tools: Fix settings for E320, allow non-default sampling
rate, other minor fixes
FPGA
Fix various simulation-related bugs
USRP Simulator: Update to match current UHD.
multi_usrp:
Improved bank name check in multi_usrp::{set,get}_gpio_attr()
CMake:
Allow absolute paths for install dirs in pkg-config
Fix target include path for Python module
USRP1: Fix converter name in property tree
FPGA:
Fix various simulation/testbench issues.
Improve resource utilization in various places.
MPM:
Fix file descriptor leaks by using with/open everywhere.
Fix double-free issue in rpclib.
Remove tolerance for non-existing EEPROMs.
Examples: Properly report errors when opening a file failed.
Python: When installing into venvs, no longer force a reinstallation of
dependencies.
Dependencies changes
Increase minimum required versions
Boost to 1.71
DPDK to 19.11
Changed minimum CMake versions for various non-UHD projects, e.g.
firmware builds, to stay compatible with CMake 4
Documentation
Restructured the UHD manual, improved chapter structure, improved getting
started content, added RFNoC specification.
Fixed some external links
Many smaller improvements (typos, duplicate entries removed, formatting,
etc.)
Codebase Management
Increased C++ version to 20 for UHD library, examples, and utilities
Removed Boost in multiple locations and replaced with standard library
calls
Fix numerous (mostly harmless) compiler and Doxygen warnings
Improve CMake linking instructions
Validated OS Environments
(Versions for build and runtime dependencies can be determined from the
docker container definitions in the UHD repository at .ci/docker/...)
Linux:
Ubuntu: jammy (22.04), noble (24.04), questing (25.10)
Fedora: 40, 41, 42
Windows: 10 22H2, 11 24H2
MacOS: Sequoia (15.6)
@
text
@$NetBSD$

Fix man page installation.
https://github.com/EttusResearch/uhd/issues/921

--- docs/CMakeLists.txt.orig	2026-05-14 12:56:32.758885886 +0000
+++ docs/CMakeLists.txt
@@@@ -89,8 +89,12 @@@@ if(ENABLE_MAN_PAGES)
         UHD_INSTALL(FILES ${man_page_gz_files} DESTINATION ${PKG_MAN_DIR} COMPONENT manpages)
         add_custom_target(man_page_gzips ALL DEPENDS ${man_page_gz_files})
     else(ENABLE_MAN_PAGE_COMPRESSION)
+        foreach(manfile ${man_page_sources})
+            set(manfile "${CMAKE_CURRENT_SOURCE_DIR}/manpages/${manfile}")
+            list(APPEND man_page_files ${manfile})
+        endforeach(manfile ${man_page_sources})
         # uncompressed man pages; just install them
-        UHD_INSTALL(FILES ${man_page_sources} DESTINATION ${PKG_MAN_DIR} COMPONENT manpages)
+        UHD_INSTALL(FILES ${man_page_files} DESTINATION ${PKG_MAN_DIR} COMPONENT manpages)
     endif(ENABLE_MAN_PAGE_COMPRESSION)
 endif(ENABLE_MAN_PAGES)
 
@


1.3
log
@uhd: fix building when py-numpy is also installed; docs/CMakeLists.txt is not necessary any more
@
text
@d1 1
a1 1
$NetBSD: patch-docs_CMakeLists.txt,v 1.2 2020/04/07 15:51:50 mef Exp $
d3 2
a4 1
Do not compress man pages.
d6 11
a16 28
--- host/docs/CMakeLists.txt.orig	2020-01-01 13:21:49.000000000 +0900
+++ docs/CMakeLists.txt	2020-04-08 00:01:23.449612527 +0900
@@@@ -178,28 +178,5 @@@@
 
 LIBUHD_REGISTER_COMPONENT("Man Pages" ENABLE_MAN_PAGES ON "${MAN_PAGES_DEPS}" OFF OFF)
 if(ENABLE_MAN_PAGES)
-    #Generate man pages; either compressed or not
-    if(ENABLE_MAN_PAGE_COMPRESSION)
-        # compress man pages
-        foreach(manfile ${man_page_sources})
-            #make the gzip file depend on the text file
-            string(REPLACE ".1" "" PROGRAM_NAME "${manfile}")
-            set(gzfile "${CMAKE_CURRENT_BINARY_DIR}/${manfile}.gz")
-            set(manfile "${CMAKE_CURRENT_SOURCE_DIR}/${manfile}")
-            add_custom_command(
-                OUTPUT ${gzfile}
-                DEPENDS ${manfile}
-                COMMAND ${GZIP_EXECUTABLE} -9 -cf ${manfile} > ${gzfile}
-                COMMENT "Generating ${PROGRAM_NAME} man page"
-            )
-            #make the man page target depend on the gz file
-            list(APPEND man_page_gz_files ${gzfile})
-        endforeach(manfile ${man_page_sources})
-        #make the man pages a build-time dependency
-        UHD_INSTALL(FILES ${man_page_gz_files} DESTINATION ${PKG_MAN_DIR} COMPONENT manpages)
-        add_custom_target(man_page_gzips ALL DEPENDS ${man_page_gz_files})
-    else(ENABLE_MAN_PAGE_COMPRESSION)
-        # uncompressed man pages; just install them
d18 2
a19 2
-    endif(ENABLE_MAN_PAGE_COMPRESSION)
+   UHD_INSTALL(FILES ${man_page_sources} DESTINATION ${PKG_MAN_DIR} COMPONENT manpages)
d21 1
@


1.2
log
@(ham/uhd) Updated to 3.15.0.0

## 003.015.000.000
* N320: Fix MCR initialization, fix checks for LO distribution board,
  reset RX IQ balance on init, replace DRAM FIFO with replay block,
  improve constraints, fix I/Q imbalance compensation, add FPGPIO control
* N310: increase default dc offset averaging window, make tunes
  asynchronous, add capability to control RF filter bypass and freq.band
  limits, fix setting user DB EEPROM, correctly report N321 vs N320,
  improve DDR3 BIST, update max revision to 7, fix DMA arbitration to
  use contiguous packets, replace DRAM FIFO with replay block, fix SFP
  link up status, add workaround for clocking interference with external
  reference clocks, disable gpsdo clock/time source options when
  enable_gps=0
* X300: Fix max bitfile size, fix GPIO ATR property access type, heavily
  refactor, introduce conn_mgr, add DPDK support, add
  capability to flash NI-2974 FPGA, fix clocking code, enable 11.52 MHz
  and 23.04 MHz system ref rates, improve usage of constrained device
  args, enable ADC gain through RFNoC API, add mode to set master clock
  rate to arbitrary values between 184.32 and 200 MHz, throttle
  muxed_zero_copy_if
* E320: Fix time source clobbering ref source, add support for RevE, fix
  reporting of FPGA version hash, fix SFP link up status, fix missing
  ce_clk driver
* E310: Convert to MPM architecture, fix uhd_image_loader usage, fix DMA
  arbitration to use contiguous packets, reduced DMA chans to 4 (using
  data stream muxing), fix DRAM_TEST target build
* E3xx: Correct frontend name in devtest
* B200: Add command to query bootloader status, fix sc12 streaming, fix
  FIFO sizes on GPIFII interface
* UBX: add temperature compensation mode
* SBX: Only update ATRs when lock state changes
* TwinRX: add LO charge pump properties, increase default charge pump
  value on LO1, add low spur tuning mode, fix duplicate write to N value
  in DDC
* RFNoC/device3: Read command FIFO size from device instead of
  hardcoding values, fix multidevice graph connections, ENABLE_RFNOC now
  defaults to ON, search all nodes for tick rate, add update_graph()
  call which lets blocks do a graph-wide update of properties, fix
  missing port arg in SR_WRITE Noc-Script call, constrain
  send/recv_frame_size baed on MTU, fix flushing on init/deinit, disable
  FC ACKs for lossless links
* RFNOC/FPGA: Fix rb_stb in split stream block, fix off-by-one error in
  the window block, fix phase reset and -accumulator for DDC and DUC
  blocks, fix flushing on split-stream block, fix DC offset issue with
  DDS by using proper rounding, fix DUC/DDC sample rate switching by
  latching N on M in axi_rate_change, various fixes to
  uhd_image_builder, fix MTU settings in blocks, align byte count to
  8-byte word
* RFNOC: Allow UHD_RFNOC_DIR to contain multiple paths
* Python API: Replace Boost.Python with PyBind11, fix benchmark_rate
  statistics, fix phase alignment test script
* Python API: Added include of complex.h to allow pybind to convert
  complex data types
* Python API: Make multi_usrp::get_*_usrp_info() return a Python dict
* Python API: Fix array processing in send_waveforms()
* UHD: Allow ignoring fallthrough warnings, reduce Boost footprint,
  remove gpsd dependency, improve streaming, reduced the number of
  compiler warnings, introduce pop() to the prop tree, add typecast
  operator from uhd::dict<> to std::map<>, properly cache config file
  data
* MPM/mpmd: Introduce compatible rev numbers to support future hardware,
  fix some resource leaks in mpmd, fix spurious reclaims causing
  unnecessary warnings, fix resource leaks in liberio xport, allow to
  mux data streams over liberio transports (e.g. to require fewer DMA
  channels on E310), wait for DPDK links to come up before proceeding,
  relax failure handling when updating components (fixes spurious errors
  when updating FPGA images over SFP), fix issue where RPC
  initialization would hang on failure
* MPM:  Re-enable RPC server timeouts after components have been updated
* MPMD: Remove arbitraty frame size defaults for UDP transports
* MPMD: Fix incorrect link rate warnings
* FPGA: Use new device-tree overlay syntax, upgraded to Vivado 2018.3,
  broke various paths with critical timing, allow SystemVerilog source
  files, improve viv_modify_bd and viv_modify_tcl_bd, fix resets on 2clk
  FIFOs
* USB: Allow cancelled USB requests to occur
* USB: Fix global session race condition
* Logging: Always honour log level, don't log colours for non-ttys, fix
  includes, demote various log messages, fix logging colours, fix
  deadlock on Windows machines
* Examples: Fix benchmark_rate INIT_DELAY, fix memory leak in
  tx_samples_c
* Examples: Remove thread priority elevation
* Examples: Add options to benchmark_rate for start delays and priority
* Tests: Make the Python interpreter for devtests a parameter, add unit
  tests to MPM
* Utilities: Fix converter benchmark for Py3k and scaling issue
* Tools: Fix kitchen_sink
* Tools: Fix Wireshark dissectors to work with WS1, 2, and 3
* Tools: Various fixes to FPGA functional verification tests
* Docs: Various fixes, fix Doxygen warnings, fix links to KB, update
  DPDK information about building libraries, add DPDK subsection about
  thread priorities, update testing procedures
* C API: Add uhd_get_abi_string, uhd_get_version_string
* CMake: Make manpage compression optional, allow setting of PKG_DOC_DIR
  from the CMake commandline, add replay example, fix missing 'project',
  replace ENABLE_PYTHON3 with a simpler Python detection, clean up
  superfluous modules, improve log statements, bump dependency min
  versions, add MPM unit testing, fix missing BIGOBJ for MSVC, add our
  own UHDBoost.cmake to better find Boost across versions and systems,
  constrain DPDK check to exact version
* Formatting: Apply clang-format to all files, break after template<>
@
text
@d1 1
a1 1
$NetBSD: patch-docs_CMakeLists.txt,v 1.1 2019/10/04 10:41:44 adam Exp $
@


1.1
log
@uhd: updated to 3.14.1.1

003.014.001.001

Device3: latch n on m in axi_rate_change in DUC/DDC
Device3: UART: fix TX <-> RX, FIFO size as parameter
Device3: Restore default buffer sizes for MPMD UDP
RFNoC: Fix off by one error in window.v
E320: fix time source clobbering ref source
B200: Add command to query bootloader status
RFNoC: fix multidevice graph connections
MPMD: Fix corner case in MPM device discovery
MPM: fixed mboard_max_revision value (MPM compat check failures)
MPM: Fix version string for logger
Docs: x300: update docs for multiple timed commands
Docs: Fix Doxygen warnings due to spurious backslashes
Docs: RFNoC: Fix Doxygen warning due to undoc'd parameter
Docs: Adjust FPGA functional verification tests
Docs: Fix MPM cmake command for E320
RFNoC: Re-enable flow ctrl for blocks on same xbar
Tools: Fix build issues with kitchen_sink
cmake: Add UHD_COMPONENT variable
@
text
@d1 1
a1 1
$NetBSD$
d5 3
a7 3
--- docs/CMakeLists.txt.orig	2019-10-03 17:48:04.000000000 +0000
+++ docs/CMakeLists.txt
@@@@ -150,23 +150,5 @@@@ LIBUHD_REGISTER_COMPONENT("Man Pages" EN
d9 1
d11 25
a35 21
     #Generate man pages
-    foreach(manfile ${man_page_sources})
-        #make the gzip file depend on the text file
-        string(REPLACE ".1" "" PROGRAM_NAME "${manfile}")
-        set(gzfile "${CMAKE_CURRENT_BINARY_DIR}/${manfile}.gz")
-        set(manfile "${CMAKE_CURRENT_SOURCE_DIR}/${manfile}")
-        add_custom_command(
-            OUTPUT ${gzfile}
-            DEPENDS ${manfile}
-            COMMAND ${GZIP_EXECUTABLE} -9 -cf ${manfile} > ${gzfile}
-            COMMENT "Generating ${PROGRAM_NAME} man page"
-        )
-
-        #make the man page target depend on the gz file
-        list(APPEND man_page_gz_files ${gzfile})
-        UHD_INSTALL(FILES ${gzfile} DESTINATION ${PKG_MAN_DIR} COMPONENT manpages)
-    endforeach(manfile ${man_page_sources})
-
-    #make the man pages a build-time dependency
-    add_custom_target(man_page_gzips ALL DEPENDS ${man_page_gz_files})
+    UHD_INSTALL(FILES ${man_page_sources} DESTINATION ${PKG_MAN_DIR} COMPONENT manpages)
@

