[realtek] Having trouble with 8139too device
Kevin M. Huffenberger
khuffenb at Princeton.EDU
Sun May 22 10:18:00 PDT 2005
Forgive me if this is the inappropriate forum to ask for this kind of
help.
I'm trying to install linux on a hp zv6000 laptop. I have tried several
distros, Fedora Core 4 test3 is working best, but the networking is
working only sporadically. Network seems to work okay in FC1 and Ubuntu
5.04. I get "link up" but "transmit timed out" errors, so I suspect some
driver conflict or misconfiguration. I rarely can get a dchp lease, but
not usually.
I have included below the results of lspci, ifconfig, dmesg, rtl8139-diag,
etc.
I have no idea how to debug this kind of problem. Any input that can help
me track this down would be greatly appreciated.
---Kevin
--------------------------------------
[root at localhost ~]# uname -a
Linux localhost.localdomain 2.6.11-1.1329_FC4 #1 Thu May 19 21:14:20 EDT
2005 i686 athlon i386 GNU/Linux
[root at localhost ~]# /sbin/lspci -s 03:06.0 -vvvv
03:06.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
RTL-8139/8139C/8139C+ (rev 10)
Subsystem: Hewlett-Packard Company: Unknown device 3085
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: 128 (8000ns min, 16000ns max)
Interrupt: pin A routed to IRQ 11
Region 0: I/O ports at a000 [size=256]
Region 1: Memory at d4200000 (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-
---------------------------------------
[root at localhost ~]# /sbin/ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:0F:B0:6E:03:F7
inet6 addr: fe80::20f:b0ff:fe6e:3f7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:11 Base address:0xa000
----------------------------------------
lsmod reveals:
8139too 30017 0
mii 5441 1 8139too
----------------------------------------
When I (repeatedly) try to start eth0 with ifup, /var/log/messages shows
May 22 09:46:48 localhost dhclient: DHCPDISCOVER on eth0 to
255.255.255.255 port 67 interval 16
May 22 09:46:54 localhost kernel: NETDEV WATCHDOG: eth0: transmit timed
out
May 22 09:46:54 localhost kernel: eth0: link up, 100Mbps, full-duplex, lpa
0x41E1
May 22 09:47:04 localhost dhclient: DHCPDISCOVER on eth0 to
255.255.255.255 port 67 interval 10
May 22 09:47:14 localhost dhclient: DHCPDISCOVER on eth0 to
255.255.255.255 port 67 interval 12
May 22 09:47:26 localhost dhclient: DHCPDISCOVER on eth0 to
255.255.255.255 port 67 interval 4
May 22 09:47:30 localhost dhclient: No DHCPOFFERS received.
May 22 09:47:30 localhost dhclient: Trying recorded lease 192.168.2.7
May 22 09:47:30 localhost kernel: Unable to handle kernel NULL pointer
dereference at virtual address 00000004
----------------------------------------
dmesg gives some more info
NETDEV WATCHDOG: eth0: transmit timed out
eth0: Transmit timeout, status 0c 0005 c07f media 10.
eth0: Tx queue start entry 4 dirty entry 0.
eth0: Tx descriptor 0 is 0008a156. (queue head)
eth0: Tx descriptor 1 is 0008a156.
eth0: Tx descriptor 2 is 0008a156.
eth0: Tx descriptor 3 is 0008a156.
eth0: link up, 100Mbps, full-duplex, lpa 0x41E1
... and ...
Unable to handle kernel NULL pointer dereference at virtual address
00000004
printing eip:
c01f31df
*pde = 00f56067
Oops: 0000 [#38]
Modules linked in: joydev parport_pc lp parport autofs4 rfcomm l2cap
bluetooth sunrpc pcmcia ipt_REJECT ipt_state ip_conntrack iptable_filter
ip_tables video button battery ac md5 ipv6 yenta_socket rsrc_nonstatic
pcmcia_core ohci_hcd ehci_hcd shpchp snd_atiixp snd_ac97_codec
snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device
snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd soundcore snd_page_alloc
8139too mii dm_snapshot dm_zero dm_mirror ext3 jbd dm_mod
CPU: 0
EIP: 0060:[<c01f31df>] Not tainted VLI
EFLAGS: 00010246 (2.6.11-1.1329_FC4)
EIP is at avc_audit+0x2e9/0xbee
eax: c0ec65b0 ebx: 00000008 ecx: c0390491 edx: 00000000
esi: c82daf0c edi: 00000008 ebp: c57a8aa0 esp: c82dae6c
ds: 007b es: 007b ss: 0068
Process ping (pid: 7666, threadinfo=c82da000 task=c57a8aa0)
Stack: c61b8200 c039048c c03861bb c0ccd3f0 c9d0ecec c9d0ed04 cd6a73ac
cd6a73ac
00db3c10 caa25e7c c11ab320 0011cc24 00000236 00000236 00000011
00000008
c61b8200 00000008 cd69c00c 00000236 00000236 00000011 c0168307
00000000
Call Trace:
[<c0168307>] handle_mm_fault+0x1f9/0x322
[<c015a779>] poison_obj+0x20/0x3d
[<c01f4154>] avc_has_perm+0x4e/0x5a
[<c01f8df6>] selinux_socket_create+0x44/0x127
[<c02fef25>] __sock_create+0x6b/0x1dd
[<c02ff0af>] sock_create+0x18/0x1d
[<c02ff0ed>] sys_socket+0x1c/0x44
[<c02fff2c>] sys_socketcall+0x84/0x290
[<c0108436>] do_syscall_trace+0xef/0x123
[<c0103a51>] syscall_call+0x7/0xb
Code: 3f fe ff ff 8b 94 24 9c 00 00 00 8b 42 08 89 44 24 08 c7 44 24 04 a8
04 39 c0 8b 4c 24 40 89 0c 24 e8 85 a5 f5 ff e9 18 fe ff ff <a1> 04 00 00
00 85 c0 0f 84 ef fd ff ff 8b 80 98 00 00 00 85 c0
<6>eth0: link up, 100Mbps, full-duplex, lpa 0x41E1
-----------------------
Results of diagnostic programs
[root at localhost 8139_diagnostic]# ./rtl8139-diag -aaf
rtl8139-diag.c:v2.13 2/28/2005 Donald Becker (becker at scyld.com)
http://www.scyld.com/diag/index.html
Index #1: Found a RealTek RTL8139 adapter at 0xa000.
RealTek chip registers at 0xa000
0x000: 6eb00f00 0000f703 a0000000 40000000 0008a156 00002000 00002000
00002000
0x020: 04c0c000 04c0c600 04c0cc00 04c0d200 05090000 0c0a0000 029cfff0
0005c07f
0x040: 77400680 0000f78e 3c3744f9 00000000 008d1000 00000000 00a8c110
00100000
0x060: 1100100f 01e1782d 000141e1 00000000 00000704 000107c8 60f60c59
7b732660.Realtek station address 00:0f:b0:6e:03:f7, chip type 'rtl8139C'.
Receiver configuration: Normal unicast and hashed multicast
Rx FIFO threshold 2048 bytes, maximum burst 2048 bytes, 32KB ring
Transmitter enabled with NONSTANDARD! settings, maximum burst 1024
bytes.
Tx entry #0 status 0008a156 complete, 342 bytes.
Tx entry #1 status 00002000 incomplete, 0 bytes.
Tx entry #2 status 00002000 incomplete, 0 bytes.
Tx entry #3 status 00002000 incomplete, 0 bytes.
Flow control: Tx disabled Rx disabled.
The chip configuration is 0x10 0x8d, MII half-duplex mode.
Interrupt sources are pending.
Rx Complete indication.
Transmit OK indication.
[root at localhost 8139_diagnostic]# ./rtl8139-diag -ee
rtl8139-diag.c:v2.13 2/28/2005 Donald Becker (becker at scyld.com)
http://www.scyld.com/diag/index.html
Index #1: Found a RealTek RTL8139 adapter at 0xa000.
Realtek station address 00:0f:b0:6e:03:f7, chip type 'rtl8139C'.
Receiver configuration: Reception disabled
Rx FIFO threshold 16 bytes, maximum burst 16 bytes, 8KB ring
Transmitter disabled with normal settings, maximum burst 16 bytes.
Flow control: Tx disabled Rx disabled.
The chip configuration is 0x10 0x8d, MII half-duplex mode.
Interrupt sources are pending.
Rx Complete indication.
Transmit OK indication.
Decoded EEPROM contents:
PCI IDs -- Vendor 0x10ec, Device 0x8139.
PCI Subsystem IDs -- Vendor 0x103c, Device 0x3085.
PCI timer settings -- minimum grant 32, maximum latency 64.
General purpose pins -- direction 0xe1 value 0x1e.
Station Address 00:0F:B0:6E:03:F7.
Configuration register 0/1 -- 0x8d / 0xc2.
EEPROM active region checksum is 093d.
EEPROM contents (64 words):
0x00: 8129 10ec 8139 103c 3085 4020 e11e 0f00
0x08: 6eb0 f703 8d10 f7c2 a801 43b9 a0f2 071a
0x10: df43 8a36 df43 8a36 43b9 a0f2 1111 1111
0x18: 0000 23a9 0000 0000 0000 0000 0000 1800
0x20: 0000 0000 0000 0000 0000 0000 0000 0000
...
[root at localhost 8139_diagnostic]# ./rtl8139-diag -mm
rtl8139-diag.c:v2.13 2/28/2005 Donald Becker (becker at scyld.com)
http://www.scyld.com/diag/index.html
Index #1: Found a RealTek RTL8139 adapter at 0xa000.
Realtek station address 00:0f:b0:6e:03:f7, chip type 'rtl8139C'.
Receiver configuration: Reception disabled
Rx FIFO threshold 16 bytes, maximum burst 16 bytes, 8KB ring
Transmitter disabled with normal settings, maximum burst 16 bytes.
Flow control: Tx disabled Rx disabled.
The chip configuration is 0x10 0x8d, MII half-duplex mode.
Interrupt sources are pending.
Rx Complete indication.
Transmit OK indication.
The RTL8139 does not use a MII transceiver.
It does have internal MII-compatible registers:
Basic mode control register 0x1100.
Basic mode status register 0x782d.
Autonegotiation Advertisement 0x01e1.
Link Partner Ability register 0x41e1.
Autonegotiation expansion 0x0001.
Disconnects 0x0000.
False carrier sense counter 0x0000.
NWay test register 0x0704.
Receive frame error count 0x0000.
libmii.c:v2.11 2/28/2005 Donald Becker (becker at scyld.com)
http://www.scyld.com/diag/index.html
MII PHY #32 transceiver registers:
1100 782d 0000 0000 01e1 41e1 0001 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.
Basic mode control register 0x1100: Auto-negotiation enabled.
Basic mode status register 0x782d ... 782d.
Link status: established.
Capable of 100baseTx-FD 100baseTx 10baseT-FD 10baseT.
Able to perform Auto-negotiation, negotiation complete.
This transceiver has no vendor identification.
I'm advertising 01e1: 100baseTx-FD 100baseTx 10baseT-FD 10baseT
Advertising no additional info pages.
IEEE 802.3 CSMA/CD protocol.
Link partner capability is 41e1: 100baseTx-FD 100baseTx 10baseT-FD
10baseT.
Negotiation completed.
More information about the realtek
mailing list