aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* fpga: Add Switchboard RFNoC blockJesse Zhang2020-07-308-0/+1162
|
* mpm: Default virtual NIC CHDR IP selectionSteven Koo2020-07-306-16/+50
| | | | | This change adds detection for setting the correct internal fpga CHDR IP address when using embedded mode.
* images: Update manifestSteven Koo2020-07-291-10/+10
|
* x300: Update maximum bitstream sizeWade Fife2020-07-281-1/+1
| | | | | | Add 2 bytes to account for Vivado update number, in addition to major, minor, and AR. For example the current Vivado version string might be 2019.1.1_AR73068 whereas the previous string was 2018.3_AR71898.
* mpm: Fix more gevent errors on SIGTERMSamuel O'Brien2020-07-281-6/+19
| | | | | | | | | | | | | Sometimes when running usrp_hwd.py in a terminal and then canceling it with Ctrl+C, it prints a really large stacktrace into the terminal resulting from an uncaught gevent BlockingSwitchOutError. This comes from trying to block on Process#join inside a gevent signal handler. This commit resolves this issue by simply triggering an event in the signal handler which prompts a different non-daemon thread to join the subprocesses and end the parent process. Signed-off-by: Samuel O'Brien <sam.obrien@ni.com>
* mpm: Fix documentation and minor issues in sys_utils.GPIOBankMartin Braun2020-07-281-6/+30
| | | | | | | | | | | - GPIOBank made the assumption that all bits used where contiguous. This amends the documentation to make that more clear, and adds an assert statement to check for that. - reset_all() would reset all pins, regardless of DDR value, rendering it useless for any GPIO bank that would want to have readable pins. Fixed that by checking DDR value before resetting. - Minor amendments to various docstrings; improve PyLint score by removing superfluous inheritance from object.
* docs: Fix daughterboard page formattingMartin Braun2020-07-241-3/+3
|
* mpm: Fix gevent errors on SIGTERMSamuel O'Brien2020-07-242-5/+13
| | | | | | | | | | | | | | | | | | | | | | Sometimes when running usrp_hwd.py in a terminal and then canceling it with Ctrl+C, it prints a really large stacktrace into the terminal resulting from an uncaught gevent BlockingSwitchOutError. It seems like there was an attempt to catch this in usrp_hwd.py:kill_time(). This try-except was surrounding a call to Process.join() which, to the best of my knowledge, can't ever throw this exception. Based on my troubleshooting, this error comes from the SIGTERM signal handler of the RPC process. The handler (defined in rpc_server.py:_rpc_server_process), is just a direct call to RPCServer.stop(). When the server's backed is a thread pool, this call may block when joining the thread pool, causing gevent to complain about execution attempting to block in a signal handler. This commit resolves this issue by simply triggering an event in the signal handler which prompts a different thread to clean up the server and end the process. Signed-off-by: Samuel O'Brien <sam.obrien@ni.com>
* fpga, mpm: Bump FPGA compat numberRobertWalstab2020-07-246-6/+6
|
* mpm: Don't index empty forwarding interface listAaron Rossetto2020-07-241-0/+1
| | | | | | If no internal interfaces are found to which to forward CHDR packets, return after printing the warning instead of attempting to index the empty list and generating an exception.
* mpm, mpmd: Bump MPM compat numberAaron Rossetto2020-07-242-2/+2
|
* rfnoc: Support instance overrides in set_properties()Aaron Rossetto2020-07-246-5/+85
| | | | | | | | | | | | | | | | | | | | | | | This commit adds an enhancement to node_t::set_properties() in which the instance argument provided to the function (which normally applies to all properties in the key/value list) can be overridden on a per-property basis using a special syntax. If the key consists of the property name followed by a colon (':') and then a number, the number following the colon is used to determine which instance of the property this set pertains to, and the value passed via the instance parameter is ignored for that property. For example, in the following call: node->set_properties("dog=10,cat:2=5,bird:0=0.5", 1) instance 1 of node's 'dog' property is set to 10, the 1 coming from the instance parameter, instance 2 of the node's 'cat' property is set to 5 due to the override syntax provided in the string, and instance 0 of the node's 'bird' property is set to 0.5 due to its override. If the name/instance pair is malformed, e.g. 'value:=10' or 'value:foobar=10', a runtime error is thrown.
* images: Update manifestRobertWalstab2020-07-221-8/+8
|
* TwinRX: Fix increased noise floormichael-west2020-07-211-1/+1
| | | | | | - Fixed bus width from 25 to 24 bits Signed-off-by: michael-west <michael.west@ettus.com>
* docs: Update PCIe xport instructions for NI ReposSteven Koo2020-07-201-46/+100
| | | | | This is an update to the documentation for installing the RIO PCIe transport infrastructure using the NI Linux Device Driver repository.
* cmakerc: Remove patch to CMakeRC.cmake (and move it one level up)Martin Braun2020-07-202-1/+1
| | | | | | | UHD's version of CMakeRC.cmake was patched from the upstream (see also 933eca1) to enable -fPIC for the RC targets. This can also be done outside of said file, avoiding us having to carry a patched version of CMakeRC, and using the vanilla upstream version instead.
* uhd: remove liberioRobertWalstab2020-07-2014-524/+2
|
* mpmd: remove liberioRobertWalstab2020-07-204-213/+0
|
* fpga: remove liberioRobertWalstab2020-07-204-127/+3
|
* fpga: rfnoc: Fix testbenches to run under ModelSimWade Fife2020-07-209-89/+68
| | | | | | This updates the makefiles for the testbenches so they can be run using "make modelsim" without any additional hacks. The "xsim" and "vsim" simulation targets also still work.
* fpga: e31x: Add gitignore fileMartin Braun2020-07-181-0/+8
|
* e31x: Minor cleanup on top-level e31x.v moduleMartin Braun2020-07-182-15/+14
| | | | | | - Fixed some incorrect comments - Fixed some missing wire declarations for internal NIC - Fix wire declarations for GPIO (they were declared too late)
* e31x: Swap out liberio for internal ethernet in the idle imageRobertWalstab2020-07-181-2/+2
|
* e31x: fpga: connect device_idRobertWalstab2020-07-181-1/+5
|
* filter API: Fix multi_usrp tx callsSteven Koo2020-07-171-4/+2
| | | | | Adding the fix to use fs_path instead of tx_rf_fe_root. This was done to the rx methods and should have been done for the tx ones as well.
* multi_usrp: Add get_radio_control() API callMartin Braun2020-07-165-0/+33
| | | | | This is an advanced API call that allows direct underlying access to the radio_control object for RFNoC devices.
* multi_usrp: Fix some documentationMartin Braun2020-07-161-1/+3
|
* dissector: Swap chdr_packet for chdr_packet_writerSamuel O'Brien2020-07-162-2/+2
| | | | | | | A recent commit changed the name of chdr_packet in uhd. This commit accounts for this change and makes the dissector compile again. Signed-off-by: Samuel O'Brien <sam.obrien@ni.com>
* fpga: rfnoc: Add RFNoC Moving Average blockWade Fife2020-07-169-0/+1642
|
* 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>