B200: Fix overflow handling

- Use FPGA images with fixed sc12 converter.
- Properly flush channels and restart streaming in the case of an overrun.

Signed-off-by: michael-west <michael.west@ettus.com>
This commit is contained in:
michael-west 2021-07-26 14:42:41 -07:00 committed by Aaron Rossetto
parent c7849360a0
commit b38c9d8372
2 changed files with 13 additions and 18 deletions

View File

@ -496,28 +496,23 @@ void b200_impl::handle_overflow(const size_t radio_index)
_radio_perifs[radio_index].framer->in_continuous_streaming_mode();
// stop streaming
my_streamer->issue_stream_cmd(stream_cmd_t::STREAM_MODE_STOP_CONTINUOUS);
// flush demux
_demux->realloc_sid(B200_RX_DATA0_SID);
_demux->realloc_sid(B200_RX_DATA1_SID);
// flush actual transport
while (_data_transport->get_recv_buff(0.001)) {
}
// flush data
while (_demux->get_recv_buff(B200_RX_DATA0_SID, 0.001)) {}
while (_demux->get_recv_buff(B200_RX_DATA1_SID, 0.001)) {}
// restart streaming
if (in_continuous_streaming_mode) {
stream_cmd_t stream_cmd(stream_cmd_t::STREAM_MODE_START_CONTINUOUS);
stream_cmd.stream_now = false;
stream_cmd.time_spec =
_radio_perifs[radio_index].time64->get_time_now() + time_spec_t(0.01);
// FIXME: temporarily remove the start stream command.
// This will avoid an issue that gets the b210 in a bad state.
// my_streamer->issue_stream_cmd(stream_cmd);
my_streamer->issue_stream_cmd(stream_cmd);
}
} else {
while (_data_transport->get_recv_buff(0.001)) {
}
// FIXME: temporarily remove the overflow handling that re-issues a stream
// command. This will avoid an issue that gets the b210 in a bad state.
// _radio_perifs[radio_index].framer->handle_overflow();
const uint32_t sid = radio_index == 0 ? B200_RX_DATA0_SID : B200_RX_DATA1_SID;
// flush data
while (_demux->get_recv_buff(sid, 0.001)) {}
// restart streaming
_radio_perifs[radio_index].framer->handle_overflow();
}
}

View File

@ -38,10 +38,10 @@ n3xx_common_mender_default meta-ettus-v4.0.0.0 n3xx/meta-ettus-v4.0.0.0/n3
n3xx_common_sdimg_default meta-ettus-v4.0.0.0 n3xx/meta-ettus-v4.0.0.0/n3xx_common_sdimg_default-v4.0.0.0.zip 0
# B200-Series
b2xx_b200_fpga_default uhd-f2ec5c9 b2xx/uhd-f2ec5c9/b2xx_b200_fpga_default-gf2ec5c9.zip 026c3b2613ceabbe7f47e479c2933e41ca054e7b1f85a119d86d97b6df4ca744
b2xx_b200mini_fpga_default uhd-f2ec5c9 b2xx/uhd-f2ec5c9/b2xx_b200mini_fpga_default-gf2ec5c9.zip 3c122145a5bd23dc50ac35b9d18dfe3f3224eaed4242274765ada89c55838ce4
b2xx_b210_fpga_default uhd-f2ec5c9 b2xx/uhd-f2ec5c9/b2xx_b210_fpga_default-gf2ec5c9.zip 4eba82a362369cc21ba679a4debdcd6aabbc1ecea295eb4aefd94f2ba5e6ed70
b2xx_b205mini_fpga_default uhd-f2ec5c9 b2xx/uhd-f2ec5c9/b2xx_b205mini_fpga_default-gf2ec5c9.zip a38fcecabcef43d57e463aa50f0b07ba21d7e9211428fbc5ef47bfeb75542e93
b2xx_b200_fpga_default uhd-2cba65b b2xx/uhd-2cba65b/b2xx_b200_fpga_default-g2cba65b.zip 7ac22f3cf6a8dfe54c03c6d0d78420c1c28ed3d7f0b14cf04f4c54af798fe147
b2xx_b200mini_fpga_default uhd-2cba65b b2xx/uhd-2cba65b/b2xx_b200mini_fpga_default-g2cba65b.zip 057a43a46289de1e75161d40dadb2bc92fb320204cc3661c6d963feb20dfba80
b2xx_b210_fpga_default uhd-2cba65b b2xx/uhd-2cba65b/b2xx_b210_fpga_default-g2cba65b.zip 74d862654608061d36b62edc6afe21560710fc8c83aeab82d96d3db8561f2a6f
b2xx_b205mini_fpga_default uhd-2cba65b b2xx/uhd-2cba65b/b2xx_b205mini_fpga_default-g2cba65b.zip c86d9f844c650f2357a16d99a74efd43bdbf7e390ce45ca9463e8cf2868133a3
b2xx_common_fw_default uhd-7f7d016 b2xx/uhd-7f7d016/b2xx_common_fw_default-g7f7d016.zip 22ac0e54cc90d53d8494d481439447a0c89b9bbaced6fabe24df260eda3ce3a3
# USRP2 Devices