xref: /illumos-gate/usr/src/uts/common/io/bge/bge.conf (revision bbf21555)
17c478bd9Sstevel@tonic-gate#
27c478bd9Sstevel@tonic-gate# CDDL HEADER START
37c478bd9Sstevel@tonic-gate#
47c478bd9Sstevel@tonic-gate# The contents of this file are subject to the terms of the
55952d588Szh# Common Development and Distribution License (the "License").
65952d588Szh# You may not use this file except in compliance with the License.
77c478bd9Sstevel@tonic-gate#
87c478bd9Sstevel@tonic-gate# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
97c478bd9Sstevel@tonic-gate# or http://www.opensolaris.org/os/licensing.
107c478bd9Sstevel@tonic-gate# See the License for the specific language governing permissions
117c478bd9Sstevel@tonic-gate# and limitations under the License.
127c478bd9Sstevel@tonic-gate#
137c478bd9Sstevel@tonic-gate# When distributing Covered Code, include this CDDL HEADER in each
147c478bd9Sstevel@tonic-gate# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
157c478bd9Sstevel@tonic-gate# If applicable, add the following below this CDDL HEADER, with the
167c478bd9Sstevel@tonic-gate# fields enclosed by brackets "[]" replaced with your own identifying
177c478bd9Sstevel@tonic-gate# information: Portions Copyright [yyyy] [name of copyright owner]
187c478bd9Sstevel@tonic-gate#
197c478bd9Sstevel@tonic-gate# CDDL HEADER END
207c478bd9Sstevel@tonic-gate#
217c478bd9Sstevel@tonic-gate#########################################################################
227c478bd9Sstevel@tonic-gate#
23dca582a1Sgh# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
247c478bd9Sstevel@tonic-gate# Use is subject to license terms.
257c478bd9Sstevel@tonic-gate#
267c478bd9Sstevel@tonic-gate# Driver.conf file for the BGE driver, for
277c478bd9Sstevel@tonic-gate# Broadcom 579x Gigabit Ethernet devices
287c478bd9Sstevel@tonic-gate#
297c478bd9Sstevel@tonic-gate# All the properties below can be set globally (i.e. for all instances
30*bbf21555SRichard Lowe# of BGE), or on a per-instance basis.  See driver.conf(5) for details
317c478bd9Sstevel@tonic-gate# of the syntax of global and per-instance properties.
327c478bd9Sstevel@tonic-gate#
337c478bd9Sstevel@tonic-gate# Properties specified in this file take effect when the driver is first
347c478bd9Sstevel@tonic-gate# loaded, typically just after system boot.  Changes to the file will
357c478bd9Sstevel@tonic-gate# therefore not take effect until the next reboot, but will be permanent
367c478bd9Sstevel@tonic-gate# thereafter.
377c478bd9Sstevel@tonic-gate#
38*bbf21555SRichard Lowe# Some of the driver's parameters can also be changed using ndd(8).
397c478bd9Sstevel@tonic-gate# Changes made with ndd apply only to a specific instance (e.g. bge1).
407c478bd9Sstevel@tonic-gate# They take effect immediately, but are lost if the driver is unloaded.
417c478bd9Sstevel@tonic-gate#
427c478bd9Sstevel@tonic-gate#########################################################################
437c478bd9Sstevel@tonic-gate#
447c478bd9Sstevel@tonic-gate# The autonegotiation feature can be controlled by the boolean properties
457c478bd9Sstevel@tonic-gate# listed below.
467c478bd9Sstevel@tonic-gate#
477c478bd9Sstevel@tonic-gate# Firstly, 'adv_autoneg_cap' controls whether autonegotiation is enabled.
487c478bd9Sstevel@tonic-gate#
497c478bd9Sstevel@tonic-gate# If autonegotiation is turned OFF ("forced mode"), the remaining 'adv_*'
507c478bd9Sstevel@tonic-gate# speed/duplex properties force selection of a specific mode, namely,
517c478bd9Sstevel@tonic-gate# the first mode found to be enabled, in highest-to-lowest speed order
527c478bd9Sstevel@tonic-gate# (thus, if adv_1000fdx_cap=1, all other values will be ignored; to force
537c478bd9Sstevel@tonic-gate# 10/hdx mode, *all* the faster modes must be explicitly disabled).
547c478bd9Sstevel@tonic-gate#
557c478bd9Sstevel@tonic-gate# BEWARE - it's very easy to end up with a non-working link using forced
567c478bd9Sstevel@tonic-gate# mode.  There's NO validation that the link partner actually supports
577c478bd9Sstevel@tonic-gate# the mode that this device has been forced into.  In some cases, this
587c478bd9Sstevel@tonic-gate# will prevent the link coming up; in others, the link status will show
597c478bd9Sstevel@tonic-gate# 'up' (electrical connection made) but data transfer will not work at
607c478bd9Sstevel@tonic-gate# all, or will work poorly (low throughput, high collision rates, etc).
617c478bd9Sstevel@tonic-gate#
627c478bd9Sstevel@tonic-gate# Note that many switches *require* autonegotiation in order to operate
637c478bd9Sstevel@tonic-gate# at 1000Mbps or in full-duplex mode or with flow control.  In other words,
647c478bd9Sstevel@tonic-gate# the only combinations that are likely to work with autonegotiation off
657c478bd9Sstevel@tonic-gate# are 100Mbps/half-duplex and 10Mbps/half-duplex, unless the peer has also
667c478bd9Sstevel@tonic-gate# been manually forced to some other (matching) combination.
677c478bd9Sstevel@tonic-gate#
687c478bd9Sstevel@tonic-gate# With autonegotiation ON (the default and preferred mode), the 'adv_*'
697c478bd9Sstevel@tonic-gate# properties control which capabilities are advertised to the partner.
707c478bd9Sstevel@tonic-gate# The default is to advertise all the capabilities that the hardware
717c478bd9Sstevel@tonic-gate# supports; thus, the properties below serve only to limit the advertised
727c478bd9Sstevel@tonic-gate# capabilities to restricted subset -- it is not possible to advertise a
737c478bd9Sstevel@tonic-gate# capability that the hardware does not support.
747c478bd9Sstevel@tonic-gate#
757c478bd9Sstevel@tonic-gate# The autonegotiation process will then automagically select the fastest
767c478bd9Sstevel@tonic-gate# speed/duplex mode and greatest degree of flow control supported by both
777c478bd9Sstevel@tonic-gate# partners.
787c478bd9Sstevel@tonic-gate#
797c478bd9Sstevel@tonic-gate# If the local device is set to autonegotiate, but the link partner can't
807c478bd9Sstevel@tonic-gate# or doesn't autonegotiate, the correct speed will be determined anyway,
817c478bd9Sstevel@tonic-gate# and HALF-DUPLEX mode will be selected, as mandated by the IEEE802.3
827c478bd9Sstevel@tonic-gate# standard.  This will yield the correct result if the partner is in fact
837c478bd9Sstevel@tonic-gate# incapable of autonegotiating: it must be a half-duplex device, because
847c478bd9Sstevel@tonic-gate# the only devices that don't support autonegotation are half-duplex (the
857c478bd9Sstevel@tonic-gate# standard says that all full-duplex-capable devices must also support
867c478bd9Sstevel@tonic-gate# autonegotiation).
877c478bd9Sstevel@tonic-gate#
887c478bd9Sstevel@tonic-gate# However, this choice will NOT be correct if the peer is actually capable
897c478bd9Sstevel@tonic-gate# of autonegotiation and full-duplex operation, and has been manually set
907c478bd9Sstevel@tonic-gate# to "forced full-duplex without autonegotiation" (a mode not recommended
917c478bd9Sstevel@tonic-gate# by the IEEE standard).  The link will appear to work, but the duplex
927c478bd9Sstevel@tonic-gate# mismatch will result in packet loss and spurious "late collisions".  In
937c478bd9Sstevel@tonic-gate# such cases, the preferred solution is to enable autonegotiation by the
947c478bd9Sstevel@tonic-gate# peer.  Failing that, autonegotiation by the BGE device can be disabled,
957c478bd9Sstevel@tonic-gate# and forced mode used to match the peer's forced settings as above.
967c478bd9Sstevel@tonic-gate#
977c478bd9Sstevel@tonic-gate# adv_autoneg_cap	= 1;
987c478bd9Sstevel@tonic-gate# adv_1000fdx_cap	= 1;
997c478bd9Sstevel@tonic-gate# adv_1000hdx_cap	= 1;
1007c478bd9Sstevel@tonic-gate# adv_100T4_cap		= 0;
1017c478bd9Sstevel@tonic-gate# adv_100fdx_cap	= 1;
1027c478bd9Sstevel@tonic-gate# adv_100hdx_cap	= 1;
1037c478bd9Sstevel@tonic-gate# adv_10fdx_cap		= 1;
1047c478bd9Sstevel@tonic-gate# adv_10hdx_cap		= 1;
1057c478bd9Sstevel@tonic-gate# adv_asym_pause_cap	= 0;
106dca582a1Sgh# adv_pause_cap		= 0;
1077c478bd9Sstevel@tonic-gate#
1087c478bd9Sstevel@tonic-gate# All of these parameters can can also be queried and modified at run-time
109*bbf21555SRichard Lowe# by use of the ndd(8) command.
1107c478bd9Sstevel@tonic-gate#
1117c478bd9Sstevel@tonic-gate#########################################################################
1127c478bd9Sstevel@tonic-gate#
1137c478bd9Sstevel@tonic-gate# OBP's device driver exports methods to set the link speed explicity,
1147c478bd9Sstevel@tonic-gate# which then pass the information to the Solaris driver through the
1157c478bd9Sstevel@tonic-gate# 'transfer-speed' property.  It therefore SHOULDN'T be set here, but
1167c478bd9Sstevel@tonic-gate# is documented for completeness.  If the 'transfer-speed' property is
1177c478bd9Sstevel@tonic-gate# set to 10, 100, or 1000, the link will be set to the selected speed,
1187c478bd9Sstevel@tonic-gate# and autonegotiation ENABLED but restricted to the specified speed.
1197c478bd9Sstevel@tonic-gate# The correct duplex setting will be determined by autonegotiation.
1207c478bd9Sstevel@tonic-gate#
1217c478bd9Sstevel@tonic-gate# This property, if set, overrides and alters the settings of the adv_*
1227c478bd9Sstevel@tonic-gate# parameters corresponding to the properties above.
1237c478bd9Sstevel@tonic-gate#
1247c478bd9Sstevel@tonic-gate# transfer-speed	= 1000;
1257c478bd9Sstevel@tonic-gate#
1267c478bd9Sstevel@tonic-gate#########################################################################
1277c478bd9Sstevel@tonic-gate#
1287c478bd9Sstevel@tonic-gate# As a third alternative, the following two properties can be set to
1297c478bd9Sstevel@tonic-gate# force the link speed/duplex setting instead.  Doing so will override
1307c478bd9Sstevel@tonic-gate# and alter the settings of the adv_* parameters corresponding to the
1317c478bd9Sstevel@tonic-gate# properties above, and take precedence over all other means of setting
1327c478bd9Sstevel@tonic-gate# the speed/duplex at boot time.
1337c478bd9Sstevel@tonic-gate#
1347c478bd9Sstevel@tonic-gate# Autonegotiation will be DISABLED if EITHER of these properties is set,
1357c478bd9Sstevel@tonic-gate# therefore BOTH properties should be set explicity if either one is.
1367c478bd9Sstevel@tonic-gate# 'speed' may be set to 10, 100 or 1000, while 'full-duplex' may be 0 or 1.
1377c478bd9Sstevel@tonic-gate#
1387c478bd9Sstevel@tonic-gate# See the warning above about the potential for misconfiguration when
1397c478bd9Sstevel@tonic-gate# autonegotiation is disabled.  Defining these properties could leave your
1407c478bd9Sstevel@tonic-gate# system configured so that the network will not work at all after reboot,
1417c478bd9Sstevel@tonic-gate# requiring manual intervention and further reboots to recover!
1427c478bd9Sstevel@tonic-gate#
1437c478bd9Sstevel@tonic-gate# speed			= 100;
1447c478bd9Sstevel@tonic-gate# full-duplex		= 0;
1457c478bd9Sstevel@tonic-gate#
1467c478bd9Sstevel@tonic-gate#########################################################################
1477c478bd9Sstevel@tonic-gate#
1487c478bd9Sstevel@tonic-gate# The property below represents the list of subsystem vendor/device pairs
1497c478bd9Sstevel@tonic-gate# with which driver operation is supported.  This list will be updated and
1507c478bd9Sstevel@tonic-gate# extended as new subsystems are validated ...
1517c478bd9Sstevel@tonic-gate#
1527c478bd9Sstevel@tonic-gatebge-known-subsystems	= 0x108e1647,
1537c478bd9Sstevel@tonic-gate			  0x108e1648,
1547c478bd9Sstevel@tonic-gate			  0x108e16a7,
1557c478bd9Sstevel@tonic-gate			  0x108e16a8,
1567c478bd9Sstevel@tonic-gate			  0x17c20010,
1577c478bd9Sstevel@tonic-gate			  0x17341013,
1587c478bd9Sstevel@tonic-gate			  0x101402a6,
1597c478bd9Sstevel@tonic-gate			  0x10f12885,
1607c478bd9Sstevel@tonic-gate			  0x17c20020,
1617c478bd9Sstevel@tonic-gate			  0x10b71006,
1627c478bd9Sstevel@tonic-gate			  0x10280109,
16367f41d5aSGordon Ross			  0x102801f8,
1647c478bd9Sstevel@tonic-gate			  0x1028865d,
1657c478bd9Sstevel@tonic-gate			  0x0e11005a,
1665952d588Szh			  0x0e1100cb,
1677c478bd9Sstevel@tonic-gate			  0x103c12bc;
1687c478bd9Sstevel@tonic-gate#########################################################################
1697c478bd9Sstevel@tonic-gate#
1707c478bd9Sstevel@tonic-gate# The properties below represents the number of receive and send ring used.
1717c478bd9Sstevel@tonic-gate# For BCM5705, BCM5782, etc, there are only 1 receive ring and 1 send ring.
1727c478bd9Sstevel@tonic-gate# Otherwise, there can be up to 16 receive rings and 4 send rings.
1737c478bd9Sstevel@tonic-gate#
174da14cebeSEric Chengbge-rx-rings		= 16;
1757c478bd9Sstevel@tonic-gatebge-tx-rings		= 1;
1767c478bd9Sstevel@tonic-gate
177