aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/rfnoc/block_ctrl_base.cpp
Commit message (Collapse)AuthorAgeFilesLines
* lib: rfnoc: apply clang-formatMartin Braun2019-01-171-208/+206
| | | | | | This is a continuation of 967be2a4. $ clang-format -i -style=file host/lib/rfnoc/*.cpp
* Device3: Fix block control flushingBrent Stapleton2018-12-171-18/+25
| | | | | | | | | | | | | | | | | | | - Factor out the _start_drain helper function, which starts flushing data out of the block. We should always be disabling flow control after we write to the flushing registers. - Always attempt to flush when calling the _flush function. Previously, we would check if data appeared to be moving when _flush was called, and only write to the flush registers if data was moving. However, if data is stuck for some reason (for example, the block ran out of flow control credits), this check will give us a false positive, and we won't flush. Instead, we need to always begin the flushing process, then check those counters, and return once the counters stop changing. Note: we need to start flushing before disabling flow control so that the flushed data isn't flooded onto the crossbar. Co-authored-by: michael-west <michael.west@ettus.com> Co-authored-by: Sugandha Gupta <sugandha.gupta@ettus.com>
* Device3: Set default block control response SIDsBrent Stapleton2018-12-171-0/+4
| | | | | | | | | | | In the block controllers, set the default response SIDs for input and output ports. If we don't do this, the blocks may send their responses to other blocks' responses ports. For example, without this change, the DDC may send an error packet to port 0x0000, which is assigned to the DmaFIFO. With this change, the DDC would send that packet to 0xFFFF, which isn't assigned to any other block.
* block_ctrl_base: add UHD_SAFE_CALL to destructorTrung Tran2018-10-241-13/+15
| | | | | This will stop the exception throw during destructor of E310 where new FPGA image(idle image) is load.
* RFNoC: Convert SR_READBACK_REG_FIFOSIZE to bytesTrung N Tran2018-08-221-3/+1
| | | | | Change the RB_FIFOSIZE register to store the FIFO size in bytes instead of log2 of bytes.
* rfnoc: Enabled SW flush mechanism impl'd in noc_shellAshish Chaudhari2018-07-241-2/+84
| | | | | | | | | | | - UHD will now "disconnect" the noc_block data-path from the crossbar when the block's dtor is invoked. This allows long running or slow blocks to empty out rapidly during teardown. - UHD will also attempt to flush at init time in case a block is destroyed abnormally. The goal of the flush mechanism is to not lock up the FPGA - noc_shell compat number is now 3
* UHD: Update copyright datesMartin Braun2018-06-221-1/+1
|
* X300: Temporary suppression of warning regarding number of input buffersMichael West2018-05-151-8/+8
|
* fixup! rfnoc: Update logging in some blocksTrung N Tran2018-03-301-1/+1
|
* rfnoc: Update logging in some blocksMartin Braun2018-03-301-31/+32
| | | | | | | | | | Updated the following blocks and components: Radio, DmaFIFO, block_ctrl_base and node_ctrl_base, blockdef_xml_impl, device3_impl. No functional changes. - Demoted some log messages - Consistent log style (use unique_id()) - Some adaptation of coding style where close to log statements
* rfnoc: ctrl_iface cleanupMartin Braun2018-03-161-51/+36
| | | | | | | | | | - ctrl_iface is now longer a wb_iface. All it can do now is send command packets, and receive responses to those. - ctrl_iface does not store command time or tick rate - wb_iface_adapter is no longer a set of functors, but a wrapper around ctrl_iface. Command times are stored once, in the block. - DMA FIFO and radio block controllers have an easier time getting access to a timed_wb_iface
* uhd: Move internal headers to uhdlib/Martin Braun2018-03-141-1/+1
| | | | | | | | | | | | | | | | To avoid the proliferation of additional include directories and multiple ways of including project-local headers, we now default to moving all headers that are used across UHD into the uhdlib/ subdirectory. Some #include statements were also reordered as they were modified for closer compliance with the coding guidelines. Internal cpp source files should now include files like this: #include <uhdlib/rfnoc/ctrl_iface.hpp> Reviewed-by: Ashish Chaudhari <ashish.chaudhari@ettus.com>
* uhd: Fix some log statementsAndrej Rode2018-03-071-1/+0
| | | | Some log statements were incorrectly using multi-line log statements.
* uhd: Update license headersMartin Braun2018-02-191-1/+2
| | | | | | | All copyright is now attributed to "Ettus Research, a National Instruments company". SPDX headers were also updated to latest version 3.0.
* rfnoc: Check noc_shell compat number at runtimeMartin Braun2018-02-191-7/+19
|
* rfnoc: Fix named readback of user_reg_read32()Martin Braun2018-01-051-1/+1
| | | | Thanks to github user mdmikh for pointing out problem and fix.
* Move all license headers to SPDX format.Martin Braun2017-12-221-12/+1
|
* uhd: Replaced many lexical_cast with appropriate C++11 equivalentsMartin Braun2017-06-291-6/+6
|
* Merge branch 'maint'Martin Braun2017-04-131-0/+5
|\
| * rfnoc: Add set_command_time hook to radio blockDerek Kozel2017-04-131-0/+5
| |
* | utils: introduce new logging API and remove msg APIAndrej Rode2017-02-201-15/+15
| |
* | uhd: replace BOOST_FOREACH with C++11 range-based for loopAndrej Rode2017-02-101-15/+14
| | | | | | | | | | Note: This is the first commit that uses for-range, and range-based for-loops are now usable for UHD development.
* | Merge branch 'maint'Martin Braun2017-01-171-1/+0
|\|
| * lib: remove statements after throwAndrej Rode2017-01-121-1/+0
| |
* | Merge branch 'maint'Martin Braun2016-11-281-1/+1
|\|
| * rfnoc: Matched signatures for clear()Martin Braun2016-11-281-1/+1
| |
* | rfnoc: Removed transport endianness as make argMartin Braun2016-11-091-1/+0
|/ | | | | | | | | This is only confusing, since the blocks do not have to care about endianness. The control interface needs to know (and takes care of it internally), and the streaming transport does the same (and does not directly connect to blocks). Reviewed-By: Michael West <michael.west@ettus.com>
* Remove all boost:: namespace prefix for uint32_t, int32_t etc. (fixed-width ↵Martin Braun2016-11-081-17/+17
| | | | | | | | types) - Also removes all references to boost/cstdint.hpp and replaces it with stdint.h (The 'correct' replacement would be <cstdint>, but not all of our compilers support that).
* Merging RFNoC support for X310Martin Braun2016-08-091-0/+587