Date: Fri, 02 Jun 2000 10:34:45 -0700 From: Dan Yergeau <yergeau@gloworm.Stanford.EDU> To: freebsd-mobile@freebsd.org Cc: yergeau@gloworm.Stanford.EDU Subject: 4.0-RELEASE, Linksys PCMPC100 V2, incorrect hardware address Message-ID: <200006021734.KAA17964@gloworm.Stanford.EDU>
next in thread | raw e-mail | index | archive | help
After having tons of "device timeout"-related fun trying to get a new Netgear FA410TXC to work (no apparent IRQ-related problems; I'll probably post more on this later), I gave up and decided to try another new fast ethernet PCMCIA card, the above mentioned Linksys (which, of course, was not marked as V2 on the box). This time around, things went much better. The card was recognized (once I realized that Linksys had added "V2" to the card version string and changed pccard.conf appropriately), and ed0 attached properly, but ed0 gets the wrong ethernet hardware address. The kernel message is ed0 at port 0x300-0x31f irq 9 slot 1 on pccard1 ed0: address 01:d4:ff:03:00:20, type NE2000 (16 bit) The correct hardware address (as printed on the card and reported by Windoze) should be 00:e0:98:80:15:df. I did need to correct this using Bill Paul's setmac utility (http://people.FreeBSD.org/~wpaul/mac.tar.gz) to get packets flowing reliably in both directions. I'm including output from dumpcis and the attribute memory. I'm definitely not an expert at interpreting these (and I haven't managed to find appropriate documentation), but the correct hardware address doesn't seem to in either. Someone had once suggested that the "Interface byte" from the dumpcis is the offset of the hardware address in the attribute memory, but that is clearly not the case here, and the driver seems to be picking up a different address than the bytes at that offset, anyway. Any suggestions for more debugging or a corrected pccard.conf entry to suck the correct hardware address out of the card? I'm OK with the setmac hack, but others with probably be running into this wall. Dan # pccard.conf entry #Linksys EtherFast 10/100 PC Card (PCMPC100 V2) card "Linksys" "EtherFast 10/100 PC Card (PCMPC100 V2)" config auto "ed0" ? insert logger -t pccard:$device -s Linksys Fast 100-BaseT inserted insert /etc/pccard_ether $device remove logger -t pccard:$device -s Linksys Fast 100-BaseT removed remove /sbin/ifconfig $device delete ====================================================================== = pccardc dumpcis = ====================================================================== Configuration data for card in slot 1 Tuple #1, code = 0x1 (Common memory descriptor), length = 3 000: d4 0a ff Common memory device information: Device number 1, type Function specific, WPS = OFF Speed = 100nS, Memory block size = 8Kb, 2 units Tuple #2, code = 0x17 (Attribute memory descriptor), length = 3 000: 41 00 ff Attribute memory device information: Device number 1, type EEPROM, WPS = OFF Speed = 250nS, Memory block size = 512b, 1 units Tuple #3, code = 0x20 (Manufacturer ID), length = 4 000: 49 01 ab c1 PCMCIA ID = 0x149, OEM ID = 0xc1ab Tuple #4, code = 0x15 (Version 1 info), length = 57 000: 04 01 4c 69 6e 6b 73 79 73 00 45 74 68 65 72 46 010: 61 73 74 20 31 30 2f 31 30 30 20 50 43 20 43 61 020: 72 64 20 28 50 43 4d 50 43 31 30 30 20 56 32 29 030: 00 56 32 2e 30 00 20 00 ff Version = 4.1, Manuf = [Linksys],card vers = [EtherFast 10/100 PC Card (PCMPC100 V2)] Addit. info = [V2.0],[ ] Tuple #5, code = 0x1a (Configuration map), length = 5 000: 01 20 00 04 01 Reg len = 2, config register addr = 0x400, last config = 0x20 Registers: X------- Tuple #6, code = 0x1b (Configuration entry), length = 7 000: d0 81 18 45 30 fc be Config index = 0x10(default) Interface byte = 0x81 (I/O) wait signal supported Card decodes 5 address lines, limited 8/16 Bit I/O IRQ modes: Pulse IRQ level = 5 Tuple #7, code = 0x1b (Configuration entry), length = 7 000: 01 08 ca 60 00 03 1f Config index = 0x1 Card decodes 10 address lines, limited 8/16 Bit I/O I/O address # 1: block start = 0x300 block length = 0x20 Tuple #8, code = 0x1b (Configuration entry), length = 7 000: 02 08 ca 60 20 03 1f Config index = 0x2 Card decodes 10 address lines, limited 8/16 Bit I/O I/O address # 1: block start = 0x320 block length = 0x20 Tuple #9, code = 0x1b (Configuration entry), length = 7 000: 03 08 ca 60 40 03 1f Config index = 0x3 Card decodes 10 address lines, limited 8/16 Bit I/O I/O address # 1: block start = 0x340 block length = 0x20 Tuple #10, code = 0x1b (Configuration entry), length = 7 000: 04 08 ca 60 80 03 1f Config index = 0x4 Card decodes 10 address lines, limited 8/16 Bit I/O I/O address # 1: block start = 0x380 block length = 0x20 Tuple #11, code = 0x1b (Configuration entry), length = 7 000: 05 08 ca 60 00 02 1f Config index = 0x5 Card decodes 10 address lines, limited 8/16 Bit I/O I/O address # 1: block start = 0x200 block length = 0x20 Tuple #12, code = 0x1b (Configuration entry), length = 7 000: 06 08 ca 60 20 02 1f Config index = 0x6 Card decodes 10 address lines, limited 8/16 Bit I/O I/O address # 1: block start = 0x220 block length = 0x20 Tuple #13, code = 0x1b (Configuration entry), length = 7 000: 07 08 ca 60 40 02 1f Config index = 0x7 Card decodes 10 address lines, limited 8/16 Bit I/O I/O address # 1: block start = 0x240 block length = 0x20 Tuple #14, code = 0x21 (Functional ID), length = 2 000: 06 00 Network/LAN adapter Tuple #15, code = 0x14 (No link), length = 0 Tuple #16, code = 0xff (Terminator), length = 0 2 slots found ====================================================================== = pccardc rdattr 1 0 200 = ====================================================================== (At least, I hope that's the correct offset/size from the "Attribute memory device information"/"Memory block size = 512b" in the dumpcis output.) 0000: 01 01 03 03 d4 d4 0a 0a ff ff 17 17 03 03 41 41 0010: 00 00 ff ff 20 20 04 04 49 49 01 01 ab ab c1 c1 0020: 15 15 39 39 04 04 01 01 4c 4c 69 69 6e 6e 6b 6b 0030: 73 73 79 79 73 73 00 00 45 45 74 74 68 68 65 65 0040: 72 72 46 46 61 61 73 73 74 74 20 20 31 31 30 30 0050: 2f 2f 31 31 30 30 30 30 20 20 50 50 43 43 20 20 0060: 43 43 61 61 72 72 64 64 20 20 28 28 50 50 43 43 0070: 4d 4d 50 50 43 43 31 31 30 30 30 30 20 20 56 56 0080: 32 32 29 29 00 00 56 56 32 32 2e 2e 30 30 00 00 0090: 20 20 00 00 ff ff 1a 1a 05 05 01 01 20 20 00 00 00a0: 04 04 01 01 1b 1b 07 07 d0 d0 81 81 18 18 45 45 00b0: 30 30 fc fc be be 1b 1b 07 07 01 01 08 08 ca ca 00c0: 60 60 00 00 03 03 1f 1f 1b 1b 07 07 02 02 08 08 00d0: ca ca 60 60 20 20 03 03 1f 1f 1b 1b 07 07 03 03 00e0: 08 08 ca ca 60 60 40 40 03 03 1f 1f 1b 1b 07 07 00f0: 04 04 08 08 ca ca 60 60 80 80 03 03 1f 1f 1b 1b 0100: 07 07 05 05 08 08 ca ca 60 60 00 00 02 02 1f 1f 0110: 1b 1b 07 07 06 06 08 08 ca ca 60 60 20 20 02 02 0120: 1f 1f 1b 1b 07 07 07 07 08 08 ca ca 60 60 40 40 0130: 02 02 1f 1f 21 21 02 02 06 06 00 00 14 14 00 00 0140: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0150: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0160: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0170: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0180: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0190: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 01a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 01b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 01c0: de de ee ee cb cb ae ae b9 b9 69 69 cf cf f1 f1 01d0: 46 46 e7 e7 fe fe 5f 5f 7c 7c 7b 7b 4a 4a ca ca 01e0: e7 e7 fe fe be be 1e 1e 76 76 87 87 51 51 ef ef 01f0: ff ff 22 22 be be d7 d7 37 37 fd fd 62 62 7c 7c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-mobile" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200006021734.KAA17964>