sparc64/141918: [ehci] ehci_interrupt: unrecoverable error, controller halted (sparc64)

Manuel Tobias Schiller mala at hinterbergen.de
Tue Apr 3 08:40:03 UTC 2012


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

From: Manuel Tobias Schiller <mala at hinterbergen.de>
To: Marius Strobl <marius at alchemy.franken.de>
Cc: bug-followup at FreeBSD.org
Subject: Re: sparc64/141918: [ehci] ehci_interrupt: unrecoverable error,
 controller halted (sparc64)
Date: Tue, 3 Apr 2012 10:37:14 +0200

 --Sig_/LIPyAG/wO3sJYsP6CnQl2.=
 Content-Type: text/plain; charset=US-ASCII
 Content-Transfer-Encoding: quoted-printable
 
 On Mon, 2 Apr 2012 10:43:14 +0200
 Manuel Tobias Schiller <mala at hinterbergen.de> wrote:
 
 > On Mon, 2 Apr 2012 01:00:56 +0200
 > Manuel Tobias Schiller <mala at hinterbergen.de> wrote:
 >=20
 > > On Sun, 1 Apr 2012 12:41:24 +0200
 > > Marius Strobl <marius at alchemy.franken.de> wrote:
 > >=20
 > > > Well, the individual patches shouldn't make things worse except for
 > > > the second one causing more memory to be used so I'd suggest to
 > > > combine them. If in the end things actually work we still can check
 > > > what changes are needed for that.
 > > > Looking at the Linux USB code, the FreeBSD one doesn't some to honor
 > > > some DMA constraints and at least for the alignment it's actually
 > > > hard to follow what value eventually is used. One thing that stands
 > > > out is that for EHCI, the boundary is 4096. This is most easily
 > > > fixed by defining USB_PAGE_SIZE to 4096 in sys/dev/usb/usb_busdma.h.
 > > >=20
 > > > Marius
 > >=20
 > > Ok, the second patch on its own doesn't appear to work either, so I'm
 > > trying the combination of patches now. By the way: defining
 > > USB_PAGE_SIZE to 4096 in sys/dev/usb/usb_busdma.h is a bad idea - the
 > > kernel panics with a backtrace pointing into the mmu-related code.
 > > Probably has to do with sparc64 mmu only supporting 8k pages, so I'm
 > > not terribly surprised... Ok, I'm waiting for the next make
 > > buildkernel to finish, and I'll let you know what comes out.
 > >=20
 > > Manuel
 >=20
 > Ok, I also tested a kernel with both patches, and the issue persists. Do
 > you have something else to try?
 >=20
 > Manuel
 >
 
 Hi Marius,
 
 I did a bit of code reading (/usr/src/sys/dev/usb/controller/ehci.c near
 line 1494), and I realised that the "unrecoverable error" message should
 only be triggered if the EHCI status register has the EHCI_STS_HCH bit
 set - according to the status word dump in my log, it is not set (just
 after the "unrecoverable error" message). The register dump re-reads the
 status register from the hardware. Could it be that some controllers have
 a glitch or something on that particular bit, and we better re-read the
 status register before we conclude that the controller "really wanted to
 set that bit"?
 
 I can also see that the bit is set in the original bug report. I don't
 know if that machine is just faster (and the bit has not had the time to
 clear yet), or if we're talking about two different problems here...
 
 (This observation might also indicate that small delay loop has to put
 in before I re-read the status register - we'll have to see...)
 
 I'm building a kernel with that modification, but I'd be interested in
 a second opinion nevertheless...
 
 Cheers,
 
 Manuel
 
 
 --=20
 Homepage: http://www.hinterbergen.de/mala
 OpenPGP: 0xA330353E (DSA) or 0xD87D188C (RSA)
 
 --Sig_/LIPyAG/wO3sJYsP6CnQl2.=
 Content-Type: application/pgp-signature; name=signature.asc
 Content-Disposition: attachment; filename=signature.asc
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.10 (GNU/Linux)
 
 iQGcBAEBAgAGBQJPera6AAoJEEPbVOqHHK4gOjkL/iKagzBm/KtB2K/lY882sK8L
 vkEnj4Ch5OjiauR/vWFIby23RSLJLqDGi15HCS7Ke7hEDDQjc6PhkbKfbHszIgQB
 MCaNbIWh+AAwGb0MXuMyCy2s9eDPwf7QULEyzg9Ib1RaXa2Ty5kSQny3qsxKRC8y
 ab+e+qFjKuqx+etzZQAc+qdYHZ/CgdoyXzrdr92CG1sjsywrcRYKzJIiBYoPbEfv
 kDhRpu0w2OuSD0Z5CMH8LAZsGWnOGwJHKotOUcp4kaat7CwqjamLfuKRjnqzEcK7
 mDvuUYLuq9LwrgqfhwgLltjhQ0Zogs61AizRtyw3MeAQ6OjalbcNnBGhOzEVakZm
 tSGYgEulLySN/U4VCF5Dc01rMQ1nFUov1SsENhyfPkHpwHwqURGZC2W0NYbM/13/
 wyK1waHulwFXk2XSyjpOlY5n8IrwYRp+SGKGM4mzWjwSfiFGmM0r8IOmpCVxbTPL
 ZE1fECnn7sjehI+GSuYbQgtgTawr+r0VF9Mr8hbyzg==
 =6AsC
 -----END PGP SIGNATURE-----
 
 --Sig_/LIPyAG/wO3sJYsP6CnQl2.=--


More information about the freebsd-sparc64 mailing list