aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* N310: Deactivate frontend components on radio shutdownmattprost2022-03-033-0/+35
| | | | | | | | Make sure no active components are connected to the TX frontend during next boot. This avoids configurations that could generate unwanted tones during operations such as the Mykonos init cals. Signed-off-by: mattprost <matt.prost@ni.com>
* rfnoc: window: Set window size register after loading coefficientsJonathon Pendlum2022-03-022-0/+11
|
* host: test: Add GPIO DDR register to x4xx mockLane Kolbly2022-03-021-0/+6
| | | | | | | | | This is useful for unit testing certain code which operates the DDR registers, in particular code which performs a read-modify-write operation on that register. Conceivably we could add more registers here, but I'm just doing one at a time.
* mpm: Use receiving socket for sending responsePhilipp Homann2022-03-021-5/+3
| | | | | The receiving socket can be used to send responses. This allows setting firewall rules for USRP detection.
* examples: replay: Improve rfnoc_replay_samples_from_fileMartin Braun2022-03-021-127/+87
| | | | | | | | | | - Use connect_through_blocks() to create connections - Remove check for spp being an integer multiple of the word size, the atomic item size feature will do that for us now - When using --nsamps, automatically terminate application after samples have been tx'd. - Added sleep statements to throttle empty while loops - Minor formatting changes
* rfnoc: replay: Add atomic item size propertyMartin Braun2022-03-021-0/+37
| | | | | | | This adds the atomic item size property to the replay block, which was originally introduced in 3e5e4eb. The effect is that it enforces streaming data to and from the block that is an integer multiple of the word size.
* uhd: fix negligible copy/paste typos in rhodium radio controlDavid Raeman2022-02-282-4/+4
|
* tests: Add saturating test casesAaron Rossetto2022-02-281-0/+137
| | | | | This commit adds test cases to convert_test to specifically test the saturating behavior of the fc32/fc64-to-sc16 conversions.
* convert: Make narrowing conversions saturateAaron Rossetto2022-02-282-14/+24
| | | | | This commit modifies the explicitly written narrowing conversions to clamp the results to the limits of the signed integer type.
* 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
|