aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--host/lib/rfnoc/legacy_compat.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/host/lib/rfnoc/legacy_compat.cpp b/host/lib/rfnoc/legacy_compat.cpp
index 70fe067f8..7b80bf175 100644
--- a/host/lib/rfnoc/legacy_compat.cpp
+++ b/host/lib/rfnoc/legacy_compat.cpp
@@ -520,7 +520,10 @@ private: // methods
) {
if (dir == uhd::TX_DIRECTION) {
if (_has_sramfifo) {
- return block_id_t(mboard_idx, SFIFO_BLOCK_NAME, radio_index).to_string();
+ const size_t sfifo_idx =
+ radio_index * _num_tx_chans_per_radio + port_index;
+ port_index = 0;
+ return block_id_t(mboard_idx, SFIFO_BLOCK_NAME, sfifo_idx).to_string();
} else if (_has_dmafifo) {
port_index = radio_index;
return block_id_t(mboard_idx, DFIFO_BLOCK_NAME, 0).to_string();
@@ -738,8 +741,11 @@ private: // methods
// Prioritize SRAM over DRAM for performance
if (_has_sramfifo) {
// We have SRAM FIFO *and* DUCs
+ // SRAM FIFOs have only 1 channel per block
+ const size_t sfifo_idx =
+ _num_tx_chans_per_radio * radio + chan;
_graph->connect(
- block_id_t(mboard, SFIFO_BLOCK_NAME, radio), chan,
+ block_id_t(mboard, SFIFO_BLOCK_NAME, sfifo_idx), chan,
block_id_t(mboard, DUC_BLOCK_NAME, radio), chan,
tx_bpp
);
@@ -753,8 +759,11 @@ private: // methods
}
} else if (_has_sramfifo) {
// We have SRAM FIFO, *no* DUCs
+ // SRAM FIFOs have only 1 channel per block
+ const size_t sfifo_idx =
+ _num_tx_chans_per_radio * radio + chan;
_graph->connect(
- block_id_t(mboard, SFIFO_BLOCK_NAME, radio), radio,
+ block_id_t(mboard, SFIFO_BLOCK_NAME, sfifo_idx), 0,
block_id_t(mboard, RADIO_BLOCK_NAME, radio), chan,
tx_bpp
);