[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

DECchip 21040 Ethernet Card with Alpha 2.4.18-generic



Greetings,

I'm trying to get a DECchip 21040 Ethernet card working with 2.4.18-generic
on a Digital AlphaStation 200 4/166 and I'm having some troubles.  After
loading tulip.o that ships with the kernel and bringing up the ethernet
interface, I cannot ping other machines.  

# modprobe tulip
# ifup eth0  (At this point, the link light on the switch goes off)
# ping <remote host IP>
eth0: No link beat found.

Here's what /proc/pci has to say about the card:

Bus 0, device 11, function 0:
Ethernet controller: Digital Equipment Corporation DECchip 21040 [Tulip] (rev 36).
    IRQ 15
    Master Capable.  Latency=32
    I/O at 0x8400 [0x847f].
    Non-prefetchable 32 bit memory at 0x1241000 [0x124107f].

Thinking it might be a bad NIC, I've switched it out with another identical
card and get the same behavior.  I then tried downloading the latest version
of tulip.c and pci_scan.c from http://www.scyld.com/network/tulip.html

When trying to compile pci-scan.c with the following command:
# gcc -DMODULE -D__KERNEL__ -DEXPORT_SYMTAB -Wall -Wstrict-prototypes -O6 -I/usr/src/kernel-headers-2.4.28-generic/include -c pci-scan.c -o pci-scan.o

I get the following error:
/usr/src/kernel-headers-2.4.28-generic/include/asm/current.h:4: global register variable follows a function definition

After doing a bit of research, I found a suggestion to add the following options:
-mno-fp-regs -ffixed-8

After adding those options, both pci-scan.c and tulip.c compiled and loaded
successfully.  I was also able bring up the interface successfully; however,
when I tried to ping or ssh to another machine, I got a kernel panic.

# insmod ./pci-scan.o
pci-scan.c:v1.11 8/31/2002 Donald Becker <becker@scyld.com> http://www.scyld.com/linux/drivers.html
# insmod ./tulip.o
tulip.c:v0.97 7/22/2003 Written by Donald Becker <becker@scyld.com>
eth0: Digital DC21040 Tulip rev 36 at 0xfffffc0301241000, 00:00:F8:5E:4F:35, IRQ 15.
# ifup eth0
# ping <remote host IP>
Unable to handle kernel paging request at virtual address 0000000100000578
ping(304): Oops 0
<register dump here -- sorry, I'm copying this by hand>
Kernel panic: Aiee, killing interrupt handler!
In interrupt handler - not syncing

Here's the info on my environment:
# uname -r
2.4.18-generic
# gcc --version
2.95.4

Thanks in advance for any help you can provide.  If you need any further
information, please let me know.

Andy
--
Andy Dalton                    | Graduate Student
Department of Computer Science | Appalachian State University
Boone, North Carolina  USA     | Office:  (828) 262-6706
ard@cs.appstate.edu            | http://www.cs.appstate.edu/~ard/



Reply to: