atom feed4 messages in org.freebsd.freebsd-stableRe: RX problems with Macronix etherne...
FromSent OnAttachments
Bill PaulJul 13, 2000 4:27 pm 
Greg LeheyJul 13, 2000 5:46 pm 
Bill PaulJul 14, 2000 12:28 pm 
Bryan LiesnerJul 15, 2000 10:05 am 
Subject:Re: RX problems with Macronix ethernet cards
From:Greg Lehey (gr@lemis.com)
Date:Jul 13, 2000 5:46:18 pm
List:org.freebsd.freebsd-stable

On Thursday, 13 July 2000 at 16:27:38 -0700, Bill Paul wrote:

Ok, some of you have been reporting problems with Macronix ethernet cards which, whether you realize it or not, are due to the chip not bring being programmed correctly to receive broadcast packets. Normally the chip *would* be programmed correctly, except that Macronix has come out with some new chip revs that are slightly different from the chips on the sample cards I have here. This is why I haven't been able to duplicate this problem locally.

<snip>

- Step 1: Make a note of the actual vendor/model number of this card. Look at the box/manual/windoze driver diskette/etc that came with the card; the information should be there somewhere. If it's a cheap no-name card of some kind, just say so, but if it's LinkSys, D-Link or whatever, please tell me.

OK. I have three cards called SOHOware(tm) Fast SFA110A. I doubt the vendor (NDC Communications Inc. in Sunnyvale) knows the meaning of the abbreviation SFA in large parts of the English-speaking world. The label on the packet indicates that they're revision B4.

- Step 2: Actually *look* at the card, with your eyeballs, and make note of the part number on the controller chip. Macronix chips typically say MX or MXIC on them, and the model number will contain the string "98715" in it somewhere. Note however that I don't want you to tell me that it says 98715: I already *know* that. I want to know the whole part number, i.e. MX98715AEC or MX98715AEC-C. DO NOT just write back to me and say "uh... it's a 98715" or I will hunt you down, drain the fat from your body, make expensive soap out of it and sell it upper class department stores.

It's a 98715. Oops, wrong answer.

The chip has the following inscriptions:

MX (large font) MX98715AEC-C M9941 TA151301 37DCX

- Step 3: With the card(s) installed in your machine, type the following command:

# pciconf -l > /tmp/pciconf.out

Here's the complete output for one machine. The dc0 output for the other was identical.

none0@pci0:0:0: class=0x060000 card=0x00000000 chip=0x71908086 rev=0x03 hdr=0x00 pcib1@pci0:1:0: class=0x060400 card=0x00000000 chip=0x71918086 rev=0x03 hdr=0x01 isab0@pci0:7:0: class=0x060100 card=0x00000000 chip=0x71108086 rev=0x02 hdr=0x00 atapci0@pci0:7:1: class=0x010180 card=0x00000000 chip=0x71118086 rev=0x01
hdr=0x00 uhci0@pci0:7:2: class=0x0c0300 card=0x00000000 chip=0x71128086 rev=0x01 hdr=0x00 none1@pci0:7:3: class=0x068000 card=0x00000000 chip=0x71138086 rev=0x02 hdr=0x00 dc0@pci0:9:0: class=0x020000 card=0x00000000 chip=0x053110d9 rev=0x25 hdr=0x00 ahc0@pci0:13:0: class=0x010000 card=0x00000000 chip=0x71789004 rev=0x03 hdr=0x00 ahc1@pci0:15:0: class=0x010000 card=0x00000000 chip=0x81789004 rev=0x00 hdr=0x00 atapci1@pci0:19:0: class=0x018000 card=0x00000000 chip=0x00041103 rev=0x01
hdr=0x00 atapci2@pci0:19:1: class=0x018000 card=0x00000000 chip=0x00041103 rev=0x01
hdr=0x00 none2@pci1:0:0: class=0x030000 card=0xff03102b chip=0x0521102b rev=0x03 hdr=0x00

Then send the contents of the pciconf.out file to me so I can see PCI revision codes. If you have more than one Macronix card in your system, be sure and describe which card is which, i.e. if dc0 is an MX98715AEC and dc1 is an MX98715AEC-D, be sure to state this fact clearly.

All the cards are the same, bought at Fry's on the 16th June. The other two may have different manufacturing dates, but I don't want to drag them out of the machines they're in just for that.

Once you have all of this information collected and formatted nicely, e-mail it to me at wpa@freebsd.org and I will generate a patch to if_dc so that I can special-case these chips correctly. In the meantime, if you can't resist the urge to fiddle a bit, try the following:

<snip>

This will force the driver to calculate the CRC value for a 128-bit hash table.

Yup, that does the job.

You should probably send this to -CURRENT as well.

Greg

To Unsubscribe: send mail to majo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message