[tulip] Failed to map PCI address ?

Fred Wilson Horch fhorch@ecoaccess.org
Sat, 08 Jul 2000 17:01:14 -0400


Does anyone know what 'Failed to map PCI address' means?

We have a cluster of Linux 2.0.36 machines using (or rather, previously
using) a 100 Mbps hub and four Kingston 100/10 Mbps NICs.  Every three
months or so the network would fail & we'd have to reboot to regain
connectivity.  By fail, what would happen is that most packets between
nodes would be lost and packets that did get through would take five
minutes or longer, essentially shutting down the entire cluster.  We
could never figure out what triggered this.

The situation has gone from bad to worse in trying to fix it.

One of the nodes has two NICs: an Intel EtherExpress Pro 10/100 that
worked and still works fine (at 10 Mbps), and the Kingston NIC that was
flaky.

After updating to tulip.c:v0.92 4/17/2000, that machine has completely
lost touch with the Kingston NIC.  Here is the boot message:

tulip.c:v0.92 4/17/2000  Written by Donald Becker <becker@scyld.com>
  http://www.scyld.com/network/tulip.html
Failed to map PCI address 0xebfeef80.

I tried swapping another Kingston NIC (same model) from another node in
the cluster -- same message no matter which NIC is in the machine.

Can anyone tell me what triggers this message ('Failed to map PCI
address')?

As far as I can tell, the hardware is okay.  All the lights come on (on
the card and on the hub).  Linux sees the card.   Here's the contents of
/proc/

PCI devices found:
[snip]
  Bus  0, device   6, function  0:
    Ethernet controller: Intel 82557 (rev 4).
      Medium devsel.  Fast back-to-back capable.  IRQ 10.  Master
Capable.  Latency=6
4.  Min Gnt=8.Max Lat=56.
      Prefetchable 32 bit memory at 0xffaff000.
      I/O at 0xef40.
      Non-prefetchable 32 bit memory at 0xebe00000.
  Bus  0, device   4, function  0:
    VGA compatible controller: S3 Inc. Trio64V2/DX or /GX (rev 22).
      Medium devsel.  
      Non-prefetchable 32 bit memory at 0xec000000.
  Bus  0, device   3, function  0:
    Ethernet controller: DEC DC21140 (rev 34).
      Medium devsel.  Fast back-to-back capable.  IRQ 9.  Master
Capable.  Latency=64
.  Min Gnt=20.Max Lat=40.
      I/O at 0xec80.
      Non-prefetchable 32 bit memory at 0xebfeef80.
[snip]

Here's what tulip-diag says:

tulip-diag.c:v2.00 4/19/2000 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Index #1: Found a Digital DS21140 Tulip adapter at 0xec80.
 Port selection is 10mpbs-serial, half-duplex.
 Transmit stopped, Receive stopped, half-duplex.
  The Rx process state is 'Stopped'.
  The Tx process state is 'Stopped'.
  The transmit threshold is 72.
 Use '-a' or '-aa' to show device registers,
     '-e' to show EEPROM contents, -ee for parsed contents,
  or '-m' or '-mm' to show MII management registers.

modprobe by hand complains with

/lib/modules/preferred/net/tulip.o: init_module: Device or resource busy

I have another machine running Linux 2.2.12 with the same model Kingston
NIC and tulip v0.92 that works fine.  Before I try to upgrade the kernel
on all our nodes (in sort of a Microsoft-esque attempt to solve a
problem by loading on more software that we don't really need) or
replace the NICs (in an Intel-esque attempt to solve a problem by buying
new hardware), I'd like to make sure I understand what the 'Failed to
map PCI address' message means.

Any help would be appreciated.  Thanks in advance,
Fred
-- 
Fred Wilson Horch			mailto:fhorch@ecoaccess.org
Executive Director, EcoAccess		http://ecoaccess.org/
2408 Prince St, Durham, NC 27707	phone: 919.419-8354