# # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # ######################################################################### # # Copyright 2008 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # Driver.conf file for the BGE driver, for # Broadcom 579x Gigabit Ethernet devices # # All the properties below can be set globally (i.e. for all instances # of BGE), or on a per-instance basis. See driver.conf(5) for details # of the syntax of global and per-instance properties. # # Properties specified in this file take effect when the driver is first # loaded, typically just after system boot. Changes to the file will # therefore not take effect until the next reboot, but will be permanent # thereafter. # # Some of the driver's parameters can also be changed using ndd(8). # Changes made with ndd apply only to a specific instance (e.g. bge1). # They take effect immediately, but are lost if the driver is unloaded. # ######################################################################### # # The autonegotiation feature can be controlled by the boolean properties # listed below. # # Firstly, 'adv_autoneg_cap' controls whether autonegotiation is enabled. # # If autonegotiation is turned OFF ("forced mode"), the remaining 'adv_*' # speed/duplex properties force selection of a specific mode, namely, # the first mode found to be enabled, in highest-to-lowest speed order # (thus, if adv_1000fdx_cap=1, all other values will be ignored; to force # 10/hdx mode, *all* the faster modes must be explicitly disabled). # # BEWARE - it's very easy to end up with a non-working link using forced # mode. There's NO validation that the link partner actually supports # the mode that this device has been forced into. In some cases, this # will prevent the link coming up; in others, the link status will show # 'up' (electrical connection made) but data transfer will not work at # all, or will work poorly (low throughput, high collision rates, etc). # # Note that many switches *require* autonegotiation in order to operate # at 1000Mbps or in full-duplex mode or with flow control. In other words, # the only combinations that are likely to work with autonegotiation off # are 100Mbps/half-duplex and 10Mbps/half-duplex, unless the peer has also # been manually forced to some other (matching) combination. # # With autonegotiation ON (the default and preferred mode), the 'adv_*' # properties control which capabilities are advertised to the partner. # The default is to advertise all the capabilities that the hardware # supports; thus, the properties below serve only to limit the advertised # capabilities to restricted subset -- it is not possible to advertise a # capability that the hardware does not support. # # The autonegotiation process will then automagically select the fastest # speed/duplex mode and greatest degree of flow control supported by both # partners. # # If the local device is set to autonegotiate, but the link partner can't # or doesn't autonegotiate, the correct speed will be determined anyway, # and HALF-DUPLEX mode will be selected, as mandated by the IEEE802.3 # standard. This will yield the correct result if the partner is in fact # incapable of autonegotiating: it must be a half-duplex device, because # the only devices that don't support autonegotation are half-duplex (the # standard says that all full-duplex-capable devices must also support # autonegotiation). # # However, this choice will NOT be correct if the peer is actually capable # of autonegotiation and full-duplex operation, and has been manually set # to "forced full-duplex without autonegotiation" (a mode not recommended # by the IEEE standard). The link will appear to work, but the duplex # mismatch will result in packet loss and spurious "late collisions". In # such cases, the preferred solution is to enable autonegotiation by the # peer. Failing that, autonegotiation by the BGE device can be disabled, # and forced mode used to match the peer's forced settings as above. # # adv_autoneg_cap = 1; # adv_1000fdx_cap = 1; # adv_1000hdx_cap = 1; # adv_100T4_cap = 0; # adv_100fdx_cap = 1; # adv_100hdx_cap = 1; # adv_10fdx_cap = 1; # adv_10hdx_cap = 1; # adv_asym_pause_cap = 0; # adv_pause_cap = 0; # # All of these parameters can can also be queried and modified at run-time # by use of the ndd(8) command. # ######################################################################### # # OBP's device driver exports methods to set the link speed explicity, # which then pass the information to the Solaris driver through the # 'transfer-speed' property. It therefore SHOULDN'T be set here, but # is documented for completeness. If the 'transfer-speed' property is # set to 10, 100, or 1000, the link will be set to the selected speed, # and autonegotiation ENABLED but restricted to the specified speed. # The correct duplex setting will be determined by autonegotiation. # # This property, if set, overrides and alters the settings of the adv_* # parameters corresponding to the properties above. # # transfer-speed = 1000; # ######################################################################### # # As a third alternative, the following two properties can be set to # force the link speed/duplex setting instead. Doing so will override # and alter the settings of the adv_* parameters corresponding to the # properties above, and take precedence over all other means of setting # the speed/duplex at boot time. # # Autonegotiation will be DISABLED if EITHER of these properties is set, # therefore BOTH properties should be set explicity if either one is. # 'speed' may be set to 10, 100 or 1000, while 'full-duplex' may be 0 or 1. # # See the warning above about the potential for misconfiguration when # autonegotiation is disabled. Defining these properties could leave your # system configured so that the network will not work at all after reboot, # requiring manual intervention and further reboots to recover! # # speed = 100; # full-duplex = 0; # ######################################################################### # # The property below represents the list of subsystem vendor/device pairs # with which driver operation is supported. This list will be updated and # extended as new subsystems are validated ... # bge-known-subsystems = 0x108e1647, 0x108e1648, 0x108e16a7, 0x108e16a8, 0x17c20010, 0x17341013, 0x101402a6, 0x10f12885, 0x17c20020, 0x10b71006, 0x10280109, 0x102801f8, 0x1028865d, 0x0e11005a, 0x0e1100cb, 0x103c12bc; ######################################################################### # # The properties below represents the number of receive and send ring used. # For BCM5705, BCM5782, etc, there are only 1 receive ring and 1 send ring. # Otherwise, there can be up to 16 receive rings and 4 send rings. # bge-rx-rings = 16; bge-tx-rings = 1;