2001-02-27 21:25:38

by Mario Vanoni

[permalink] [raw]
Subject: 3c59x new version, help me please with the new kernels

PCI 3COM 3C905B COMBO Etherlink XL 10/100Mbit BNC+RJ-45
running a LAN with 3 machines 10MB with BNC/RG-58U cable.

2.2.12 ... 2.2.19pre7aa1 no problems,

kernel with modules, /etc/modules.conf:
alias eth0 3c59x
options 3x59x options=0

kernel _without_ modules, my usual and preferred mode,
with the following little patch from Andrea
in /usr/src/linux/drivers/net/3c59x.c, original:
static int options[MAX_UNITS] = { -1, -1, -1, -1, -1, -1, -1, -1,};
always manually changed to:
static int options[MAX_UNITS];

booting message without modules:

eth0: 3Com 3c905B Cyclone 10/100/BNC at 0xa000, 00:50:04:9b:f0:b8 IRQ11
8K byte-wide RAM 5:3 Rx:Tx split, autoselect/Autonegotiate interface.
Media override to transceiver type 0 (10baseT)
Enabling bus-master transmits and whole-frame receives.
(the 1st line after 00:50 ... is different on all 3 machines!)

Works since over an year perfectly.
-----------------------------------

2.2.19pre15aa1 (same effect with 2.4.2pre?):

neither telnet nor mount -t nfs work,
rebooting to 2.2.19pre7aa1, _all_ works always perfectly.

Checked with 3c59x as module, without modules,
with/without Andrea's change, rien ne va plus.

gcc-2.95.3.test3, all kernels since test1 compiled with in
/usr/src/linux/arch/i386/Makefile:
ifdef CONFIG_M686
CFLAGS := ... -march=i686 ... in place of -m486
(stolen from 2.4.2pre?)

All machines PIII550, 2 UP's 512MB mem, 1 SMP Dual 1024MB.
glib-2.1.3
base old SuSE 6.4 with many updgrades via sources
*.tar.gz/*tar.bz2, never with rpm!

Not in lkml, CC if necessary.

I will do every test is needed/requested !!!

Regards and many thanks
Mario

PS Why _all_ machines swap copying 545MB, 5 files ~115MB,
from a mounted /cdrom to /tmp? With the newest kernels!
AT&T SVR2...3.2 in over 12 years newer swapped with cp(1).


2001-02-27 23:22:15

by Andrew Morton

[permalink] [raw]
Subject: Re: 3c59x new version, help me please with the new kernels

Mario Vanoni wrote:
>
> PCI 3COM 3C905B COMBO Etherlink XL 10/100Mbit BNC+RJ-45
> running a LAN with 3 machines 10MB with BNC/RG-58U cable.
>

Which interface do you actually want to use? BNC?

Try `options=3'.

If that doesn't work, please send me (off-list) the log
output from the driver when it is loaded an opened
with the `debug=4' module parm.


I suspect what has happened is this: in older kernels,
the interface selection code would try different interfaces
even if the user has selected, say, 10baseT. This was causing
the driver to select 10base2 when the RJ45 is unplugged. It
gets stuck there, necessitating a reboot or driver reload.
So I changed the driver so that if the user says 10baseT,
we unconditionally _use_ 10baseT, dammit.

The module option (and patch) which you've been using
were relying on the old behaviour - they select the
10baseT interface. This interface doesn't have link beat,
so the driver tries 10base2 and all is happy.

Using `options=3' will select 10base2 immediately. For the
non-modular case you'll need to use the `ether=' LILO option.

hmm.. In fact, you shouldn't need any option for 10base2 - perhaps
your EEPROM doesn't have the correct "available media" info. Please
send me the output of `vortex-diag -aaee' - http://www.scyld.com/diag/#pci-diags

-