68bdebcaab
doesn't support NWAY, the RealTek PHY (both the integrated ones on 8139 chips and the RTL8201L 10/100 PHY) will not report the link speed via the ANLPAR or BMSR registers. For the 8201L, we need to look in magic vendor-specific PHY register 0x19. For the 8139 MAC+PHY combo, we have to be able to test the RL_MEDIASTAT register. The changes to rlphy.c are based largely on the patch from PR 30836, however I tried to eliminate some magic numbers by creating an entry for the 8201 PHY in miidevs. Also updated if_rl.c to allow the rlphy driver to read the RL_MEDIASTAT register via the rl_miibus_readreg() routine.
166 lines
6.3 KiB
Plaintext
166 lines
6.3 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 REALTEK 0x000020 RealTek Semicondctor
|
|
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
|
|
oui xxMARVELL 0x000ac2 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
|
|
model xxBROADCOM BCM5401 0x0005 BCM5401 10/100/1000baseTX PHY
|
|
model xxBROADCOM BCM5411 0x0007 BCM5411 10/100/1000baseTX PHY
|
|
model xxBROADCOM BCM5701 0x0011 BCM5701 10/100/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
|
|
|
|
/* RealTek Semiconductor PHYs */
|
|
model REALTEK RTL8201L 0x0020 RTL8201L 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 88E1000 Gigabit PHY
|
|
model xxMARVELL E1000 0x0005 Marvell 88E1000 Gigabit PHY
|
|
|