aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/x300/x300_impl.hpp
diff options
context:
space:
mode:
authorAshish Chaudhari <ashish@ettus.com>2014-06-27 10:50:51 -0700
committerAshish Chaudhari <ashish@ettus.com>2014-06-27 10:50:51 -0700
commit1bca847406dc4829fd6cfe0ba8bc49b83d25e1ee (patch)
tree0c248544b07d0f05d547526d035b932a4867e9d4 /host/lib/usrp/x300/x300_impl.hpp
parent96c30a11f2924fcb5f914f2922506fe6cfdd93ec (diff)
downloaduhd-1bca847406dc4829fd6cfe0ba8bc49b83d25e1ee.tar.gz
uhd-1bca847406dc4829fd6cfe0ba8bc49b83d25e1ee.tar.bz2
uhd-1bca847406dc4829fd6cfe0ba8bc49b83d25e1ee.zip
x300: Bugfix for overflows on PCIe at 200MS/s
Diffstat (limited to 'host/lib/usrp/x300/x300_impl.hpp')
-rw-r--r--host/lib/usrp/x300/x300_impl.hpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/host/lib/usrp/x300/x300_impl.hpp b/host/lib/usrp/x300/x300_impl.hpp
index 80f3e8faa..27f20fbd9 100644
--- a/host/lib/usrp/x300/x300_impl.hpp
+++ b/host/lib/usrp/x300/x300_impl.hpp
@@ -63,7 +63,11 @@ static const size_t X300_RX_SW_BUFF_SIZE_ETH_MACOS = 0x100000; //1Mib
static const double X300_RX_SW_BUFF_FULL_FACTOR = 0.90; //Buffer should ideally be 90% full.
static const size_t X300_RX_FC_REQUEST_FREQ = 32; //per flow-control window
-static const size_t X300_PCIE_DATA_FRAME_SIZE = 8192; //bytes
+//The FIFO closest to the DMA controller is 1023 elements deep for RX and 1029 elements deep for TX
+//where an element is 8 bytes. For best throughput ensure that the data frame fits in these buffers.
+//Also ensure that the kernel has enough frames to hold buffered TX and RX data
+static const size_t X300_PCIE_RX_DATA_FRAME_SIZE = 8184; //bytes
+static const size_t X300_PCIE_TX_DATA_FRAME_SIZE = 8192; //bytes
static const size_t X300_PCIE_DATA_NUM_FRAMES = 2048;
static const size_t X300_PCIE_MSG_FRAME_SIZE = 256; //bytes
static const size_t X300_PCIE_MSG_NUM_FRAMES = 32;