Commit graph

86 commits

Author SHA1 Message Date
Josh Blum
d35b732771 Merge branch 'flow_ctrl' into next 2010-11-23 09:57:33 -08:00
Josh Blum
e7b98030eb usrp2: ms didnt seem to like unlocking an unlocked mutex 2010-11-22 12:23:04 -08:00
Nick Foster
95cf7753c1 Merge branch 'master' of ettus.sourcerepo.com:ettus/uhdpriv into flow_ctrl
Conflicts:
	host/lib/transport/udp_simple.cpp
	host/lib/usrp/usrp2/mboard_impl.cpp
	host/lib/usrp/usrp2/usrp2_iface.cpp
	host/lib/usrp/usrp2/usrp2_regs.hpp
2010-11-17 18:31:21 -08:00
Josh Blum
c5043c6aec usrp: use a spawn thread to ensure that a pirate is spawned before continuing (fixes lockup issue) 2010-11-16 11:59:23 -08:00
Josh Blum
81c9f77306 usrp2: implemented clear state for RX and TX control, and zero sample command support 2010-11-08 17:22:37 -08:00
Josh Blum
2628d78e0d Merge branch 'usrp2_overflow' into flow_ctrl
Conflicts:
	host/lib/usrp/usrp2/usrp2_impl.hpp
2010-10-21 15:32:20 -07:00
Josh Blum
bd59192bd4 usrp2: handle real overflow packets in host, reload continuous stream cmd, remove firmware handling 2010-10-21 12:27:49 -07:00
Josh Blum
5bf9e60baf Merge branch 'master' into flow_ctrl
Conflicts:
	host/lib/usrp/usrp2/io_impl.cpp
2010-10-18 17:04:08 -07:00
Josh Blum
816a07bee5 usrp2: make the booty smaller than the number of recv frames
This may fix some of our woes when the host cannot keep up.
That is, with a smaller booty, the managed buffers will get
freed up and the call to get buffer will never block waiting
for a buffer to become free. This has several side effects:

1)
Overflows are more likely to occur in the pirate thread.
Pirate-based overflows will overwrite old packets, whereas
socket-based overflows will discard newer incoming packets.

2)
The pirate thread will continue to pull in async packets
rather than loosing them in a socket-based overflow.
2010-10-16 01:18:47 -07:00
Josh Blum
a2abd6bc61 usrp2: dont need to start streaming for this hack 2010-10-15 17:05:45 -07:00
Josh Blum
972fae172a usrp2: temp fix to send dummy packets and flush so FPGA vita machine are in known state 2010-10-15 14:37:26 -07:00
Josh Blum
4582a2deb3 usrp2: move udp port initialization into mboard impl so its done before async registers are setup 2010-10-14 11:51:48 -07:00
Josh Blum
c25fd486f8 udp: fix to use concurrency hint, default hint is zero when no async enabled 2010-10-13 15:01:45 -07:00
Josh Blum
35eda148fc usrp2: increment tx sequence after commit 2010-10-13 11:59:15 -07:00
Josh Blum
f9755b0ab3 uhd: test eob ack message, usrp2: remove rx drain on init with the promise of a reset register 2010-10-12 10:55:07 -07:00
Josh Blum
b49e2955b0 usrp2: enable the cycles per ack, and drain recv without the timeout (fixes previous conflict) 2010-10-11 18:38:06 -07:00
Josh Blum
1314feb429 usrp2: use 32-bit flow control sequence numbers 2010-10-11 18:09:56 -07:00
Josh Blum
453b450aa2 usrp2: implemented flow control monitor
set registers in mboard impl to enable asyn fc packets

modified microblaze code to handle dummy data packet offset
2010-10-11 16:31:51 -07:00
Josh Blum
369c0e1dbc usrp2: implement fc seq number on tx header packing 2010-10-11 10:12:14 -07:00
Josh Blum
0059e62ed0 usrp2: moved samples per packet calculation into io_impl 2010-10-07 10:43:58 -07:00
Josh Blum
0cd5375b5c uhd: replaced frame params for the zero copy interfaces with a device address
the device address gives a key, value pair of infinite optional capabilities

added a cast option to the device address to cast string to type T

added call to the zero_copy_if to get send and recv frame sizes

changed the usrp2 impl to calculate recv/send spp from the data transport
2010-10-05 10:30:28 -07:00
Josh Blum
4fd922ba3a usrp2: removed extra print-outs in init 2010-10-04 09:48:25 -07:00
Josh Blum
00cd601840 uhd: implemented a double timeout (in seconds) for send and recv chains
converted all size_t timeout_ms to double timeout

