kern/67455: EHCI controller is being programmed with incorrect address during ehci_open ( ehci.c)

Ian Dowse iedowse at maths.tcd.ie
Thu Aug 5 12:30:23 PDT 2004


The following reply was made to PR kern/67455; it has been noted by GNATS.

From: Ian Dowse <iedowse at maths.tcd.ie>
To: rajesh mittal <raj_mittal at yahoo.com>
Cc: bug-followup at FreeBSD.org
Subject: Re: kern/67455: EHCI controller is being programmed with incorrect address during ehci_open ( ehci.c) 
Date: Thu, 05 Aug 2004 20:26:50 +0100

 In message <200408051900.i75J0l3n060840 at freefall.freebsd.org>, Ian Dowse writes
 :
 > I think you are correct here, although this seems to have been fixed
 > already in revision 1.7 of ehci.c (June 26th). Can you confirm that
 > this is the case and the PR can be closed?
 
 In fact, I think there is confusion all around here :-).
 
  o Page 48 as numbered at the bottom of the page itself is the 58th
    page of the EHCI spec, so that explains the page number difference.
 
  o It was the 4-bit endpoint number, not the 7-bit device address
    that was set incorrectly at the time that you submitted the PR,
    and this has since been fixed by revision 1.7. This matches up
    with your report, because the bug caused EHCI_QH_HRECL to be set
    as you described when UE_DIR_IN was included:
 
       #define EHCI_QH_SET_ENDPT(x)  ((x) <<  8)
       #define UE_DIR_IN 0x80
       #define EHCI_QH_HRECL         0x00008000
 
    If the problem was with EHCI_QH_SET_ADDR(), it would have caused
    EHCI_QH_INACT instead of EHCI_QH_HRECL to be set:
 
       #define EHCI_QH_SET_ADDR(x)   (x)
       #define EHCI_QH_INACT         0x00000080
 
  o The `addr' value is 7 bits ("Device Address", bits 6:0), so it
    was being set correctly all along.
 
 Ian


More information about the freebsd-bugs mailing list