Back to Contents

Solaris Driver Software: Broadcom NetXtreme™ Gigabit Ethernet Adapter User's Guide

This section contains installation and configuration procedures for the Broadcom NetXtreme™ Gigabit Ethernet Adapter driver for Solaris x86 and Solaris Sparc.

Driver FormatsInstalling the DriverUninstalling the DriverCustomizing the Driver ConfigurationCustomizing the Driver Configuration using the "ndd" Command


Driver Formats

The driver for Solaris 8.0 is released in two formats:

  1. BRCMbcme.pkg : Datastream format
  2. BRCMbcme.tar.Z : Compressed and TAR file system format

Installing the Driver

  1. Change directory to where BRCMbcme.pkg resides
  2. pkgadd -d BRCMbcme.pkg

    or

    Copy BRCMbcme.tar.Z to /tmp
    cd /tmp
    uncompress BRCMbcme.tar.Z
    tar xvf BRCMbcme.tar
    pkgadd -d /tmp

  3. Execute prtconf to determine instance number of the NIC.
  4. ifconfig bcme[instance_number] plumb
  5. ifconfig bcme[instance_number] ip_address netmask....

To make these changes permanent, follow these steps:

  1. Use your favorite text editor (e.g., vi) and create a file named hostname.bcme[instance_number] in the /etc directory. Add the IP address of the interface to this file, then save and exit.
  2. Add a proper subnet mask to the file /etc/netmasks.

In Solaris 7.0 (Intel platform), the operating system only allocates 36 pages of 4K physically contiguous memory. The driver needs about 130K of physically contiguous memory per NIC. In order to use more than one NIC the O/S has to allocate more memory. This can be done by setting an O/S system variable "lomempages" in /etc/system. For instance, when 4 NICs are installed in a Solaris 7 system, the 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

Uninstalling the Driver

  1. ifconfig bcme[instance_number] down
  2. ifconfig bcme[instance_number] unplumb
  3. pkgrm BRCMbcme

Customizing the Driver Configuration

To customize the driver, edit /kernel/drv/bcme.conf and update the respective parameters in this file. These parameters are described below:

ForceSpeedDuplex Parameter

ForceSpeedDuplex configures link (or instance) to a certain Speed and Duplex. By default, all instances are set to AutoNegotiate (0). The Default instance settings then are:

ForceSpeedDuplex=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;

These settings are based on the following values:

Value
Description
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.
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.

Example: To configure adapters of instance #0 to 100 Mbps Full Duplex and instance #3 to 10 Mbps Half Duplex, set the ForceSpeedDuplex parameter as follows:

ForceSpeedDuplex=4,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0;

FlowControl Parameter

FlowControl configures flow control parameters of a link. By default, all instances are set to disable both Tx and Rx flow control (0). As a result, the default instance settings are:

FlowControl=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;.

These settings are based on the following values:

Value
Description
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. However, the device will not send a 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 the device receives a Pause Frame, it will stop sending.
4
Advertise both Rx and TX Flow Control being enabled and negotiate with the link partner. If link AutoNegotiate is not enabled, then both Tx and Rx Flow Control are disabled.

MaxJumboFrameSize Parameter

MaxJumboFrameSize configures the 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. Once this is configured, the ifconfig command is used to configure the desired MTU size. The default instant setting is 0 (MaxJumboFrameSize=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;)

Example: To configure instance 2 to support a Jumbo Frame of up to 9000 bytes, set the MaxJumboFrameSize parameter as follows:

MaxJumboFrameSize=0,0,9000,0,0,0,0,0,0,0,0,0,0,0,0,0;
ifconfig bcme2 mtu 9000

TxPacketDescCnt Parameter

TxPacketDescCnt configures the number of Tx packet descriptors. The valid range of values for this parameter is 32 to 512. More system memory resource will be used for a larger number of Tx Packet Descriptors. The default value is 100:

TxPacketDescCnt=100;

RxStdDescCnt Parameter

RxStdDescCnt configures the number of Rx packet descriptors. The valid range of values for this parameter is 32 to 512. More system memory resources will be used for a larger number of Rx Packet descriptors. The default value is 500.

RxStdDescCnt=500;

