aboutsummaryrefslogtreecommitdiffstats
path: root/host/utils
Commit message (Collapse)AuthorAgeFilesLines
* python: Change default name for rfnoc_image_coreWade Fife2020-08-101-4/+5
| | | | | | | | This changes the default name of the image core file to <DEVICE>_rfnoc_image_core.v instead of naming it after the YAML file. This ensures that when you use a custom YAML file, the resulting FPGA build will use the generated rfnoc_image_core and static_router files, rather than just the generated static_router file.
* utils: Make uhd_config_info print help by defaultDerek Kozel2020-07-091-1/+1
|
* test: Use git hashes to verify flatbuffers schemaLars Amsel2020-06-231-55/+78
| | | | | | | | | | | | Each version of flatbuffers (might) generate different header files for the same schema file. Therefore we cannot compare the content of the generated headers to detect changes in the schema that are not accompanied by a change in the generated header. To have at least a minimal check that the schema matches the generated header we compare the git hashes of both. We will not allow to change the schema without changing the header and vice versa. This condition is checked by a unit test.
* utils: update_fbs.py: Minor refactor, fix path bugMartin Braun2020-06-221-9/+15
| | | | | | | - The UHD auto-detection was broken. Now it can find UHD in the same directory. - The main() function was split into main() and run(), which would allow loading this module and calling run() as it's own function.
* utils: Make uhd_images_downloader raise warning for invalid pathsSteve Czabaniuk2020-06-221-11/+21
| | | | | This makes the utility warn the user when they pass a path argument that is invalid; the utility falls back to defaults if this occurs.
* cal: Add automated port switchLars Amsel2020-06-171-1/+9
| | | | | | | | | | | | | | | | | Current implementation needed manual interaction to calibrate each antenna. More sophisticated setups are able to switch between channels and antennas programmatically. This commit introduces a base class that handle the switch behaviour. The previous implementation moved to a ManualSwitch class which is the default switch. Without any options the previous flow remains unchanged. A new class is able to handle NI switch models. The switch port can be given via options parameter (comA is default). The channels are connected in ascending order. The user has to ensure that the cable setup matches the order given for channels and antennas. Co-authored-by: Martin Braun <martin.braun@ettus.com>
* utils: Make fpga-dir arg optional for rfnoc_image_builderWade Fife2020-06-051-12/+34
|
* utils/python: Add uhd_power_cal scriptMartin Braun2020-05-282-0/+251
| | | | This is a tool for running power calibration.
* utils: Let uhd_images_downloader also use HTTPS proxiesMartin Braun2020-05-271-3/+4
| | | | | | This complements b721621. In that commit, we directly go to HTTPS, but in either case (direct or indirect) the --http-proxy command line argument did not use the proxy for https.
* utils: Fix FPGA search in rfnoc_image_builder from fpga-src to fpgaMartin Braun2020-05-201-1/+1
| | | | | When the FPGA repository was merged back into the UHD repository, this line was forgotten.
* utils: Fix usrp_burn_db_eeprom w.r.t. new property tree pathsMartin Braun2020-05-151-15/+38
| | | | | usrp_burn_db_eeprom operates directly on property tree paths, and so the utility required an update to work with RFNoC devices.
* utils: Correct relative path to config dir in rfnoc_image_builderAaron Rossetto2020-05-151-1/+1
| | | | | | | | | In commit 6a488d32, the RFNoC image builder module was moved from the host/utils/bin subdirectory to host/utils. That move rendered the relative path to the configuration directory in `get_config_path()` incorrect. This commit fixes the relative path specification of the configuration directory to reflect the new location of the Python script.
* utils: Remove 'six' dependency, fix minor PyLint issuesMartin Braun2020-05-121-9/+8
| | | | | | | This removes the 'six' dependency from converter_benchmark, thus making the utils subdirectory no longer depend on six. A few Python2-isms and PyLint issues were also fixed.
* utils: Update mako to propagate parametersWade Fife2020-05-112-13/+27
| | | | | | This cleans up the default parameters generated for the testbench template and adds the block parameters to the block and noc_shell instances so they can be used without having to remember to add them.
* Remove remaining Python 2 referencesMartin Braun2020-05-0713-15/+11
| | | | | | | This changes two things in all applicable files: - Remove imports from __future__ - Change default shebangs from /usr/bin/env python to /usr/bin/env python3
* python: Move the rfnoc image builder module under the uhd moduleMartin Braun2020-05-0520-1563/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Note: This commit changes nothing to the way the image builder is being called. One can still run rfnoc_image_builder [...] as before. The difference is in the Python guts: Where previously one had to do import rfnoc now the incantation becomes: from uhd import imgbuilder (Note that the submodule uhd.rfnoc already exists for wrapping the RFNoC API into Python, hence the renaming from rfnoc to imgbuilder). This is done for a variety of reasons: - Now, there is only one and exactly one Python module for UHD that contains all the things, as opposed to before where there were two. - The rfnoc and uhd modules were installed in different ways (setuptools vs. CMake); that is now harmonized. This also removes a lot of CMake plumbing. - It is not common to import the rfnoc module for anyone other than rfnoc_image_builder
* uhd: Replaced deprecated usage of boost timer with std::chronoLars Amsel2020-05-041-3/+5
| | | | | replaced boost::timer by std::chrono::steady_timer to measure time interval
* utils: Remove trailing white space from mako templatesWade Fife2020-04-302-4/+4
|
* utils: Fix typo in testbench mako templateWade Fife2020-04-301-1/+1
|
* utils: Update copyright generated by blocktoolWade Fife2020-04-235-5/+5
| | | | | Updated to output current year. Changed capitalization and wording to be consistent with exisiting code.
* utils: Add sideband_at_end support to Mako templateWade Fife2020-04-213-15/+22
| | | | | | | | This adds a new option to the "AXI-Stream Data" (axis_data) FPGA interface type. The new option, "sideband_at_end", can be added to the output port of a block's YAML description to control whether the sideband information should be sampled at the end (sideband_at_end: 1) or the beginning (sideband_at_end: 0) of the AXI-Stream packet.
* utils: Add --lib-path option to uhd_config_infoMartin Braun2020-04-171-0/+4
| | | | This will print the path to the UHD library using get_lib_path().
* cal: Add utility to update all .fbs files, or check the generated onesMartin Braun2020-04-171-0/+126
| | | | | | | | | | | | Calling ./update_fbs.py will update all the generated files. ./update_fbs.py -V will check if the generated files are OK, and return non-zero if not.
* utils: usrp_burn_mb_eeprom: Avoid EEPROM write in read only casesteviez2020-04-151-17/+19
| | | | | | The usrp_burn_mb_eeprom previously updated the EEPROM at the end of the script, regardless of whether any values were actually specified for write. This skips the EEPROM write for read only usage.
* utils: Fix comment in axis_data templateWade Fife2020-04-141-1/+1
|
* utils: cal: Remove boost usage from usrp_cal_utils.hppMartin Braun2020-04-021-3/+0
| | | | | There were spurious boost includes left in here after applying 7ad64600f and a1f96194.
* utils: cal: Enable "ignore cal file" option for DC and IQ cal toolsMartin Braun2020-04-021-5/+5
| | | | | | | | | | | The utilities uhd_cal_rx_iq_balance, uhd_cal_tx_iq_balance, and uhd_cal_tx_dc_offset now add the flags to ignore cal files. Otherwise, the utility would load existing cal data before generating new cal data. Note that this is not a huge problem, because the cal coefficients get overwritten during the cal process, but is unnecessary disk I/O. This commit also happens to remove all boost::format uses within usrp_cal_utils.hpp.
* utils: Add convert_cal_data utilityMartin Braun2020-04-022-0/+105
| | | | | | | | | This will convert cal data files based on CSV to the new binary format. In most cases, running ./convert_cal_data.py is sufficient.
* uhd: cal: Use usrp::cal::database instead of CSV filesMartin Braun2020-04-021-24/+11
| | | | | | | | | Now that we have cal::iq_cal and cal::database, there's no need to manually wrangle CSV files for calibration data. This commit replaces all CSV operations with cal::database calls and uses cal::iq_cal as a container. CSV files can still be read, but are considered deprecated.
* utils: uhd_usrp_probe: Output frontend infoMichael West2020-03-311-5/+13
| | | | | | Add output of frontend info for RFNoC devices. Signed-off-by: Michael West <michael.west@ettus.com>
* utils: uhd_images_downloader: use HTTPS instead of HTTP to avoid redirectMarcus Müller2020-03-201-1/+1
| | | | | | | | Since the webserver responding to requests at http://files.ettus.com replies with a redirect to the same URL, but using the https:// transport, this isn't only the safer thing we should be doing, anyways, but also the quicker, since it saves the user from one unnecessary redirect.
* utils: cal: Replace property tree accesses with other API callsMartin Braun2020-03-121-43/+35
| | | | | | | | | | The cal utils read the property tree to identify the daughterboard information (serial, type, etc.). The paths for properties have changed in UHD 4.0, causing these utilities to fail. Instead of conditionally parsing the property tree, this commit changes the utilities such that dictionaries are pulled out of the multi_usrp object, which work regardless of the device type.
* utils/C API: Fix property tree accessMartin Braun2020-03-122-4/+4
| | | | | | | | | | The introduction of multi_usrp_rfnoc caused multi_usrp::get_device()->get_tree() to segfault for gen3 devices. In defcb174, we introduced a fix for this (multi_usrp::get_tree()) but we didn't apply it to internal utilities. That means the uhd_cal_* utilties were broken, along with certain sections of the C API, and the latency test suite. This fixes the segfault issue.
* examples: Update gain block testbench to use samplesWade Fife2020-03-091-1/+1
|
* sim: Parameterize chdr_word_t data typeWade Fife2020-03-091-1/+6
| | | | | | | | | | | | | | | | | | This replaces chdr_word_t, which was a statically defined 64-bit data type, with a paramaterizable data type that matches the defined CHDR_W. Code that formerly referenced the chdr_word_t data type can now define the data type for their desired CHDR_W and ITEM_W as follows: // Define the CHDR word and item/sample data types typedef ChdrData #(CHDR_W, ITEM_W)::chdr_word_t chdr_word_t; typedef ChdrData #(CHDR_W, ITEM_W)::item_t item_t; ITEM_W is optional when defining chdr_word_t if items are not needed. Static methods in the ChdrData class also provide the ability to convert between CHDR words and data items. For example: // Convert CHDR data buffer to a buffer of samples samples = ChdrData#(CHDR_W, ITEM_W)::chdr_to_item(data);
* uhd: Apply clang-format against all .cpp and .hpp files in host/Martin Braun2020-03-035-69/+72
| | | | | Note: template_lvbitx.{cpp,hpp} need to be excluded from the list of files that clang-format gets applied against.
* utils: images downloader: Add support for UHD_IMAGES_URL, clean upMartin Braun2020-02-191-35/+29
| | | | | | - Remove Python2 compat hacks - Read the UHD_IMAGES_URL environment variable. If set, it overrides the default value for --base-url
* utils: images downloader: Handle missing content-length responseMartin Braun2020-02-191-7/+18
| | | | | | If the content-length header is not available, uhd_images_downloader will now ask the user if she wants to continue. Previously, the tool would throw an exception.
* utils: image_downloader: check write conditionssteviez2020-02-181-0/+13
| | | | | | | | | | Prior to downloading any images, check that the images destination: - Is a valid directory - Has valid permissions for images to be written Images are downloaded to a temporary location before being written to image destination, so these checks help avoid situation where images are downloaded but unable to be written
* fixup! utils: blocktool: Fix blocktoolWade Fife2020-02-062-5/+5
|
* utils: images_downloader: adding usage docsBrent Stapleton2020-01-221-2/+29
| | | | | Adding more details on uhd_images_downloader usage, as well as some technical details.
* cal_utils: fixup typoBrent Stapleton2020-01-091-1/+1
|
* image builder: Add ability to pick up extra Makefile.srcs from YAMLSMartin Braun2019-11-261-1/+18
| | | | | | | | | | | | | | The blocks that are neither OOT, nor core blocks (like the DDC/DUC, etc.) require additional info to find their appropriate Makefile.srcs files. We don't include them in every build, to avoid building IP for the FFT, FIR, and other blocks when they're not needed. However, those blocks are in-tree, and don't follow the same directory structure as out-of-tree modules, either. We therefore allow the YAML files for those blocks (which are shipped with UHD) to contain a path hint to their appropriate Makefile.srcs. The image builder uses those paths to amend the `make` command appropriately.
* utils: image builder: Factor out some data to top of image_builder.pyMartin Braun2019-11-261-31/+41
| | | | | For easier maintenance, some constants like paths and maps were moved to the top of the Python file.
* rfnoc: image builder: Fix include pathsMartin Braun2019-11-262-6/+16
| | | | | | The -I option was broken in multiple ways: - Multiple -I options would only keep the last one - The call to make did not actually append RFNOC_OOT_MAKEFILE_SRCS
* utils: blocktool: Fix blocktoolWade Fife2019-11-2625-585/+1402
| | | | | | | | | | - Fix mako paths to run from anywhere - Correct code errors and clean up generated code - Add support for port parameters - Add support for axis_data interface - Fix NoC shell reset handling - Replace Python functions with Verilog $clog2 - Allow input and output to share port name
* utils: image_builder: Support parameterized number of ports on blocksWade Fife2019-11-264-47/+76
|
* rfnoc: image_builder: Fix -I, allow devices/targets to bet set in YAMLMartin Braun2019-11-262-19/+21
| | | | | | | - The -I switch now allows pointing to an OOT - The image core file may now contain keys 'device' and 'default_target', which the image builder can use as default values. Command line switches --device and --target are still honoured.
* utils: image_builder: Fix ordering of noc_blocks, portsSugandha Gupta2019-11-261-6/+25
| | | | | | The ports in the fpga need to be ordered to make correct connections in verilog. This also keeps generated verilog constant across runs.
* uhd: Replace all occurrences of boost::bind with std::bindMartin Braun2019-11-263-3/+6
| | | | | | | | | | | | | | | | | | | | | Note: Replacing everything with a lambda would be even better, but that can't be easily scripted so we'll do this as a first step to reduce the Boost footprint. This also removes occurences of #include <boost/bind.hpp>, and makes sure all usages of std::bind have an #include <functional>. clang-format wasn't always applied to minimize the changeset in this commit, however, it was applied to the blocks of #includes. Due to conflicts with other Boost libraries, the placeholders _1, _2, etc. could not be directly used, but had to be explicitly called out (as std::placeholders::_1, etc.). This makes the use of std::bind even uglier, which serves as another reminder that using std::bind (and even more so, boost::bind) should be avoided. nirio/rpc/rpc_client.cpp still contains a reference to boost::bind. It was not possible to remove it by simply doing a search and replace, so it will be removed in a separate commit.