Subject: kern/32032: axe/ukphy combo does not work on big-endian machines
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: None <garrett_damore@tadpole.com>
List: netbsd-bugs
Date: 11/09/2005 22:26:00
>Number:         32032
>Category:       kern
>Synopsis:       axe/ukphy combo does not work on big-endian machines
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Nov 09 22:26:00 +0000 2005
>Originator:     Garrett D'Amore
>Release:        3.99.11
>Organization:
Tadpole Computer, Inc.
>Environment:
NetBSD zinfandel 3.99.11 NetBSD 3.99.11 (PB1000) #3: Wed Nov  9 13:11:19 PST 2005  garrett@zippy:/home/garrett/work/meteor/ohci-endian/src/sys/arch/evbmips/compile/obj/PB1000 evbmips

And also on a sparc64 machines running an earlier 3.0BETA build.
>Description:
I'm trying to prove that my changes to support big-endian OHCI work.  I'm finding that AXE and UKPHY combined do not seem to work properly on any big-endian machine -- the phy doesn't seem to pick up link (or at least it isn't reporting it to the axe driver).

On evbmips-el the device works fine.

On x86 it works fine.

On SPARC64 with an EHCI/OHCI PCI add-in card, it has the same problem.

On evbmips-eb with my fixes to support OHCI running big-endian (another PR filed for that), it has the same failure mode.  (Interestingly enough, most of the other bits about the device seem to work.  E.g. I get the same valid ethernet address on all platforms, regardless of endianness.)

The specific device in question is a linksys USB200M (no version number known.)  usbdevs -v reports it as device id 0x2226, rev 0.01.


>How-To-Repeat:
boot a big-endian kernel (sparc64 is good for this) with USB (I used a PCI USB 2.0 add-in card on an Ultra 10).

ifconfig axe0

Note that it shows no carrier.  This shows up even though the link light on the hub is fine.  Moving the adapter without unplugging the cable from it into an x86 netbsd box, and it works fine there.

>Fix: