EHCI or UMASS USB 2.0 Data rate problems

Davon Shire davon at
Thu Jun 3 12:44:22 GMT 2004

Previously posted on comp.unix.bsd.freebsd.misc

  This is not a plea for help this is an offer to assist. I've been working to
get a decent datarate from my USB 2.0 external drives and clearly have been
getting less than USB_SPEED_HIGH.
  I have been involved with FreeBSD since 1.05 using it whenever possible.
  I currently have the following information:
  OS: FreeBSD 5.2-Current
  Machine: 533 P3 with 256 Megs of memory.
  USB Drive: BYTECC ME-350U2 with a 60GB Maxtor Drive

  When I connect my drive to my USB 2.0 Controller:

  umass0: Prolific Technology Inc. Mass Storage Device, rev 2.00/1.00, addr 2
umass0:0:0:-1: Attached to scbus0
pass0 at umass-sim0 bus 0 target 0 lun 0
pass0: <Maxtor 9 6147H6 ZAH8> Fixed Direct Access SCSI-0 device
pass0: 1.000MB/s transfers
GEOM: create disk da0 dp=0xc3aa2050
GEOM: new disk da0
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <Maxtor 9 6147H6 ZAH8> Fixed Direct Access SCSI-0 device
da0: 1.000MB/s transfers
da0: 57241MB (117231409 512 byte sectors: 255H 63S/T 7297C)
[0] f:00 typ:7 s(CHS):0/1/1 e(CHS):1023/254/63 s:63 l:117226242
[1] f:00 typ:0 s(CHS):0/0/0 e(CHS):0/0/0 s:0 l:0
[2] f:00 typ:0 s(CHS):0/0/0 e(CHS):0/0/0 s:0 l:0
[3] f:00 typ:0 s(CHS):0/0/0 e(CHS):0/0/0 s:0 l:0
GEOM: Configure da0s1, start 32256 length 60019835904 end 60019868159

usbdevs -a 2 -v gives me this info:

video# usbdevs -a 2 -v
Controller /dev/usb0:
Controller /dev/usb1:
Controller /dev/usb2:
Controller /dev/usb3:
addr 2: high speed, power 100 mA, config 1, Mass Storage Device(0x2507),
Prolific Technology Inc.(0x067b), rev 1.00

My dmesg shows my usb 2.0 controller using the EHCI driver.

ehci0: <NEC uPD 720100 USB 2.0 controller> mem 0xeb001000-0xeb0010ff irq 10 at d
evice 9.2 on pci0
ehci_pci_attach: companion usb1
ehci_pci_attach: companion usb2
usb3: EHCI version 1.0
usb3: companion controllers, 3 ports each: usb1 usb2
usb3: <NEC uPD 720100 USB 2.0 controller> on ehci0
usb3: USB revision 2.0
uhub3: NEC EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub3: 5 ports with 5 removable, self powered

This is a Belkin HI-Speed 2.0 5-Port PCI Card that uses an NEC chip.

In order to test this device and get a data rate I've done the following:

video# dd bs=8192 count=10000 if=/dev/da0s1 of=/dev/null
10000+0 records in
10000+0 records out
81920000 bytes transferred in 30.124405 secs (2719390 bytes/sec)

that's 2.7MB/s

When I mount the drive and dump a file to /dev/null:

video# dd bs=8192 count=10000 of=/dev/null if=/mnt/Videos/dvweding.avi
10000+0 records in
10000+0 records out
81920000 bytes transferred in 60.108703 secs (1362864 bytes/sec)

I get almost exactly half the data rate.

This is a NTFS formatted partition by the way. But I get exactly the same 
behavior from a FAT32 partition as well.

I considered that perhaps the drives or the adaptors were at fault. But I get
very respectable data rates using Win98se and WinXP on the order of 25+MB/s

I'm not looking for a full 480Mb/s data rate. I just want enough to use this
machine for my video work.

I add that trying to start this machine with the USB 2.0 drive attached causes
a panic and reboot. I have to attach it after the machine is up.
But that's really second on my list.

reviewing the code for the ehci driver and the umass driver. I'd have to 
guess the umass driver is where to start. It has several fixed default values
that do not seem to be interactive with the over all usb scheme.

I am at the moment unemployed and offer my assistance to help test, code,
research this problem. I'm a bit confused at the moment how the umass driver
functions and could be totally clueless as to the over all scheme of this USB

Thank you for your help in reguards to this matter. I've done what I can 
searching google and the maillists for a way to resolve this problem.
Supposedly someone has had success in the pass getting good data rates. Could
people please respond with info as to how or what they did to get such?

  Davon Shire

More information about the freebsd-current mailing list