-
Notifications
You must be signed in to change notification settings - Fork 669
/
CHANGELOG
3695 lines (3619 loc) · 147 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Change Log for Releases
==============================
## Next Release
* New Features:
- Image Builder:
- Add GRC support. This allows designing RFNoC bitfiles from GNU Radio
Companion (GRC).
- Improve clock connection checks and checks for duplicate connections.
- Improve IO port compat check (e.g., check if wire widths match).
- Allow default clocks in domain checks.
- Simplify image core YAMLs by better usage of RADIO_NIPC parameter.
- Improve parameter resolution.
- Add --SYNTH and --CHECK options.
- Add support for building an FPGA image using multiple parallel jobs and
unique seeds with repeat_fpga_build.py and the --fpga-jobs option.
- rfnoc-gain (OOT RFNoC example):
- Overhaul directory structure, and rename to rfnoc-gain from
rfnoc-example.
- Simplify dynamic loading of OOT DLLs by using the new modules.d feature.
- Add CE clock support to gain block. This enables the example on X4x0.
- Add a GNU Radio subdirectory with examples of how to run the gain block
in GNU Radio.
- Add rfnoc_modtool. This is a command line utility to help design OOT RFNoC
blocks.
- RFNoC:
- Add tune requests. This allows tuning a complete graph as known from
multi_usrp instead of single blocks individually.
- multi_usrp:
- Add Python bindings for get_user_settings_iface()
- General UHD:
- Add modules.d support
* Bug Fixes
- E320: Ensure consistent sequencing when powering on/off GPSDO
- RFNoC:
- RFNoC DDC/DUC block (used in all Gen-3 USRPs and X410): Fix fractional
frequency offset.
- Fix AIS/spp calculation (e.g., for connecting FFT blocks).
- Image Builder:
- Fix colors
- Fix error message for missing control SEP
- Improve error reporting for invalid connections
- Accept ~ and ~user on command line
- Fix deprecated usage of yaml.load()
- Ensure correct device tree files generation when chosing a custom build
directory
- rfnoc_modtool:
- Fix generation of noc_shells
- General UHD:
- Fix compatibility with DPDK >= 22.11
- Fix compiler warnings for better compatibility with C++ 17 and 20.
- Add logic for loading uhd.dll from the correct path for Windows with Python3.8+.
- Remove duplicate results from find
- Release GIL when calling find from Python which improves response time for large setups.
- MPM:
- Allow images without RF frontend (will only be initialized if FPGA reports availability)
* 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: bionic (18.04), focal (20.04), jammy (22.04), noble (24.04)
- Fedora: 39, 40, 41
- Windows: 10 21H2, 11 21H2
- MacOS: Monterey (12.6)
## 004.007.000.000
* Highlights / Main Changes
- Major updates to rfnoc_image_builder (a98ce26). This change adds support for
defining transport adapters in the image builder YAML files, adding custom
modules, and more.
- Updated embedded OS on file system images for E3xx, N3xx, and X4xx devices
to Yocto 4.0 (kirkstone).
* New Features
- General
- Allow installing only Python-based utilities (e.g., rfnoc_image_builder)
by adding the ENABLE_PYMOD_UTILS option to CMake.
- Added ability to query dot representation of RFNoC graph
- Python support
- Added DRAMReceiver class and amend rx_to_file.py example to use new class.
This supplements the DRAMTransmitter class and simplifies using the DRAM-backed
RFNoC replay block to when signal bandwidth exceeds available streaming bandwidth.
- CMake
- We now search for a system version of Pybind11 before falling back to the
bundled version. The system version is preferred, and the bundled version
may be removed in a future release.
- RFNoC
- Image builder: Major update, which adds support for defining transport
adapters in the image builder YAML files, adding custom modules, choosing
custom directories for build, IP, and intermediate files, building IP
only, saving Vivado projects, and more. Image core YAML files created with
this version are not compatible with previous versions, and vice versa!
Also adds many more checks to avoid building bitfiles that are either
incomplete, or valid but probably not the desired outcome.
- Added support for defining custom register spaces in RFNoC blocks.
- Added license checking subsystem. This allows creating RFNoC blocks that
require a license key to operate.
- Add device DNA feature for X310, X410, X440. This allows reading back the
FPGA's DNA, which is a unique identifier.
- Embedded OS for E3xx, N3xx, and X4xx devices
- With the switch to Yocto 4.0 (kirkstone), the SD card and eMMC images no
longer pre-populate the second system partition. Refer to the device
specific "Updating Filesystems" section in the user manual for how to populate it.
This reduces the size of compressed .sdimg filesystem images.
- X440
- Added new guided log info mode to provide more information about the Nyquist
zone in which the chosen frequency is located. These additional info logs
are enabled by default. For disabling the guided mode, add the entry
`guided_mode=false` to the UHD config file in the "Global" section.
- Examples
- rfnoc-example now also generates Python bindings for OOT block control functions.
* Dependencies changes
- Increase minimum required version
- Python to 3.7.0
- Pybind11 to 2.7.0
* Bug Fixes
- General UHD
- Fix issue with undefined HOME or XDG_CONFIG_HOME
- Fix compilation error with boost 1.85.0 (closed issue 740)
- Fixed cmake find_library for UHD to fail if the library is not found
- Fixed setters for ALL_CHANS in multi_usrp
- Demoted safe call logging to warning
- Fixed outstanding clang-format issues
- Fixed compiling with gcc 13.2
- Removed superfluous usage of const in return values
- Python support
- YAML files are now listed as part of the package
- Fix setting start_time having no effect
- RFNoC
- Add EOB to source port of null_src_sink block
- Fix RFNoC graph action queue lockup on action exceptions
- FIR filters now uses newer IP revisions
- Reverse FIR filter coefficients now get embedded in DSPE48
- B2xx
- Fixed FRAC2 calculation (closed issue 684).
- Fix DC truncation bias by adding rounding to DDC chain
- X310
- Fix warning about duplicate reg
- ubx
- update ubx xcvr mode options
- write output power to correct LO
- Fix width of gain register
- MPM
- Deactivate explicit DAD (Duplicate Address Detection) on int0 interface
since this is the default behavior of systemd v250.5 (Yocto release kirkstone)
for static IPv4 addresses if the IP address is a link local address.
- Correct outdated mender command in prints of usrp_update_fs utility
- No longer import from from rpc_server when already importing usrp_mpm
- Demoted log level of ECHO send error
- No longer print iptables errors when setting up forwarding
- X400 Platform
- Add PPS interface to X410/X440 BSP
- Add netlist make flow
- Update PS DRAM speed bin
- Replace Ethernet transport adapter
- X410
- Set Locale for ZBX Lattice build
- Improve Lattice make flow
- X440
- Fix error in master clock table for 1000MHz mcr.
- Place SPI into IOB on X440
- mpm
- Add error for recurring TA node inst values
- Fix warning about different converter rates
- Fix MTS skip for dual-rate
- Use greatest converter rate for sysref rate
- Add warning for bad conv rate order
- Enable multiple LMK VCO rates per MCR
- Examples
- Fix rx_samples_to_file failure for multichannel fullpath.
- Fixed bugs observing cmd argument -c in remote_rx.py example.
- Updated tx_waveforms examples now also use timed commands during
frequency tuning for all devices except for x410.
On X440 this allows reproducing specified channel to channel phase alignments.
- Consistently comment out sections in rx_samples_to_file.
* 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: bionic (18.04), focal (20.04), jammy (22.04), noble (24.04)
- Fedora: 37, 38
- Windows: 10 21H2, 11 21H2
- MacOS: Monterey (12.6)
## 004.006.000.000
* ci
- only build docker images once per week
- propagate testLength to RF ATS
- replace deprecated ruamel.yaml methods
- use build farm for windows builds
* cmake
- Fix make_x410 and make_x440 targets
* deb
- copyright file update to eliminate errors and warnings
* docs
- X440: Add FBX to daughterboard list
- X440: Corrected web link syntax in FBX doc.
- x440: Add X440_X4_200 to image flavors
- Add dual-rate documentation
* examples
- L band capture example using dual rate
* fpga
- ci: Add X440_X4_200 to pipelines
- lib: Allow buffering in eth_ipv4_chdr_adapter
- n3xx: Add CE clock
- rfnoc: Add clock info to backend ifc
- rfnoc: radio: Add clock index parameters
- tools: Add X440_X4_200 to X440 package
- x400: Add CE clock
- x400: Add X440 200 MHz variant with DDC/DUC
- x400: Split DRAM interface into two banks
- x400: Update PL DRAM speed bin
- x400: bump minor revision
- x400: pps_sync cleanup
- x400: propagate pps_sync changes
- x400: update signals to run on two domains
- x440: cpld: led control cleanup
- x440: remove extra synchronizer
* images
- bump x4xx fpga images
- update non-x4xx images
* lib
- rfnoc: Add clock info fields to client zero
- rfnoc: Add support for auto-clock discovery
- x4xx: Use auto clock ID in x400_radio_control
* mpm
- x440: Add lookup table for default MCR per DSP bandwidth
- x440: Multi-Tile Sync disabled when using dual rate
- x400: Align FPGA revision
- x400: match HDL PPS updates
- x400: make PRC a multiple of both rfdc rates
- fix timekeeper misalignment
* multi_usrp
- Added module_serial to info
* rfnoc
- Enable SEP throttle register
- image builder: Add clock index support to image builder
* utils
- init device with gpsdo sources in query_gpsdo_sensors
* x4xx
- Add support for auto clock ID
- FPGA designs now use a replay block per utilized DRAM bank
* x440
- Add support for using radio block specific master clock rates
- X4_440 and X4_1600 fpga image now contain 2 replay blocks
(number of ports per replay block halved compared to previous release)
## 004.005.000.000
* b200
- Fix invalid RF switch positions
* ci
- add attempt number to uhd build artifact name on failure
- Add conditions for embedded builds, HW tests
- add pytest args option to test dev pipeline
- add step for x440 embedded runs
- Allow internal fileserver usage for MS installer builds
- Auto-detect conditionals for pipeline stages
- Default to internal fileserver for FPGA images
- Disable PR runs for draft PRs
- Enable X440
- Fix swallowed return codes in CI script steps
- Fix the chocolately version to use
- fixup typo in x440 sdr-test0 template
- increase build timeouts to 90 minutes
- increase win docker image build timeout
- modify default sfp0 and reboot
- Remove Fedora 35 and add Fedora 37
- restrict analyze changeset pool
- select docker image repo directly at container endpoint definitions
- select docker registry based on branch
- splitup x410 test stage in hardware test dev pipeline
- Update CLA Assistant to v2.3.0
- update docker builds to run twice a week
- update docker service connection
- update to build docker builds for all release branches
- updates for new E320 in devtest system
* clang
- Apply clang-formatting to all C/C++ files
- Modify files for treatment with clang-format
- Update clang-format for version 14
* cmake
- Fix auto-detection of Python install directory
- Fix linking DPDK when installed at non-standard location
* cpld
- Adapt CPLD updater for future X4x0 dboards
* debian
- Fix copyright dates in changelog
* devtest
- add exemptions for x440 python API test
- correct docstrings with example being run
- disable rx_samples_to_file_test for x440
- fix typo in error message
- gpio test updates
- remove API calls that now error
- remove benchmark_rate test for x440
* docs
- Add page on timed commands
- add python package requirement for usrpctl MPM reset
- add updated msgpack rpc package
- b200: Improve docs (auto MCR, GPIOs)
- Document throttle stream arg
- Fix argument for uhd_image_loader in E3xx docs
- Fix docstring for get_block_chain()
- fix typo and consistency in usrpctl docs
- Improve documentation on timekeepers
- Make X410 dboard a subpage of the X4xx page
- rfnoc: Document RFNoC overrun handling algorithm
- Update clocking theory of operations for X4xx
- update docs for reset command
- update FPGA build docs
- update remote streaming supported version
- Update X4x0 manual
- Update X4xx manual wrt. self-cal
- x410: Document UC_200 image flavor
- x440: Added FBX to UM daughterboards page
- x440: Extend X4x0 Usage Manual for x440
- x440: Fixed incorrect use of paragraph elements
* examples
- Add power controls to rx_ascii_art_dft.cpp
- Add throttle to replay_capture.py
- Amend tx_waveforms.py to use DramTransmitter
- Fix play region in replay_capture.py
- Remove default --ref and --pps values
- rx_samples_to_file: multi_streamer option
* experts
- Add force_dirty() call
* extension
- windows: Fixed linking extension example to uhd.lib
* fpga
- Add BUILD_BASE_DIR option to makefiles
- Add BUILD_SEED variable
- Add time changed pulse to timekeeper
- Add X440/FBX support
- ci: Add MAX_CPU to pool demands
- ci: Add X410_UC_200 to default bitfiles
- ci: Add X410_UC_200 to release pipeline
- ci: Enable publishing to internal server
- ci: Fix branches
- ci: Include modified manifest in artifacts
- ci: Support parallel jobs for IP builds
- ci: Use different seed for each job attempt
- ci: Use repeat_fpga_build for pipeline builds
- Clear clang-format settings for FPGA code
- docs: Add system memory recommendations
- docs: Clarify design tool requirements
- Fix RFNoC OOT Makefile inclusion
- lib: Add axis_pkt_throttle.sv
- lib: Add clock_div module
- lib: Add ctrl_port_to_wb_i2c module
- lib: Fix IPv4 CHDR TUSER width
- lib: Fix Vivado warnings
- lib: rfnoc: Add resize capability to chdr_stream_endpoint
- lib: rfnoc: Make RFNoC packet gates removable
- lib: rfnoc: Remove redundant packet gate
- lib: rfnoc: Support multiple port widths on crossbar
- Reformat javascript in doc
- rfnoc: Add DEVICE_FAMILY to stream endpoint
- rfnoc: Add throttle to stream endpoints
- rfnoc: Add ULTRASCALE to chdr_ingress_fifo
- Synchronize X300 RX frontends on time change
- tools: Add repeat_fpga_build.py
- tools: Add X410_UC_200 image to X410 package
- Update all RFNoC image core files
- Update RFNoC YAML copyright
- x400: Add 1x64, 2x64, and 1x128 DRAM interconnect
- x400: Add CG_200 RFNoC image cores
- x400: Add ifdef to remove QSFP wrappers when unused
- x400: Add support for X4C, C1, and UC variants
- x400: Add X440 to default make targets
- x400: Add X4C_200 RFNoC image cores
- x400: Fix DB1 timekeeper strobe
- x400: Fix PRC divider register map
- x400: Fix SPI trigger clock crossing
- x400: Make transport adapter width configurable
- x400: Remove CPU_W parameter
- x400: Set QSFP LEDs on startup
- x400: sim: Add 10 GbE with wide CHDR
- x400: Use x410_200 image core for x410_100 images
- x440: fbx: clean up I2C triggers
- x4xx: Refactor MB CPLD code for future devices
- x4xx: Rename x410 -> x4xx for common DTS files
* github
- Fix URL for mailing list
* host
- Add cstdint include to fix gcc-13 compile.
- Add in OpenBSD support to uhd::path_expandvars
- Bump minimum gcc version to 7.3.0
- doc: Add documentation for tertiary, quaternary QSFP adapter
- fix & improve EAL args for DPDK v21.11
- fix build with DPDK v22.11 LTS
- improve DPDK frame_size error message
- docs: Fix link to MSVC Redistributable Package
- python: Update last_gain at end of run_rx_cal loop
* images
- Add X410_UC_200 to manifest
- add X440 dependencies to manifest
- bump x4xx fpga images
- bump x4xx fpga images
- update FPGA images for E3xx, X3xx, N3xx
- Update manifest for SEP throttling
- Update X410 manifest
* lib
- Add default virtual dtor to filter_node
- Add X440/FBX support
- fbx: Remove unused lambda captures
- Fix time-cast for dboard_iface::sleep()
- Mark select x400_dboard_iface methods as const
- Mark selected x400_dboard_iface child methods final
- max287x: Remove unused class attributes
- mb_controller: Minor fixes to logging, formatting
- rfnoc: Fix linter issue regarding virtual dtor
- rfnoc: Fix logic in can_connect_device_to_device()
- rfnoc: Use device cache for rfnoc_graph::make()
- tests: Mark mock pop_host_tasks() as override
- mpm: Add MPM synchronization API
* mpm
- Add ability to query enabled state of ADC/DAC blocks
- Add dboard_info to db_iface initialization
- Add LogRuntimeError class
- Add revE support to zbx_update_cpld
- Add support for X440/FBX
- allow for mpm device to tell host to reboot mpm
- bist: Improve --help message
- Bump compat number to 5.0
- dboard_iface: Remove {set/get}_if_freq() APIs
- dboard_manager: Fix linter issues in dboard_manager/base.py
- Demote sync_tiles() error to warning
- Disable PRC to DB if not required
- e3xx: Fix inheritance order for DB classes
- enable Xilinx API for PLL config
- fix get_product_id in x4xx BIST
- fix GPS lock sensor method name
- Fix test utilities
- Fix ZBX CPLD updater
- lmk04832: Move general APIs to base class
- Move get_dboard_class_from_pid()
- move pop_host_tasks to PeriphManagerBase
- mpmutils: Add parse_multi_device_arg() function
- mpmutils: Fix Pylint warning
- Normalize name for gps_locked sensor
- periph_manager: Remove vestigial Python-six
- Refactor LMK04832X4xx and LMK03328X4xx
- rfdc_ctrl: Change latency argument to signed
- rfdc: Enhance converter checks
- rfdc: Remove set_sample_rate() API call
- Simplify x4xx_bist nsync_fabric
- Update X440 clock policy
- Updated default MCR for X440
- utils: Add LogWrapper
- x440: Move clock info logging out of policy
- x4xx: Add additional args parsing in init()
- x4xx: Add intermediate clock settings to clock policy
- x4xx: add intermediate clocking setting
- x4xx: Add logging for metal and rfdc versions
- x4xx: Add master_clock_rates argument to _set_ref_clock_freq()
- x4xx: add multiple latency detect iterations
- x4xx: Add rfdc rate as a sensor to X4xx dboards
- x4xx: Add UC FPGA type
- X4xx: Change reset strategy to cover all X4xx
- x4xx: Check for tear_down()'s existence
- x4xx: Conditionally initialize DB flash
- x4xx: Enable DBs to have updateable_components
- x4xx: Enable MMCM configuration based on policy
- x4xx: Enable MPM sync API for X410
- x4xx: Explicitly pass MCR values to set_sync_source()
- x4xx: Extend x4xx_rfdc_regs
- x4xx: Factor clock control out of X4xxClockManager
- x4xx: filter MCR list
- x4xx: Improve SPLL comments
- x4xx: Introduce X4xxClockPolicy
- x4xx: Let RFDC control use clock policy
- x4xx: Make sysref_delay part of clock policy
- x4xx: mb_cpld: Add missing bitfields
- x4xx: Minor preparations to x4xx.py for X440 support
- x4xx: Move all clock control to single class
- x4xx: Move common DB tasks from ZBX class to mixin
- x4xx: Move enable_iq_swap to x4xx_rfdc_ctrl.py
- x4xx: Move get_master_clock_rate() to DB-RPC
- x4xx: Move MB CPLD creation to factory
- x4xx: Move SPLL sync before RFDC config
- x4xx: Optimize clock configuration at init
- x4xx: Prepare clock management for multi-mcr
- x4xx: Refactor x4xx_rfdc_ctrl
- x4xx: Remove get_cal_eeprom_spi_node()
- x4xx: Remove internal_temp_sensor
- x4xx: Rename 'both' argument to 'all'
- x4xx: rfdc: Add get_converter_rate() API
- x4xx: rfdc: Pull fabric words value from registers
- x4xx: Separate RFDC and MMCM resets
- x4xx: Separate RFDC reset from its configuration
- x4xx: Shut down tiles on tear_down()
- x4xx: Trust the clock policy's default MCR
- fpga: x4xx: Major updates in preparation for future devices
* multi_usrp
- rfnoc: Added warning when handling tune_request
* octoclock
- Fix uhd_usrp_probe error
* python
- Add 'const' to get_continuous_tone(); improve sanity-checks
- Add DramTransmitter class
- Add X440 to image builder
- Fix subdev_spec_t wrapping
- multi_usrp: Remove spurious print
- rfnoc: Add radio_control.get_{ticks,time}_now
- signal: Add more waveforms to get_continuous_tone()
- stream: Overload TxStreamer.recv_async_msg()
- Wrap direction_t
- Wrap stream_cmd_t::stream_mode
* Replay buffered TX streamer
- Fix gaps in TX
* rfnoc
- Add options for RFNoC image core headers
- Add set_command_time and clear_command_time binding to Python API.
- Allow interruption of streaming during overrun handling
- Coerce replay packets to atomic item size
- Demote some de-init DEBUG messages
- Enable SEP throttle register
- Fix disconnecting back-edges from graphs
- Fix doxygen comments in rfnoc_graph
- Fix sync calls for multi-timekeeper operation
- Improve Doxygen for sync calls
- Make edge comparison more flexible
- radio: Always prefer register-based time access
- radio: Make default SPP a multiple of max CHDR width
- replay: Make default IPP a multiple of max CHDR width
- Set DEVICE_FAMILY on stream endpoints
- Support multiple CHDR widths in RFNoC image builder
- update switchboard forwarding on property set
* SelfCal
- Add startup_tile() for cal_mode selection
- Enable parameters in self-cal executable
- Expose config parameters
- Remove self-cal from boot and fpga update
- Trigger if clocking has changed
* tests
- add delayed streaming start args
- add packet capture raw udp tests
- add streaming tests for UC_200 bitfile
- benchmark_rate improvements
- Fix Python warnings in parse_benchmark_rate.py
- fix when the rx cmd's stream_now is set
* tools
- Add changeset analyzer
- Add clang-formatting tools
- add devtest rule for changeset_analyzer
- Remove fpga directory from Debian build
- run all tests for manifest update
- Update upload_debs.sh script
* UBX
- Add VCO band calibration and map access
- Initialize UBX set_tx_freq freq_lo variables to 0.0
- Shift IF for RX frequencies <100 MHz
* uhd
- doc: Add documentation for ADC self calibration
- multi_usrp: Support multiple timekeepers on rfnoc devices
- Update changelog with 4.1.0.x releases
- x4xx: Add methods to query number of chans, samp rate
- x4xx: Refactor ADC self cal
* usrpctl
- add reset command
* utils
- Add X4xx ADC threshold query script
- Fix usrp2_recovery.py for Python3
* x4xx
- get bool for force_reinit arg
- pass reboot mpm command to host on new clock config for x440
- Update BIST to match clocking refactoring
* x4xx_bist
- replace set_clock_source for x440
## 004.004.000.000
* Features
- Raw UDP Traffic to Remote Destination for RFNoC-enabled devices
* C API
- Fix double-free issue with sensor values
* ci
- Add clang-format 14.0 to the Ubuntu 22.04 container
- devtest: Test E320 1G FPGA Image
- Filter uhd_find_devices checks by device type
- increase timeout for x4xx hardware test job
- Pull UHD version from UHDConfigVersion.cmake
- Replace Rhombus E320
- Update docker repo location
* cmake
- fix UHDAtomics.cmake to read custom Boost install prefix
- Fix build with GCC 13 (add missing <cstdint> include)
* devtest
- Add multi-spc timed command tests
* docs
- Fix typo in Python API dox file
- Phase noise consideration when using external clock with E320
- rfnoc: Fix Doxygen warnings on chdr_packet::set_metadata()
- Update manual for X3x0 raw UDP streaming
* e320
- Allow internal GPSDO to be powered-down via UHD session args
* e3xx
- add support for power calibration api
* examples
- remote_rx: Add --mac-address argument
- rx_samples_to_file: Add disk write speed check
- rx_samples_to_file: Add multichannel option
- Upgrade RFNoC example to Vivado 2021.1
* fpga
- ci: Create local copy of patches to use
- Cosmetic changes to rx_frontend_gen3_tb
- docs: Fix AR76780 dependency
- e320 Change MIG arbitration to RD_PRI_REG
- Fix overflows in DDC
- Fix overflows in quarterrate downconverter
- Fix warnings in dds_freq_tune module
- lib: Add align_samples module
- lib: Add verilog-compatible wrapper for eth_ipv4_chdr_adapter
- lib: Add ZPU support to SV transport adapter
- lib: Fix indentation in setting_reg.v
- lib: Fix inferred latch in ep_autonegotiation
- lib: Support time and data updates in sim_radio_gen
- lib: Update header for AXI4S add/remove bytes
- Require AR76780 for X3xx and E3xx
- Restore FIR filter in rx_frontend_gen3
- rfnoc: Add align_samples testbench
- rfnoc: Add timed sample alignment to radio
- rfnoc: Fix inferred latch in chdr_strip_header
- sim: Fix typo in clk_wait_f
- tools: Detect check_timing issues during build
- tools: Fix error detection in run_testbenches.py
- x300: Bump FPGA compat to 39.1
- x300: Change MIG arbitration to RD_PRI_REG
- x300: Support advanced transport adapter
* host
- ADC cal: Add ability to set calibration mode explicitly
- cal: Rearrange ADC self calibration routine
* images
- Update manifest - timed sample alignment in RFNoC
* lib
- Fix warning in ctrlport_endpoint.cpp
- topo graph: Fix rule-of-3 related compiler warnings
* mpm
- Add a lock to the rpc server timer
- Better error message for multiple assigned MACs
- Fix rpc process shared state and port argument positions
- Move parse_encoded_git_hash() to mpmutils
- rfdc: Add X4xx 125e6 master clock rate
- rpc server: Capture claim token value before releasing state lock
- x4xx: Remove references to white rabbit
* n3xx
- Increase tune timeout
* octoclock
- Fix type of eeprom object in property_tree
* rfnoc
- Add logging to some throw statements
- lsm: Improve logging/error messages
- Move detection of TAs post-LSM-init
- streamers: Fix scaling factor
* tests
- add ramdisk cfg option to streaming setup
- add support for 10-100GB x410 raw udp
- add x310 raw udp tests
* uhd
- Fix RfnocGraph pybind binding for get_tree
- python: Bind {separate,combine}_device_addr{s}
- python: Make DeviceAddr behave like dict
- When separating device_addr_t, keep indexed values
- Add xport_adapter_ctrl core
* x300
- Enable use of advanced transport adapters
- Respect X300_FW_COMMS_FLAGS_ARP_FAIL flag
- Update firmware for TA control
## 004.003.000.000
* ci
- Add n310 rf tests to monopipeline
- Add XQ testing to n321
- Mark SucceededWithIssues as failure
- Remove Fedora 34 and add Fedora 36
- set required capability for windows builds
- Workaround Ubuntu 18.04 systemd bug 1988563
* docs
- Add known issue for Xilinx AR 76681
- Clarify live install and remove version
* examples
- Enable radio loopback for a single radio
- rx_samples_c: Use error_code instead of return_code
* experts
- Move expert framework into public API
* extension
- Add extension example
- Add extension framework
- Add Extension Framework documentation
* features
- Make all feature headers install
* fpga
- ci: Upgrade to Vivado 2021.1
- docs: Upgrade to Vivado 2021.1
- e31x: Add PROTOVER to eth_internal
- e31x: Cleanup MTU parameters
- e31x: Fix IP dependencies
- e31x: Upgrade to Vivado 2021.1
- e320: Bump FPGA compat to 6.1
- e320: Cleanup MTU parameters
- e320: Support advanced transport adapter
- e320: Upgrade to Vivado 2021.1
- Fix target dependencies in Makefile.xxx.inc
- Fix Vivado version check in viv_hardware_utils
- lib: Add advanced features to IPv4 SV transport adapter
- lib: Add chdr_strip_header module
- lib: Add compat to Verilog transport adapter
- lib: Add eth_ipv4_interface_tb
- lib: Add MTU parameter to eth_internal
- lib: Add NET_CHDR_W parameter to transport adapters
- lib: Add RegPort SystemVerilog interface
- lib: Add support for length in tuser in eth_ipv4_add_udp
- lib: Add verilog-compatible wrapper for eth_ipv4_interface
- lib: Fix addsub_hls
- lib: Fix NODE_INST parameter in eth_internal
- lib: Upgrade to Vivado 2021.1
- n3xx: Add BUFG to SPI output line to ease timing
- n3xx: Add PROTOVER to n3xx_mgt_wrapper
- n3xx: Bump FPGA compat to 8.1
- n3xx: Cleanup MTU parameters
- n3xx: Fix async clocks relationship
- n3xx: Remove unused USE_REPLAY parameter
- n3xx: Support advanced transport adapter
- n3xx: Upgrade to Vivado 2021.1
- sim: Support unused tkeep in AxiStreamPacket::dump_bytes()
- sim: Update struct enum initialization
- sim: Workaround Vivado bug in ChdrIfaceBfm_tb
- tools: Add utility to upgrade TCL-based BD
- tools: Allow IP renaming with viv_ip_xci_editor.py
- tools: Fix HLS IP builder for Vivado 2021.1
- tools: Lattice build flow clean-up
- Update makefiles to allow parallel FPGA builds
- Use AR76780 patch for fir_compiler
- x300: Cleanup MTU parameters
- x300: Upgrade to Vivado 2021.1
- x400: Bump FPGA compat to 7.9
- x400: Fix link status detection of 10 GbE IP
- x400: Fix NODE_INST for transport adapters
- x400: Fix transport adapter PROTOVER
- x400: Upgrade to Vivado 2021.1
- x400: zbx: Revision Bump
- zbx: Update HTML regmap
* host
- if monotonic don't run monotonic algo
* images
- Update filesystem images to point to 4.3.0.0-rc2
- update fpgas for vivado 2021.1 upgrade
- update manifest for raw udp streaming
- installer: update ubuntu uhd library verison
* mpm
- bump fpga compat for raw udp streaming
- bump x4xx fpga compat
* MPMD:
- Limit 1GbE MTU discovery to 1500
* python
- Fix error from pybind11 2.10 update
- update to pybind11 for Python 3.11
* rfnoc
- Mutex graph on set_property
* tests
- Setup isolated processors to use performance governor
* tune_map
- Publish and simplify zbx_tune_map
* uhd
- multi_usrp.cpp remove commented out code
- Revert Raw UDP Host Changes
- update to uniform SPDX license identifier
## 004.002.000.001
* cal
- add method to get the current power cal tracking mode
* ci
- Add b210 hardware to rhombus
- add devtest e320 support
- Add devtests to hardware-test-dev
- Add fedora rpm installer build
- Add n310 into devtests
- Add n321 to devtest
- Add new x3xx hardware to rhombus
- Add package builder container entry
- Add package source support to pipelines
- Add recv and send frame tuning for streaming
- Add Windows installer signing
- Build init_usrp example for macOS
- Build init_usrp example for Windows
- call powerbtn multiple times to power on
- change gr-ettus ref to master
- devtests: fix knownhost entry
- Enable root privileges for non-DPDK streaming tests
- Fix mgmt_addr=None entry for X310 DPDK case
- Increase devtest job timeout to 90 minutes
- Make Windows installer job self-contained
- Mark devtest as failure on SucceededWithIssues
- Only include rpm files in the Fedora installer artifacts
- Point meta-ettus repo ref to v4.2.0.0
- Run multiple fpgas per job
- set benchmark rate priority to high
- set meta-ettus-dev repo to zeus-ci
- Set n310 and n321 to specific agents
- streaming: flash x310 fpga
- Update branches to UHD-4.2
* cmake
- Add support for fedora rpm versioning
- Cache UHD_VERSION in all cases
- Drop .deb generation via cpack in favour of better tools
* debian
- Change jellyfish to jammy
- Remove hirsute; add jellyfish support
- Resolve lintian issues
* doc
- Fix generation of man pages
- Remove ZBX phase sync documentation
* docs
- DPDK Linux kernel underruns solution
- Update section on radio transport protocols
* e3xx
- change radio_control_impl mutex to be a recursive_mutex
* examples
- Fix rfnoc_replay_samples_from_file
- gpio: output before end of stream
- gpio: Refactor example
* fpga
- Add READMEs describing Lattice and ADI IP sourcing
- Fix first arg in calls to $fatal()
- lib: Add read-only strategy for port B in 2-port RAM
- lib: Update error call for undefined RW mode
- rfnoc: Remove rfnoc_version from target YAML
- x400: Fix AXI/LBUS testbench names
- x400: zbx: Add support for XO3 CPLD variant.
* host/README.md
- Fix links to knowledge base
* images
- Update manifest with latest cpld firmware
* lib
- Add missing include to offload_io_service_client.hpp
- Remove stray file async_msg.hpp
* mpm
- add support for lattice zbx cpld
- Factor out transport API into PeriphManagerBase
- Fix expected CPLD filename for x4xx
- udp: Fix Pylint warnings in UDP-related files
- x4xx: Make get_chdr_link_types() more generic
- xportmgr_udp: Include iface name in info
* n310
- Improve LO source control options for ALL and LO2 cases
* n320
- Fix reading DB serial in applying corrections
- Improve comments regarding low band
- Revert PLL lock time reduction
* python
- Check rfnoc_version in rfnoc_image_builder
- cmake: Detect python virtual environments
* rfnoc
- Add atomic_item_size property to FFT block
- Add LUA based dissector
- fix double conversions
- Fix register_xport_hop_cfg_fns() usage
- Fix vector use in replay_block_control_impl
- Fix warnings in replay_block_control
- Improve comments regarding streaming and mgmt. code
- Improve documentation for chdr_ctrl_endpoint
* tests
- mark test jobs as an overall failure if there is a test failure
- Remove packet_handler_benchmark
- streaming: add option to run streaming tests in dev pipeline
- streaming: add support for B210 DUTs
- streaming: add support for more DUTs
- streaming: don't set master clock rate on x310
- streaming: fix x310 test case values
- streaming: include dual_SFP parameter for all cases
- streaming: mark non-dpdk failures as xfails
- streaming: pass the correct LD_LIBRARY_PATH to pytest
- streaming: select appropriate uhd config file before test runs
- streaming: temporarily mark b210 dropped samples as an xfail
- streaming: use assert instead of pytest.fail for underruns/overruns
* tools
- package_source remove double bracket
* uhd
- change default into option flag in register definition
- Enable branch naming on Azure Pipelines
- fix minor typo when querying tx sensors property tree
- refactor get_all_addrs to remove duplicates
* usrp2
- Remove unused code segments
* utils
- Remove usrp_e3x0_network_mode
- uhd_images_downloader: Increase default image download size limit
- uhd_images_downloader: Print name of file that exceeds limit
- uhd_usrp_probe: Add DB rev to output
- x300_reset: Make py3k-ready
* x300
- Change order of GPIO banks
- Fix invalid GPIO source bank error message
* zbx
- Remove stray include
## 004.002.000.000
* b200
- Re-sync times
- Fix overflow handling
- Move the B200 radio control core into usrp/b200/
* cal
- Use safe version of set_thread_priority()
- Fix handling of discontinuities in power calibration data
* chdr
- Rename var max_size_bytes to avoid confusion
* ci
- Weekly builds for UHD-4.2 docker images
- Update builds to macOS 12 Monterey
- Update commit vcpkg and CMake version
- Set continue on error and reduce timeout to 60
- Remove obsolete x4xx pipelines
- Upload devtest logs as artifact
- Propagate downloader errors and lower timeout
- Enable ctest on macOS builds
- Flash fpga on x410 ATS runs
- Add mpm folder to triggers
- Change yaml dependency to ruamel
- Add support for Ubuntu 22.04
- Remove Fedora 33 and add Fedora 35
- Add libuhd python dependencies to macOS
- Add x410 test to mono pipeline
- Enable building of init_usrp
- Make uhdSrcDir directly reference Build.SourcesDirectory
- Build gnuradio and gr-ettus
- Add gnuradio deps to images
- Generate installed binaries for downstream use
- Add displayNames to parameters
- Add embedded builds to uhd mono pipeline
- Separate pipeline builds for different os
- Refactor dockerOSName to buildOSName
- Build on macOS
- Device wait to redlock scope for Vivado close
- Add Fedora 34 and remove Fedora 32
- rebuild docker images weekly
- Refactor installers and add Windows support
- Add gnuradio gr-ettus to oe builds
- Update template to use checkout_meta_ettus
- Add custom boost version support
- Remove documentation-only changes from pipeline runs
- Enable batch CI
- Split CI and PR pipelines for mono pipeline
- Enable custom CXX flags, enable -Werror
- Let make keep building upon failure
- Add clang as a compiler to all Fedora and Ubuntu containers
- Add CLA assistant
* cmake
- mpm: Skip installing binaries for SIM
- doxygen: Make MATHJAX_RELPATH configurable via CMake
- ncurses: fix building with split tinfo
- Remove libatomic check on macOS
- Added libatomic check for boost/lockfree/queue.hpp
- uhdboost: Fix check for UHD_BOOST_REQUIRED being set
- Replace distutils.sysconfig with sysconfig
- Replace distutils with CMake for version checks
- Set debug to -Og for Clang builds
- tests: Conditionally compile tests for X400
- Use LooseVersion to ensure correct version comparisons
- Fix rfnoc-example (CMake paths)
- Fix issues with static builds and CMRC
- Replace CMAKE_{SOURCE,BINARY}_DIR with UHD_*_DIR
- tests: Add build-python path to PYTHONPATH
- Add check for libatomic linking requirement
- Remove duplicate entry in LIBUHD_PYTHON_GEN_SOURCE
- Fix VS names and use relative for images
- remove redundant include
- Correctly set and unset any CMAKE_REQUIRED variables
- Fix finding PkgConfig to work robustly (without CMake warnings)
* config
- Fix clang fallthrough syntax
* conversion
- Saturate transmit IQ levels on NEON architectures.
* convert
- Make narrowing conversions saturate
- Add benchmarking abilities
- Minor cleanup
* core
- Remove boost::math in favor of std cmath
* dbsrx
- Fix issue with loop variable
* debian
- Update version number to 4.2.0
- Update control and package building
* debs
- Update upload_debs script
* deps
- rpclib: Replace distutils.dir_util with shutil
* devtest
- Clarify data type in multi_usrp_test::send_waveform()
- Add receive stability test to B2xx devtest
- Add receive stability test
* dissectors
- Fix whitespace formatting in CMake files
- Fix inclusion of glib.h and Python version
* docs
- multi_usrp: Clarify GPIO source bank meaning
- x4xx: Document configuring eth0 static IP
- n310: Add Filter API section
- e31x: Update information on GPIO pin header
- Add 100GigE documentation
- Move X4x0 GPIO API to be subpage