Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 May 2007 08:59:27 +0200
From:      Ed Schouten <ed@fxq.nl>
To:        Pyun YongHyeon <pyunyh@gmail.com>
Cc:        FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: CFT: nfe(4) MSI/MSIX support
Message-ID:  <20070521065927.GC23313@hoeg.nl>
In-Reply-To: <20070521010735.GA36838@cdnetworks.co.kr>
References:  <4327.10.202.77.103.1179664974.squirrel@webmail.superhero.nl> <20070521010735.GA36838@cdnetworks.co.kr>

next in thread | previous in thread | raw e-mail | index | archive | help

--r3RYAYa9cXQlbOHD
Content-Type: multipart/mixed; boundary="qN286NIOm1dtEdh0"
Content-Disposition: inline


--qN286NIOm1dtEdh0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hello,

* Pyun YongHyeon <pyunyh@gmail.com> wrote:
> I'd also like to commit it and make nfe(4) default driver for all
> nVidia network adapters. I've sent several mails to official FreeBSD
> nfe(4) maintainer, obrien, but got no reply yet. I'll wait one or two
> week more and will post a mail that asks for opinions of other
> developers on superseding nve(4) with nfe(4).

Please do. That would be great! I only have a small problem with the
nfe(4) driver and that is that the machine I use it on (Microsoft Xbox)
doesn't have a PHY that is supported by any FreeBSD PHY driver. I ported
the NetBSD icsphy(4) driver and now it works like it should.

I've attached a patch which adds the driver. You'd really help me out by
adding this driver as well. Thanks!

Yours,
--=20
 Ed Schouten <ed@fxq.nl>
 WWW: http://g-rave.nl/

--qN286NIOm1dtEdh0
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment; filename="freebsd-icsphy.diff"
Content-Transfer-Encoding: quoted-printable

--- src/sys/conf/files	Sat Feb  3 18:04:35 2007
+++ src/sys/conf/files	Tue Feb  6 19:16:49 2007
@@ -726,6 +726,8 @@
 # XXX only xl cards?
 dev/mii/exphy.c			optional miibus | exphy
 dev/mii/gentbi.c		optional miibus | gentbi
+# XXX only nfe cards?
+dev/mii/icsphy.c		optional miibus | icsphy
 # XXX only fxp cards?
 dev/mii/inphy.c			optional miibus | inphy
 dev/mii/ip1000phy.c		optional miibus | ip1000phy
