#36 0.9.17 fails with media unconnected

critical
closed-fixed
Jeff Garzik
8139too (65)
8
2001-11-01
2001-06-03
Geoff Thornton
No

I use an Alcatel Home speedtouch modem connected to my
SMC1121TX 8139 chipset ethernet card for my ADSL
connection. This is installed in my Pentium II, Aopen
AX6B mobo, which is based on the Intel BX Chipset.

I recently upgraded my Linux kernel to 2.4.5, thats
ships with 8139too V0.9.17 driver no longer works for
me. I have downgraded back to kernel 2.4.3, as I have
found that the V0.9.16 that ships with kernel 2.4.4 no
longer works for me either.

In an effort to help track down the problem I have
compiled 8139too 0.9.17 from the source for comparison
with version 0.9.15c that came with kernel 2.4.3.

Here is the kernel logs for the drivers from my
var/log/messages:

Jun 3 14:51:31 fruitbat kernel: 8139too Fast Ethernet
driver 0.9.15c loaded
Jun 3 14:51:31 fruitbat kernel: PCI: Found IRQ 3 for
device 00:0b.0
Jun 3 14:51:31 fruitbat kernel: eth0: SMC1211TX
EZCard 10/100 (RealTek RTL8139) at 0xc8881000,
00:e0:29:65:a9:32, IRQ 3
Jun 3 14:51:31 fruitbat kernel: eth0: Setting half-
duplex based on auto-negotiated partner ability 0000.

Jun 3 14:55:01 fruitbat kernel: 8139too Fast Ethernet
driver 0.9.17
Jun 3 14:55:01 fruitbat kernel: PCI: Found IRQ 3 for
device 00:0b.0
Jun 3 14:55:01 fruitbat kernel: eth0: SMC1211TX
EZCard 10/100 (RealTek RTL8139) at 0xc8881000,
00:e0:29:65:a9:32, IRQ 3
Jun 3 14:55:10 fruitbat kernel: eth0: media is
unconnected, link down, or incompatible connection

Here is the ifconfig output for the different modules:

8139too version 0.9.15c:
eth0 Link encap:Ethernet HWaddr
00:E0:29:65:A9:32
UP BROADCAST RUNNING MULTICAST MTU:1500
Metric:1
RX packets:2537 errors:0 dropped:0
overruns:0 frame:0
TX packets:1456 errors:0 dropped:0
overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:3 Base address:0x1000

8139too version 0.9.17:
eth0 Link encap:Ethernet HWaddr
00:E0:29:65:A9:32
UP BROADCAST RUNNING MULTICAST MTU:1500
Metric:1
RX packets:0 errors:0 dropped:0 overruns:0
frame:0
TX packets:3 errors:0 dropped:0 overruns:0
carrier:0
collisions:0 txqueuelen:100
Interrupt:3 Base address:0x2000

(note how the base address has moved up by 1000 hex, I
don't know if this is signifigant or not)

Here are the outputs of rtl-diag -mmaaavvveef

8139too version 0.9.15c:
rtl8139-diag.c:v2.01 1/8/2001 Donald Becker
(becker@scyld.com)
http://www.scyld.com/diag/index.html
Index #1: Found a SMC1211TX EZCard 10/100 (RealTek
RTL8139) adapter at 0x9400.
RealTek chip registers at 0x9400
0x000: 6529e000 000032a9 00000000 00000000 9008a03c
9008a03c 9008a03c 9008a03c
0x020: 057ea000 057ea600 057eac00 057eb200 017b0000
0d0a0000 02ac029c 0000c07f
0x040: 78000600 0000d68e 5945168c 00000000 002d10c7
00000000 0080d118 00100000
0x060: 1000f00f 05e1782d 00000000 00000000 00000005
000f77c0 58fab388 ad38d843.
No interrupt sources are pending.
The chip configuration is 0x10 0x2d, MII half-duplex
mode.
EEPROM size test returned 6, 0x204a4 / 0x2.
Parsing the EEPROM of a RealTek chip:
PCI IDs -- Vendor 0x1113, Device 0x1211, Subsystem
0x1113.
PCI timer settings -- minimum grant 32, maximum
latency 64.
General purpose pins -- direction 0xf1 value 0x10.
Station Address 00:E0:29:65:A9:32.
Configuration register 0/1 -- 0x0d / 0xc2.
EEPROM active region checksum is 06c0.
EEPROM contents:
8129 1113 1211 1113 1211 4020 f110 e000
6529 32a9 0d10 ffc2 8401 b388 58fa 8708
d843 ad38 d843 ad38 d843 ad38 d843 ad38
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
The word-wide EEPROM checksum is 0xaabc.

