r276717 causes problems

John Baldwin jhb at freebsd.org
Mon Feb 9 21:31:39 UTC 2015


On Monday, February 09, 2015 10:26:42 PM Hans Petter Selasky wrote:
> Hi John,
> 
> Do all PCI busses support 64-bit DMA busmaster? Do we reflect this in
> the busdma tags passed down to device drivers?

Yes, barring weird quirks.  Even pre-PCI-e had a way to support 64-bit 
addresses for cards on a 32-bit bus using dual address cycles.  Gary, do you 
only have problems with xhci and not other PCI devices in your system?

> --HPS
> 
> On 02/09/15 18:36, Gary Jennejohn wrote:
> > 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 usbus0
> > 
> > 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 usbus0
> > 
> > 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.


-- 
John Baldwin


More information about the freebsd-usb mailing list