![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Group: Members Posts: 1,853 Joined: 31-December 05 From: Illinois USA Member No.: 8,821 ![]() |
I have this CF ethernet card, which uses Asix AX88790 driver
Has anyone used this card in 2.6 kernels? I read somewhere that the AX88790 driver is only available for 2.6 kernels. Socket Rugged CF 10/100™ card Model number: EA2917 - 722, Rugged CF 10/100 Ethernet Additional info - this card uses this chip: The Rugged CF 10/100 card utilizes the Asix AX88790 L 10/100BASE 3-in-1 PCMCIA Fast Ethernet Controller. http://www.socketmobile.com/products/netwo...0-100-ethernet/ ---------- PCMCIA card Info and Config app in Settings: Information for socket 1 State: ready Device: Driver: Type: I/O 0x4840300-0xc484031f IRQ: 169 Flags: CD VCC ---------- pccardctl ident Socket 1: product info: "Socket", "CF 10/100 Ethernet Card", "Revision B", "05/11/06" manfid: 0x0104, 0x02d2 function: 6 (network) ---------- pccardctl info PRODID_1="Socket" PRODID_2="CF 10/100 Ethernet Card" PRODID_3="Revision B" PRODID_4="05/11/06" MANFID=0104,02d2 FUNCID=6 ---------- dmesg <5>pccard: PCMCIA card inserted in slot 1 <5>pccard: registering new device pcmcia1.0 <6>eth0: NE2000 Compatible: io 0xc4840300, irq 169, auto xcvr, hw_addr 00:c0:1b:07:d5:3a <6>NET: Registered protocol family 17 ---------- ifconfig eth0 Link encap:Ethernet HWaddr 00:C0:1B:07:D5:3A UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:1 dropped:0 overruns:0 frame:0 TX packets:18 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 ![]() Interrupt:169 Base address:0x300 eth0:avah Link encap:Ethernet HWaddr 00:C0:1B:07:D5:3A inet addr:169.254.5.130 Bcast:169.254.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:169 Base address:0x300 ---------- I'm not giving up easily on this card since it is brand new, and I cannot return it. Here is a post about someone getting this working for 2.6 kernel http://www.mail-archive.com/linux-pcmcia@l...g/msg00051.html Socket indicates that this chip has a Phy bug and they provide a workaround. CODE ftp://ftp.socketcom.com/ea/Rugged_10-100_Driver_Changes_07-2006.zip
|
|
|
![]()
Post
#2
|
|
![]() Group: Members Posts: 2,342 Joined: 30-July 06 Member No.: 10,575 ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Group: Members Posts: 1,853 Joined: 31-December 05 From: Illinois USA Member No.: 8,821 ![]() |
Thank you for looking into this for me.
![]() It looks like there isn't any for Zaurus. The listings are either simpad, or h220, or hx4700. And I think I need AX88790, not AX88190. (I'm not sure of this though.) CODE axnet-cs kernel module; Asix AX88190 PCMCIA ethernet driver
* kernel-module-axnet-cs 2.6.24-r9 for simpad (Ångström 2007.12 glibc simpad machine feed feed) * kernel-module-axnet-cs 2.6.24-r17.1 for simpad (Ångström 2008.6 glibc simpad machine feed feed) * kernel-module-axnet-cs 2.6.24-r14 for simpad (Ångström 2008.6 uClibc simpad machine feed feed) * kernel-module-axnet-cs 2.6.21-hh20-r21.1 for h2200 (Ångström 2008.6 glibc h2200 machine feed feed) * kernel-module-axnet-cs 2.6.21-hh20-r21.1 for hx4700 (Ångström 2008.6 glibc hx4700 machine feed feed) * kernel-module-axnet-cs 2.6.21-hh20-r20 for h2200 (Ångström 2008.6 uClibc h2200 machine feed feed) * kernel-module-axnet-cs 2.6.21-hh20-r20 for hx4700 (Ångström 2008.6 uClibc hx4700 machine feed feed) * kernel-module-axnet-cs 2.6.21-hh20-r16 for h2200 (Ångström 2007.12 glibc h2200 machine feed feed) * kernel-module-axnet-cs 2.6.21-hh20-r16 for hx4700 (Ångström 2007.12 glibc hx4700 machine feed feed) |
|
|
![]()
Post
#4
|
|
![]() Group: Members Posts: 2,342 Joined: 30-July 06 Member No.: 10,575 ![]() |
One more thing to add to my build list...
|
|
|
![]()
Post
#5
|
|
![]() Group: Members Posts: 1,853 Joined: 31-December 05 From: Illinois USA Member No.: 8,821 ![]() |
I think I can use the AX88190 driver, if it is available.
It does mention that this is a patch against 2.6.15 Does that mean it will not work with 2.6.24 kernel? The phy bug work around is shown here, and seems to use the AX88190 driver CODE Re: AX88790 L phy workaround
Todd Blumer Tue, 12 Sep 2006 14:35:15 -0700 On 9/12/06, Todd Blumer <[EMAIL PROTECTED]> wrote: I am in need of adding driver support for the Socket Rugged CF Ethernet card. It uses the AX88790 L chip. Socket indicates that this chip has a Phy bug and they provide a workaround. ftp://ftp.socketcom.com/ea/Rugged_10-100_Driver_Changes_07-2006.zip I'm guessing that the problem is only in a recent revision (the L revision?) of the chip since I don't see such a workaround in the standard axnet_cs.c driver. Has anyone done this workaround? Any other comments or suggestions? Otherwise, I'll try to implement these changes and submit a patch. Here's a patch (against 2.6.15) that works with the Socket Rugged CF 10/100 Card. Comments welcome. -- Todd Blumer SDG Systems Index: drivers/net/pcmcia/axnet_cs.c =================================================================== --- drivers/net/pcmcia/axnet_cs.c (revision 332) +++ drivers/net/pcmcia/axnet_cs.c (working copy) @@ -13,6 +13,10 @@ axnet_cs.c 1.28 2002/06/29 06:27:37 + Changelog: + + Todd Blumer : added PHY bug workaround for AX88790 + The network driver code is based on Donald Becker's NE2000 code: Written 1992,1993 by Donald Becker. @@ -59,6 +63,18 @@ #define AXNET_START_PG 0x40 /* First page of TX buffer */ #define AXNET_STOP_PG 0x80 /* Last page +1 of RX ring */ +#define AXNET_PHY_MR0 0 +#define AXNET_MR0_SW_RESET (1<<15) +#define AXNET_MR0_LOOPBACK (1<<14) +#define AXNET_MR0_SPEED100 (1<<13) +#define AXNET_MR0_NWAY_ENA (1<<12) +#define AXNET_MR0_PWRDN (1<<11) +#define AXNET_MR0_ISOLATE (1<<10) +#define AXNET_MR0_REDONWAY (1<<9) +#define AXNET_MR0_FULL_DUP (1<<8) +#define AXNET_MR0_COLTST (1<<7) +/* remaining bits are reserved */ + #define AXNET_RDC_TIMEOUT 0x02 /* Max wait in jiffies for Tx RDC */ #define IS_AX88190 0x0001 @@ -439,6 +455,22 @@ } info->phy_id = (i < 32) ? i : -1; + if ((info->flags & IS_AX88790) && (info->phy_id != -1)) { + int data; + /* + * The AX88790L has a bug in the auto-negotiation (AN). A work-around + * is to turn off the phy, wait 2.5 secs, then re-enable AN. Once this + * action is taken, AN works fine. + * + * Note: this chip is in the Socket Rugged CF Ethernet card + */ + data = mdio_read(dev->base_addr+ AXNET_MII_EEP, info->phy_id, AXNET_PHY_MR0); + mdio_write(dev->base_addr + AXNET_MII_EEP, + info->phy_id, AXNET_PHY_MR0, data | AXNET_MR0_PWRDN ); + mdelay(2500); + mdio_write(dev->base_addr + AXNET_MII_EEP, + info->phy_id, AXNET_PHY_MR0, data | AXNET_MR0_REDONWAY | AXNET_MR0_NWAY_ENA); + } link->dev = &info->node; link->state &= ~DEV_CONFIG_PENDING; SET_NETDEV_DEV(dev, &handle_to_dev(handle)); @@ -852,6 +884,7 @@ PCMCIA_DEVICE_MANF_CARD(0x026f, 0x0309), PCMCIA_DEVICE_MANF_CARD(0x0274, 0x1106), PCMCIA_DEVICE_MANF_CARD(0x8a01, 0xc1ab), + PCMCIA_DEVICE_MANF_CARD(0x0104, 0x02d2), /* "Socket", "CF 10/100 Ethernet Card", "Revision B", "05/11/06" */ PCMCIA_DEVICE_PROD_ID124("Fast Ethernet", "16-bit PC Card", "AX88190", 0xb4be14e3, 0x9a12eb6a, 0xab9be5ef), PCMCIA_DEVICE_PROD_ID12("ASIX", "AX88190", 0x0959823b, 0xab9be5ef), PCMCIA_DEVICE_PROD_ID12("Billionton", "LNA-100B", 0x552ab682, 0xbc3b87e1), _______________________________________________ Re: AX88790 L phy workaround Matthew Wilcox Sun, 17 Sep 2006 06:01:42 -0700 On Tue, Sep 12, 2006 at 05:33:53PM -0400, Todd Blumer wrote: > Here's a patch (against 2.6.15) that works with the Socket Rugged CF > 10/100 Card. Comments welcome. > + * The AX88790L has a bug in the auto-negotiation (AN). A work-around > + * is to turn off the phy, wait 2.5 secs, then re-enable AN. Once this > + * action is taken, AN works fine. > + mdelay(2500); mdelay is going to busy-wait for 2.5 seconds; can you not msleep() instead? I don't think you're holding any locks at this point, nor do I think you're in interrupt context, so sleeping should be OK. _______________________________________________ Re: AX88790 L phy workaround Todd Blumer Sat, 23 Sep 2006 07:22:38 -0700 On 9/17/06, Matthew Wilcox <[EMAIL PROTECTED]> wrote: > On Tue, Sep 12, 2006 at 05:33:53PM -0400, Todd Blumer wrote: > > Here's a patch (against 2.6.15) that works with the Socket Rugged CF > > 10/100 Card. Comments welcome. > > + * The AX88790L has a bug in the auto-negotiation (AN). A work-around > > + * is to turn off the phy, wait 2.5 secs, then re-enable AN. Once this > > + * action is taken, AN works fine. > > + mdelay(2500); > > mdelay is going to busy-wait for 2.5 seconds; can you not msleep() > instead? I don't think you're holding any locks at this point, nor do I > think you're in interrupt context, so sleeping should be OK. > Yes, you are correct, and that works fine. Thanks. |
|
|
![]()
Post
#6
|
|
![]() Group: Members Posts: 2,342 Joined: 30-July 06 Member No.: 10,575 ![]() |
I'd guess that the patch either applies fine or is added in upstream.
|
|
|
![]() ![]() |
![]() |
Lo-Fi Version | Time is now: 21st April 2018 - 01:59 AM |