aboutsummaryrefslogtreecommitdiffstats
path: root/host/include
diff options
context:
space:
mode:
authorAshish Chaudhari <ashish@ettus.com>2018-07-19 17:08:45 -0700
committerMartin Braun <martin.braun@ettus.com>2018-07-24 14:39:08 -0700
commit8b16ab706fb4768f802ddb65a81fc26e1562cb0d (patch)
tree884a58e82ede9298795308688e898a01c931ac1f /host/include
parentdd9cc213ca5bd49783b3942d8486278aed8735c8 (diff)
downloaduhd-8b16ab706fb4768f802ddb65a81fc26e1562cb0d.tar.gz
uhd-8b16ab706fb4768f802ddb65a81fc26e1562cb0d.tar.bz2
uhd-8b16ab706fb4768f802ddb65a81fc26e1562cb0d.zip
rfnoc: Enabled SW flush mechanism impl'd in noc_shell
- 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
Diffstat (limited to 'host/include')
-rw-r--r--host/include/uhd/rfnoc/block_ctrl_base.hpp3
-rw-r--r--host/include/uhd/rfnoc/constants.hpp2
2 files changed, 4 insertions, 1 deletions
diff --git a/host/include/uhd/rfnoc/block_ctrl_base.hpp b/host/include/uhd/rfnoc/block_ctrl_base.hpp
index 63939a114..0405ed8b7 100644
--- a/host/include/uhd/rfnoc/block_ctrl_base.hpp
+++ b/host/include/uhd/rfnoc/block_ctrl_base.hpp
@@ -401,6 +401,9 @@ private:
//! Helper to create a lambda to read tick rate
double get_command_tick_rate(const size_t port);
+ //! Helper to flush any in-flight packets for this block
+ bool _flush(const size_t port = 0);
+
/***********************************************************************
* Private members
**********************************************************************/
diff --git a/host/include/uhd/rfnoc/constants.hpp b/host/include/uhd/rfnoc/constants.hpp
index 94cca3e7a..6df4c535f 100644
--- a/host/include/uhd/rfnoc/constants.hpp
+++ b/host/include/uhd/rfnoc/constants.hpp
@@ -25,7 +25,7 @@ static const std::string XML_PATH_ENV = "UHD_RFNOC_DIR";
//! If the block name can't be automatically detected, this name is used
static const std::string DEFAULT_BLOCK_NAME = "Block";
static const uint64_t DEFAULT_NOC_ID = 0xFFFFFFFFFFFFFFFF;
-static const size_t NOC_SHELL_COMPAT_MAJOR = 2;
+static const size_t NOC_SHELL_COMPAT_MAJOR = 3;
static const size_t NOC_SHELL_COMPAT_MINOR = 0;
static const size_t MAX_PACKET_SIZE = 8000; // bytes