8139too version 0.9.17:
rtl8139-diag.c:v2.01 1/8/2001 Donald Becker
(becker@scyld.com)
http://www.scyld.com/diag/index.html
Index #1: Found a SMC1211TX EZCard 10/100 (RealTek
RTL8139) adapter at 0x9400.
RealTek chip registers at 0x9400
0x000: 6529e000 000032a9 00000000 00000000 9008a03c
9008a03c 9008a03c 00002000
0x020: 04fb0000 04fb0600 04fb0c00 04fb1200 017b0000
0d000000 0000fff0 0000c07f
0x040: 78000600 0200f780 286b78c0 00000000 002d10c7
00000000 0080d118 00100000
0x060: 1000700f 05e1782d 00000000 00000000 00000005
000f77c0 58fab388 ad38d843.
No interrupt sources are pending.
The chip configuration is 0x10 0x2d, MII half-duplex
mode.
EEPROM size test returned 6, 0x204a4 / 0x2.
Parsing the EEPROM of a RealTek chip:
PCI IDs -- Vendor 0x1113, Device 0x1211, Subsystem
0x1113.
PCI timer settings -- minimum grant 32, maximum
latency 64.
General purpose pins -- direction 0xf1 value 0x10.
Station Address 00:E0:29:65:A9:32.
Configuration register 0/1 -- 0x0d / 0xc2.
EEPROM active region checksum is 06c0.
EEPROM contents:
8129 1113 1211 1113 1211 4020 f110 e000
6529 32a9 0d10 ffc2 8401 b388 58fa 8708
d843 ad38 d843 ad38 d843 ad38 d843 ad38
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
The word-wide EEPROM checksum is 0xaabc.

(note there are differences in the chip register
locations at offsets 0x007, 0x021~0x026, 0x042~0x043
and 0x060).

Here is the output from lspci -vvv:
00:00.0 Host bridge: Intel Corporation 440BX/ZX -
82443BX/ZX Host bridge (rev 02)
Control: I/O- Mem+ BusMaster+ SpecCycle-
MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B- ParErr-
DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR-
Latency: 32
Region 0: Memory at e3000000 (32-bit,
prefetchable) [size=8M]
Capabilities: [a0] AGP version 1.0
Status: RQ=31 SBA+ 64bit- FW-
Rate=x1,x2
Command: RQ=0 SBA- AGP- 64bit- FW-
Rate=<none>

