aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrent Stapleton <brent.stapleton@ettus.com>2018-12-13 16:47:39 -0800
committermichael-west <michael.west@ettus.com>2018-12-17 13:41:12 -0800
commit9f1ff2d2d3022c2e02d1a555ec9048abc737d81e (patch)
tree35c1b847cc3da16b55367f836f3c08676d4fee16
parentTwinRX: Make routing to LO1 and LO2 mutually exclusive (diff)
downloaduhd-9f1ff2d2d3022c2e02d1a555ec9048abc737d81e.tar.xz
uhd-9f1ff2d2d3022c2e02d1a555ec9048abc737d81e.zip
Device3: Set default block control response SIDs
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.
-rw-r--r--host/lib/rfnoc/block_ctrl_base.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/host/lib/rfnoc/block_ctrl_base.cpp b/host/lib/rfnoc/block_ctrl_base.cpp
index ceba61c3c..c2475e7b8 100644
--- a/host/lib/rfnoc/block_ctrl_base.cpp
+++ b/host/lib/rfnoc/block_ctrl_base.cpp
@@ -105,6 +105,10 @@ block_ctrl_base::block_ctrl_base(
size_t buf_size_bytes = BYTES_PER_LINE * (1 << buf_size_log2); // Bytes == 8 * 2^x
if (buf_size_bytes > 0) n_valid_input_buffers++;
_tree->create<size_t>(_root_path / "input_buffer_size" / ctrl_port).set(buf_size_bytes);
+ // Set default destination SIDs
+ // Otherwise, the default is someone else's SID, which we don't want
+ sr_write(SR_RESP_IN_DST_SID, 0xFFFF, ctrl_port);
+ sr_write(SR_RESP_OUT_DST_SID, 0xFFFF, ctrl_port);
}
/*** Register names *****************************************************/