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.
The driver software is released in three formats:
pkgadd -d BRCMbcme.pkg
-or-
Copy BRCMbcme.tar.Z to /tmp.
cd /tmp
uncompress BRCMbcme.tar.Z
tar xvf BRCMbcme.tar
pkgadd -d /tmp)
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=200
Carry out the following commands in the order listed:
ifconfig bcme[instance_number] down
ifconfig bcme[instance_number] unplumb
pkgrm BRCMbcme
You can use a Solaris DU disk either to install new drivers or upgrade existing drivers.
format A:
-or-
In a Solaris environment, type
fdformat -Ud
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
Enumerating buses
message is displayed, and then Install Driver Update opens.
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.
Installation complete
message is displayed, remove the disk from drive A and restart your machine. 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
ps -ef | grep vold
NOTE: For more information about managing disks and drives, refer to the System Administration Guide.
# /etc/init.d/volmgt stop
# 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.
# /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 you type y, the install.sh script installs the driver as well as the bootmod and bootbin patches.
# cd /
# umount /mnt
# touch /reconfigure
# reboot
b -r
To set the adapter properties, edit the bcme.conf file located at /kernel/drv/ and change the values for each property as you prefer.
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;
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;
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;
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;
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;
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;
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;
Configures the number of received frames before the adapter generates a receive interrupt. The default value is 10.
RxMaxCoalescedFrames=10;
Configures the number of 1-microsecond ticks before the adapter generates a receive interrupt. The default value is 500.
TxCoalescingTicks=500;
Configures the number of transmitted frames before the adapter generates a transmit interrupt. The default value is 80.
TxMaxCoalescedFrames=80;
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;
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;
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;
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;
Configures the number of 1-microsecond ticks between periodic statistic block DMAs. The default value is 1 000 000.
StatsCoalescingTicks=1000000;
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;
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 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 on the adapter associated with instance 5
ndd -set /dev/bcme Instance 5
ndd -set /dev/bcme BlinkLeds 10