00:01.0 PCI bridge: Intel Corporation 440BX/ZX -
82443BX/ZX AGP bridge (rev 02) (prog-if 00 [Normal
decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle-
MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap- 66Mhz+ UDF- FastB2B- ParErr-
DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 64
Bus: primary=00, secondary=01, subordinate=01,
sec-latency=32
I/O behind bridge: 0000f000-00000fff
Memory behind bridge: e0000000-e1ffffff
Prefetchable memory behind bridge: e2000000-
e2ffffff
BridgeCtl: Parity- SERR- NoISA- VGA+ MAbort-
>Reset- FastB2B+

00:07.0 ISA bridge: Intel Corporation 82371AB PIIX4
ISA (rev 02)
Control: I/O+ Mem+ BusMaster+ SpecCycle+
MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr-
DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0

00:07.1 IDE interface: Intel Corporation 82371AB PIIX4
IDE (rev 01) (prog-if 80 [Master])
Control: I/O+ Mem- BusMaster+ SpecCycle-
MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr-
DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32
Region 4: I/O ports at f000 [size=16]

00:07.2 USB Controller: Intel Corporation 82371AB
PIIX4 USB (rev 01) (prog-if 00 [UHCI])
Control: I/O+ Mem- BusMaster+ SpecCycle-
MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr-
DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32
Interrupt: pin D routed to IRQ 10
Region 4: I/O ports at 9000 [size=32]

00:07.3 Bridge: Intel Corporation 82371AB PIIX4 ACPI
(rev 02)
Control: I/O+ Mem+ BusMaster- SpecCycle-
MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr-
DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Interrupt: pin ? routed to IRQ 9

00:0b.0 Ethernet controller: Accton Technology
Corporation SMC2-1211TX (rev 10)
Subsystem: Accton Technology Corporation EN-
1207D Fast Ethernet Adapter
Control: I/O+ Mem+ BusMaster+ SpecCycle-
MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr-
DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32 (8000ns min, 16000ns max)
Interrupt: pin A routed to IRQ 3
Region 0: I/O ports at 9400 [size=256]
Region 1: Memory at e3800000 (32-bit, non-
prefetchable) [size=256]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+
AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable+ DSel=0 DScale=0
PME-

01:00.0 VGA compatible controller: NVidia / SGS
Thomson (Joint Venture) Riva128 (rev 10) (prog-if 00
[VGA])
Subsystem: Diamond Multimedia Systems Viper
V330
Control: I/O+ Mem+ BusMaster+ SpecCycle-
MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr-
DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32 (750ns min, 250ns max)
Interrupt: pin A routed to IRQ 11
Region 0: Memory at e0000000 (32-bit, non-
prefetchable) [size=16M]
Region 1: Memory at e2000000 (32-bit,
prefetchable) [size=16M]
Expansion ROM at <unassigned> [disabled]
[size=4M]
Capabilities: [44] AGP version 1.0
Status: RQ=4 SBA- 64bit- FW- Rate=x1
Command: RQ=0 SBA- AGP- 64bit- FW-
Rate=<none>

I also tried to compile the 8139too version 0.9.15c
module into kernel 2.4.5., this however failed, so I
am stuck using kernel 2.4.3 until the problems with
version 0.9.17 of the 8139too code can be fixed
unfortunately. For interest here are the compiler
errors I received when trying to compile 8139too
0.9.15c (from kernel 2.4.3) with kernel 2.4.5.:

gcc -D__KERNEL__ -I/usr/src/lintst/include -Wall -
Wstrict-prototypes -O2 -fomit-frame-pointer -fno-
strict-aliasing -pipe -mpreferred-stack-boundary=2 -
march=i686 -DMODULE -DMODVERSIONS -
include /usr/src/lintst/include/linux/modversions.h -
c -o 8139too.o 8139too.c
8139too.c:181: parse error before `if'
8139too.c:181: stray '\' in program
8139too.c:182: stray '\' in program
8139too.c:183: undefined or invalid # directive
8139too.c: In function `__rtl8139_cleanup_dev':
8139too.c:675: stray '\' in program
8139too.c:676: stray '\' in program
8139too.c:679: stray '\' in program
8139too.c: In function `rtl8139_init_board':
8139too.c:717: stray '\' in program
8139too.c: In function `rtl8139_init_one':
8139too.c:893: stray '\' in program
8139too.c:894: stray '\' in program
8139too.c:912: stray '\' in program
8139too.c:913: stray '\' in program
8139too.c:914: stray '\' in program
8139too.c: In function `rtl8139_remove_one':
8139too.c:1040: stray '\' in program
8139too.c:1042: stray '\' in program
8139too.c: In function `mdio_read':
8139too.c:1168: warning: unused variable `i'
8139too.c:1166: warning: unused variable `mii_cmd'
8139too.c:1165: warning: unused variable `mdio_addr'
8139too.c: In function `mdio_write':
8139too.c:1211: warning: unused variable `i'
8139too.c:1210: warning: unused variable `mii_cmd'
8139too.c:1209: warning: unused variable `mdio_addr'
8139too.c: In function `rtl8139_start_xmit':
8139too.c:1676: stray '\' in program
8139too.c:1677: stray '\' in program
8139too.c: In function `rtl8139_tx_interrupt':
8139too.c:1719: stray '\' in program
8139too.c:1720: stray '\' in program
8139too.c:1721: stray '\' in program
8139too.c: In function `rtl8139_rx_interrupt':
8139too.c:1854: stray '\' in program
8139too.c:1855: stray '\' in program
8139too.c:1856: stray '\' in program
8139too.c: In function `rtl8139_weird_interrupt':
8139too.c:1965: stray '\' in program
8139too.c:1966: stray '\' in program
8139too.c:1967: stray '\' in program
8139too.c: At top level:
8139too.c:1146: warning: `mdio_sync' defined but not
used
make[2]: *** [8139too.o] Error 1
make[2]: Leaving directory
`/usr/src/lintst/drivers/net'
make[1]: *** [_modsubdir_net] Error 2
make[1]: Leaving directory `/usr/src/lintst/drivers'
make: *** [_mod_drivers] Error 2

Discussion

  • Jeff Garzik
    Jeff Garzik
    2001-06-03

    • assigned_to: nobody --> jgarzik
     
  • Logged In: NO

    I am experiencing the exact same problem. I have two 8139s
    in my system, one for my cable modem, the other for my home
    LAN. I am stuck with at least one, since the cable modem is
    set to only work with a card with a specific MAC address.
    So, everything works in 2.2.x series, but not on 2.4.4 and
    2.4.5. I have tried to rip all the other hardware support
    out of my machine to get it working, but it seems it
    doesn't help at all.

     
  • Jeff Garzik
    Jeff Garzik
    2001-06-03

    • priority: 5 --> 8
     
  • Logged In: NO

    I encountered the same problem also with an ADSL modem. You
    can still use the 2.4.5 if you start tcpdump -i eth0 this
    seems to complete the initialisation of the 8139 after you
    have stopped tcpdump with C-c you can use this board with
    ADSL.

     
  • Logged In: NO

    same problem :)
    thank you in advance for the future patch that will probably
    come ;-)

     
  • Geoff Thornton
    Geoff Thornton
    2001-07-05

    Logged In: YES
    user_id=230257

    Jeff,

    Just installed Linux kernel 2.4.6, which ships with 8139too
    0.9.18-pre4, and am happy to report that this version of
    the module now works for me.

     
  • Logged In: NO

    doesn't work for me !
    2.4.6, 0.9.8-pre4 (as module or not)

     
  • Logged In: NO

    Please use version 0.9.18, just released.

     
  • Jeff Garzik
    Jeff Garzik
    2001-11-01

    Logged In: YES
    user_id=17443

    This problem is fixed in the latest version of the driver. You
    can download the driver from the download section on this
    SourceForge web page.

     
  • Jeff Garzik
    Jeff Garzik
    2001-11-01

    • status: open --> closed-fixed