[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#381507: marked as done (3Com 3c900B (3c59x) network card unresponsive with latest 2.6 kernels)



Your message dated Mon, 26 May 2008 18:53:09 +0200
with message-id <20080526165309.GE26495@stro.at>
and subject line Re: 3Com 3c900B (3c59x) network card unresponsive with latest 2.6 kernels
has caused the Debian Bug report #381507,
regarding 3Com 3c900B (3c59x) network card unresponsive with latest 2.6 kernels
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
381507: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=381507
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: Linux-2.6
Version: 2.6.17-5

3Com 3c900B network card unresponsive with latest kernels.

This was initially discovered while using Knoppix 5.0 and 5.0.1. Then
installing the following Debian builds (from testing or unstable)
showed the same failure:

 kernel-image 2.6.15-1-486 (Debian 2.6.15-8)
 kernel-image 2.6.15-1-686 (Debian 2.6.15-8)
 kernel-image 2.6.16-2-686 (Debian 2.6.16-17)
 kernel-image 2.6.17-1-486 (Debian 2.6.17-5)
 kernel-image 2.6.17-1-686 (Debian 2.6.17-5)

All kernels showed the same behaviour. No amount of Knoppix options
(in Knoppix) would get the card to work. Kernel 2.6.11 on Knoppix 4.0
is latest kernel I tested that works ok. Not tested 2.6.12 through
2.6.14.

This also affects the Etch beta2 and latest (2006-07-31) net installer
using the 2.6.16 kernel, as network install is impossible.
The boot option install24 works.

Analysis:

ifconfig -a shows eth0 detected. dmesg output shows 3c59x module
detected card and ran - the card looks like it is detected and
configured. I can manually set an IP addr but the NIC does not respond
to network requests, dhcp, ping etc.

ifconfig output for eth0 looks normal except for "Base address:". It's
always been 0x6800 on this machine for Debian Woody, Sarge, Knoppix
and Windows. lspci -v, /proc/pci, /proc/ioports all confirm this - the
card's pci io port address is configured at usual value of 0x6800.

Snippet of output from lspci -v showing network card:

 0000:00:0b.0 Ethernet controller: 3Com Corporation 3c900B-TPC
Etherlink XL [Cyclone] (rev 04)
   Subsystem: 3Com Corporation 3c900B-TPC Etherlink XL [Cyclone]
   Flags: bus master, medium devsel, latency 64, IRQ 11
   I/O ports at 6800 [size=128]
   Memory at e8040000 (32-bit, non-prefetchable) [size=128]
   Expansion ROM at 20000000 [disabled] [size=128K]
   Capabilities: [dc] Power Management version 1

and from ifconfig -a for eth0:

 eth0 Link encap:Ethernet  HWaddr 00:10:5A:F7:2C:9B
   BROADCAST MULTICAST  MTU:1500  Metric:1
   RX packets:0 errors:0 dropped:0 overruns:0 frame:0
   TX packets:1 errors:0 dropped:0 overruns:0 carrier:1
   collisions:0 txqueuelen:1000
   RX bytes:0 (0.0 b)  TX bytes:342 (342.0 b)
   Interrupt:11 Base address:0xe000

and snippet from dmesg:

   PCI: Found IRQ 11 for device 0000:00:0b.0
   3c59x: Donald Becker and others. www .scyld.com/network/vortex.html
   0000:00:0b.0: 3Com PCI 3c900 Cyclone 10Mbps TPC at c080e000.

The "at c080e000" would be "at 0x6800" on previous kernels. IRQ and
PCI slot number is good and matches lspci -v.

It is immediately obvious the lower 16 bits of this address
corresponds with ifconfig "Base address". The upper 16 bits look
suspiciously like a memory address and are in fact close to the range
of addresses from cat /proc/kallsyms|grep 3c59x.

Subsequent reboots of the same Knoppix CD show different values used
for the ifconfig base address. It has been 0x0000, 0x2000, 0x6000,
0x8000, 0xc000, 0xe000. Upper 16 bits of address displayed by 3c59x
module are always the same or similar (~same top 13 bits) Rebooting
Debian uses the same address each time - it varies for each kernel but
is the same for boots of the same kernel - though I have once had the
address c0810000 for 2.6.17-1-686 (see dmesg above). 2.6.16-2-686 was
always c081c000 for the times I rebooted it.

Attached files are outputs from commands dmesg, lspci -vvv and
ifconfig -a for kernel 2.6.17-1-686 (2.6.17-5) 29 Jul.

Hardware:

Machine is Pentium II 400MHz, ATrend ATC6220 BX based motherboard.
256Mb RAM. 3Com 3c900B. Elsa Erazor III (nVidia TNT2), Monster Sound
II (Aureal AU8830). IDE hard disk, DVD-ROM and CD writer. Not
overclocked. A fairly ordinary machine.

I also have two other machines with 3Com cards that I tried with
Knoppix 5.0 and 5.0.1. The machines are in daily use so I can't really
experiment further with them! One has been using Woody and Sarge
(kernel 2.4.27) without problems. The other runs Smoothwall (Redhat
based firewall). For brevity I won't list lspci etc for them. Please
ask if you require this.

First one is PIII/800 on A-Open AX6B+ BX based motherboard with
AIC7880 on-board SCSI. 256Mb. ATI Radeon QD. SB Live. 3Com 3c900B. As
with the PII machine, the 3c900B io port maps to 0x6800. lspci
confirms this. ifconfig and dmesg output is wrong in the same way as
described above. Oddity is the network card works perfectly! (bug has
moved somewhere else??)

Second is K6-2/400 on Epox EP-51MVP VIA motherboard. 128Mb. 3dfx
Voodoo 3 3000. 3c900 and 3c905B. 3c900=eth0: base address should be
0xe800, dmesg shows 0001e800 always. 3c905B=eth1: base address should
be 0xec00, dmesg shows c8c90000, c8cac000 and others as described
above. Like PIII machine both network cards appear to function
normally!

I hope this characterises the problem sufficiently. I wouldn't have
realised anything was wrong, and discovered this anomaly, unless the
PII machine had stopped working with Knoppix 5. I don't know if the
ifconfig and 3c59x address thing is relevant or just a red herring. As
a programmer it yells out that something is horribly wrong, even if
the network cards do work on some of my machines. The three machines
are reasonably different hardware yet all show similar outputs which
might point to the driver otherwise you would have been flooded with
complaints by now! This is very repeatable with a normal install - I
don't need to set up anything exotic! Yet it is a mystery why a
(seemingly) bad io addr lets some cards work. They do have the 3c59x
module in common. But if this were the case you'd be having reports
from every user with a 3Com card and/or would have been spotted
several kernels ago? Some people have pointed out that PCI has mobile
addresses but this would be reflected in lspci? Unfortunately I only
have 3Com cards for testing and I don't really know that much about
the Linux internals to try and track this down further.

Please let me know if there is anything else you need or want me to to try.
Thanks.

Attachment: dmesg.out
Description: Binary data

Attachment: lspci-vvv.out
Description: Binary data

Attachment: ifconfig-a.out
Description: Binary data


--- End Message ---
--- Begin Message ---
Version: 2.6.24-1

newer kernel have several fixes for 3c59x, so assuming fixed.
please if trouble prexist in current kernel >= 2.6.24 holler
loudly.

thanks for report.

-- 
maks


--- End Message ---

Reply to: