Hi,
I have a device driver for a USB device (a custom Cypress FX2 based board) that 
is relatively simple - it uses the USB FIFO code to create 3 FIFOs (one 
bidirectional slow serial interface, one device->PC fast parallel interface 
from a hardware FIFO) plus a bunch of ioctls for getting the FX2 firmware to do 
various things.

We have been having issues on some systems where the hardware FIFO that the FX2 
reads (and sends to the PC) fills up, it has about 50msec (96k) of buffering 
(at ~2MByte/sec) which seems like quite a lot to me (given the driver sets the 
USB FIFO to buffer 2048 8k chunks..).

I don't have a solid hypothesis for the failures as yes but one thing I'd like 
to make sure is that the USB stack is keeping the USB hardware busy with 
pending requests - does anyone know if the USB FIFO code does that 
automatically?

I'm currently testing doing 96k transfers (this is the maximum without some 
significant reworking) and the FIFO is 16MByte in size but it still fails so 
any suggestions welcome..

The FreeBSD version at this site is very old (9.3) so we are going to update it 
but it's not easy as the site is quite remote.

The hardware in question is a Supermicro X10SLM-F (Intel C224 Express) with an 
E3-1220 v3 at 3.1GHz, it also has an LSI MegaRAID SAS 9271-4i with 4 disks in 
RAID-5. Unfortunately I do not have ready access to a similar system here which 
is annoying..

Any suggestions welcome!

PS please CC me on replies.

--
Daniel O'Connor
"The nice thing about standards is that there
are so many of them to choose from."
 -- Andrew Tanenbaum


_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "[email protected]"

Reply via email to