aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* python: Add moving average RFNoC block controller bindingsmattprost2020-07-163-0/+27
| | | | Signed-off-by: mattprost <matt.prost@ni.com>
* tests: Add unit test for Moving Average RFNoC blockmattprost2020-07-162-0/+111
| | | | Signed-off-by: mattprost <matt.prost@ni.com>
* rfnoc: Add Moving Average block controllermattprost2020-07-165-11/+182
| | | | Signed-off-by: mattprost <matt.prost@ni.com>
* n32x: Swap out liberio for internal EthernetRobertWalstab2020-07-161-30/+138
|
* mpm: systemd: systemd configuration are getting now installed under ↵RobertWalstab2020-07-163-3/+18
| | | | consideration of the device type
* mpm: remove class N3xxXportMgrLiberioRobertWalstab2020-07-161-15/+4
|
* n3xx: Swap out liberio for internal EthernetRobertWalstab2020-07-164-1115/+1262
|
* mpm: Fix a logging messageRobertWalstab2020-07-161-1/+1
|
* mpm: Enable internal NIC on the N3xxRobertWalstab2020-07-161-3/+12
|
* mpm: remove class E310XportMgrLiberioRobertWalstab2020-07-161-11/+4
|
* e31x: Swap out liberio for internal EthernetRobertWalstab2020-07-165-429/+522
|
* mpm: Enable internal NIC on the E310RobertWalstab2020-07-161-6/+28
|
* mpm: remove class E320XportMgrLiberioRobertWalstab2020-07-161-12/+5
|
* mpm: systemd: added systemd configuration files for networkJoerg Hofrichter2020-07-168-4/+63
| | | | | | | | | | | Added files which were previously maintained in meta-ettus repository but which are better placed alongside MPM itself: - eth0/int0/sfp0/sfp1.network: network configuration files - 70-sfp-net.rules: udev rule for automatically naming the network interfaces Signed-off-by: Joerg Hofrichter <joerg.hofrichter@ni.com>
* mpm: support forwarding CHDR packetsRobertWalstab2020-07-162-3/+77
|
* e320: Swap out liberio for internal EthernetAlex Williams2020-07-164-520/+532
|
* mpm: Enable internal NIC on the E320Alex Williams2020-07-161-0/+4
| | | | Add an entry for the internal NIC to E320.
* mpm,mpmd: Add iface type and mtu info for UDP linksAlex Williams2020-07-164-3/+19
| | | | | | This changes MTU handling for the "internal" UDP type. Because MPM echo packets will not be returned for internal NICs, use the iface's programmed MTU instead.
* mpm: Add support for internal Ethernet interfaceAndrew Lynch2020-07-164-12/+46
|
* mpm: Detect number of liberio channelsAlex Williams2020-07-162-5/+18
| | | | | Instead of using hard-coded values, detect the number of liberio channels, and only offer liberio links if they exist.
* python: Add payload agnostic methods to CHDR APISamuel O'Brien2020-07-163-1/+62
| | | | | | | | | | | | | | | | | | | | | | | | In the c++ api, methods like chdr_packet#set_payload() and chdr_packet#get_payload() are templated over the payload type (payload_t). For methods like set_payload, they are overloaded by the type of an argument, so in pybind we can just explicitly instaniate the template for each payload_t and register it with pybind under the same name. At runtime, pybind looks at the type of the argument and decides which to call. The problem arose with methods like get_payload, which are overloaded by return type. In C++, the compiler can infer the template type by the type of the target at the call site. In python, there is no way for the pybind to determine which variant of get_payload to call, and it would crash. Previously, the workaround for this was to declare get_payload_ctrl, get_payload_mgmt, etc, but this was rather anti-pythonic. This commit utilizes the fact that python methods don't have a constrained return type to resolve this. Now, get_payload will call a python method which looks at the chdr_packet#header#pkt_type field to determine which variant of get_payload to call and returns that type of payload_t. Signed-off-by: Samuel O'Brien <sam.obrien@ni.com>
* python: Document CHDR Test GenerationSamuel O'Brien2020-07-162-19/+44
| | | | | | | | | The script_test.py script is used to generate data .cpp files from a wireshark trace for the C++ CHDR Parser tests. This commit expands the script to also generate the data .py files for the Python CHDR Parser tests. Signed-off-by: Samuel O'Brien <sam.obrien@ni.com>
* python: Add bindings for C++ CHDR ParserSamuel O'Brien2020-07-1611-19/+47447
| | | | | | | | | | | | | This commit adds pybind11 glue code for the userland chdr parsing code introduced in the uhd::utils::chdr namespace. Additionally, it moves some pybind11 adapter code to a common pybind_adaptors.hpp file which originally existed in the cal_python.hpp file. This commit also adds unit tests for the python bindings using a captured wireshark trace which is located in rfnoc_packets_*.py and some handwritten packets in hardcoded_packets.py Signed-off-by: Samuel O'Brien <sam.obrien@ni.com>
* chdr: Assert Ctrl Packet Size Before SerializingSamuel O'Brien2020-07-161-3/+4
| | | | | | | | | | | | | | This commit alters the ctrl_payload#serialize function to assert the serialized length of the packet fits inside the buffer before writing. Originally, the function writes the data and then asserts that the final pointer position isn't further than the end of the buffer. While this works, if it were to fail, that means we have already caused undefined behavior by writing to some random memory location, which isn't good practice. This commit is possible now that the get_length method exists. Signed-off-by: Samuel O'Brien <sam.obrien@ni.com>
* mpm: utils: print error on minor compat number mismatch conditionallyJoerg Hofrichter2020-07-131-1/+2
| | | | | | If the minor compat number does not match (older than expected), then generate an error message only if argument fail_on_old_minor is True; generate a warning otherwise.
* README.md: Update tested/supported Windows version to Windows 10Steve Czabaniuk2020-07-131-1/+1
| | | | | | Microsoft support for Windows 7 ended January 14, 2020. UHD is still likely to work with Windows 7; however, any future testing/development will be done with Windows 10.
* utils: Expose CHDR Parsing APISamuel O'Brien2020-07-1317-13/+48472
| | | | | | | | | | | | This commit introduces a new public api in uhd::utils which allows serializing and deserializing chdr packets. As far as testing, this commit adds the chdr_parse_test test. It uses a wireshark trace located in rfnoc_packets_*.cpp as well as hand coded packets from hardcoded_packets.cpp to test the serialization and deserialization process Signed-off-by: Samuel O'Brien <sam.obrien@ni.com>
* utils: Expose CHDR Types in Public APIrobot-rover2020-07-1322-55/+109
| | | | | | | | | | This commit exposes uhdlib/rfnoc/chdr_types.hpp in the public includes. Additionally, it takes some types from uhdlib/rfnoc/rfnoc_common.hpp and exposes them publicly in uhd/rfnoc/rfnoc_types.hpp. Finally, one constant is moved from uhdlib/rfnoc/rfnoc_common.hpp to uhd/rfnoc/constants.hpp Signed-off-by: robot-rover <sam.obrien@ni.com>
* rfnoc: Rename chdr_packet to chdr_packet_writerSamuel O'Brien2020-07-1318-74/+76
| | | | | | | | | It would be confusing to have two classes named chdr_packet. As it makes more sense to name the new public chdr parser class chdr_packet, the internal uhd::rfnoc::chdr::chdr_packet class is being renamed to chdr_packet_writer to better represent its functionality. Signed-off-by: Samuel O'Brien <sam.obrien@ni.com>
* utils: Fix prefix determination in get_lib_path()Ryan Volz2020-07-131-1/+3
| | | | | | | | | | | | | | | | | | | | get_lib_path() uses the libuhd location on disk to dynamically determine the installation prefix at runtime. This fix normalizes the libuhd path before any path operations are done to extract the library directory and then prefix directory. Previously, using a non-normalized library path, the returned prefix directory would be incorrect in some cases (e.g. when loaded through GNU Radio). In these error cases, the libuhd path would be $PREFIX/lib/./libuhd.so (with a no-op /. inserted) which would result in a technically correct library directory of `$PREFIX/lib/.` but an incorrect prefix directory of `$PREFIX/lib`. With the normalization fix, the libuhd path is corrected to $PREFIX/lib/libuhd.so and the subsequent path manipulation to get the library and prefix directories will work as intended.
* fpga: lib: modify ctrlport decoder to Verilog 2001 compatible syntaxMax Köhler2020-07-101-39/+41
|
* utils: Make uhd_config_info print help by defaultDerek Kozel2020-07-091-1/+1
|
* ad9361: Fix mask for product ID checkBrian Padalino2020-07-091-1/+1
| | | | | | | | The product ID check should be masked with 0xF8 and checked to be 0x08. With a device off and weak pull-ups, the readback would always read 0xFF, passing the ID check when it obviously wasn't there. Extending the mask to be 0xF8 shows that both 0's and 1's are read back from the device.
* uhd: Make sure generated file is closedRyan Volz2020-07-091-1/+2
| | | | | | Letting garbage collection close the file works when using CPython, but it fails with PyPy which uses a different garbage collection strategy. This makes sure that the file is closed by using a file context manager.
* docs: n3xx: Include WX in table of N320 imagesSteve Czabaniuk2020-07-091-8/+8
|
* docs: Add comments on mpm.confMartin Braun2020-07-093-2/+66
| | | | | This adds some more details on mpm.conf, what it does, how it works, and which keys it accepts.
* mpm: Fix various Pylint issuesMartin Braun2020-07-095-13/+9
| | | | | | | | No functional changes. Fixes for things that PyLint complains about, but are safe to change anyway, as well as a minor improvement to a docstring that referenced non-existant args. This touches files that are mpm.conf-related.
* cores: Remove shutdown function from spi_core_3000Martin Braun2020-07-082-21/+0
| | | | | | | | This effectively reverts 0433e74. The set_shutdown() and get_shutdown() API calls do not have a counterpart in simple_spi_core.v, which is typically the HDL endpoint for this core driver, and thus could write to a non-existent register. They are also never used in UHD, nor are they part of the spi_iface interface.
* e3xx: Remove superfluous commentsMartin Braun2020-07-081-11/+0
| | | | This removes some comment that include code that still gets executed.
* meta-ettus: remove io_type.hppSteven Koo2020-07-082-66/+0
| | | | | | | io_type's implementation was removed when host/lib/depricated.cpp was removed. This commit also removes the hpp and installation. Signed-off-by: Steven Koo <steven.koo@ni.com>
* fpga: n3xx: Fix White Rabbit imagesWade Fife2020-07-011-3/+19
| | | | Unused CHDR port was not being drained of discovery packets.
* fpga: lib: Add width agnostic version of Ethernet InterfaceAndrew Moch2020-06-3014-0/+3340
| | | | | | | | | | | | | | | | | | The rnfoc/xport section is refactored in System Verilog to allow the following improvements (1) CPU_W - Sets the size of the c2e and e2c pipes. This can be run at a different clock rate than the main ethernet pipe (2) CHDR_W - Sets the size of the v2e and e2v pipes. This can be run at a different clock rate than the main ethernet pipe (3) ENET_W - Sets the size of the eth_tx and eth_rx pipes. eth_interface_tb runs traffic from e2c,e2v,v2e,c2e simultaneously against the original xport_sv implementation, and against the new implementation with widths of 64/128/512. A chdr_management node info request queries the port info of the node0 in the eth_interface. eth_ifc_synth_test.sv can be compiled with the make xsim target to test out the size of various configurations.
* rfnoc: Add unit test for Log Power RFNoC blockAaron Rossetto2020-06-292-0/+85
|
* rfnoc: Add Log Power RFNoC block supportAaron Rossetto2020-06-295-0/+88
|
* fpga: rfnoc: Add Log-Power blockWade Fife2020-06-297-0/+1062
|
* fpga: rfnoc: Fix chdr_update_length functionWade Fife2020-06-291-1/+1
|
* python: Add window RFNoC block controller bindingsAaron Rossetto2020-06-293-1/+25
|
* rfnoc: Add unit test for Window RFNoC blockAaron Rossetto2020-06-292-0/+252
|
* rfnoc: Add window RFNoC block controllerAaron Rossetto2020-06-295-0/+220
|
* fpga: rfnoc: Add RFNoC Window blockWade Fife2020-06-299-0/+1510
|