[netdrivers] Adaptec Starfire and Kernel 2.6.x

Stefan Neuwirth neuwirt-netdrivers at trillian.hd.shuttle.de
Sat Jul 16 09:44:50 PDT 2005


Switched to an Adaptec 6944A/TX card :-(

  Stefan

Stefan Neuwirth <neuwirt-netdrivers at trillian.hd.shuttle.de> writes:

> meanwhile I switched to a plain vanilla 2.6.12.2 kernel - the same
> result.
>
> Stefan Neuwirth <neuwirt-netdrivers at trillian.hd.shuttle.de> writes:
>
>> I've a an adaptec starfire base 4-port card. The card is running fine
>> over time using a 2.4 linux kernel. Switching the system to 2.6 kernel
>> makes the card unusable. The 2.6 system runs fine using a dec (tulip)
>> based ethernet card.
>>
>> The card identifies via lspci in an 2.6. environment:
>>
>> 0000:03:04.0 Ethernet controller: Adaptec ANA620xx/ANA69011A (rev 03)
>>         Subsystem: Adaptec ANA62044 4-port 10/100
>>         Flags: bus master, medium devsel, latency 72, IRQ 201
>>         Memory at e1100000 (32-bit, non-prefetchable)
>>         I/O ports at 5000 [size=256]
>>         Capabilities: [50] Power Management version 1
>>
>> 0000:03:05.0 Ethernet controller: Adaptec ANA620xx/ANA69011A (rev 03)
>>         Subsystem: Adaptec ANA62044 4-port 10/100
>>         Flags: bus master, medium devsel, latency 72, IRQ 185
>>         Memory at e1180000 (32-bit, non-prefetchable)
>>         I/O ports at 5400 [size=256]
>>         Capabilities: [50] Power Management version 1
>>
>> 0000:03:06.0 Ethernet controller: Adaptec ANA620xx/ANA69011A (rev 03)
>>         Subsystem: Adaptec ANA62044 4-port 10/100
>>         Flags: bus master, medium devsel, latency 72, IRQ 209
>>         Memory at e1200000 (32-bit, non-prefetchable)
>>         I/O ports at 5800 [size=256]
>>         Capabilities: [50] Power Management version 1
>>
>> 0000:03:07.0 Ethernet controller: Adaptec ANA620xx/ANA69011A (rev 03)
>>         Subsystem: Adaptec ANA62044 4-port 10/100
>>         Flags: bus master, medium devsel, latency 72, IRQ 169
>>         Memory at e1280000 (32-bit, non-prefetchable)
>>         I/O ports at 5c00 [size=256]
>>         Capabilities: [50] Power Management version 1
>>
>> The starfire driver get loaded an all 4 port show up in ifconfig. It's
>> possible to configure the Interfaces:
>>
>> eth1      Link encap:Ethernet  HWaddr 00:00:D1:ED:14:01  
>>           inet addr:10.0.0.10  Bcast:10.255.255.255  Mask:255.255.255.0
>>           inet6 addr: fe80::200:d1ff:feed:1401/64 Scope:Link
>>           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>>           RX packets:74 errors:0 dropped:0 overruns:0 frame:0
>>           TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
>>           collisions:0 txqueuelen:1000 
>>           RX bytes:5131 (5.0 Kb)  TX bytes:868 (868.0 b)
>>           Interrupt:201 
>>
>> As you can see, the packet counter grow up. The card also apears in
>> /proc/interrupts:
>>
>> ford:~ # grep eth1 /proc/interrupts 
>> 201:        197   IO-APIC-level  eth1
>>
>> Please note, that I reloaded the driver so RX packet count and
>> interrupt count do not match.
>>
>> Now, perfect but unfortunatlly it dosen't work :-(
>>
>> Doing a ping show on the target machine something like this:
>>
>> zaphod:~ # tcpdump -i eth0 host 10.0.0.10
>> User level filter, protocol ALL, datagram packet socket
>> tcpdump: listening on eth0
>> 12:34:45.124031 arp who-has 10.0.0.11 tell 10.0.0.10
>> 12:34:45.124068 arp reply 10.0.0.11 (0:2:b3:24:ce:75) is-at 0:2:b3:24:ce:75 (0:0:d1:ed:14:1)
>> 12:34:46.123959 arp who-has 10.0.0.11 tell 10.0.0.10
>> 12:34:46.123980 arp reply 10.0.0.11 (0:2:b3:24:ce:75) is-at 0:2:b3:24:ce:75 (0:0:d1:ed:14:1)
>> 12:34:47.123902 arp who-has 10.0.0.11 tell 10.0.0.10
>> 12:34:47.123938 arp reply 10.0.0.11 (0:2:b3:24:ce:75) is-at 0:2:b3:24:ce:75 (0:0:d1:ed:14:1)
>>
>> So it seems the system can send packets into the world but can't
>> receive anything. Doing a tcpdump on the machine with the starfire
>> card give strange things:
>>
>> tcpdump: verbose output suppressed, use -v or -vv for full protocol
>> decode listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
>> 12:18:09.275428 00:00:00:00:00:00 > 00:00:00:00:00:00 null I (s=0,r=0,C) len=42
>> 12:18:10.274873 63:72:69:63:6b:65 > 65:74:20:2f:75:2f, ethertype Unknown (0x7420
>> ), length 60: 
>>         0x0000:  6e6f 6e65 2072 772c 6269 6e64 2030 2030  none.rw,bind.0.0
>>         0x0010:  0a74 206e 6673 2072 772c 7265 7472 793d  .t.nfs.rw,retry=
>>         0x0020:  322c 7273 697a 653d 3430 3936 2c77       2,rsize=4096,w
>> 12:18:11.274443 00:00:00:00:00:00 > 00:00:00:00:00:00 null I (s=0,r=0,C) len=42
>> 12:18:12.273955 00:00:00:00:00:c0 > 00:00:00:00:00:00, ethertype Unknown (0x203d
>> ), length 60: 
>>         0x0000:  12c0 ba75 1400 a4fa ffbf 0000 0000 0000  ...u............
>>         0x0010:  0000 0000 0000 0000 0000 0000 0000 0000  ................
>>         0x0020:  0000 0000 0000 0000 0000 0000 0000       ..............
>>
>> Well the first block look like an enrty of my automounter table! For
>> sure this is nothing valid in term of an ethernet packet. So wrong
>> pointer, DMA problem? 
>>
>> Last but not least the output of the driver in debug level 8:
>>
>> Jun 25 12:32:58 ford kernel: starfire.c:v1.03 7/26/2000  Written by Donald Becker <becker at scyld.com>
>> Jun 25 12:32:58 ford kernel:  (unofficial 2.2/2.4 kernel port, version 1.03+LK1.4.2, January 19, 2005)
>> Jun 25 12:32:58 ford kernel: starfire: polling (NAPI) enabled
>> Jun 25 12:32:58 ford kernel: ACPI: PCI interrupt 0000:03:04.0[A] -> GSI 18 (level, low) -> IRQ 201
>> Jun 25 12:32:58 ford kernel: 04 90 15 69 00 02 04 90 19 00 01 00 00 00 00 01
>> Jun 25 12:32:58 ford kernel: 14 ed d1 00 00 09 05 ff ff ff ff ff ff ff ff ff
>> Jun 25 12:32:59 ford kernel: eth1: Adaptec Starfire 6915 at f0f00000, 00:00:d1:ed:14:01, IRQ 201.
>> Jun 25 12:32:59 ford kernel: eth1: MII PHY found at address 1, status 0x7809 advertising 0x01e1.
>> Jun 25 12:32:59 ford kernel: eth1: scatter-gather and hardware TCP cksumming enabled.
>> Jun 25 12:32:59 ford kernel: ACPI: PCI interrupt 0000:03:05.0[A] -> GSI 19 (level, low) -> IRQ 185
>> Jun 25 12:32:59 ford kernel: 04 90 15 69 00 02 04 90 19 00 01 00 00 00 00 02
>> Jun 25 12:32:59 ford kernel: 14 ed d1 00 00 09 05 ff ff ff ff ff ff ff ff ff
>> Jun 25 12:32:59 ford kernel: eth2: Adaptec Starfire 6915 at f1000000, 00:00:d1:ed:14:02, IRQ 185.
>> Jun 25 12:32:59 ford kernel: eth2: MII PHY found at address 1, status 0x7809 advertising 0x01e1.
>> Jun 25 12:32:59 ford kernel: eth2: scatter-gather and hardware TCP cksumming enabled.
>> Jun 25 12:32:59 ford kernel: ACPI: PCI interrupt 0000:03:06.0[A] -> GSI 16 (level, low) -> IRQ 209
>> Jun 25 12:32:59 ford kernel: 04 90 15 69 00 02 04 90 19 00 01 00 00 00 00 03
>> Jun 25 12:32:59 ford kernel: 14 ed d1 00 00 09 05 ff ff ff ff ff ff ff ff ff
>> Jun 25 12:32:59 ford kernel: eth3: Adaptec Starfire 6915 at f1100000, 00:00:d1:ed:14:03, IRQ 209.
>> Jun 25 12:32:59 ford kernel: eth3: MII PHY found at address 1, status 0x7809 advertising 0x01e1.
>> Jun 25 12:32:59 ford kernel: eth3: scatter-gather and hardware TCP cksumming enabled.
>> Jun 25 12:32:59 ford kernel: ACPI: PCI interrupt 0000:03:07.0[A] -> GSI 17 (level, low) -> IRQ 169
>> Jun 25 12:32:59 ford kernel: 04 90 15 69 00 02 04 90 19 00 01 00 00 00 00 04
>> Jun 25 12:32:59 ford kernel: 14 ed d1 00 00 09 05 ff ff ff ff ff ff ff ff ff
>> Jun 25 12:32:59 ford kernel: eth4: Adaptec Starfire 6915 at f1280000, 00:00:d1:ed:14:04, IRQ 169.
>> Jun 25 12:32:59 ford kernel: eth4: MII PHY found at address 1, status 0x7809 advertising 0x01e1.
>> Jun 25 12:32:59 ford kernel: eth4: scatter-gather and hardware TCP cksumming enabled.
>> Jun 25 12:33:15 ford kernel: eth1: netdev_open() irq 201.
>> Jun 25 12:33:15 ford kernel: eth1: Filling in the station address.
>> Jun 25 12:33:15 ford kernel: eth1: Setting the Rx and Tx modes.
>> Jun 25 12:33:15 ford kernel: eth1: Interrupt status 0x20000001.
>> Jun 25 12:33:15 ford kernel: eth1: Tx Consumer index is 0.
>> Jun 25 12:33:15 ford kernel: eth1: Link is down
>> Jun 25 12:33:15 ford kernel: eth1: Interrupt status 0x00000000.
>> Jun 25 12:33:15 ford kernel: eth1: exiting interrupt, status=0x00000000.
>> Jun 25 12:33:15 ford kernel: eth1: Done netdev_open().
>> Jun 25 12:33:15 ford kernel: eth1: Tx #0/#0 slot 0 status 0xb1010056.
>> Jun 25 12:33:15 ford kernel: eth1: Tx #1/#0 slot 1 status 0xb101004e.
>> Jun 25 12:33:16 ford kernel: eth1: Tx #2/#0 slot 2 status 0xb1010046.
>> Jun 25 12:33:16 ford kernel: eth1: Interrupt status 0x20009001.
>> Jun 25 12:33:16 ford kernel: eth1: Tx Consumer index is 6.
>> Jun 25 12:33:16 ford kernel: eth1: Tx completion #0 entry 0 is 0x87630000.
>> Jun 25 12:33:16 ford kernel: eth1: Tx completion #1 entry 1 is 0x8dd90010.
>> Jun 25 12:33:16 ford kernel: eth1: Tx completion #2 entry 2 is 0x804f0020.
>> Jun 25 12:33:16 ford kernel: eth1: Link is up, running at 100Mbit full-duplex
>> Jun 25 12:33:16 ford kernel: eth1: Interrupt status 0x00000000.
>> Jun 25 12:33:16 ford kernel: eth1: exiting interrupt, status=0x00000000.
>> Jun 25 12:33:19 ford kernel: eth1: Tx #3/#3 slot 3 status 0xb1010056.
>> Jun 25 12:33:20 ford kernel: eth1: Tx #4/#3 slot 4 status 0xb1010046.
>> Jun 25 12:33:24 ford kernel: eth1: Tx #5/#3 slot 5 status 0xb1010046.
>> Jun 25 12:33:25 ford kernel: eth1: no IPv6 routers present
>> Jun 25 12:33:33 ford kernel: eth1: Interrupt status 0x00009101.
>> Jun 25 12:33:33 ford kernel: eth1: Tx Consumer index is 12.
>> Jun 25 12:33:33 ford kernel: eth1: Tx completion #3 entry 3 is 0x85200030.
>> Jun 25 12:33:33 ford kernel: eth1: Tx completion #4 entry 4 is 0x89cd0040.
>> Jun 25 12:33:33 ford kernel: eth1: Tx completion #5 entry 5 is 0x93640050.
>> Jun 25 12:33:33 ford kernel: eth1: Interrupt status 0x00000000.
>> Jun 25 12:33:33 ford kernel: eth1: exiting interrupt, status=0x00000000.
>> Jun 25 12:33:33 ford kernel:   netdev_rx() status of 0 was 0x6000003c.
>> Jun 25 12:33:33 ford kernel:   netdev_rx() normal Rx pkt length 60, quota 19.
>> Jun 25 12:33:33 ford kernel:   Rx data 00:c0:ca:20:35:6f 00:e0:81:51:15:82 0800.
>> Jun 25 12:33:33 ford kernel:   netdev_rx() status2 of 0 was 0x0000.
>> Jun 25 12:33:33 ford kernel:   exiting netdev_rx(): 0, status of 1 was 0x00000000.
>> Jun 25 12:33:33 ford kernel:   exiting netdev_poll(): 0.
>> ...
>>
>> Searching via google shows up a few poeple having the same or similar
>> problems, but noone ever mentioned a solution. 
>>
>>   Stefan
>>
>> PS: The test were performed on an SuSE 2.6.11.4-20a kernel, but I also
>> tried other SuSE kernels and several knoppix cds - everytime the same.


More information about the netdrivers mailing list