Subject: 3c905 panic
To: Andrew Gillham <gillhaa@ghost.whirlpool.com>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: port-i386
Date: 06/03/1998 15:15:33
Short answer: rerun the vendor config utility.

>My new Dell laptop's "C/DOCK" has an integrated 3c905.  When I boot
>a -current kernel on it, I get the following panic:
>...
>ep0 at pci1 dev 8 function 0: 3Com 3C905 Ethernet
>ep0: MAC address 00:c0:4f:f5:b1:29
>ep0: 8KB word-wide FIFO, 3:5 Rx:Tx split,  default mii, autoselect
>ifmedia_set: no match for 0x26/0xffffffff
>panic: ifmedia_set


This means sys/dev/ic/elink3.c has fetched the EEPROM word from
register-window 3, and it says the integrated card has no PHY devices
at all. So it never called ifmedia_add(). _Any_ call to ifmeda_set()
is going to fail.

>From a 3c595 or a 3c905 I'd expect something like:

ep1: MAC address 00:a0:24:3d:1a:77
ep1: 64KB word-wide FIFO, 3:1 Rx:Tx split, utp/100-TX default 100-TX, autoselect

Note that this lists a 100-TX PHY after the rx/tx split, whereas your
card lists nothing.  Did you get any config-software utility with your
dock? If so, I'd run it under DOS or Windows or whatever, and correct
the EEPROM setting.

If this bites enough people, I spose we could change the driver to
also check the PCI-space register which has yet another list of oncard
resources. IIRC, the two lists are supposed to be the same, though.

Off the top of my head, I'm not sure how the kernel could handle this
more gracefully. It'd have to avoid ever setting the interface up,
since that implicitly sets the media type; and that's an operation
which is not supposed to fail.

hope that helps,
--Jonathan