aboutsummaryrefslogtreecommitdiffstats
path: root/host
Commit message (Collapse)AuthorAgeFilesLines
* docs: zbx: address review observations in docsHumberto Jimenez2021-06-221-2/+2
|
* docs: usrp_x4xx: address review observations in docsHumberto Jimenez2021-06-223-70/+157
|
* x3xx: Improve image loaderMartin Braun2021-06-221-27/+44
| | | | | | | - When specifying a file path, no longer infer the FPGA type for the logging from the image that is currently loaded. - Use sanitize product names for ni-2974 everywhere were appropriate - Remove some usages of boost::format that weren't doing anything useful
* usrp2: Use explicit template type for std::min<T>StefanBruens2021-06-221-1/+1
| | | | Signed-off-by: Aaron Rossetto <aaron.rossetto@ni.com>
* usrp2: Replace boost::math::iround/math::sign with std::lroundStefanBruens2021-06-221-5/+5
| | | | | | | | | Instead of multiplying zone with the sign repeatedly just make the zone a signed value. See #437, #438 Signed-off-by: Aaron Rossetto <aaron.rossetto@ni.com>
* docs: Fix typosf380cedric2021-06-221-3/+3
| | | | Signed-off-by: Aaron Rossetto <aaron.rossetto@ni.com>
* docs: Fix python3-ruamel.yaml name on RPM based OSf380cedric2021-06-221-2/+2
| | | | | | The package is named python3-ruamel-yaml on RHEL & derivatives. Signed-off-by: Aaron Rossetto <aaron.rossetto@ni.com>
* usrp2: Apply minor cleanups to Boost usage in usrp2Martin Braun2021-06-181-9/+8
| | | | | | | - Inconsistent usage of asio:: or boost::asio:: (now uses the latter consistently) - Removed some usage of boost::format() where it really didn't add any value
* docs: zbx: update cpld source code locationHumberto Jimenez2021-06-181-1/+1
|
* docs: usrp_x4xx: apply minor corrections in docsHumberto Jimenez2021-06-181-41/+40
|
* uhd: Add missing channel parameter when reading power ref keysLars Amsel2021-06-181-2/+2
|
* test: add DPDK option for max streaming rate testsMatthew Crymble2021-06-183-82/+230
|
* uhd: Add callback for setting sync_sourcesGrant Meyerhoff2021-06-174-0/+53
|
* usrp2: Fix Boost headersMartin Braun2021-06-171-2/+2
| | | | | | | | | On Boost 1.76, this would otherwise fail with an error: [...] .../usrp2_impl.cpp:920:37: error: ‘boost::math’ has not been declared 920 | const int sign = boost::math::sign(new_freq); [...]
* uhd: Update versionAaron Rossetto2021-06-161-1/+1
|
* docs: zbx: improve cpld update docsMichael Auchter2021-06-161-7/+5
|
* docs: usrp_x4xx: improve mb cpld update docsMichael Auchter2021-06-161-3/+2
|
* uhd: x400: Honor ENABLE_X400 component flagAaron Rossetto2021-06-151-9/+14
| | | | Don't add X400-related sources to libuhd if they are not requested.
* uhd: Add support for the USRP X410Lars Amsel2021-06-10101-67/+32996
| | | | | | | | | | | | | | | | Co-authored-by: Lars Amsel <lars.amsel@ni.com> Co-authored-by: Michael Auchter <michael.auchter@ni.com> Co-authored-by: Martin Braun <martin.braun@ettus.com> Co-authored-by: Paul Butler <paul.butler@ni.com> Co-authored-by: Cristina Fuentes <cristina.fuentes-curiel@ni.com> Co-authored-by: Humberto Jimenez <humberto.jimenez@ni.com> Co-authored-by: Virendra Kakade <virendra.kakade@ni.com> Co-authored-by: Lane Kolbly <lane.kolbly@ni.com> Co-authored-by: Max Köhler <max.koehler@ni.com> Co-authored-by: Andrew Lynch <andrew.lynch@ni.com> Co-authored-by: Grant Meyerhoff <grant.meyerhoff@ni.com> Co-authored-by: Ciro Nishiguchi <ciro.nishiguchi@ni.com> Co-authored-by: Thomas Vogel <thomas.vogel@ni.com>
* transport: Set mtu to 9000 for all 10GbE use casesmattprost2021-06-102-7/+7
| | | | | | | | An default MTU value of 9000 gives the devices the most flexibility using 10GbE. Many interfaces and docs have already been updated. This is bringing all devices into alignment with this paradigm. Signed-off-by: mattprost <matt.prost@ni.com>
* cal: Add min_freq and max_freq attributes to USRPCalibratorBaseMartin Braun2021-06-101-2/+4
| | | | | | | These allow specifying a min/max frequency on a device basis, instead of querying those from get_?x_freq_range(). The trouble with those methods is, they include the tune range provided by DSP tuning, which is not what we want for this calibration.
* cal: Fix minor issues in the calibration utilitiesMartin Braun2021-06-104-14/+15
| | | | | | - Whitespace issues - Unclear help messages - Unnecessary derive-from-object
* devtest: benchmark_rate: Add support for rx and tx only testsmattprost2021-06-101-19/+27
| | | | | | | Fixes some minor reporting issues that occurred in devtest streaming tests with only rx or only tx. Signed-off-by: mattprost <matt.prost@ni.com>
* multi_usrp: Factor out make_overall_tune_range() and fix limitsMartin Braun2021-06-093-42/+39
| | | | | | | | | This function had an issue where it might return negative frequency values. A quick fix was to limit it to positive frequencies. Since this function was duplicated between multi_usrp and multi_usrp_rfnoc, this patch also moves it to a common location to not have to fix it twice.
* mpmd: support four linksAndrew Lynch2021-06-082-0/+10
|
* fpga: Change RFNoC YAML version numbers to stringsWade Fife2021-06-0824-48/+48
| | | | | Change version from a numeric to a string, in order to differentiate between versions like "1.1" and "1.10".
* dboard_iface: Fix sleep()michael-west2021-06-031-1/+1
| | | | | | Sleep was incorrectly in nanosecond counts instead of microsecond counts. Signed-off-by: michael-west <michael.west@ettus.com>
* rfnoc: Fix post action behavior of nodesLars Amsel2021-06-031-0/+4
| | | | | | | | | | | When a node has an action callback assigned this must be cleared along with the block removal. Otherwise a post action callback might try to modify node that are already removed which results in an undefined behavior. In particular this one fixes the Unexpected error [ERROR] [CTRLEP] Caught exception during async message handling: map::at when running the multi_usrp_test.py
* python: Add graceful exit of claim loop on SIGTERMLars Amsel2021-06-031-19/+58
|
* rfnoc: Add image_core_name option to rfnoc_image_builderWade Fife2021-06-023-13/+29
| | | | | | This change adds the ability to specify in the YAML description for your RFNoC image what the rfnoc_image_core should be named. This allows you to have multiple RFNoC image cores generated for the same target.
* python: Add rfnoc_image_core.vh generationWade Fife2021-06-022-1/+87
| | | | | | This causes a header file, rfnoc_image_core.vh, to be generated along with rfnoc_image_core.v so that parameters like the CHDR width can be shared betweend RFNoC and the BSP.
* python: Update RFNoC image builder to use CHDR_W parameterWade Fife2021-06-022-10/+17
| | | | | | CHDR_W was previosly hard coded to be 64, regardless of what the YAML indicated. This updates to code to pull in the chdr_width from the YAML image configuration file.
* tests: Make python_api_test.py always explicitly call PythonMartin Braun2021-06-022-9/+5
| | | | | | | | | This change makes it such that python_api_test.py will spawn a subprocess for multi_usrp_test.py by explicitly calling the Python interpreter, and making the path to multi_usrp_test.py the first argument. This fixes running this devtest after installing Python tests via ipks on embedded devices.
* rfnoc: Fix MTU prop resolver refactoringAaron Rossetto2021-06-011-8/+70
| | | | | | | | | | | | | | | | | | | | | | | | In 073574e24, the MTU property resolver in `noc_block_base` was refactored to make the resolver's output sensitivity list less broad. The broadness was intentional as a consequence of allowing the MTU forwarding policy to be changed at will, but had the unintended side effect of being incompatible with certain RFNoC graph use cases. The refactoring solved the issues, but added a new restriction that the MTU forwarding policy could only be called once per instance of a NoC block. Unfortunately, that refactoring introduced a bug. By moving the registration of MTU resolvers to `set_mtu_forwarding_policy()`, no resolvers would be added if the MTU forwarding policy was never changed from the default of `DROP` (which is the case for the vast majority of NoC blocks). However, the resolver had code that would run in the `DROP` case to coerce the incoming MTU edge property to be the smaller of the new value or the existing MTU value on that edge. With the resolvers only getting added when the MTU forwarding policy is changed, this coercion behavior would never execute, thus breaking a number of devtests. This commit ensures that the default coercion behavior is always present regardless of whether the MTU forwarding policy is changed or not.
* mpm: add unit tests for EEPROM readersLars Amsel2021-05-311-0/+1
|
* ic_reg_maps: Remove SPCC core reg mapLars Amsel2021-05-271-116/+0
| | | | These registers aren't used anywhere in UHD.
* examples: Fix underrun/seq error reporting in benchmark_rate.pyMartin Braun2021-05-201-10/+10
| | | | The numbers for these were swapped.
* types: Add mm_iface structsMartin Braun2021-05-202-0/+43
| | | | | This adds two structs (mm32_iface and mm32_iface_timed) which are a container for peek/poke interfaces.
* uhd: Reword log.hpp documentationLane Kolbly2021-05-191-7/+19
|
* multi_usrp, x300: Relax LO set API strictnessAaron Rossetto2021-05-192-12/+24
| | | | | | | | | | | This PR relaxes the set_{rx|tx}_lo_{source|sources|export_enabled}() functions to allow them to be called with 'internal'/ALL_LOS or false/ALL_LOS on devices which do not support changing their LO source or exporting. This makes the get and set functions for those LOs settings more symmetrical in that the values returned from the get function can be successfully passed to the set function. Prior to this change, calling the set functions would throw an error indicating that the device does not support manual configuration of the LO.
* installers: resolve ubuntu linter issueSteven Koo2021-05-181-71/+87
| | | | | | The debian copyright requires the Apache 2.0 stanza for flatbuffers. Signed-off-by: Steven Koo<steven.koo@ni.com>
* tests: Add MTU forwarding policy restriction unit testAaron Rossetto2021-05-181-0/+58
|
* rfnoc: noc_block_base: Throw if set_mtu_forwarding_policy() called multiplyAaron Rossetto2021-05-182-1/+15
|
* rfnoc: noc_block_base: Refactor MTU prop resolverAaron Rossetto2021-05-182-46/+64
| | | | | | | | | | | | | | | | | | | | | | Prior to this commit, the MTU property resolver in noc_block_base had an issue: for every MTU edge property (both input and output on each port) on the block, the property resolver listed every other MTU edge property in its output sensitivity list, regardless of whether or not the output edge properties would ever be affected by the current MTU forwarding policy. This breaks an inherent (and up until now, unwritten) contract between a property resolver and UHD that only properties that can be affected by the resolver should be included in the output sensitivity list. The result of breaking the contract leads to errors being thrown when committing an RFNoC graph in certain multi-channel use cases. This commit refactors the MTU property resolver to use the MTU forwarding policy to determine the correct set of edge properties to include in the output sensitivity list. The change also introduces a new restriction--the MTU forwarding policy may only be set once per instance of a noc_block_base. Typically, a subclass implementing an RFNoC block will call `set_mtu_forwarding_policy()` in its constructor to set a custom MTU forwarding policy (if desired) and leave it untouched for the lifetime of the block.
* tests: Update multi_usrp_test.pyMartin Braun2021-05-101-115/+259
| | | | | | | | | | Many updates to this test. Most tests weren't even working properly. Highlights: - Add device-specific configuration. Includes defaults, but also the option to specify a YAML file. - Improved output for better readability - Made a whole bunch of tests work
* devtest: Make Python tests their own type of devtestMartin Braun2021-05-103-41/+68
| | | | | | | | | | | Like the example test, the Python-based test is now codified. The "special sauce" for Python tests revolves around the fact that they require the Python API, so we have to gracefully fail if the Python API was never enabled, but hard-fail when the Python API is enabled, but not working. This creates a new type of devtest (UHDPythonTestCase) and moves uhd_python_api_test over to the new type.
* RFNoc: Fix graph connect timeout errorMichael West2021-05-101-2/+3
| | | | | | | | | A loop in mgmt_portal::_validate_stream_setup() was missing a sleep, which was causing it to return long before the timeout with a timeout error. This change adds that sleep and reduces the duration of the sleep so it responds faster. Signed-off-by: Michael West <michael.west@ettus.com>
* n320: Add correction APIs to radio_control objectMartin Braun2021-05-062-0/+63
| | | | | | | | | | The N320, like the X310, has some frontend corrections (IQ balance, DC offset) which can be controlled from software. The property tree entries exist for these, but the radio_control APIs do not (which also disables the multi_usrp APIs). This makes it harder to disable DC offset or IQ balance corrections from software, and disables our calibration utilities.
* multi_usrp_rfnoc: Fix get_device()->get_tree()michael-west2021-05-051-6/+3
| | | | | | | | | | | | | | | Property tree access via the device tree was resulting in a segmentation fault because the device::_tree member was not properly initialized for the redirector_device class. The redirector_device also had a get_tree() method that was not actually called because the get_tree() method in the parent class was not declared virtual and all calls to get_tree() were done on the parent class (i.e. get_device()->get_tree(). - Added initializer for device::_tree member in redirector_device class constructor - Removed redirector_device::get_tree() method Signed-off-by: michael-west <michael.west@ettus.com>
* experts: Change coercion policy for regular prop nodesMartin Braun2021-05-042-6/+19
| | | | | | | | | | | | | | | | The experts framework has two ways of integrating expert nodes into the property tree: add_prop_node() and add_dual_prop_node(). In the latter case, the experts should take care of coercion, and thus, we subscribe to the desired value. In the former case, this is not necessary, and precludes us from using set_coercer() with prop nodes on the prop tree. This change lets us use regular nodes in the expert framework that also use property tree coercers. As of now, there is not a single property node in UHD that uses add_prop_node() and also does any kind of coercion, so this change has no effect on current code (this is only used in TwinRX as of now).