kern/67455: EHCI controller is being programmed with incorrect
address during ehci_open ( ehci.c)
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.
More information about the freebsd-bugs