bounded and alignment buffer now take double timeout

added timeout to device::send and zero_copy_if::get_send_buff
2010-10-01 18:22:41 -07:00
Josh Blum
2c8a7c7deb uhd: implemented recv timeout for zero copy interface 2010-09-30 14:36:24 -07:00
Josh Blum
2f62c39b71 uhd: fix warning by adding brackets for while(cond){}; 2010-09-27 11:35:28 -07:00
Josh Blum
000578892e usrp1: reworked the io_impl for usrp1 to use the vrt packet handler
used dummy packers and unpackets that have a header size of zero

created wrapper around the data transport to handle non-512 multiple sends

honor the eob flag on send to flush the send buffer
2010-09-22 17:36:18 -07:00
Josh Blum
11c83c6010 usrp2: flush the error flow messages, issue the stop before register configure to align count 2010-08-31 12:11:43 -07:00
Josh Blum
5dca9e6315 usrp2: stop streaming and drain buffer (if left running) 2010-07-30 11:16:58 -07:00
Josh Blum
693929a9e6 Merge branch 'tx_report'
Conflicts:
	host/lib/usrp/usrp2/io_impl.cpp
2010-07-26 15:31:03 -07:00
Josh Blum
91db52802a usrp2: moved timeout into bound callback in io_impl 2010-07-22 17:30:10 -07:00
Josh Blum
19c15883a9 usrp2: added async event types, and common code for handling context words 2010-07-21 19:34:29 -07:00
Josh Blum
90465e6bcd uhd: added async recv message call to device api
implemented in usrp2 io impl

added async metadata type
2010-07-20 18:51:36 -07:00
Josh Blum
8e29df8b31 Merge branch 'master' into tx_report 2010-07-20 16:58:33 -07:00
Josh Blum
5a4545d3f9 uhd: bring timeout parameter to the device::recv call, implement in usrp2 2010-07-20 10:58:22 -07:00
Josh Blum
20381a1c83 usrp2: added registers and handling for tx async reports 2010-07-19 18:56:33 -07:00
Josh Blum
5e7af879c8 usrp2: removed SX packet count stuff from vrt packet handler, moved to usrp2 io impl and replaced with Os 2010-07-09 23:24:41 -07:00
Josh Blum
c898ca9751 uhd: ssize_t for phony zero copy return types, null sptr for timeout/error with get managed buffers 2010-07-09 20:09:45 -07:00
Josh Blum
be430761fb usrp2: use the actual pointer in bind so the sptr is not copied 2010-07-07 19:32:47 -07:00
Josh Blum
82790f3da8 usrp2: some cleanup and tweaks in io impl 2010-07-05 13:45:15 -07:00
Josh Blum
158bf440d2 usrp2: moved calculations for max packet size and otw types into shared object between device and mboards 2010-07-05 13:45:14 -07:00
Josh Blum
905f5b3b24 usrp2: split mboard impl into its own class, usrp2 device can instantiate N mboard impls for mimo setup (works with 1 for now) 2010-07-05 13:45:13 -07:00
Josh Blum
08fad28f20 uhd: work vectorizing the vrt packet handler, reworked vrt packet stuff, needs testing 2010-07-05 13:45:11 -07:00
Josh Blum
168ab7279c uhd: work on thread priority scheduling 2010-06-16 18:40:44 -07:00
Josh Blum
0f4eff49c8 Replaced the vrt pack and unpack with a pack and unpack for big endian and a pack and unpack for little endian.
The vrt handler code was templatized to take the relevant packer/unpacker as an argument.
2010-06-07 13:23:07 -07:00
Josh Blum
b369d0f020 usrp2 regs naming convention 2010-06-04 17:35:48 -07:00
Josh Blum
b2054a45d4 Created macros for dealing with pimpls and implemented in code. 2010-06-02 17:44:20 -07:00
Josh Blum
a4494bc2c9 use smart pointer for io impl, simplify send buffer callback 2010-06-02 15:21:56 -07:00
Josh Blum
92fd3a514b disable boost thread interrupt when doing pop with timed wait, fixed error on exit 2010-06-02 14:49:32 -07:00
Josh Blum
212159ca3b Implemented pirate thread, moved io impl details into io impl cpp file. Fixed bug in bounded buffer push with pop on full. 2010-06-01 17:51:26 -07:00
Josh Blum
bb1eef8cad Moved the packet handler state stuff into a separate header (so we dont pull in all the includes).
Use callback for getting buffers rather than zc interface pointer so its more modular.
2010-06-01 12:23:20 -07:00