Re: xhci broken on 10-CURRENT and 2013 MacBook Air?

From: Hans Petter Selasky <hps_at_bitfrost.no>
Date: Fri, 30 Aug 2013 16:15:36 +0200
On 08/30/13 15:53, Lundberg, Johannes wrote:
> I added printf at every 100,000th iteration in both locations but I didn't
> get any output at all.. Seems it stuck in some other place.
>
> During my test I actually passed that stage a couple of times but still the
> xhci_do_command times out and I get the mountroot> prompt.... With the 9.1
> driver I never get either of the errors.
>
>
> Johannes Lundberg
> BRILLIANTSERVICE CO., LTD. <http://www.brilliantservice.co.jp>

Hi,

If you have a git checkout of the FreeBSD source tree, you can try 
stripping away patches for xhci*.[ch] only, since end of December 2012. 
The 9- and 10- XHCI code should be almost the same, except for the 
streams mode support. Here is a list of patches you can try to revert if 
I get it right:

commit 2969ec61bfd9be3fdcaa50432755d24df345874d
Author: hselasky <hselasky_at_FreeBSD.org>
Date:   Fri Jul 26 06:24:33 2013 +0000

     MFC r253532:

     Fix an XHCI regression:

     The Block Event Interrupts, BEI, feature does not
     work like expected with the Renesas XHCI chipsets.
     Revert feature.

     While at it correct the TD SIZE computation in
     case of Zero Length Packet, ZLP, in the end of a
     multi frame USB transfer.

     PR:             usb/180726
     Approved by:    re, hrs

commit 7dbeb07e555c5e9649fac8079a4b3bcdd57b2cfc
Author: hselasky <hselasky_at_FreeBSD.org>
Date:   Tue Jun 11 06:18:51 2013 +0000

     MFC r251249, r251251, r251252, r2512, r251254 and r251515:
     Correct XHCI DMA descriptor programming.
     Correct maximum IRQ rate.

commit 1941cac2597eea224c9e0e76a789692dfa8dda91
Author: marius <marius_at_FreeBSD.org>
Date:   Sat Mar 9 02:36:32 2013 +0000

     MFC: r227309 (partial)

     Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.

     The SYSCTL_NODE macro defines a list that stores all child-elements of
     that node. If there's no SYSCTL_DECL macro anywhere else, there's no
     reason why it shouldn't be static.

commit 9b2efd37b6d3afb84b234348094adf8cc533e2c6
Author: hselasky <hselasky_at_FreeBSD.org>
Date:   Wed Feb 6 11:08:11 2013 +0000

     MFC r246113 and r246126:
     Add missing NULL pointer check.

     Reported by:  Lars Engels

commit 63af294dc7c2db6a120eba9cec16fabec13aeec1
Author: hselasky <hselasky_at_FreeBSD.org>
Date:   Mon Jan 21 07:25:38 2013 +0000

     MFC r245132 and r245175:
     Optimise the XHCI interrupt handling.
     This patch will save CPU time when the XHCI interrupt is
     shared with other devices.
     Only check event rings when interrupt bits are set.
     Otherwise would indicate hiding possible hardware fault(s).

     Tested by:	sos _at_
     Submitted by:	sos _at_

commit fa4f2cf0b90d6c5ce9eca2417e200fb693d6f239
Author: hselasky <hselasky_at_FreeBSD.org>
Date:   Mon Jan 21 07:22:45 2013 +0000

     MFC r243780:
     - Add support for Etron EJ168 USB 3.0 Host Controllers.
     This brand of controllers expects that the number of
     contexts specified in the input slot context points
     to an active endpoint context, else it refuses to
     operate.

     - Wrap one or two long lines.

     Tested by:	Markus Pfeiffer (DragonFlyBSD)

--HPS
Received on Fri Aug 30 2013 - 12:14:25 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:41 UTC