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 55952d588Szh199473# Common Development and Distribution License (the "License"). 65952d588Szh199473# 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# 23dca582a1Sgh162552# 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 307c478bd9Sstevel@tonic-gate# of BGE), or on a per-instance basis. See driver.conf(4) 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# 387c478bd9Sstevel@tonic-gate# Some of the driver's parameters can also be changed using ndd(1m). 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; 106dca582a1Sgh162552# adv_pause_cap = 0; 1077c478bd9Sstevel@tonic-gate# 1087c478bd9Sstevel@tonic-gate# All of these parameters can can also be queried and modified at run-time 1097c478bd9Sstevel@tonic-gate# by use of the ndd(1m) 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, 1665952d588Szh199473 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# 174*da14cebeSEric Chengbge-rx-rings = 16; 1757c478bd9Sstevel@tonic-gatebge-tx-rings = 1; 1767c478bd9Sstevel@tonic-gate 177