aboutsummaryrefslogtreecommitdiffstats
path: root/host
Commit message (Collapse)AuthorAgeFilesLines
...
* cmake: Drop .deb generation via cpack in favour of better toolsMartin Braun2022-06-101-49/+18
| | | | | | Building .deb files has an entire ecosystem dedicated to it which is superior to cpack, and we don't test cpack, either. Users wanting to build .deb files should take a look at tools/debs/uhd_ubuntu_deb.py.
* utils: uhd_images_downloader: Print name of file that exceeds limitWade Fife2022-06-101-5/+5
| | | | | When a file exceeds the download limit, print the name of the file in the message that asks if we want to continue downloading.
* rfnoc: Improve documentation for chdr_ctrl_endpointMartin Braun2022-06-101-3/+23
|
* cmake: Cache UHD_VERSION in all casesSteven Koo2022-06-101-2/+2
| | | | | | | This outputs the variable in the CMakeCache, so that we can scrape the version later for building package Signed-off-by: Steven Koo <steven.koo@ni.com>
* utils: uhd_usrp_probe: Add DB rev to outputMartin Braun2022-06-101-0/+6
| | | | | | | | | | | | | | When running uhd_usrp_probe, this adds the daughterboard revision if available: ``` | _____________________________________________________ | / | | RX Dboard: 0/Radio#0 | | ID: TwinRX Rev C (0x0095) | | Serial: ABC1234 | | Revision: 4 ```
* utils: x300_reset: Make py3k-readyMartin Braun2022-06-101-14/+15
|
* lib: Add missing include to offload_io_service_client.hppMartin Braun2022-06-101-0/+1
|
* debian: Resolve lintian issuesAaron Rossetto2022-04-262-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | This PR makes a couple of minor changes to Debian packaging files to resolve errors reported by Lintian during CI and manual building of .debs after having been updated in 38fb5e262: - Remove instances of `${python3:Depends}` in the rules file, as this substitution directive cannot be used without specifying `--with python3` in the `dh` debhelper command invocation. However, the Docker containers that are spun up to build .debs as part of UHD CI do not include the Debian Python helper package necessary to use the substitution even if `--with python3` is specified. Thus, the substitution was removed and replaced with the actual names of the dependent Python packages. - Remove the `Files-Excluded` section from the copyright file. Lintian flags an error whenever a file in that section is present in the source tree (which the specified files are). The addition of this section was supposed to bring UHD's built-in Debian packaging files more in line with those used by the actual Debian package maintainer, but it is likely that the actual Debian packing process runs additional steps that reference this section and uses it to remove the specified files which we currently don't run.
* uhd: Prepare for 4.2.0.0 releaseAaron Rossetto2022-04-191-527/+529
| | | | | - Updated CHANGELOG - Updated Debian changelog
* utils: Check install-prefix for imagesSteven Koo2022-04-191-8/+11
| | | | | | | | On some installs, pkg-path and install-prefix aren't equivalent. Since uhd_images_downloader defaults to installing into $CMAKE_INSTALL_PREFIX/share/uhd/images, we should look there too. Signed-off-by: Steven Koo <steven.koo@ni.com>
* docs: multi_usrp: Clarify GPIO source bank meaningMartin Braun2022-04-191-7/+10
|
* rfnoc: Update image builder to check for deprecated blocksWade Fife2022-04-121-27/+49
| | | | | | | | | | Adds checks for deprecated blocks (e.g., radio_1x64.yml instead of radio.yml) as well as deprecated IO signature types (e.g., ctrl_port instead of ctrlport). Deprecated block descriptions are no longer parsed. Old IO signature types are automatically converted to the new type. Warnings are printed in both cases.
* multi_usrp_rfnoc: Set assignment instead of equalitySteven Koo2022-04-121-1/+1
| | | | | | | This resolves a typo intoduced by multi_usrp_rfnoc: Add TX buffering using Replay Signed-off-by: Steven Koo <steven.koo@ni.com>
* uhd: Update MPM compat minorAaron Rossetto2022-04-121-1/+1
|
* uhd: Prepare for 4.2.0.0-rc1 releaseAaron Rossetto2022-04-082-2/+589
| | | | | | - images: Updated manifest - uhd: Updated changelog and version string - debian: Updated changelog
* rfnoc: Add filter_node python bindingsmattprost2022-04-071-0/+9
| | | | Signed-off-by: mattprost <matt.prost@ni.com>
* docs: n310: Add Filter API sectionmattprost2022-04-071-0/+91
| | | | | Co-authored-by: bpadalino <bpadalino@gmail.com> Signed-off-by: mattprost <matt.prost@ni.com>
* n310: Add Filter API to n310mattprost2022-04-078-18/+203
| | | | | | | | | | Add the Filter API to n3xx specifically for the AD937x device. The TX filter is limited to 32 taps, and the RX filter is limited to 48 taps. This feature requires MPM version 4.2 or later on the device. Co-authored-by: bpadalino <bpadalino@gmail.com> Signed-off-by: mattprost <matt.prost@ni.com>
* n310: Add frontend bandwidth controlmattprost2022-04-073-25/+107
| | | | | | | | | | | | Allow users to control the Mykonos frontend bandwidth settings for Rx and Tx. Note that this operation requires the daughterboard to re-initialize, so it may take some time. Values for frontend filter settings were derived using ADI's AD9371 Filter Wizard. This feature requires MPM version 4.1 or later on the device. Co-authored-by: bpadalino <bpadalino@gmail.com> Signed-off-by: mattprost <matt.prost@ni.com>
* n310: cpld: Get and set TX ATR bitsmattprost2022-04-072-0/+66
| | | | | | | | | This allows the user to get the current state of the tx atr bits and set them back to a given state. This is useful for the n310 when resetting the front end, in order to avoid any tx power out of the frontend when the init_cals are run. Signed-off-by: mattprost <matt.prost@ni.com>
* ic_reg_maps: Generate save state read functionsmattprost2022-04-071-0/+24
| | | | | | | | Auto-generated IC Register Maps (e.g. magnesium_cpld_regs, rhodium_cpld_regs, etc.) now provide getter methods for all attributes. This gives access to the save state information for the device. Signed-off-by: mattprost <matt.prost@ni.com>
* types: filters: Add python support for digital filtersmattprost2022-04-072-5/+46
| | | | Signed-off-by: mattprost <matt.prost@ni.com>
* utils: string: Add split string utility functionmattprost2022-04-071-0/+35
| | | | Signed-off-by: mattprost <matt.prost@ni.com>
* tests: rfnoc: Add another loop graph testMartin Braun2022-04-071-0/+110
| | | | | | This test mimics the Radio <-> Replay loop graph. Because we need one back-edge in this graph, this test makes sure the atomic item sizes still resolve.
* rfnoc: Modify prop. propagation algorithm (back-edge resolution)Martin Braun2022-04-074-33/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the property propagation algorithm would first forward and resolve properties only along forward edges. Then, we would check that properties also align across back-edges. The assumption is that graphs are always structured in a way such that back-edges would align when the resolution is done. However, for the following graph, this would fail: Radio ---> Replay ^ | +---------+ The reason is that the radio block and the replay block both have an "atomic_item_size" property, which needs to be resolved both ways. If the default atomic_item_size is 4 for the radio, and 8 for the replay block, then the input atomic_item_size on the radio will never be aligned with the output atomic_item_size of the replay block, and there is no other mechanism to align those. The solution is to run the edge property propagation and resolution twice, first for the forward edges, then for the back-edges. For graphs that would previously work, this makes no difference: The additional step of propagation properties across the back-edges will not dirty any properties. However, for graphs like the one above, it will provide an additional resolution path for properties that are otherwise not connected.
* rfnoc: graph: Allow property forwarding on back-edgesMartin Braun2022-04-072-5/+8
| | | | | | The internal helper function graph_t::_forward_edge_props() receives another argument, which decides if properties are forwarded on forward- or back-edges. Previously, only forward-edges were possible.
* multi_usrp_rfnoc: Add TX buffering using Replaymichael-west2022-04-076-86/+482
| | | | | | | | | | | Enabled with the "tx_replay_buffer" device argument. Buffers TX data in DRAM using the Replay block (version 1.1 or higher required), allowing more buffering of data on the device. May reduce underruns for certain applications. The Replay block is currently limited to 32 play commands, so fewer calls to send() with larger buffers will perform better than more calls with smaller buffers. Signed-off-by: michael-west <michael.west@ettus.com>
* docs: e31x: Update information on GPIO pin headerMartin Braun2022-04-062-8/+18
| | | | | - Note on drawing power from the 3.3V rail - Clarified purpose of Pins 2 and 4 (peripheral I2C bus)
* debian: Update version number to 4.2.0Steven Koo2022-04-063-8/+8
|
* debian: Update control and package buildingMartin Braun2022-04-0612-66/+147
| | | | | | | | | | - Update dependencies - Add python3-uhd package - Add uhd-doc package In part, this changeset is to further align with the official Debian upstream at https://salsa.debian.org/bottoms/pkg-uhd.git, which is maintained by Maitland Bottoms.
* tests: streaming tests setupVirendra Kakade2022-04-062-5/+5
| | | | | | | Add auto DUT bitfile configuration. Add special network configuration commands for X410. Signed-off-by: Virendra Kakade <virendra.kakade@ni.com>
* examples: Fix gain testbench nameWade Fife2022-04-061-1/+1
|
* rfnoc: Fix test_timed_commands for RFNoC devicesmichael-west2022-04-051-1/+3
| | | | | | | - Added command time to readback of time from Radio block. - Added wait for time to readback of shared registers in Radio block. Signed-off-by: michael-west <michael.west@ettus.com>
* host: SPI: Read number of supported SPI slaves from deviceMartin Anderseck2022-04-045-23/+51
| | | | | | Add support for reading the number of supported SPI slaves from the device. This has become necessary because we may have bitfiles with different capabilities and we want to report this back correctly.
* uhd: Replay block version 1.1michael-west2022-04-013-18/+166
| | | | | | | | | - Add ability to get current record position. - Add ability to get current play position. - Track space in play command FIFO and throw uhd::op_failed error when command requested would overflow the command FIFO. Signed-off-by: michael-west <michael.west@ettus.com>
* n320: fix issue that occasionally prevents lo_locked upon first set_freqDavid Raeman2022-04-012-8/+45
| | | | | | | | | | | | For certain frequencies, the LMX2592 will sporadically fail to lock upon the very first tune. When this happens, subsequent tunes (even to the same frequency) do lock. This issue seems to be resolved by programming the FCAL adjustment register fields (FCAL_LPFD_ADJ/FCAL_HPFD_ADJ) as described in the LMX2592 datasheet. These fields adjust the FCAL calibration speed to better accomodate PFD frequencies below 20MHz or above 100MHz. This patch also fixes a few name typos in the register map that were directly in the scope of this change.
* log: Add DPDK version to system infomattprost2022-04-011-2/+8
| | | | | | Log installed DPDK version on boot. Signed-off-by: mattprost <matt.prost@ni.com>
* dpdk: Add support for DPDK 18.11 APImattprost2022-04-015-3/+44
| | | | | | | | Substituting old values to restore API breakage from DPDK 18.11 to DPDK 19. It is recommended at this point that users upgrade to more recent DPDK LTS versions, but the DPDK 18.11 API is functional with UHD. Signed-off-by: mattprost <matt.prost@ni.com>
* config: fix clang fallthrough syntaxMichael Dickens2022-04-011-1/+1
|
* uhd: fix compiler macro orderingMichael Dickens2022-04-013-17/+17
| | | | Clang provides the same macros as GCC, so if we're differentiating between these compilers then we need to get the compiler checking macros in the correct order
* docs: add 100GigE documentationVirendra Kakade2022-04-013-9/+39
| | | | | Signed-off-by: Virendra Kakade <virendra.kakade@ni.com> Co-authored-by: Wade Fife <wade.fife@ettus.com>
* rfnoc: Remove redundant RFNoC block descriptionsWade Fife2022-03-314-301/+0
| | | | | | | | The block descriptions radio_1x64.yml and radio_2x64.yml are subsets of radio.yml. Similarly, axi_ram_fifo_2x64.yml and axi_ram_fifo_4x64.yml are subsets of axi_ram_fifo.yml. This commit removes the redundant YAML descriptions in favor of the parameterizable versions.
* rfnoc: Update device port names in image core YAMLWade Fife2022-03-311-50/+59
| | | | | | Update USRP RFNoC iamge core YAML files to use the more consistent device port names. Clean up the formatting and make the files more consistent.
* rfnoc: Update image builder to check for deprecated port namesWade Fife2022-03-311-1/+50
|
* rfnoc: Make RFNoC device port names consistentWade Fife2022-03-3110-131/+62
| | | | | | Update all USRPs to use the same names for the same port types. For example, instead of "ctrl_port" and "ctrlport" use "ctrlport". Instead "timekeeper" and "time_keeper", use "timekeeper". Etc.
* examples: Add replay_capture.pyMartin Braun2022-03-312-0/+311
| | | | | This is an example that allows capturing RF data into DRAM, and then stream it back to host, using the Python API.
* tests: enable automated streaming tests on X410Virendra Kakade2022-03-311-8/+9
| | | | | | | | | | | | Enable automated streaming tests to run on X410. Disable tests on non-X410 devices for now. Run only DPDK tests since the setup can not withstand 4Rx 4Tx and 4FDx in non-DPDK mode in manual testing. And we need to enable running these tests for 100GbE testing. Adjust streaming test thresholds to new values which seemed to work fine in manual testing. Might make them tighter in future based on more data.
* tests: add X410 100GbE testsVirendra Kakade2022-03-311-23/+29
| | | | | | | | Disable non 100GbE X410 tests for now since the test framework currently assumes that the required bitfile(personality) is already loaded onto the device. Re-enable these tests when the above support is added. Signed-off-by: Virendra Kakade <virendra.kakade@ni.com>
* docs: Move X4x0 GPIO API to be subpageLane Kolbly2022-03-301-1/+1
|
* python: rfnoc: Add new replay block APIs to Python APIMartin Braun2022-03-301-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | The new API calls get_{record,play}_async_metadata() calls are now available in Python. To look more Pythonic, we change the call signature and return value to either return `None` or the value (if available). For comparison, this is the C++ code: ```cpp uhd::rx_metadata_t md; if (replay_ctrl->get_record_async_metadata(md, 0.1)) { cout << "Received metadata! Error code: " << md.strerror() << endl; } else { cout << "No metadata received!" << endl; } ``` In Python, this has the more Pythonic form: ```python md = replay_ctrl.get_record_async_metadata(0.1); if md is not None: print("Received metadata! Error code: ", md.strerror()) else: print("No metadata received!") ```