RxJumboDescCnt Parameter

RxJumboDescCnt configures the number of Rx Jumbo packet descriptors. The valid range of values is 32 to 256. More system memory resource will be used for larger number of Rx Jumbo packet descriptors. This parameter is only used if the Jumbo Frame feature is enabled. The default value is 50.

RxJumboDescCnt=50;

RxCoalescingTicks Parameter

RxCoalescingTicks configures the number of Rx Host Coalescing Ticks in microseconds. This determines the upper-bound of time interval in which the device will generate an interrupt if one or more frames are received. The default value is 150.

RxCoalescingTicks=150;

RxMaxCoalescedFrames Parameter

RxMaxCoalescedFrames configures the number of Rx Maximum Coalesced Frames parameters. This determines the maximum number of Rx buffer descriptors that the device processes before it will generate an interrupt. The default value is 10.

RxMaxCoalescedFrames=10;

TxCoalescingTicks Parameter

TxCoalescingTicks configures the number of Tx Host Coalescing Ticks in microseconds. This determines maximum time interval before the device generates an interrupt if one or more frames are sent. The default value is 150.

TxCoalescingTicks=150;

TxMaxCoalescedFrames Parameter

TxMaxCoalescedFrames configures the number of Tx Maximum Coalesced Frames parameters. This determines upper-bound of the maximum number of Tx buffer descriptors that the device processes before it will generate an interrupt. The default value is 10.

TxMaxCoalescedFrames=10;

RxCoalescingTicksDuringInt Parameter

RxCoalescingTicksDuringInt configures the number of Rx Host Coalescing Ticks in microseconds during an interrupt. This determines the maximum time interval before the device generates an interrupt if one or more frames are received during interrupt handling. The default value is 50.

RxCoalescingTicksDuringInt=50;

TxCoalescingTicksDuringInt Parameter

TxCoalescingTicksDuringInt configures the number of Tx Host Coalescing Ticks in microseconds during interrupt. This determines the upper-bound of time interval that the device generates and interrupt if one or more frames are received during interrupt handling. The default value is 50.

TxCoalescingTicksDuringInt=50;

RxMaxCoalescedFramesDuringInt Parameter

RxMaxCoalescedFramesDuringInt configures the number of Rx Maximum Coalesced Frames parameters during interrupt handling. This determines the upper-bound of maximum number of Rx buffer descriptors that the device processes before it will generate an interrupt during interrupt handling. The default value is 4.

RxMaxCoalescedFramesDuringInt=4;

TxMaxCoalescedFramesDuringInt Parameter

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 4.

TxMaxCoalescedFramesDuringInt=4;

StatsCoalescingTicks Parameter

StatsCoalescingTicks configures how often adapter statistics are DMAed to the host memory in microseconds. The default value is 1000000.

StatsCoalescingTicks=1000000;

DoubleCopyTxBufferSize Parameter

DoubleCopyTxBufferSize configures a double copy Tx buffer size. If the packet to be transmitted is less than this parameter and spans more than 1 fragment, the fragments of this packet will be combined into one fragment. The default value is 64.

DoubleCopyTxBufferSize=64;

Customizing the Driver Configuration using the "ndd" Command

Driver configurations can also be temporarily changed with the Solaris ndd command. Any changes made with ndd command are temporary and will be lost when you reboot the system. To make configuration changes survive after reboot, modify bcme.conf instead.

NOTE – Refer to the parameter descriptions as required in Customizing the Driver Configuration above.

To display parameters that are configurable using ndd:

ndd /dev/bcme '?'

The system should return the following:

? (read only)
Instance (read and write)
ForceSpeedDuplex (read and write)
FlowControl (read and write)
TxPacketDescCnt (read and write)
RxStdDescCnt (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)
DoubleCopyTxBufferSize (read and write
BlinkLeds (write only

Configuring a NIC

To configure a particular NIC, the parameter "instance" must be properly set.

Examples:

To force a NIC of instance 1 to 100Mbps Full Duplex:

To query the current configuration of Flow Control of instance 3:

To blink all LEDs for 10 seconds of NIC of instance 5:


Back to Top

Back to Contents


Please read all restrictions and disclaimers.