--- src/sys/dev/mii/icsphy.c	Thu Jan  1 01:00:00 1970
+++ src/sys/dev/mii/icsphy.c	Tue Feb  6 21:11:37 2007
@@ -0,0 +1,305 @@
+/*	$NetBSD: icsphy.c,v 1.41 2006/11/16 21:24:07 christos Exp $	*/
+
+/*-
+ * Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility,
+ * NASA Ames Research Center.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the NetBSD
+ *	Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation nor the names of its
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTO=
RS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIM=
ITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICU=
LAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTO=
RS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF =
THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * Copyright (c) 1997 Manuel Bouyer.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by Manuel Bouyer.
+ * 4. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTI=
ES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF US=
E,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * driver for Integrated Circuit Systems' ICS1889-1893 ethernet 10/100 PHY
+ * datasheet from www.icst.com
+ */
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <sys/socket.h>
+#include <sys/bus.h>
+
+#include <net/if.h>
+#include <net/if_media.h>
+
+#include <dev/mii/mii.h>
+#include <dev/mii/miivar.h>
+#include "miidevs.h"
+
+#include <dev/mii/icsphyreg.h>
+
+#include "miibus_if.h"
+
+static int	icsphy_probe(device_t dev);
+static int	icsphy_attach(device_t dev);
+
+struct icsphy_softc {
+	struct mii_softc mii_sc;
+	int mii_model;
+};
+
+static device_method_t icsphy_methods[] =3D {
+	/* device interface */
+	DEVMETHOD(device_probe,		icsphy_probe),
+	DEVMETHOD(device_attach,	icsphy_attach),
+	DEVMETHOD(device_detach,	mii_phy_detach),
+	DEVMETHOD(device_shutdown,	bus_generic_shutdown),
+	{ 0, 0 }
+};
+
+static devclass_t icsphy_devclass;
+
+static driver_t icsphy_driver =3D {
+	"icsphy",
+	icsphy_methods,
+	sizeof(struct icsphy_softc)
+};
+
+DRIVER_MODULE(icsphy, miibus, icsphy_driver, icsphy_devclass, 0, 0);
+
+static int	icsphy_service(struct mii_softc *, struct mii_data *, int);
+static void	icsphy_status(struct mii_softc *);
+static void	icsphy_reset(struct mii_softc *);
+
+static const struct mii_phydesc icsphys[] =3D {
+	MII_PHY_DESC(xxICS, 1889),
+	MII_PHY_DESC(xxICS, 1890),
+	MII_PHY_DESC(xxICS, 1892),
+	MII_PHY_DESC(xxICS, 1893),
+	MII_PHY_END
+};
+
+static int
+icsphy_probe(device_t dev)
+{
+
+	return (mii_phy_dev_probe(dev, icsphys, BUS_PROBE_DEFAULT));
+}
+
+static int
+icsphy_attach(device_t dev)
+{
+	struct icsphy_softc *isc;
+	struct mii_softc *sc;
+	struct mii_attach_args *ma;
+	struct mii_data *mii;
+
+	isc =3D device_get_softc(dev);
+	sc =3D &isc->mii_sc;
+	ma =3D device_get_ivars(dev);
+	sc->mii_dev =3D device_get_parent(dev);
+	mii =3D device_get_softc(sc->mii_dev);
+	LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list);
+
+	sc->mii_inst =3D mii->mii_instance;
+	sc->mii_phy =3D ma->mii_phyno;
+	sc->mii_service =3D icsphy_service;
+	sc->mii_pdata =3D mii;
+	mii->mii_instance++;
+
+	sc->mii_flags |=3D MIIF_NOISOLATE;
+
+	ifmedia_add(&mii->mii_media,
+	    IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_LOOP, sc->mii_inst),
+	    MII_MEDIA_100_TX, NULL);
+
+	isc->mii_model =3D MII_MODEL(ma->mii_id2);
+	icsphy_reset(sc);
+
+	sc->mii_capabilities =3D PHY_READ(sc, MII_BMSR) & ma->mii_capmask;
+	device_printf(dev, " ");
+	mii_phy_add_media(sc);
+	printf("\n");
+
+	MIIBUS_MEDIAINIT(sc->mii_dev);
+
+	return (0);
+}
+
+static int
+icsphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd)
+{
+	struct ifmedia_entry *ife =3D mii->mii_media.ifm_cur;
+	int reg;
+
+	switch (cmd) {
+	case MII_POLLSTAT:
+		/*
+		 * If we're not polling our PHY instance, just return.
+		 */
+		if (IFM_INST(ife->ifm_media) !=3D sc->mii_inst)
+			return (0);
+		break;
+
+	case MII_MEDIACHG:
+		/*
+		 * If the media indicates a different PHY instance,
+		 * isolate ourselves.
+		 */
+		if (IFM_INST(ife->ifm_media) !=3D sc->mii_inst) {
+			reg =3D PHY_READ(sc, MII_BMCR);
+			PHY_WRITE(sc, MII_BMCR, reg | BMCR_ISO);
+			return (0);
+		}
+
+		/*
+		 * If the interface is not up, don't do anything.
+		 */
+		if ((mii->mii_ifp->if_flags & IFF_UP) =3D=3D 0)
+			break;
+
+		mii_phy_setmedia(sc);
+		break;
+
+	case MII_TICK:
+		/*
+		 * If we're not currently selected, just return.
+		 */
+		if (IFM_INST(ife->ifm_media) !=3D sc->mii_inst)
+			return (0);
+
+		if (mii_phy_tick(sc) =3D=3D EJUSTRETURN)
+			return (0);
+		break;
+	}
+
+	/* Update the media status. */
+	icsphy_status(sc);
+
+	/* Callback if something changed. */
+	mii_phy_update(sc, cmd);
+	return (0);
+}
+
+static void
+icsphy_status(struct mii_softc *sc)
+{
+	struct mii_data *mii =3D sc->mii_pdata;
+	struct ifmedia_entry *ife =3D mii->mii_media.ifm_cur;
+	int bmcr, qpr;
+
+	mii->mii_media_status =3D IFM_AVALID;
+	mii->mii_media_active =3D IFM_ETHER;
+
+	/*
+	 * Don't get link from the BMSR.  It's available in the QPR,
+	 * and we have to read it twice to unlatch it anyhow.  This
+	 * gives us fewer register reads.
+	 */
+	qpr =3D PHY_READ(sc, MII_ICSPHY_QPR);		/* unlatch */
+	qpr =3D PHY_READ(sc, MII_ICSPHY_QPR);		/* real value */
+
+	if (qpr & QPR_LINK)
+		mii->mii_media_status |=3D IFM_ACTIVE;
+
+	bmcr =3D PHY_READ(sc, MII_BMCR);
+	if (bmcr & BMCR_ISO) {
+		mii->mii_media_active |=3D IFM_NONE;
+		mii->mii_media_status =3D 0;
+		return;
+	}
+
+	if (bmcr & BMCR_LOOP)
+		mii->mii_media_active |=3D IFM_LOOP;
+
+	if (bmcr & BMCR_AUTOEN) {
+		if ((qpr & QPR_ACOMP) =3D=3D 0) {
+			/* Erg, still trying, I guess... */
+			mii->mii_media_active |=3D IFM_NONE;
+			return;
+		}
+		if (qpr & QPR_SPEED)
+			mii->mii_media_active |=3D IFM_100_TX;
+		else
+			mii->mii_media_active |=3D IFM_10_T;
+		if (qpr & QPR_FDX)
+			mii->mii_media_active |=3D IFM_FDX;
+	} else
+		mii->mii_media_active =3D ife->ifm_media;
+}
+
+static void
+icsphy_reset(struct mii_softc *sc)
+{
+	struct icsphy_softc *isc =3D (struct icsphy_softc *)sc;
+
+	mii_phy_reset(sc);
+	/* set powerdown feature */
+	switch (isc->mii_model) {
+		case MII_MODEL_xxICS_1890:
+		case MII_MODEL_xxICS_1893:
+			PHY_WRITE(sc, MII_ICSPHY_ECR2, ECR2_100AUTOPWRDN);
+			break;
+		case MII_MODEL_xxICS_1892:
+			PHY_WRITE(sc, MII_ICSPHY_ECR2,
+			    ECR2_10AUTOPWRDN|ECR2_100AUTOPWRDN);
+			break;
+		default:
+			/* 1889 have no ECR2 */
+			break;
+	}
+	/*
+	 * There is no description that the reset do auto-negotiation in the
+	 * data sheet.
+	 */
+	PHY_WRITE(sc, MII_BMCR, BMCR_S100|BMCR_STARTNEG|BMCR_FDX);
+}
--- src/sys/dev/mii/icsphyreg.h	Thu Jan  1 01:00:00 1970
+++ src/sys/dev/mii/icsphyreg.h	Wed Jul  2 00:46:08 2003
@@ -0,0 +1,134 @@
+/*	$NetBSD: icsphyreg.h,v 1.2 2003/07/01 22:46:08 msaitoh Exp $	*/
+
+/*-
+ * Copyright (c) 1998 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility,
+ * NASA Ames Research Center.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the NetBSD
+ *	Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation nor the names of its
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTO=
RS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIM=
ITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICU=
LAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTO=
RS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF =
THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _DEV_MII_ICSPHYREG_H_
+#define	_DEV_MII_ICSPHYREG_H_
+
+/*
+ * ICS1890 registers.
+ *	http://www.icst.com/pdf/18??.pdf
+ */
+
+/* HEX				1889	1890	1892	1893
+ *--------------------------------------------------------------
+ *  0 Control			*	*	*	*
+ *  1 Status			*	*	*	*
+ *  2 PHY Identifier		*	*	*	*
+ *  3 PHY Identifier		*	*	*	*
+ *  4 Auto-Neg. Advertisement		*	*	*
+ *  5 Auto-Neg. Link Parent Adv		*	*	*
+ *  6 Auto-Neg. Expansion		*	*	*
+ *  7 Auto-Neg. Next Page Tx			*	*
+ *  8 ANg Nxt Page Lnk Parnt Abl		*	*
+ * 10 Extended Control		*	*	*	*
+ * 11 Quick Poll Status		*	*	*	*
+ * 12 10Base-T Operation		*	*	*
+ * 13 Extended Control2			*	*	*
+ */
+
+#define	MII_ICSPHY_ECR		0x10	/* Extended Control Register */
+#define	ECR_OVR			0x8000	/* disable command reg overwrites */
+#define	ECR_PHYADDR_MASK	0x07c0	/* PHY address mask */
+#define	ECR_CTEST		0x0020	/* Stream Cipher Test Mode */
+#define	ECR_IECT		0x0004	/* Invalid Error Code Test */
+#define	ECR_SSD			0x0001	/* Stream Cipher Disable */
+
+#define	MII_ICSPHY_QPR		0x11	/* Quick Poll Register */
+#define	QPR_SPEED		0x8000	/* 100Mbps */
+#define	QPR_FDX			0x4000	/* Full dupled */
+#define	QPR_ANB2		0x2000	/* Autoneg monitor bit 2 */
+#define	QPR_ANB1		0x1000	/* Autoneg monitor bit 1 */
+#define	QPR_ANB0		0x0800	/* Autoneg monitor bit 0 */
+#define	QPR_RXERR		0x0400	/* Receive signal lost */
+#define	QPR_PLLERR		0x0200	/* PLL error */
+#define	QPR_FCARR		0x0100	/* False carrier detected */
+#define	QPR_INVALSYM		0x0080	/* Invalid Symbol Detected */
+#define	QPR_HALT		0x0040	/* Halt Symbol Detected */
+#define	QPR_PREEM		0x0020	/* Two Idle Symbols together */
+#define	QPR_ACOMP		0x0010	/* Autonegotiation complete */
+#define	QPR_SDETECT		0x0008	/* signal detect */
+#define	QPR_JABBER		0x0004	/* Jabber detected */
+#define	QPR_RFAULT		0x0002	/* Remote Fault */
+#define	QPR_LINK		0x0001	/* Link */
+
+#define	MII_ICSPHY_TTR		0x12	/* 10baseT Operations Register */
+#define	TTR_RJABBER		0x8000	/* Remote Jabber */
+#define	TTR_POLARITY		0x4000	/* Polarity Reversed */
+#define	TTR_NOJABBER		0x0020	/* Disable Jabber Check */
+#define	TTR_LOOP		0x0010	/* Loopback mode */
+#define	TTR_NOAPOLARITY		0x0008	/* Disable auto polarity correction */
+#define	TTR_NOSQE		0x0004	/* Disable SQE check */
+#define	TTR_NOLINK		0x0002	/* Disable Link check */
+#define	TTR_NOSQUELCH		0x0001	/* Disable squelch */
+
+
+/*
+ * Extended Control Register 2
+ *
+ * HEX					1889	1890	1892	1893
+ *-------------------------------------------------------------------
+ * 8000	Node/Repeater Mode			*	*	*
+ * 4000 Hardware/Software Mode			*	*	*
+ * 2000 Link Partner Support Remote Flt		*
+ * 2000 Remote Fault					*	*
+ * 1000
+ * 0800
+ * 0400 Xmitted Remote Fault status		*
+ * 0200
+ * 0100
+ * 0080 Tri-state Enable					*
+ * 0040
+ * 0020
+ * 0010 A-N Powerup Remote Flt			*
+ * 0008
+ * 0004
+ * 0002 Automatic 10Base-T Power Down			*
+ * 0001 Automatic 100Base-TX Power Down		*	*	*
+ */
+
+#define	MII_ICSPHY_ECR2		0x13	/* Extended Control Register 2 */
+#define	ECR2_REPEATER		0x8000	/* Repeater Mode */
+#define	ECR2_HWSW		0x4000	/* hw/sw config priority */
+#define	ECR2_LPRF		0x2000	/* link partner supports rem fault */
+#define	ECR2_FORCERF		0x0400	/* Force transmit of rem fault */
+#define	ECR2_RFPUP		0x0010	/* A-N Powerup Remote fault */
+#define	ECR2_10AUTOPWRDN	0x0002	/* Automatic 10baseT power down */
+#define	ECR2_100AUTOPWRDN	0x0001	/* Automatic 100baseTX power down */
+
+#endif /* _DEV_MII_ICSPHYREG_H_ */
--- src/sys/dev/mii/miidevs	Sat Feb  3 18:04:39 2007
+++ src/sys/dev/mii/miidevs	Tue Feb  6 19:31:03 2007
@@ -142,7 +142,10 @@
 model xxDAVICOM DM9101		0x0000 DM9101 10/100 media interface
