2005-05-06 20:19:22

by Michael Tokarev

[permalink] [raw]
Subject: 3c509 module and 2.6 kernel: not all NICs are recognized?

Finally, I tried to boot our gateway machine into 2.6 (2.6.11.8
to be certain) kernel. The machine is quite old, it's 100MHz
Pentium-classic, yet it works as a router just fine.

And surprizingly, this is the first machine I tried to upgrade
to 2.6 which does not work.

It have 4 3c509 cards, one EISA and 3 ISA. Here's the dmesg
output when I load 3c509 module on 2.4 kernel:

eth0: 3c5x9 at 0x2000, 10baseT port, address 00 60 08 4b 31 bf, IRQ 15.
3c509.c:1.19 16Oct2002 [email protected]
http://www.scyld.com/network/3c509.html
eth1: 3c5x9 at 0x3000, 10baseT port, address 00 20 af 92 f6 ef, IRQ 7.
3c509.c:1.19 16Oct2002 [email protected]
http://www.scyld.com/network/3c509.html
eth2: 3c5x9 at 0x4000, 10baseT port, address 00 20 af 92 83 02, IRQ 5.
3c509.c:1.19 16Oct2002 [email protected]
http://www.scyld.com/network/3c509.html
eth3: 3c5x9 at 0x5000, BNC port, address 00 20 af 99 f2 ac, IRQ 12.
3c509.c:1.19 16Oct2002 [email protected]
http://www.scyld.com/network/3c509.html

