[tulip] Linksys LNE100TX on PowerPC system works only in promiscuous mode?

Gregorio Gervasio Jr. gtgj@pacbell.net
08 Mar 2001 13:14:35 -0800


>>>>> On Thu, 08 Mar 2001 08:29:17 -0500 (EST), Donald Becker <becker@scyld.com> said:

>> I'm running Linux v2.2.18 on a PowerPC and my Linksys LNE100TX
>> card works only with the interface in promiscuous mode.  If
>> promiscuous mode is disabled, the DHCP server on my machine can
>> respond to requests correctly but it looks like the card is not
>> responding to regular traffic (ping, telnet, ftp, http, etc.).  In
>> promiscuous mode, everything is otherwise working fine.

d> What Ethernet station address is reported by 'ifconfig' ?
...
d> It's helpful to provide the rest of the detection message.
d> I see from the 'mii-diag' output that you are using an ADMtek
d> transceiver, thus you must have a v4.1 card.

d> Please try the following change around line 710
d> 	} else if (chip_idx == COMET) {
d> 		/* No need to read the EEPROM. */
d> -		put_unaligned(inl(ioaddr + 0xA4), (u32 *)dev->dev_addr);
d> -		put_unaligned(inl(ioaddr + 0xA8), (u16 *)(dev->dev_addr + 4));
d> +		put_unaligned(le32_to_cpu(inl(ioaddr + 0xA4)),
d> 				(u32 *)dev->dev_addr);
d> 		put_unaligned(le16_to_cpu(inl(ioaddr + 0xA8)),
d> 				(u16 *)(dev->dev_addr + 4));
d> 		for (i = 0; i < 6; i ++)
d> 			sum += dev->dev_addr[i];

        Looks like this code only gets executed the first time after
power-up (not even after a reboot with no power-down)?  Anyway, here's
what I got:

1. original:

tulip.c:v0.92t 1/15/2001  Written by Donald Becker <becker@scyld.com> 
  http://www.scyld.com/network/tulip.html 
  The PCI BIOS has not enabled the device at 0/112!  Updating PCI command 0014->0016. 
eth1: ADMtek Centaur-P rev 17 at 0xd0831000, 12:78:20:00:C8:BF, IRQ 24. 
eth1:  MII transceiver #1 config 3000 status 786d advertising 01e1. 

(ifconfig also reports 12:78:20:00:C8:BF as the address.)

2. after powering down and rebooting with your patch:

tulip.c:v0.92t 1/15/2001  Written by Donald Becker <becker@scyld.com>
  http://www.scyld.com/network/tulip.html
  The PCI BIOS has not enabled the device at 0/112!  Updating PCI command 0014->0016.
eth1: ADMtek Centaur-P rev 17 at 0xd0831000,  00:20:78:12:BF:C8, IRQ 24.
eth1:  MII transceiver #1 config 3000 status 786d advertising 01e1.

It still didn't work.  However, trying it again:

3. after "rmmod tulip" and re-enabling the interface:

tulip.c:v0.92t 1/15/2001  Written by Donald Becker <becker@scyld.com> 
  http://www.scyld.com/network/tulip.html 
eth1: ADMtek Centaur-P rev 17 at 0xd0835000, 00:20:78:12:00:00, IRQ 24. 
eth1:  MII transceiver #1 config 1000 status 786d advertising 01e1. 

The address changed but it started working.  Does that make sense?
(ifconfig also reports the eth address as 00:20:78:12:00:00.)

        Does that help?  I added some print statements and after
power-up, the contents of these locations are:

ioaddr + 0xA4 = 0x12782000
ioaddr + 0xA8 = 0xffffc8bf

        Thanks.

Gregorio Gervasio, Jr.
gtgj@pacbell.net