=20
 /* Integrated Circuit Systems PHYs */
+model xxICS 1889		0x0001 ICS1889 10/100 media interface
 model xxICS 1890		0x0002 ICS1890 10/100 media interface
+model xxICS 1892		0x0003 ICS1892 10/100 media interface
+model xxICS 1893		0x0004 ICS1893 10/100 media interface
=20
 /* IC Plus Corp. PHYs */
 model ICPLUS IP1000A		0x0008 IC Plus 10/100/1000 media interface
--- src/sys/modules/mii/Makefile	Tue Jul 25 02:20:11 2006
+++ src/sys/modules/mii/Makefile	Tue Feb  6 19:19:59 2007
@@ -5,7 +5,7 @@
 KMOD=3D	miibus
 SRCS=3D	mii.c mii_physubr.c ukphy.c ukphy_subr.c bus_if.h pci_if.h
 SRCS+=3D	miibus_if.h miidevs.h device_if.h miibus_if.c e1000phy.c exphy.c =
nsphy.c
-SRCS+=3D	mlphy.c tlphy.c rlphy.c amphy.c inphy.c tdkphy.c
+SRCS+=3D	mlphy.c tlphy.c rlphy.c amphy.c icsphy.c inphy.c tdkphy.c
 SRCS+=3D	bmtphy.c brgphy.c xmphy.c pnaphy.c lxtphy.c qsphy.c acphy.c nsgph=
y.c
 SRCS+=3D	rgephy.c ruephy.c ciphy.c gentbi.c ip1000phy.c
=20

--qN286NIOm1dtEdh0--

--r3RYAYa9cXQlbOHD
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (FreeBSD)

iD8DBQFGUUNP52SDGA2eCwURAtRdAJsFDQt/PAwFUoXvz94jsHLJfVXUYQCfYx0s
DnCNctcQ6A41NGOsiQSHr0o=
=pe3E
-----END PGP SIGNATURE-----

--r3RYAYa9cXQlbOHD--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070521065927.GC23313>