(the last one, with IRQ#12 and BNC port, is EISA).

But when in 2.6, only this last EISA one is recognized by
3c509 module.

Any ideas?

Thanks.

/mjt


2005-05-06 21:09:59

by Michael Tokarev

[permalink] [raw]
Subject: Re: 3c509 module and 2.6 kernel: not all NICs are recognized?

A bit more information.

Michael Tokarev wrote:
> Finally, I tried to boot our gateway machine into 2.6 (2.6.11.8
> to be certain) kernel. The machine is quite old, it's 100MHz
> Pentium-classic, yet it works as a router just fine.
>
> And surprizingly, this is the first machine I tried to upgrade
> to 2.6 which does not work.
>
> It have 4 3c509 cards, one EISA and 3 ISA. Here's the dmesg
> output when I load 3c509 module on 2.4 kernel:
>
> eth0: 3c5x9 at 0x2000, 10baseT port, address 00 60 08 4b 31 bf, IRQ 15.
> 3c509.c:1.19 16Oct2002 [email protected]
> http://www.scyld.com/network/3c509.html
> eth1: 3c5x9 at 0x3000, 10baseT port, address 00 20 af 92 f6 ef, IRQ 7.
> 3c509.c:1.19 16Oct2002 [email protected]
> http://www.scyld.com/network/3c509.html
> eth2: 3c5x9 at 0x4000, 10baseT port, address 00 20 af 92 83 02, IRQ 5.
> 3c509.c:1.19 16Oct2002 [email protected]
> http://www.scyld.com/network/3c509.html
> eth3: 3c5x9 at 0x5000, BNC port, address 00 20 af 99 f2 ac, IRQ 12.
> 3c509.c:1.19 16Oct2002 [email protected]
> http://www.scyld.com/network/3c509.html
>
> (the last one, with IRQ#12 and BNC port, is EISA).

All the ISA cards are in EISA mode (set in 3c5x9cfg.exe utility).
IRQs are assigned by the EISA bus (set by EISA configuration utility).
If any of the ISA cards are in non-EISA mode, the some of them
does not work at all, starting from EISA BIOS config during boot.
So I can't switch the cards into PNP mode.

Also, I tried setting the cards manually with 3c509 module
parameters. The only parameter one can tweak is irq=,
but it seems the parameter is ignored -- I tried
modprobe 3c509 irq=15,7,5,12
but it still detects only the EISA card with irq=12, just
like without irq= line at all.

> But when in 2.6, only this last EISA one is recognized by
> 3c509 module.
>
> Any ideas?
>
> Thanks.
>
> /mjt
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

2005-05-06 21:37:28

by Brian Gerst

[permalink] [raw]
Subject: Re: 3c509 module and 2.6 kernel: not all NICs are recognized?

Michael Tokarev wrote:
> A bit more information.
>
> Michael Tokarev wrote:
>
>>Finally, I tried to boot our gateway machine into 2.6 (2.6.11.8
>>to be certain) kernel. The machine is quite old, it's 100MHz
>>Pentium-classic, yet it works as a router just fine.
>>
>>And surprizingly, this is the first machine I tried to upgrade
>>to 2.6 which does not work.
>>
>>It have 4 3c509 cards, one EISA and 3 ISA. Here's the dmesg
>>output when I load 3c509 module on 2.4 kernel:
>>
>>eth0: 3c5x9 at 0x2000, 10baseT port, address 00 60 08 4b 31 bf, IRQ 15.
>>3c509.c:1.19 16Oct2002 [email protected]
>>http://www.scyld.com/network/3c509.html
>>eth1: 3c5x9 at 0x3000, 10baseT port, address 00 20 af 92 f6 ef, IRQ 7.
>>3c509.c:1.19 16Oct2002 [email protected]
>>http://www.scyld.com/network/3c509.html
>>eth2: 3c5x9 at 0x4000, 10baseT port, address 00 20 af 92 83 02, IRQ 5.
>>3c509.c:1.19 16Oct2002 [email protected]
>>http://www.scyld.com/network/3c509.html
>>eth3: 3c5x9 at 0x5000, BNC port, address 00 20 af 99 f2 ac, IRQ 12.
>>3c509.c:1.19 16Oct2002 [email protected]
>>http://www.scyld.com/network/3c509.html
>>
>>(the last one, with IRQ#12 and BNC port, is EISA).
>
>
> All the ISA cards are in EISA mode (set in 3c5x9cfg.exe utility).
> IRQs are assigned by the EISA bus (set by EISA configuration utility).
> If any of the ISA cards are in non-EISA mode, the some of them
> does not work at all, starting from EISA BIOS config during boot.
> So I can't switch the cards into PNP mode.
>
> Also, I tried setting the cards manually with 3c509 module
> parameters. The only parameter one can tweak is irq=,
> but it seems the parameter is ignored -- I tried
> modprobe 3c509 irq=15,7,5,12
> but it still detects only the EISA card with irq=12, just
> like without irq= line at all.
>
>

what does dmesg|grep EISA show?

--
Brian Gerst

2005-05-06 21:41:43

by Michael Tokarev

[permalink] [raw]
Subject: Re: 3c509 module and 2.6 kernel: not all NICs are recognized?

Brian Gerst wrote:
> Michael Tokarev wrote:
[]
>>> It have 4 3c509 cards, one EISA and 3 ISA. Here's the dmesg
[]
>> All the ISA cards are in EISA mode (set in 3c5x9cfg.exe utility).
>> IRQs are assigned by the EISA bus (set by EISA configuration utility).
>> If any of the ISA cards are in non-EISA mode, the some of them
>> does not work at all, starting from EISA BIOS config during boot.
>> So I can't switch the cards into PNP mode.
[]
>
> what does dmesg|grep EISA show?

Looks like I already found it by looking at the driver source.

struct eisa_device_id el3_eisa_ids[] = {
{ "TCM5092" },
{ "TCM5093" },
{ "TCM5095" }, <==== I added this line
{ "" }
};

and now it works.

EISA: Probing bus 0 at 0000:00:06.0
EISA: Mainboard ACR1C01 detected.
EISA: slot 2 : TCM5095 detected.
EISA: slot 3 : TCM5095 detected.
EISA: slot 4 : TCM5095 detected.
EISA: slot 5 : TCM5093 detected.
EISA: Detected 4 cards.


I'm not sure if it will work with ISA cards in ISA mode.
As I pointed out above, this machine does not want to
initialize EISA bus if at least one of the cards isn't
in EISA mode. Will "plain" (in ISA mode) 3c509 be shown
in EISA scan too?

/mjt

2005-05-06 21:59:47

by Michael Tokarev

[permalink] [raw]
Subject: Re: 3c509 module and 2.6 kernel: not all NICs are recognized?

This trivial patch adds support for ISA 3c509 cards in EISA mode.

Signed-Off-By: Michael Tokarev <[email protected]>

--- a/drivers/net/3c509.c.orig Sat May 7 01:55:35 2005
+++ b/drivers/net/3c509.c Sat May 7 01:27:49 2005
@@ -217,6 +217,7 @@
struct eisa_device_id el3_eisa_ids[] = {
{ "TCM5092" },
{ "TCM5093" },
+ { "TCM5095" },
{ "" }
};


Attachments:
3c509-ISA-in-EISA-mode.patch (355.00 B)