r276717 breaks access to my 4-disk external USB3 (XHCI) enclosure.

The symptom is that only the first of the threee disks is found.

r276716 sees all the disks immediately.

This is the output for the bridge chip:

umass0: <JMicron USB to ATAATAPI Bridge, class 0/0, rev 3.00/28.03, addr 2> on 

The problem seems to be mainly due to setting dma_bits to 64.  It's
true that the chip on the controller board supports 64 bit DMA, but the
JMicron seems to have a real crisis when that setting is used, although
I don't know why.

Note that the nice output above was obtained after hard coding dma_bits
to 32 in xhci_init().  With 64 bits I see this:

umass0: <vendor 0x152d product 0x0539, class 0/0, rev 3.00/28.03, addr 3> on 

probably because reading the strings from the device fails.

Anyway, it would be nice to have a sysctl to force dma_bits to 32.

Unfortunately, I still have a problem with my enclosure with more
current versions of HEAD.  The rather questionable practice of
always doing a multi LUN enquiry using the SCSI-3 CDB byte 0xa0
also causes problems.  Considering that most of these bridge
chips can barely emulate SCSI-2 it seems rather foolish to try to
jam SCSI-3 CDB bytes down their throats.

But that's a different story.

Gary Jennejohn
freebsd-usb@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to