Subject: Re: A single 3Com 3c905C-TX has lots of different MAC addresses!
To: None <urban@boquist.net>
From: Masanori Kanaoka <kanaoka@ann.hi-ho.ne.jp>
List: port-i386
Date: 05/10/2001 11:57:16
Hi,
I have a same card and usually use with NetBSD-current(1.5S).
I try to use with 1.5.1_BETA kernel. I boot a few time.
ex0 get MAC address correctly and it works fine for me below:
NetBSD 1.5.1_BETA (LAB-1-5) #0: Thu May 10 10:01:09 JST 2001
root@lab:/home/kana/work/syssrc/sys/arch/i386/compile/LAB-1-5
cpu0: Intel Celeron (Mendocino) (686-class), 300.72 MHz
total memory = 127 MB
avail memory = 115 MB
< ...snip... >
ex0 at pci0 dev 11 function 0: 3Com 3c905C-TX 10/100 Ethernet with mngmt (rev. 0x74)
ex0: interrupting at irq 5
ex0: MAC address 00:01:02:49:7e:2b
ukphy0 at ex0 phy 24: Generic IEEE 802.3u media interface
ukphy0: OUI 0x001018, model 0x0017, rev. 6
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
< ...snip... >
From: Urban Boquist <urban@boquist.net>
Subject: A single 3Com 3c905C-TX has lots of different MAC addresses!
Date: Wed, 09 May 2001 23:49:34 +0200
$ I have a 3c905C NIC which seems to have some problems getting the
$ correct MAC address. Here is a couple of boots:
$
$ groda# grep MAC /var/log/rtty/lan-gw
$ ex0: MAC address 00:04:76:26:a1:0b
$ ex0: MAC address 00:00:ad:ad:00:00
$ ex0: MAC address 00:00:ad:ad:00:00
$ ex0: MAC address 00:00:ad:ad:00:00
$ ex0: MAC address 00:00:00:00:00:00
$ ex0: MAC address 00:00:00:00:00:00
$ ex0: MAC address 00:04:76:26:a1:0b
$ ex0: MAC address ad:ad:ad:ad:00:00
$ ex0: MAC address 00:04:76:26:a1:0b
$ ex0: MAC address 00:04:76:26:a1:0b
I think your ex0 may need more delay in ex_read_rom() stuff.
How about increasing delay in ex_eeprom_busy()@sys/dev/ic/elinkxl.c?
Regards!
---
Masanori Kanaoka kanaoka@ann.hi-ho.ne.jp
Index: elinkxl.c
===================================================================
RCS file: /ftp/cvs/syssrc/sys/dev/ic/elinkxl.c,v
retrieving revision 1.34.2.3
diff -u -r1.34.2.3 elinkxl.c
--- elinkxl.c 2001/03/20 17:25:14 1.34.2.3
+++ elinkxl.c 2001/05/10 01:35:56
@@ -1689,7 +1689,7 @@
{
bus_space_tag_t iot = sc->sc_iot;
bus_space_handle_t ioh = sc->sc_ioh;
- int i = 100;
+ int i = 1000;
while (i--) {
if (!(bus_space_read_2(iot, ioh, ELINK_W0_EEPROM_COMMAND) &