aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* tests: Add conversion benchmarking testsAaron Rossetto2022-02-281-38/+571
| | | | | | | | | | | | | This commit adds Boost test cases for benchmarking each of the existing conversions that are tested in convert_test. The benchmarks do take some time, and we do not want to run they as part of every CI run, so they are marked with a test decorator that disables the benchmark by default. To run the benchmarks, invoke convert_test with `--run-test=+benchmark*` to explicitly enable all disabled tests that begin with the word 'benchmark'. Individual benchmark test cases can be enabled by specifying the full name of the benchmark test or by crafting a wildcard that includes all benchmark test cases of interest.
* convert: Add benchmarking abilitiesAaron Rossetto2022-02-281-10/+97
| | | | | This commit adds code to the convert tests to support the ability to benchmark individual conversion test cases.
* tests: Force converter tests to be run with all available priosMartin Braun2022-02-281-49/+91
|
* convert: Minor cleanupAaron Rossetto2022-02-282-115/+38
| | | | | | | | | | | | | | | | | | | This commit implements some minor cleanup of various converter- and convert test-related code: * Improves the log messages regarding which converter was returned for a request. * Modifies the result checking code in the converter tests to only report an out-of-range sample error once, rather than reporting every out-of-range sample encountered during the test. This vastly cuts down on the output when a conversion has failed. * Adds a function `reverse_converter()` which, given a `convert::id_type` describing a conversion from C1 to C2, returns a `convert::id_type` describing the reverse conversion (C2 to C1). * Removes two redundant test cases from the converter test.
* conversion: Saturate transmit IQ levels on NEON architectures.Ron Economos2022-02-281-4/+4
| | | | Signed-off-by: Ron Economos <w6rz@comcast.net>
* fpga: x400: Set replay SEP buffers to twice MTUWade Fife2022-02-242-8/+8
|
* mpm: eeprom: Fix default values in EEPROM utilitiesMartin Braun2022-02-245-34/+113
| | | | | | | | | | | | | | | | | | | | | | | | When executing eeprom-init on E320 (which was originally written for N310), it would use defaults from N310, potentially causing issues. These issues would have arisen if we letter-revved the E320 one more time (because at rev 5, N310 had a compatibility cutover). Summary of changes: - eeprom-init will now read values *not* given on the command line from the existing content of the EEPROM, if it contains valid data. This means that DT, MCU, and rev compat values will no longer get auto-derived if the EEPROM already contained "good" values. - If the EEPROM is empty or corrupted, eeprom-init will no longer run if the pid value is not provided. This is to avoid N310 defaults being written to E320 EEPROMs. - A README is added to explain which devices use which utilities. - PID checks are more strict now. It is unlikely we'll build new devices using the old EEPROM format (prior to TLV), so we can check specifically for E320, N3x0. - The hard-coded list of PIDs for the EEPROM tools are moved to a central location (eeprom-pids.h). - The code to derive values for DT/MCU/rev compat from the rev is now pid-specific and no longer device-agnostic.
* Build uhd_test library as static when `-DBUILD_SHARED_LIBS=ON`David Seifert2022-02-241-1/+1
| | | | | * A uhd_test.so lacks the necessary symbols for testing due to default visibility set to hidden.
* ci: Set continue on error and reduce timeout to 60Steven Koo2022-02-241-6/+13
| | | | | | | Instead of squashing errors, set continue on error so that warnings propagate up. Also reset timeout to default 60 minutes. Signed-off-by: Steven Koo <steven.koo@ni.com>
* docs: Improve documentation for replay blockMartin Braun2022-02-241-15/+73
| | | | | | | - Add notes on playback and record behaviour - Improve docs for play() Co-authored-by: Wade Fife <wade.fife@ettus.com>
* rfnoc: replay: Add action handler for stream commandsMartin Braun2022-02-241-0/+26
| | | | | | | | When connecting an Rx streamer to a replay block, this now allows requesting data from the replay block using a stream command. This will automatically request data from all ports the streamer is connected to, and even if there are blocks in between (depending on their action forwarding policies).
* python: rfnoc: Add connect_through_blocks() and get_block_chain()Martin Braun2022-02-242-2/+16
| | | | These RFNoC C++ API calls were previously not exported into Python.
* rfnoc: graph_utils: Add ability to declare back-edgesMartin Braun2022-02-242-4/+13
| | | | | | | rfnoc::connect_through_blocks(), unlike rfnoc_graph::connect(), did not have an argument to declare a back-edge. This patch remedies this situation by adding a skip_property_propagation argument that works exactly as with rfnoc_graph::connect().
* docs: Remove superfluous stylesheetMartin Braun2022-02-241-102/+0
| | | | | This was left over from when the manual was ported to Doxygen in a74919c2. It is not used by Doxygen.
* cmake: doxygen: Make MATHJAX_RELPATH configurable via CMakeMartin Braun2022-02-242-1/+5
| | | | | | | | | | | | | | | | | This is a Doxygen setting where to find MathJax. The default might not be suitable for everyone, and in particular, if people already have MJ installed on their local system, they might prefer using that instead of an online one. Example usage: Assume you have MathJax installed locally, e.g., through the mathjax package on Fedora, or the libjs-mathjax package on Debian/Ubuntu. Then you could build UHD as such: cmake -DMATHJAX_RELPATH=/usr/share/javascript/mathjax This will now use the local version. Note that locally generated HTML documentation can now no longer be copied to other machines, unless they also have MathJax installed to the same path.
* cmake: ncurses: fix building with split tinfoRick Farina (Zero_Chaos)2022-02-242-0/+2
| | | | | This fixes an issue where tinfo and ncurses are split into separate libraries.
* python: Read number of ports from grc file in image builderAndré Apitzsch2022-02-241-0/+4
|
* python: Fix RuntimeError: dictionary changed size during iterationAndré Apitzsch2022-02-241-1/+1
| | | | Iterate over copy and delete from original dictionary.
* e320: mpm: Remove monitor threadMartin Braun2022-02-241-34/+0
| | | | | This thread is a vestige from copy & pasting N310 code, it does absolutely nothing but occupy resources.
* firmware: Remove N230 firmwareMartin Braun2022-02-2411-1742/+0
| | | | | USRP N230 is no longer supported starting with UHD 4, and thus, the firmware code is also no longer required.
* ci: Remove obsolete x4xx pipelinesSteven Koo2022-02-243-226/+0
| | | | | | | These x4xx pipelines have been obsoleted by x4xx integration with mono pipeline. Signed-off-by: Steven Koo <steven.koo@ni.com>
* fpga: Add SPDX license identifierAaron Rossetto2022-02-231-0/+2
|
* rfnoc: Remove references to nocscript from YAML filesMartin Braun2022-02-2323-23/+0
| | | | | The sw_iface entry in the `control` section is yet underdefined, so we can remove it from the block descriptors.
* Remove FSRU-related filesMartin Braun2022-02-228-962/+1
| | | | | | | The FSRU (aka EISCAT) was never supported in UHD 4.0. The FPGA repository never had the relevant files, and the block controller also never existed. This removes all the corresponding files from MPM, as well as some references from makefiles.
* docs: x310: Remove reference to ORCMartin Braun2022-02-211-1/+1
| | | | UHD no longer depends on ORC since 41812aa2f (merged 2015).
* mpm: xportmgr_udp: Match DNAT arguments to manpageMartin Braun2022-02-211-3/+5
| | | | | | | Change the --to argument to --to-destination. Both seem to work, but the latter is what is listed in iptables-extensions(8). What's confusing is that `--to` also exists in another context (in the `string` match extension).
* fpga: e320: Add DRAM portsWade Fife2022-02-181-97/+97
| | | | | This adds two additional ports to the DRAM, for a total of up to four channels connected to DRAM.
* mpm: eeprom: Improve E320 and N3x0 EEPROM code/commentsMartin Braun2022-02-163-12/+23
| | | | | | - Fix some Pylint warnings in eeprom.py - Improve comments in n3xx.py and e320.py regarding rev_compat values in EEPROM
* mpm: cmake: Remove installation of non-relevant EEPROM toolsMartin Braun2022-02-162-15/+15
| | | | | On N3x0 and E3x0 devices, we were erroneously installing EEPROM utilities that are only relevant on X410.
* docs: Update n3xx tuning notesSteven Koo2022-02-161-4/+8
| | | | | | | n32x is specced to 3 Mhz. Added a note about performance below specced frequency minimums Signed-off-by: Steven Koo <steven.koo@ni.com>
* images: Remove references to N230Martin Braun2022-02-152-8/+0
| | | | | | USRP N230 is no longer supported starting with UHD 4, and thus, we can remove it from the image manifest. This will no longer download N230 images when calling uhd_images_downloader from UHD 4.
* ci: Upload devtest logs as artifactSteven Koo2022-02-111-0/+21
| | | | Signed-off-by: Steven Koo <steven.koo@ni.com>
* mpm: x4xx: Add function to map from gpio src list indicesLane Kolbly2022-02-111-2/+29
| | | | | | | | set_gpio_src takes a list of twelve sources to apply to the pins. For the DIO mapping, this is fine, because the twelve pins are zero through eleven. However, for the HDMI mapping, the pin indices range from one to nineteen. This commit adds a function to convert from the set_gpio_src list indices into the pin number.
* ci: Propagate downloader errors and lower timeoutSteven Koo2022-02-111-1/+8
| | | | | | | | This change enables download / network failures to propagate up and fail the job for Windows builds. It also reduces the job timeout in case the network hangs. Signed-off-by: Steven Koo <steven.koo@ni.com>
* rfnoc: Fix spelling in property resolution error messageMartin Braun2022-02-111-1/+1
|
* docs: Remove full path names from Doxygen generationMartin Braun2022-02-111-1/+1
| | | | | The full path names can cause non-reproducible builds, because they include the build directory.
* fpga: n3xx: Fix DRAM FIFO address alignmentWade Fife2022-02-103-6/+6
|
* fpga: rfnoc: Change AWIDTH default for axi_ram_fifoWade Fife2022-02-101-1/+1
| | | | | Change AWIDTH to be the same as MEM_ADDR_W by default. Current USRPs assume the AXI address width is the same as MEM_ADDR_W.
* rfnoc: Expose buffer parameters for DRAM FIFO blockWade Fife2022-02-101-0/+2
|
* fpga: e31x: Add DRAM supportWade Fife2022-02-1016-99/+1503
| | | | | | | | | This adds DRAM support to E31x devices. Due to the size of the DDR3 memory controller, it is not enabled by default. You can include the memory controller IP in the build by adding the DRAM environment variable to your build. For example: DRAM=1 make E310_SG3
* fpga: rfnoc: Add BLANK_OUTPUT to FIR filter block's parametersJonathon Pendlum2022-02-104-11/+21
|
* fpga: x400: Add DRAM enable macroJavier Valenzuela2022-02-101-0/+4
|
* images: Add utilization report files to B2xx image filesMartin Braun2022-02-101-4/+8
|
* fpga: b2xx: Generate utilization report filesMartin Braun2022-02-102-18/+24
| | | | | | | | | | | | Currently, the build process copies the .twr and .syr files into the build/ process after running ISE. For a succinct utilization report, those files are not suitable, though, because they contain too much information. However, the build process already produces a custom, short utilization report using grep and a summary of those reports. This patch modifies the build such that the same output is copied into a usrp_$product_fpga.rpt file, similar to our gen-3 devices.
* fpga: x400: zbx: cpld: Bump ZBX regmap copyrightJavier Valenzuela2022-02-1011-11/+11
|
* fpga: x400: cpld: Bump CMI wrapper copyrightJavier Valenzuela2022-02-102-2/+2
|
* images: Revert x4xx manifest and FPGA compat updateAaron Rossetto2022-02-082-2/+2
|
* mpm: add device name to discovery processLars Amsel2022-02-083-0/+4
| | | | | | | | | | | | | | | | | | | MPM devices currently do not report their device name in the discovery process. This adds the device name. After the change the device name is reported, e.g. when using uhd_find_devices, like so: $> uhd_find_devices -------------------------------------------------- -- UHD Device 0 -------------------------------------------------- Device Address: serial: DEADBEEF claimed: False fpga: X4_200 mgmt_addr: <mpm device ip> name: <mpm device host name> product: x410 type: x4xx
* ci: Enable ctest on macOS buildsSteven Koo2022-02-082-2/+6
| | | | Signed-off-by: Steven Koo <steven.koo@ni.com>
* ci: flash fpga on x410 ATS runsSteven Koo2022-02-073-3/+14
| | | | Signed-off-by: Steven Koo <steven.koo@ni.com>