Solaris Driver Software: Broadcom NetXtreme® 57XX User Guide
Installing the Driver Software
Uninstalling the Driver Software
Using a Driver Update (DU) Disk
Setting the Adapter Properties
Temporarily Changing the Driver Properties by Carrying Out the ndd Command
NOTE: Before you proceed, review the Readme.txt file to see if there are any problems or limitations associated with the specific Solaris driver software you are using.
Introduction
The driver software is released in three formats:
Installing the Driver Software
- Change to the directory where the BRCMbcme.pkg file is located.
pkgadd -d BRCMbcme.pkg
-or-
Copy BRCMbcme.tar.Z to /tmp.
cd /tmp
uncompress BRCMbcme.tar.Z
tar xvf BRCMbcme.tar
pkgadd -d /tmp)
- Carry out prtconf to determine the instance number of the adapter.
ifconfig bcme[instance_number] plumb
ifconfig bcme[instance_number] ip_address netmask
To make these changes permanent
In Solaris 7.0 (Intel platform), the operating system allocates only 36 pages of 4 KB to physically contiguous memory. The driver needs about 130 KB of physically contiguous memory per adapter. To use more than one adapter, the operating system must allocate more memory. To allocate more memory, set an operating system variable lomempages in the system file in /etc. For example, if four adapters are installed in a Solaris 7 system, the physically-contiguous memory requirement is calculated as follows:
4 * 130 KB = 520 KB ==> 130 pages of 4 KB memory are required.
Because this memory might be used by other drivers in the system, 200 pages of 4 KB memory should be allocated. Add the following line in the system file in /etc/:
set lomempages=200Uninstalling the Driver Software
Carry out the following commands in the order listed:
ifconfig bcme[instance_number] down
ifconfig bcme[instance_number] unplumb
pkgrm BRCMbcme
Using a Driver Update (DU) Disk
You can use a Solaris DU disk either to install new drivers or upgrade existing drivers.
Creating a Driver Update (DU) Disk (Intel Platform Only)
- Insert a 3.5-inch disk into drive A.
- In an MS-DOS environment, type
format A:
-or-
In a Solaris environment, type
fdformat -Ud
- Check to see if Volume Management is running:
In an MS-DOS environment, type
dd filename A:
-or-
In a Solaris environment, type
volcheck ls -l /vol/dev/aliases/floppy0
If the following message is displayed
lrwxrwxrwx 1 root 34 Jan 21 17:28
/vol/dev/aliases/floppy0 ->
/vol/dev/rdiskette0/unnamed_floppy
type
dd if=bcmedu.img of=/vol/dev/aliases/floppy0
bs=36k eject floppy0
-or-
If the following message is displayed
/vol/dev/aliases/floppy0 not found
type
dd if=bcmedu.img of=/dev/rdiskette bs=36k
Installing Driver Software or Updating Driver Software
- Insert the appropriate Configuration Assistant disk, made from the included bcmedu.img file, into drive A. Also, insert the Solaris Installation CD into the CD-ROM drive, or, for a network, verify with your system administrator that the Solaris network installation image is available on your network.
- Turn on your system.
- In Configuration Assistant, select the F4 option (on 2.6, this option is labeled F4_Driver Update; on Solaris 7, it is labeled F4_Add Driver). The
Enumerating buses
message is displayed, and then Install Driver Update opens.- Remove the Configuration Assistant disk from drive A and insert the first Solaris DU disk.
- Select F2_Continue.
- Select Solaris System Version opens.
- Select the appropriate Solaris operating system, and then select F2_Continue. When all the new drivers on the disk have been processed, Continue Driver Update Installation opens.
- Remove the DU disk from drive A and insert the next DU disk, if any.
- Repeat steps 5 through 8 until you have installed all the drivers.
- When all the drivers are processed, remove the last DU disk from drive A and reinsert the Configuration Assistant disk.
NOTE: Do not remove the Configuration Assistant disk from drive A until the following message is displayed:
If you want to bypass the device configuration and boot screens when the system reboots, eject the Device Configuration Assistant/Boot diskette now.
- Select F2_Continue.
- in Solaris Device Configuration Assistant, select F2_continue.
- In Identified Devices, select F2_continue.
- In Boot Solaris, select the device controller that is attached to the device that contains your install medium.
- select F2_continue.
- Insert the DU disks each time you are prompted to do so, and follow the on-screen instructions.
- Remove the Configuration Assistant disk and reinsert the first DU disk you initially used.
- Press ENTER and follow the on-screen instructions.
- When the
Installation complete
message is displayed, remove the disk from drive A and restart your machine.Adding New Drivers or Updating Existing Drivers
Before you add new drivers or update existing drivers, be sure that the newly-supported hardware devices are 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 drivers or to update existing drivers is to install the DU disks as patches on the operating system.
To install the DU disks as patches on the operating system
- Become superuser on your system.
- Check to see if Volume Management is running on the machine you are updating:
ps -ef | grep vold
NOTE: For more information about managing disks and drives, refer to the System Administration Guide.
- If Volume Management is running, temporarily stop it by typing
# /etc/init.d/volmgt stop
- Insert the DU disk into drive A.
- Mount the DU disk at the /mnt mount point by typing
# mount -F pcfs /dev/diskette /mnt
NOTE: At this point, to successfully update your system, you must mount the DU disk in the file structure.
- Carry out the install script on the disk using the appropriate Solaris release directory (currently sol_26 for Solaris 2.6, sol_27 for Solaris 7, and so on). For example, type
# /mnt/DU/sol_27/i86pc/Tools/install.sh -i
The install.sh script searches for all new or updated drivers on the disk. When a new or updated driver is found, the following message is displayed:
Unconditionally installing DUs <DU driver names>
Install patch driver-name? [y]
- If the driver is the one you want to install, type y for yes or press ENTER. If the driver is not the one you want to install, type n for no.
If you type y, the install.sh script installs the driver as well as the bootmod and bootbin patches.
- When you are finished, and the install.sh script quits, unmount the disk by typing
# cd /
# umount /mnt- Remove the DU disk from drive A.
- Restart your machine.
# touch /reconfigure
# reboot- If you have not already shut down your system, do so now, add the new hardware, and then turn your system on again.
- When the autoboot sequence message appears, press ESC.
- Select F2_continue.
- When scanning is complete and Identified Devices opens, select F2_continue.
- In Boot Solaris, select the device controller attached to the device that contains your install medium, which in this case the main system disk.
- After the /etc/bootrc script starts, type
b -r
Setting the Adapter Properties
To set the adapter properties, edit the bcme.conf file located at /kernel/drv/ and change the values for each property as you prefer.
ForceSpeedDuplex
Configures the link (or instance) to a particular speed and duplex mode
0 = Auto-negotiate (default)
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 interface only)
6 = Auto-negotiate only 1000 Mbps speed, full-duplex mode
7 = Auto-negotiate only 1000 Mbps speed, half-duplex mode
8 = Auto-negotiate only 100 Mbps speed, full-duplex mode
9 = Auto-negotiate only 100 Mbps speed, half-duplex mode
10 = Auto-negotiate only 10 Mbps speed, full-duplex mode
11 = Auto-negotiate only 10 Mbps speed, half-duplex mode
For example, configure adapters of instance 0 and instance 3 to 100 Mbps speed, full-duplex mode, and 10 Mbps speed, half-duplex mode.
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 the flow control properties of a link.
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 the adapter will not process RX PAUSE frames.
2 = RX flow control is enabled. If the adapter receives a PAUSE frame, it will stop sending. The adapter will not send PAUSE frames if resource is low.
3 = Both RX and TX flow control are enabled. PAUSE frames will be sent if resource is low. If the adapter receives PAUSE frames, it will stop sending.
4 = Advertises both RX and TX flow control as being enable and negotiates with the link partner. If link auto-negotiate is not enabled, both TX and RX flow control are disabled.
FlowControl=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;MaxJumboFrameSize
Configures the jumbo frame property of a link. The valid range of values for this property is 0 to 9000. If the value configured is less than 1500, the jumbo frame feature is disabled. BCM5705 adapters do not support jumbo frames, and this property will be ignored by the driver regardless of the settings.
MaxJumboFrameSize=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;TxPacketDescCnt
Configures the number of TX packet descriptors. The valid range of values is 32 to 512. More system memory resources will be used for a larger number of TX packet descriptors. The default value is 200.
TxPacketDescCnt=200;RxStdDescCnt
Configures the number of RX packet descriptors. The valid value range of values 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
Configures the number of RX jumbo packet descriptors. The valid value is 32 to 256. More system memory resources will be used for a larger number of RX jumbo packet descriptors. This property is used only if the jumbo frame property is enabled. The default value is 50.
RxJumboDescCnt=50;RxCoalescingTicks
Configures the number of 1-microsecond RX host coalescing ticks. This setting determines the upper boundary of the time interval that the adapter will generate an interrupt if one or more frames are received. The default value is 150.
RxCoalescingTicks=150;RxMaxCoalescedFrames
Configures the number of received frames before the adapter generates a receive interrupt. The default value is 10.
RxMaxCoalescedFrames=10;TxCoalescingTicks
Configures the number of 1-microsecond ticks before the adapter generates a receive interrupt. The default value is 500.
TxCoalescingTicks=500;TxMaxCoalescedFrames
Configures the number of transmitted frames before the adapter generates a transmit interrupt. The default value is 80.
TxMaxCoalescedFrames=80;RxCoalescingTicksDuringInt
Configures the number of 1-microsecond ticks during a receive interrupt. This determines the upper boundary of the time interval that the adapter generates an interrupt if one or more frames are received during interrupt handling. The default value is 75.
RxCoalescingTicksDuringInt=75;TxCoalescingTicksDuringInt
Configures the number of 1-microsecond ticks during a transmit interrupt. This determines the upper boundary of the time interval that the adapter generates an interrupt if one or more frames are transmitted during interrupt handling. The default value is 75.
TxCoalescingTicksDuringInt=75;RxMaxCoalescedFramesDuringInt
Configures the maximum number of received frames during interrupt handling. This determines the upper boundary of the maximum number of Rx buffer descriptors that the adapter processes before it generates an interrupt during interrupt handling. The default value is 10.
RxMaxCoalescedFramesDuringInt=10;TxMaxCoalescedFramesDuringInt
Configures the maximum number of transmitted frames during interrupt handling. This determines the upper boundary of the maximum number of Tx buffer descriptors that the adapter processes before it generates an interrupt during interrupt handling. The default value is 10.
TxMaxCoalescedFramesDuringInt=10;StatsCoalescingTicks
Configures the number of 1-microsecond ticks between periodic statistic block DMAs. The default value is 1 000 000.
StatsCoalescingTicks=1000000;DoubleCopyTxBufferSize
Configures a double copy Tx buffer size. If a packet to be transmitted is less than this property and spanned more than one fragment, the fragments of this packet are combined into one fragment.
DoubleCopyTxBufferSize=64;Temporarily Changing the Driver Properties by Carrying Out the ndd Command
Driver properties can also be temporarily changed by carrying out 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 the properties that are configurable by carrying out the ndd command, type
ndd /dev/bcme '?'Table 1 lists the driver properties that can be temporarily changed using the ndd command.
To set a property for a particular adapter, the Instance property first has to be set to the proper instance associated with that particular adapter.
Example:
To force an adapter of instance 1 to 100 Mbps full-duplex
ndd -set /dev/bcme Instance 1ndd -set /dev/bcme ForceSpeedDuplex 3To query the current configuration of Flow Control of instance 3
ndd -set /dev/bcme Instance 3ndd -get /dev/bcme FlowControlTo blink all LEDs for 10 seconds on the adapter associated with instance 5
ndd -set /dev/bcme Instance 5ndd -set /dev/bcme BlinkLeds 10