Skip site navigation (1)Skip section navigation (2)
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>