[tulip-bug] AX88141 2.2.19 (ppc) - Receives in Promiscuous Mode but not Normal Mode

Donald Becker becker@scyld.com
Wed, 5 Sep 2001 13:18:18 -0400 (EDT)

On Tue, 4 Sep 2001, Elizabeth Barham wrote:

> Kernal: 2.2.19
> Processor: Motorola 603e (PPC)
> Make: Motorola Starmax 3000/160 (Tanzania)
> Distrubtion: Debian Potato
> Tulip Module: v0.92m 9/22/2000 -DUSE_IO_OPS
> The strangest problem: For some reason the card does not receive
> transmissions when it is not in Promiscuous Mode.

Normally I would suspect the receive filter setting.
With the PPC, I suspect the endian correction when loading the station

The relavent lines are around line 3265

		/* Fill the final entry with our physical address. */
		eaddrs = (u16 *)dev->dev_addr;
		*setup_frm++ = *setup_frm++ = eaddrs[0];
		*setup_frm++ = *setup_frm++ = eaddrs[1];
		*setup_frm++ = *setup_frm++ = eaddrs[2];
		/* Now add this frame to the Tx list. */

I _suspect_ that the 88141 acts differently than the real Tulip when
byte-swapping the data.  As a test/hack, try changing these lines to

	*setup_frm++ = *setup_frm++ = cpu_to_le16(eaddrs[0]);
	*setup_frm++ = *setup_frm++ = cpu_to_le16(eaddrs[1]);
	*setup_frm++ = *setup_frm++ = cpu_to_le16(eaddrs[2]);

> I was not able to get the card to work without the -DUSE_IO_OPS option
> when I compiled the module (Could not relocate the memory 0).

What does 'lspci' or /proc/pci report as the PCI base memory address?
Perhaps the PPC PCI initialization code isn't assigning an address.

Donald Becker				becker@scyld.com
Scyld Computing Corporation		http://www.scyld.com
410 Severn Ave. Suite 210		Second Generation Beowulf Clusters
Annapolis MD 21403			410-990-9993