freebsd-skq/sys
Bill Paul 499d0ac7aa Just when I thought it was safe. In the original 3c905-TX NICs, the
external NatSemi PHY chip was programmed to respond to MII address 24.
In the 3c905B ASICs, the transceiver is internal but it's still mapped
to MII address 24. But *some* 3Com 3c905B ASIC revisions map the
transceiver control registers to *all* MII addresses (0 through 31).
The miibus code probes for PHYs at all MII addresses and because of
this unusual behavior, it will attempt to map the same PHY registers
several times over, which doesn't work.

Naturally, the 3c905B NIC that I tested happened not to exhibit this
behavior.

The fix is to tweak xl_miibus_readreg() and xl_miibus_writereg()
to only respond when attempting to read from MII address 24. This
is safe to do since the 3Com documentation indicates that the PHY
and/or internal transceiver will always be mapped to address 24,
and there are no 3Com XL NICs with more than one PHY.
1999-09-01 03:16:21 +00:00
..
alpha Make multiuser boots the default instead of singlue user. 1999-08-31 22:42:15 +00:00
amd64 ppp(1) -> ppp(8) 1999-09-01 00:51:23 +00:00
boot $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
cam We don't need to pass the diskname argument all over the diskslice/label 1999-08-28 14:33:44 +00:00
coda $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
compat Add MAINTAINER line 1999-09-01 00:32:18 +00:00
compile
conf Make buffered acces to bdevs from userland controllable with 1999-08-31 21:01:57 +00:00
contrib Remove unneeded slice element. 1999-08-29 14:52:02 +00:00
ddb $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
dev Add a driver for the internal PHY in the RealTek 8139. 1999-08-31 14:43:30 +00:00
fs Set the buffersize for non BSDFFS labeled partitions to 1999-08-31 21:46:42 +00:00
geom Make bdev userland access work like cdev userland access unless 1999-08-30 07:56:23 +00:00
gnu $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
i4b make correct minor numvers for some of the devices. 1999-08-31 05:55:14 +00:00
i386 ppp(1) -> ppp(8) 1999-09-01 00:51:23 +00:00
isa s/si_tty_tty/si_tty/g 1999-08-30 10:35:37 +00:00
isofs/cd9660 Fix various trivial warnings from LINT 1999-08-28 19:44:07 +00:00
kern General cleanup of core-dumping code. 1999-09-01 00:29:56 +00:00
libkern $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
miscfs Set the buffersize for non BSDFFS labeled partitions to 1999-08-31 21:46:42 +00:00
modules Add MAINTAINER line 1999-09-01 00:32:18 +00:00
msdosfs $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
net For every "promiscuous mode enabled" message printed for an interface, 1999-08-30 11:55:30 +00:00
netatalk
netatm Fixed printf format errors (don't assume that ntohl() returns u_long; 1999-08-29 10:28:10 +00:00
netinet Simplify, and return an error if the user attempts to set a TCP 1999-08-31 16:34:20 +00:00
netipx Get rid of the old XNS checksum code and implement it the IPX way. 1999-08-28 18:21:55 +00:00
netkey Fix a printf(3) formatter to match its variable. 1999-08-17 22:11:02 +00:00
netnatm
netns $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
nfs remove unused variables. 1999-08-28 19:21:03 +00:00
nfsclient remove unused variables. 1999-08-28 19:21:03 +00:00
nfsserver remove unused variables. 1999-08-28 19:21:03 +00:00
ntfs $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
pc98 - Removed COMPAT_ATDISK from option because it is pseudo-device now. 1999-08-29 21:28:47 +00:00
pccard $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
pci Just when I thought it was safe. In the original 3c905-TX NICs, the 1999-09-01 03:16:21 +00:00
posix4 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
powerpc $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
rpc $Id$ -> $FreeBSD$ 1999-08-27 23:45:13 +00:00
svr4 Add MAINTAINER line 1999-09-01 00:32:18 +00:00
sys General cleanup of core-dumping code. 1999-09-01 00:29:56 +00:00
tools $Id$ -> $FreeBSD$ (some mangled and/or hidden ones) 1999-08-28 02:21:15 +00:00
ufs Make bdev userland access work like cdev userland access unless 1999-08-30 07:56:23 +00:00
vm $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
Makefile $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00