xref: /titanic_50/usr/src/uts/common/io/bge/bge.conf (revision 25cf1a301a396c38e8adf52c15f537b80d2483f7)
1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License, Version 1.0 only
6# (the "License").  You may not use this file except in compliance
7# with the License.
8#
9# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10# or http://www.opensolaris.org/os/licensing.
11# See the License for the specific language governing permissions
12# and limitations under the License.
13#
14# When distributing Covered Code, include this CDDL HEADER in each
15# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16# If applicable, add the following below this CDDL HEADER, with the
17# fields enclosed by brackets "[]" replaced with your own identifying
18# information: Portions Copyright [yyyy] [name of copyright owner]
19#
20# CDDL HEADER END
21#
22#########################################################################
23#
24# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
25# Use is subject to license terms.
26#
27#ident	"%Z%%M%	%I%	%E% SMI"
28#
29# Driver.conf file for the BGE driver, for
30# Broadcom 579x Gigabit Ethernet devices
31#
32# All the properties below can be set globally (i.e. for all instances
33# of BGE), or on a per-instance basis.  See driver.conf(4) for details
34# of the syntax of global and per-instance properties.
35#
36# Properties specified in this file take effect when the driver is first
37# loaded, typically just after system boot.  Changes to the file will
38# therefore not take effect until the next reboot, but will be permanent
39# thereafter.
40#
41# Some of the driver's parameters can also be changed using ndd(1m).
42# Changes made with ndd apply only to a specific instance (e.g. bge1).
43# They take effect immediately, but are lost if the driver is unloaded.
44#
45#########################################################################
46#
47# The autonegotiation feature can be controlled by the boolean properties
48# listed below.
49#
50# Firstly, 'adv_autoneg_cap' controls whether autonegotiation is enabled.
51#
52# If autonegotiation is turned OFF ("forced mode"), the remaining 'adv_*'
53# speed/duplex properties force selection of a specific mode, namely,
54# the first mode found to be enabled, in highest-to-lowest speed order
55# (thus, if adv_1000fdx_cap=1, all other values will be ignored; to force
56# 10/hdx mode, *all* the faster modes must be explicitly disabled).
57#
58# BEWARE - it's very easy to end up with a non-working link using forced
59# mode.  There's NO validation that the link partner actually supports
60# the mode that this device has been forced into.  In some cases, this
61# will prevent the link coming up; in others, the link status will show
62# 'up' (electrical connection made) but data transfer will not work at
63# all, or will work poorly (low throughput, high collision rates, etc).
64#
65# Note that many switches *require* autonegotiation in order to operate
66# at 1000Mbps or in full-duplex mode or with flow control.  In other words,
67# the only combinations that are likely to work with autonegotiation off
68# are 100Mbps/half-duplex and 10Mbps/half-duplex, unless the peer has also
69# been manually forced to some other (matching) combination.
70#
71# With autonegotiation ON (the default and preferred mode), the 'adv_*'
72# properties control which capabilities are advertised to the partner.
73# The default is to advertise all the capabilities that the hardware
74# supports; thus, the properties below serve only to limit the advertised
75# capabilities to restricted subset -- it is not possible to advertise a
76# capability that the hardware does not support.
77#
78# The autonegotiation process will then automagically select the fastest
79# speed/duplex mode and greatest degree of flow control supported by both
80# partners.
81#
82# If the local device is set to autonegotiate, but the link partner can't
83# or doesn't autonegotiate, the correct speed will be determined anyway,
84# and HALF-DUPLEX mode will be selected, as mandated by the IEEE802.3
85# standard.  This will yield the correct result if the partner is in fact
86# incapable of autonegotiating: it must be a half-duplex device, because
87# the only devices that don't support autonegotation are half-duplex (the
88# standard says that all full-duplex-capable devices must also support
89# autonegotiation).
90#
91# However, this choice will NOT be correct if the peer is actually capable
92# of autonegotiation and full-duplex operation, and has been manually set
93# to "forced full-duplex without autonegotiation" (a mode not recommended
94# by the IEEE standard).  The link will appear to work, but the duplex
95# mismatch will result in packet loss and spurious "late collisions".  In
96# such cases, the preferred solution is to enable autonegotiation by the
97# peer.  Failing that, autonegotiation by the BGE device can be disabled,
98# and forced mode used to match the peer's forced settings as above.
99#
100# adv_autoneg_cap	= 1;
101# adv_1000fdx_cap	= 1;
102# adv_1000hdx_cap	= 1;
103# adv_100T4_cap		= 0;
104# adv_100fdx_cap	= 1;
105# adv_100hdx_cap	= 1;
106# adv_10fdx_cap		= 1;
107# adv_10hdx_cap		= 1;
108# adv_asym_pause_cap	= 0;
109# adv_pause_cap		= 1;
110#
111# All of these parameters can can also be queried and modified at run-time
112# by use of the ndd(1m) command.
113#
114#########################################################################
115#
116# OBP's device driver exports methods to set the link speed explicity,
117# which then pass the information to the Solaris driver through the
118# 'transfer-speed' property.  It therefore SHOULDN'T be set here, but
119# is documented for completeness.  If the 'transfer-speed' property is
120# set to 10, 100, or 1000, the link will be set to the selected speed,
121# and autonegotiation ENABLED but restricted to the specified speed.
122# The correct duplex setting will be determined by autonegotiation.
123#
124# This property, if set, overrides and alters the settings of the adv_*
125# parameters corresponding to the properties above.
126#
127# transfer-speed	= 1000;
128#
129#########################################################################
130#
131# As a third alternative, the following two properties can be set to
132# force the link speed/duplex setting instead.  Doing so will override
133# and alter the settings of the adv_* parameters corresponding to the
134# properties above, and take precedence over all other means of setting
135# the speed/duplex at boot time.
136#
137# Autonegotiation will be DISABLED if EITHER of these properties is set,
138# therefore BOTH properties should be set explicity if either one is.
139# 'speed' may be set to 10, 100 or 1000, while 'full-duplex' may be 0 or 1.
140#
141# See the warning above about the potential for misconfiguration when
142# autonegotiation is disabled.  Defining these properties could leave your
143# system configured so that the network will not work at all after reboot,
144# requiring manual intervention and further reboots to recover!
145#
146# speed			= 100;
147# full-duplex		= 0;
148#
149#########################################################################
150#
151# The property below represents the list of subsystem vendor/device pairs
152# with which driver operation is supported.  This list will be updated and
153# extended as new subsystems are validated ...
154#
155bge-known-subsystems	= 0x108e1647,
156			  0x108e1648,
157			  0x108e16a7,
158			  0x108e16a8,
159			  0x17c20010,
160			  0x17341013,
161			  0x101402a6,
162			  0x10f12885,
163			  0x17c20020,
164			  0x10b71006,
165			  0x10280109,
166			  0x1028865d,
167			  0x0e11005a,
168			  0x103c12bc;
169#########################################################################
170#
171# The properties below represents the number of receive and send ring used.
172# For BCM5705, BCM5782, etc, there are only 1 receive ring and 1 send ring.
173# Otherwise, there can be up to 16 receive rings and 4 send rings.
174#
175bge-rx-rings		= 1;
176bge-tx-rings		= 1;
177
178