134c58d3c0
the built-in 1000baseX interface in the Level 1 LXT1001 chip. The Level 1 PHY comes up with the isolate bit in the control register set by default, but it also has the autonegotiate bit set. When you tell the xmphy driver to select IFM_AUTO mode, it sees that the autoneg bit is already on, and thus doesn't bother updating the control register. However this means that the isolate bit is never turned off (unless you manually select 1000baseSX full or half duplex mode, which does result in the control register being modified and the ISO bit being turned off). This subtle and unusual behavioral difference stopped me from being able to receive packets on the SMC9462TX card for several days, since isolating the PHY disconnects it from the MAC's data interface. The fix is to omit the 'is the autoneg big set?' test, since it doesn't really provide much of an optimization anyway. This commit also updates the xmphy driver to support the Jato/Level 1 internal PHY. (I'm not sure how Jato Technologies is related to Level 1: all I know is the OUI from the PHY ID registers maps to Jato in the OUI database.) This will be used once I add the if_lge driver to support the LXT10010 chip.
156 lines
5.9 KiB
Plaintext
156 lines
5.9 KiB
Plaintext
$FreeBSD$
|
|
/*$NetBSD: miidevs,v 1.6 1999/05/14 11:37:30 drochner Exp $*/
|
|
|
|
/*-
|
|
* Copyright (c) 1998, 1999 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 CONTRIBUTORS
|
|
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
|
|
* 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.
|
|
*/
|
|
|
|
/*
|
|
* List of known MII OUIs.
|
|
* For a complete list see http://standards.ieee.org/regauth/oui/
|
|
*
|
|
* XXX Vendors do obviously not agree how OUIs (18 bit) are mapped
|
|
* to the 16 bits available in the id registers. The MII_OUI() macro
|
|
* in "mii.h" reflects the most obvious way. If a vendor uses a
|
|
* different mapping, an "xx" prefixed OUI is defined here which is
|
|
* mangled accordingly to compensate.
|
|
*/
|
|
|
|
oui ALTIMA 0x0010a9 Altima Communications
|
|
oui AMD 0x00001a Advanced Micro Devices
|
|
oui BROADCOM 0x001018 Broadcom Corporation
|
|
oui DAVICOM 0x00606e Davicom Semiconductor
|
|
oui ICS 0x00a0be Integrated Circuit Systems
|
|
oui INTEL 0x00aa00 Intel
|
|
oui JATO 0x00e083 Jato Technologies
|
|
oui LEVEL1 0x00207b Level 1
|
|
oui NATSEMI 0x080017 National Semiconductor
|
|
oui QUALSEMI 0x006051 Quality Semiconductor
|
|
oui SEEQ 0x00a07d Seeq
|
|
oui SIS 0x00e006 Silicon Integrated Systems
|
|
oui TDK 0x00c039 TDK
|
|
oui TI 0x080028 Texas Instruments
|
|
oui XAQTI 0x00e0ae XaQti Corp.
|
|
oui MARVELL 0x005043 Marvell Semiconductor
|
|
|
|
/* in the 79c873, AMD uses another OUI (which matches Davicom!) */
|
|
oui xxAMD 0x00606e Advanced Micro Devices
|
|
|
|
/* Intel 82553 A/B steppings */
|
|
oui xxINTEL 0x00f800 Intel
|
|
|
|
/* some vendors have the bits swapped within bytes
|
|
(ie, ordered as on the wire) */
|
|
oui xxALTIMA 0x000895 Altima Communications
|
|
oui xxBROADCOM 0x000818 Broadcom Corporation
|
|
oui xxICS 0x00057d Integrated Circuit Systems
|
|
oui xxSEEQ 0x0005be Seeq
|
|
oui xxSIS 0x000760 Silicon Integrated Systems
|
|
oui xxTI 0x100014 Texas Instruments
|
|
oui xxXAQTI 0x350700 XaQti Corp.
|
|
|
|
/* Level 1 is completely different - from right to left.
|
|
(Two bits get lost in the third OUI byte.) */
|
|
oui xxLEVEL1 0x1e0400 Level 1
|
|
|
|
/* Don't know what's going on here. */
|
|
oui xxDAVICOM 0x006040 Davicom Semiconductor
|
|
|
|
|
|
/*
|
|
* List of known models. Grouped by oui.
|
|
*/
|
|
|
|
/* Altima Communications PHYs */
|
|
model xxALTIMA AC101 0x0021 AC101 10/100 media interface
|
|
|
|
/* Advanced Micro Devices PHYs */
|
|
model xxAMD 79C873 0x0000 Am79C873 10/100 media interface
|
|
model AMD 79c973phy 0x0036 Am79c973 internal PHY
|
|
model AMD 79c978 0x0039 Am79c978 HomePNA PHY
|
|
|
|
/* Broadcom Corp. PHYs. */
|
|
model BROADCOM 3c905Cphy 0x0017 3c905C 10/100 internal PHY
|
|
model xxBROADCOM BCM5400 0x0004 Broadcom 1000baseTX PHY
|
|
|
|
/* Davicom Semiconductor PHYs */
|
|
model xxDAVICOM DM9101 0x0000 DM9101 10/100 media interface
|
|
|
|
/* Integrated Circuit Systems PHYs */
|
|
model xxICS 1890 0x0002 ICS1890 10/100 media interface
|
|
|
|
/* Intel PHYs */
|
|
model xxINTEL I82553AB 0x0000 i83553 10/100 media interface
|
|
model INTEL I82555 0x0015 i82555 10/100 media interface
|
|
model INTEL I82562EM 0x0032 i82562EM 10/100 media interface
|
|
model INTEL I82562ET 0x0033 i82562ET 10/100 media interface
|
|
model INTEL I82553C 0x0035 i82553 10/100 media interface
|
|
|
|
/* Jato Technologies PHYs */
|
|
model JATO BASEX 0x0000 Jato 1000baseX media interface
|
|
|
|
/* Level 1 PHYs */
|
|
model xxLEVEL1 LXT970 0x0000 LXT970 10/100 media interface
|
|
|
|
/* National Semiconductor PHYs */
|
|
model NATSEMI DP83840 0x0000 DP83840 10/100 media interface
|
|
model NATSEMI DP83843 0x0001 DP83843 10/100 media interface
|
|
model NATSEMI DP83891 0x0005 DP83891 10/100/1000 media interface
|
|
model NATSEMI DP83861 0x0006 DP83861 10/100/1000 media interface
|
|
|
|
/* Quality Semiconductor PHYs */
|
|
model QUALSEMI QS6612 0x0000 QS6612 10/100 media interface
|
|
|
|
/* Seeq PHYs */
|
|
model xxSEEQ 80220 0x0003 Seeq 80220 10/100 media interface
|
|
model xxSEEQ 84220 0x0004 Seeq 84220 10/100 media interface
|
|
|
|
/* Silicon Integrated Systems PHYs */
|
|
model xxSIS 900 0x0000 SiS 900 10/100 media interface
|
|
|
|
/* TDK */
|
|
model TDK 78Q2120 0x0014 TDK 78Q2120 media interface
|
|
|
|
/* Texas Instruments PHYs */
|
|
model xxTI TLAN10T 0x0001 ThunderLAN 10baseT media interface
|
|
model xxTI 100VGPMI 0x0002 ThunderLAN 100VG-AnyLan media interface
|
|
|
|
/* XaQti Corp. PHYs. */
|
|
model XAQTI XMACII 0x0000 XaQti Corp. XMAC II gigabit interface
|
|
|
|
/* Marvell Semiconductor PHYs */
|
|
model MARVELL E1000 0x0000 Marvell Semiconductor 88E1000* gigabit PHY
|