This section contains installation and configuration procedures for the Broadcom NetXtreme Gigabit Ethernet Adapter driver for Solaris 2.6/7/8/9/10 for i386 and Solaris Sparc.
This section describes the Solaris Release 8 driver for Broadcom's BCM570X 10/100/1000 Mbps Ethernet Network Interface Controller. The driver is released in three formats:
To make these changes permanent, follow these steps:
In Solaris 7.0 (Intel platform), operating system only allocates 36 pages of 4K physically contiguous memory. Driver needs about 130K physically contiguous memory per NIC. In order to use more than one NIC. O/S has to allocate more memory. This can be done by setting an O/S system variable "lomempages" in /etc/system. For instance, four NICs are installed in a Solaris 7 system, physically contiguous memory is calculated as follows:
4 NICs * 130K = 520 K ==> 130 pages of 4K is required.
Since this memory might be used by other driver in the system,
200 of 4K of memory is allocated. Add the following line in
file /etc/system:
set lomempages=200
This area contains the Solaris diskette image files(s) and the instructions to create diskettes from these image file(s).
You can use Solaris DU diskettes in one of two ways:
To install Solaris (Intel Platform Edition) using drivers on the DU diskette:
![]() |
NOTE: Do not remove the Configuration Assistant diskette from the diskette drive until you see the following message displayed in a dialog box: If you want to bypass the device configuration and boot screens when the system reboots, eject the Device Configuration Assistant/Boot diskette now. |
When the Solaris operating environment is finished booting and running, the new devices whose drivers you installed are available for use.
Before adding new or updated drivers, the newly supported hardware devices should be installed and configured according to the instructions in the corresponding Device Reference Page, if any. See the Solaris (Intel Platform Edition) Device Configuration Guide.
When the Solaris (Intel Platform Edition) software is already installed, the simplest way to add new or updated drivers is to install the DU diskettes as patches on your system, as follows:
![]() |
Note: At this point, you must mount the DU diskette in the file structure to update your system successfully. |
To customize the driver edit "/kernel/drv/bcme.conf" and update the respective parameters in this file. The following describes the meaning of these parameters:
# ForceSpeedDuplex: configures link (or instance) to a certain Speed and
# Duplex. By default, AutoNegotiate (0) is set. The setup is based on the
# following values:
# 0 : AutoNegotiate.
# 1 : 10 Mbps speed and Half-Duplex mode.
# 2 : 10 Mbps speed and Full-Duplex mode.
# 3 : 100 Mbps speed and Half-Duplex mode.
# 4 : 100 Mbps speed and Full-Duplex mode.
# 5 : Force 1000 Mbps Full-Duplex mode (Fiber NIC only).
# 6 : AutoNegotiate only 1000 Mbps Full-Duplex mode.
# 7 : AutoNegotiate only 1000 Mbps Half-Duplex mode.
# 8 : AutoNegotiate only 100 Mbps Full-Duplex mode.
# 9 : AutoNegotiate only 100 Mbps Half-Duplex mode.
# 10 : AutoNegotiate only 10 Mbps Full-Duplex mode.
# 11 : AutoNegotiate only 10 Mbps Half-Duplex mode.
#
# For examples, configure adapters of instance#0 and instance#3 to
# 100 Mbps Full-Duplex, and 10 Mbps Half-Duplex.
# ForceSpeedDuplex=2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0;
#
ForceSpeedDuplex=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;
#
# FlowControl: configures flow control parameters of a link. The setup is
# based on the following values:
# 0: Both Tx and Rx flow control are disabled.
# 1: Tx flow control is enabled. Pause frames will be sent if
# resource is low. But device will not process Rx Pause Frame.
# 2: Rx flow control is enabled. If the device receives a Pause Frame,
# it will stop sending. But device will not send Pause Frame
# if resource is low.
# 3: Both Rx and TX flow control are enabled. Pause frames
# will be sent if resource is low. If device receives Pause Frame,
# it will stop sending.
# 4: Advertise both Rx and TX flow control being enable and negotiate
# with the link partner. If link AutoNegotiate is not enabled, then
# both Tx & Rx Flow Control are disabled.
FlowControl=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;
#
# MaxJumboFrameSize: configures Jumbo Frame feature of a link. The valid
# range of values for this parameter is 0 to 9000. If the value configured is less
# than 1500, then the Jumbo Frame feature is disabled. BCM5705 NICs do not support
# jumbo frame, therefore, this parameter will be ignored by the driver.
MaxJumboFrameSize=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;
#
# TxPacketDescCnt: configures number of Tx packet descriptor. The valid range
# of values is 32 to 512. More system memory resource will be used for a
# larger number of Tx Packet Descriptors. The default value is 200.
#
TxPacketDescCnt=200;
#
# RxStdDescCnt: configures number of Rx packet descriptors. The valid value range
# of values is 32 to 512. More system memory resource will be used for a larger
# number of Rx Packet Descriptors. The default value is 500.
#
RxStdDescCnt=500;
#
# RxJumboDescCnt: configures the number of Rx Jumbo packet descriptor. The
# valid value is 32 to 256. More system memory resource will be used for a
# larger number of Rx Jumbo packet descriptors. This parameter is only
# used if Jumbo Frame feature is enabled. Default value is 50.
#
RxJumboDescCnt=50;
#
# RxCoalescingTicks: configures the number of Rx Host Coalescing Ticks in
# microseconds. This determines the upper-bound of time interval that the
# device will generate an interrupt if one or more frames are received.
# The default value is 150.
#
RxCoalescingTicks=150;
#
# RxMaxCoalescedFrames: configures the number of Rx Maximum Coalesced Frames
# parameters. This determines upper-bound of maximum number of Rx buffer
# descriptors that device processes before it will generate an interrupt.
# The default value is 10.
#
RxMaxCoalescedFrames=10;
#
# TxCoalescingTicks: configures the number of Tx Host Coalescing Ticks in
# microseconds. This determines upper-bound of time interval that the
# device will generate an interrupt if one or more frames are sent. The
# default value is 500.
#
TxCoalescingTicks=500;
#
# TxMaxCoalescedFrames: configures the number of Tx Maximum Coalesced Frames
# parameters. This determines the upper-bound of maximum number of Tx buffer
# descriptors that device processes before it will generate an interrupt.
# The default value is 80.
#
TxMaxCoalescedFrames=80;
#
# RxCoalescingTicksDuringInt: configures the number of Rx Host Coalescing Ticks
# in microseconds during interrupt. This determines the upper-bound of time
# interval that the device will generate an interrupt if one or more frames
# are received during interrupt handling. The default value is 75.
#
RxCoalescingTicksDuringInt=75;
#
# TxCoalescingTicksDuringInt: configures the number of Tx Host Coalescing
# Ticks in microseconds during interrupt. This determines the upper-bound of
# time interval that the device will generate an interrupt if one or more
# frames are received during interrupt handling. The default value is 75.
#
TxCoalescingTicksDuringInt=75;
#
# RxMaxCoalescedFramesDuringInt: configures the number of Rx Maximum Coalesced
# Frames parameters during interrupt handling. This determines the upper-bound
# of the maximum number of Rx buffer descriptors that the device processes before
# it will generate an interrupt during interrupt handling. The default
# value is 10.
#
RxMaxCoalescedFramesDuringInt=10;
#
# TxMaxCoalescedFramesDuringInt: configures the number of Tx Maximum Coalesced
# Frames parameters during interrupt handling. This determines the upper-bound
# of maximum number of Tx buffer descriptors that the device processes before
# it will generate an interrupt during interrupt handling. The default
# value is 10.
#
TxMaxCoalescedFramesDuringInt=10;
#
# StatsCoalescingTicks: configures how often adapter statistics are DMAed
# to host memory in microseconds. The default is 1000000.
#
StatsCoalescingTicks=1000000;
#
# DoubleCopyTxBufferSize: configures a double copy Tx buffer size. If a
# packet to be transmitted is less than this parameter and spanned more
# than 1 fragments, the fragments of this packet will be combined into
# one fragment.
#
DoubleCopyTxBufferSize=64;
Driver configurations can also be temporarily changed with the Solaris ndd command. Any changes made with the ndd command are temporary and will be lost when you reboot the system. To make configuration changes survive after reboot, modify bcme.conf instead.
To display parameters that are configurable via ndd:
ndd /dev/bcme '?'
The system should return the following:
? |
(read only) |
Instance |
(read and write) |
ForceSpeedDuplex |
(read and write) |
FlowControl |
(read and write) |
RxCoalescingTicks |
(read and write) |
RxMaxCoalescedFrames |
(read and write) |
TxCoalescingTicks |
(read and write) |
TxMaxCoalescedFrames |
(read and write) |
RxCoalescingTicksDuringInt |
(read and write) |
RxMaxCoalescedFramesDuringInt |
(read and write) |
TxCoalescingTicksDuringInt |
(read and write) |
TxMaxCoalescedFramesDuringInt |
(read and write) |
StatsCoalescingTicks |
(read and write) |
BlinkLeds |
(write only) |
Examples: To configure a particular NIC, parameter "Instance" has to be set to proper instance associated with a particular NIC.
For instance, to force NIC of instance 1 to 100Mbps Full-Duplex,=:
ndd -set /dev/bcme Instance 1
ndd -set /dev/bcme ForceSpeedDuplex 3
To query the current configuration of Flow Control of instance 3:
ndd -set /dev/bcme Instance 3
ndd -get /dev/bcme FlowControl
To blink all LEDs for 10 seconds of NIC of instance 5:
ndd -set /dev/bcme Instance 5
ndd -set /dev/bcme BlinkLeds 10