[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
address.
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