[vortex] reproducable pci bus errors (905c-tx, target abort)

Sven Golchert golchert@uni-bremen.de
Tue, 14 Aug 2001 00:49:43 +0200


hi,

i've got trouble with a 3c905C-TX in a dataexperts exp8049 mobo, 486/66, equipped with two more NICs: one 905B-FX and one 509B (ISA). the box is running suse linux 7.0 (kernel 2.4.0), 3c59x.c:LK1.1.12 is inserted as module.

whenever i route traffic over the 3c905C-TX (eth1 in my configuration), it will break with a

  PCI bus error, bus status 40000020

after less than a megabyte. when it breaks, its LINK-LED on the switch will turn off. the LED turns on when i "ifconfig eth1 down" and turns off again when i "ifconfig eth1 up". the only way to get things going is to remove and reinsert 3c59x.

the 3c905B-FX and 3c509B work flawlessly, the error is bound to the 905C. with suse 6.4/kernel 2.2.14 however, the box would hang as soon as the 905C went down (no response to keystrokes).

i put the appropriate output from lspci, dmesg etc. at the bottom. i found a mail by andrew morton in the linux-kernel mailinglist, date 6-dec-2000, subject "horrible hack from hell called a20", where a driver patch is suggested to provide more info about the PCI error. i would happily apply such a patch to my box if that could yield useful info.

thanks for any help.

sven


3c59x.c:LK1.1.12 06 Jan 2000  Donald Becker and others. http://www.scyld.com/network/vortex.html $Revision: 1.102.2.46 $
See Documentation/networking/vortex.txt
eth0: 3Com PCI 3c905B-FX Cyclone 100baseFx at 0x4080,  00:01:02:ed:aa:a8, IRQ 11
  product code 'CA' rev 00.0 date 12-13-00
Full duplex capable
  8K byte-wide RAM 5:3 Rx:Tx split, 100baseFX interface.
  Enabling bus-master transmits and whole-frame receives.
eth1: 3Com PCI 3c905C Tornado at 0x4000,  00:01:02:f2:c6:de, IRQ 10
  product code 'FJ' rev 00.13 date 11-16-00
  8K byte-wide RAM 5:3 Rx:Tx split, autoselect/Autonegotiate interface.
  MII transceiver found at address 24, status 782d.
  Enabling bus-master transmits and whole-frame receives.
eth0: using default media 100baseFX
eth0: no IPv6 routers present
eth0: no IPv6 routers present
inet6_ifa_finish_destroy
inet6_ifa_finish_destroy
3c59x.c:LK1.1.12 06 Jan 2000  Donald Becker and others. http://www.scyld.com/network/vortex.html $Revision: 1.102.2.46 $
See Documentation/networking/vortex.txt
eth0: 3Com PCI 3c905B-FX Cyclone 100baseFx at 0x4080,  00:01:02:ed:aa:a8, IRQ 11
  product code 'CA' rev 00.0 date 12-13-00
Full duplex capable
  Internal config register is 2500000, transceivers 0x4.
  8K byte-wide RAM 5:3 Rx:Tx split, 100baseFX interface.
3c59x: Wake-on-LAN functions disabled
  Enabling bus-master transmits and whole-frame receives.
eth1: 3Com PCI 3c905C Tornado at 0x4000,  00:01:02:f2:c6:de, IRQ 10
  product code 'FJ' rev 00.13 date 11-16-00
  Internal config register is 3800000, transceivers 0xa.
  8K byte-wide RAM 5:3 Rx:Tx split, autoselect/Autonegotiate interface.
  MII transceiver found at address 24, status 782d.
3c59x: Wake-on-LAN functions disabled
  Enabling bus-master transmits and whole-frame receives.


this is found about 20 times per second after eth1 went down:

3c59x: Wake-on-LAN functions disabled
eth1: using NWAY autonegotiation
eth1: Initial media type Autonegotiate.
vortex_up(): writing 0x3800000 to InternalConfig
eth1: MII #24 status 7809, link partner capability 0000, setting half-duplex.
eth1: vortex_up() InternalConfig 03800000.
eth1: vortex_up() irq 10 media status 8080.
eth1: In interrupt loop, status e003.
eth1: vortex_error(), status=0xe003
eth1: Host error, FIFO diagnostic register 0000.
eth1: PCI bus error, bus status 40000020


and this is the output of lspci -vv (both before and after eth1 broke)

00:00.0 Host bridge: Acer Laboratories Inc. [ALi]: Unknown device 1445
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- \
      ParErr- Stepping- SERR- FastB2B-
	Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- \
      <TAbort- <MAbort- >SERR- <PERR-
	Latency: 0

00:03.0 VGA compatible controller: S3 Inc. 86c764/765 [Trio32/64/64V+] \
  (prog-if 00 [VGA])
	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 A routed to IRQ 0
	Region 0: Memory at 04000000 (32-bit, non-prefetchable) [size=8M]
	Expansion ROM at <unassigned> [disabled] [size=64K]

00:04.0 Ethernet controller: 3Com Corporation 3c905B-FX [Fast Etherlink \
  XL FX 10/100]
	Subsystem: 3Com Corporation 3c905B-FX [Fast Etherlink XL FX 10/100]
	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: 80 (2500ns min, 2500ns max), cache line size 04
	Interrupt: pin A routed to IRQ 11
	Region 0: I/O ports at 4080 [size=128]
	Region 1: Memory at 05000080 (32-bit, non-prefetchable) [size=128]
	Expansion ROM at 08000000 [disabled] [size=128K]
	Capabilities: [dc] Power Management version 1
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1+,D2+\
          ,D3hot+,D3cold-)
		Status: D0 PME-Enable+ DSel=0 DScale=0 PME+

00:05.0 Ethernet controller: 3Com Corporation 3c905C-TX [Fast Etherlink] \
  (rev 74)
	Subsystem: 3Com Corporation 3C905C-TX Fast Etherlink for PC \
      Management NIC
	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: 80 (2500ns min, 2500ns max), cache line size 04
	Interrupt: pin A routed to IRQ 10
	Region 0: I/O ports at 4000 [size=128]
	Region 1: Memory at 05000000 (32-bit, non-prefetchable) [size=128]
	Expansion ROM at 08000000 [disabled] [size=128K]
	Capabilities: [dc] Power Management version 2
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+\
          ,D3hot+,D3cold-)
		Status: D0 PME-Enable+ DSel=0 DScale=2 PME-