Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 4 Dec 2004 08:46:20 +0100 (CET)
From:      Barry Bouwsma <freebsd-misuser@remove-NOSPAM-to-reply.NOSPAM.dyndns.dk>
To:        freebsd-usb@freebsd.org
Subject:   Re: USB Ethernet (aue) panics on 4.10 (kern/69319)
Message-ID:  <200412040746.iB47kJ802176@Mail.NOSPAM.DynDNS.dK>
References:  <20041115000815.GD57138@tuatara.fishballoon.org> <200412011419.iB1EJDs10868@Mail.NOSPAM.DynDNS.dK> <20041201161615.GA523@tuatara.fishballoon.org> <200412012104.iB1L4s313837@Mail.NOSPAM.DynDNS.dK> <20041202000831.GC523@tuatara.fishballoon.org> <41B0C4A3.9080308@elischer.org> <20041203222253.GA68061@tuatara.fishballoon.org>

next in thread | previous in thread | raw e-mail | index | archive | help
[if you get bounces, you may ignore them, as the hostname part of my
 address makes it IPv6-only, and I download the archives regularly]


Julian Elischer done did sayed:

> > >I'm overjoyed to report that your patches to if_aue and its ilk
> > >(and uhbdi-whatnot) are what I needed to get if_axe working, whee
> > >
> > If you can generate good unified diffs
> > I can commit them for you.

Not quite diffs yet, but I cleaned up most of the foolishness and
my ignorance from the previous hacks, and based on yesterday morning's
current, made a cleaner if_axe.c file that can be found as
https://nospam.dyndns.dk/hacks/if_axe.c-clean-against-latest-current
(should also be available without SSL -- except when I'm panicking
my machine or running single-user, so try later)

The reason my #if's are as ugly as they are in this, is that I'm
special-casing FreeBSD4 here, leaving open the possibility to merge
in DragonFly, NetBSD, and OpenBSD code in the future for the fun of
it.

In the testing I've done so far, I can say that it works splendidly
with my OHCI controller.  As an aside, I mentioned data corruption
I had observed a while back with OHCI; it seems this is introduced
by the usb.diff patch that Ian Dowse put out for -current-ish, which
is what I had been using at that time.  As soon as I merged in the
latest usb.diff, I heard and saw data corruption.  I had already
merged in the usb2_sync.diff and usb_race.diff with no noted ill
effects.  Hmmm...

It also sorta works with EHCI, but not as well for me as with OHCI.
I get watchdog timeouts for some outgoing packets.  It still works
though, as I'm using EHCI now to send this mail (and download the
archive I'm replying to).  But for some reason, my machine gets
noticeably more sluggish with EHCI than OHCI.  (75MHz Pentium so
I can see a difference from tree sloth to garden slug.)  The
usb.diff patch mentioned above didn't improve things that I could
see.

With my hardware, UHCI has the problem with my adapter that is
mentioned in kern/73000 when the device is connected, and I see
a bogus MAC address; however, applying the patch in this PR does
not make any difference for me.  So I haven't been able to test
it with UHCI.  That controller needs much more work and testing
from me to see what's normal for it on this machine, as it worked
flawlessly on another machine I was using except for attaching
this adapter.

I haven't bothered with a man page, or cleaning up the Makefile
for the kernel module, or the .h file -- nor have I tried to
figure out how to properly incorporate these into a build in
the kernel and modules.  I hope these things are trivial enough
for someone with experience to do them while half asleep, while
I play around with the if_axe.c file and the rest of my USB
stack to work on the problems I've noted.

I really would like someone else with this hardware but different
controller chips (and a different motherboard) to try and see if
I'm imagining the above, or if my limitation of one type of box
is causing what I see.  Perhaps I should ask this in -stable?
-hackers?  -hardware?  -mobile?  -questions?  -newbies?



Scott Mitchell up'n done did scrawled out like so:

> I can look at this if you like.  It should be pretty straighforward, but I
> want to make sure it works on a stock 4-stable box, since Barry seems to be
> running a slightly unusual USB stack...

I'm sort of figuring out what I have, in the process of working
towards 4-ish-ness while trying not to break things that had been
broken months ago for me.  I think my uhci.c and ohci.c and ehci.c
are mostly the latest from 4.x with a few things tossed in due to
leftovers from previously applying Ian Dowse's Big Diff.  Give me
time and I'll start clean, then try usb2_sync.diff and usb_race.diff
(that so far don't give me problems).

As an aside, should I expect to experience problems with clean 4.x
source and the above three diffs from Ian?  If not, then I'll see
if I can figure out the cause of the OHCI corruption that occurs
with the Big Diff (makes no difference with the OHCI isoc problem,
though) -- and perhaps I should mention this machine has only 40MB
RAM in case that may have anything to do with anything.


thanks
barry bouwsma



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200412040746.iB47kJ802176>