release.txt Driver File Contents (HS416A_LAN_Broadcom.zip)

                             Broadcom Corporation
                              16215 Alton Parkway,
                             Irvine, CA 92619-7013

                               Release Notes
             Broadcom BCM570X Solaris 2.6/7/8/9 driver for i386/SPARC platform
                                 10/29/2001

Introduction
============

This file describes the Solaris Release 8 driver for Broadcom's BCM570X
10/100/1000 Mbps Ethernet Network Interface Controller.  Driver is 
released in two formats:
 
1. BRCMbcme.pkg   : Datastream format.
2. BRCMbcme.tar.Z : Compressed and TAR file system format.

Installing 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 permenant, follow these steps: 

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

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,
4 NICs are installed in 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



Uninstalling Driver
=================

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

Customize Driver Configuration
==============================
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 device receives 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 link partner. If link AutoNgotiate 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 for this parameter is 0 to 9000. If value configured is less then 
# 1500, then Jumbo Frame feature is disable.
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 
#  value is 32 to 512.  More system memory resource will be used for 
#  larger number of Tx Packet Descriptors. Default value is 200.
#
TxPacketDescCnt=200;
#
#  RxStdDescCnt: configures number of Rx packet descriptor.  The valid value
#  is 32 to 512.  More system memory resource will be used for larger
#   number of Rx Packet Descriptors. Default value is 500.
#
RxStdDescCnt=500;

#
#  RxJumboDescCnt: configures number of Rx Jumbo packet descriptor.  The 
#  valid value 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 jumbo frame feature is enabled.  Default value is 50.
#
RxJumboDescCnt=50;

#
#  RxCoalescingTicks: configures number of Rx Host Coalescing Ticks in 
#  microseconds. This determines upper-bound of time interval that the 
#  device will generates interrupt if one or more frames are received. 
#  The default value is 150.
#
RxCoalescingTicks=150;

#
#  RxMaxCoalescedFrames: configures 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 number of Tx Host Coalescing Ticks in 
#  microseconds. This determines upper-bound of time interval that the 
#  device will generates interrupt if one or more frames are sent.  The 
#  default value is 500.
#
TxCoalescingTicks=500;

#
#  TxMaxCoalescedFrames: configures number of Tx Maximum Coalesced Frames 
#  parameters.  This determines 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 number of Rx Host Coalescing Ticks
#  in  microseconds during interrupt. This determines upper-bound of time 
#  interval that the device will generates interrupt if one or more frames 
#  are received during interrupt handling. The default value is 75.
#
RxCoalescingTicksDuringInt=75;

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

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

#
#  TxMaxCoalescedFramesDuringInt: configures number of Tx Maximum Coalesced 
#  Frames parameters during interrupt handling. This determines upper-bound
#  of maximum number of Tx buffer descriptors that 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 microsecond.  Default is 1000000.
#
StatsCoalescingTicks=1000000;

#
#  DoubleCopyTxBufferSize: configures double copy Tx buffer size. If a 
#  packet to be transmitted is less than this parameter and spanned more 
#  than 1 fragments.  These fragments of this packet will be combined into
#  1 fragment.
#
DoubleCopyTxBufferSize=64;

Customize Driver Configuration via NDD command
==============================================

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

To display parameters that are configurable via ndd:

          ndd /dev/bcme '?'

The system should returns 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)
DoubleCopyTxBufferSize        (read and write)
BlinkLeds                     (write only)

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


Revision History
================

v0.1 (02/26/01)  - First Release. 

v0.2 (03/01/01)  - Fixed a problem where driver transmits garbage data if packet
                   crosses multiple 4K pages.

v0.3 (03/05/01)  - Enhanced to log Link Up/Down events.
                 - Fixed a problem no more than 4 NICs can be installed in a 
                   system.
                 - Fixed a problem where 10/100 Mbps doesn't work.
             
v0.4 (03/06/01)  - Fixed a problem where command "netstat -i" doesn't show NIC 
                   statistics.
                 - Fixed a problem where driver might lock up if number of 
                   bytes per fragments is less than 8.
                 - Fixed a problem where ping response time is large if ping 
                   packet is big (such as 64K ...)

v0.5 (03/08/01)  - Fixed a problem where driver can no longer transmit after a 
                   few hours of operation.

v0.6 (03/12/01)  - Fixed a problem where netperf performance degrades over time.

v0.7 (03/13/01)  - Added features to allow users to configure various driver 
                   parameters with configuration file bcme.conf.

v0.8 (03/14/01)  - Fixed a problem where load/unload drivers many times can 
                   lock up system.
                 - Driver is now released as standard PACKAGE format.
                 - Fixed a problem where FlowControl being set to 4 in 
                   bcme.conf doesn't configure driver correctly.

v0.9 (03/16/01)  - Added Jumbo frame support.
                 - Added more statistics.  These statistics counters can be 
                   viewed with netstat -k bcme[instance].
                 - Added support some OEM NICs/LOMs.

v1.0.0 (03/23/01)
                 - Enhanced driver configuration so that driver configurations can
                   be changed via ndd command.
                 - Added proprietory IOCTLs so that driver can be debugged via 
                   debug application.
                 - Enhanced to display Broadcom banner when driver is loaded and 
                   also display type of NIC detected.

v1.0.1 (03/28/01)
                 - Fixed a problem where driver doesn't load correctly in Dell 
                   Viper system.  This is due issue where some PCI devices in the
                   Dell Viper system have the same Subsystem Vendor ID/Device ID.
                 - Added support for Athlon system.

v1.0.2 (04/02/01)
                 - Fixed a problem where Fiber NIC doesn't work when it is 
                   connected to switch.

v1.0.3 (04/03/01)
                 - Fixed a problem where SUN compliance test failed after 18 hrs.

v1.0.4 (04/25/01)
                 - Added BCM5701 support.

v1.0.5 (05/02/01)
                 - Added support for new OEM NICs.
                 - Changed banners for Broadcom NICs to "Broadcom NetXtreme ..."

v1.0.6 (05/08/01)
                 - Fixed a problem where driver per-instance parameters cannot be 
                   configured with bcme.conf.

v1.0.7 (05/11/01)
                 - Added support for new OEM NICs.

v2.0.0 (05/25/01)
                 - Added 64-bit driver support for SPARC platform (SPARC 
                   version 9 instruction set).  It has been tested on 
                   Ultra-30 and Utra-5 platform.
                 - Added Hot-plug support.

v2.0.1 (05/30/01)
                 - Fixed a problem where driver doesn't load on  Intel platform
                   with Solaris 7 O/S.
                 - Added support for Autonegotiate for individual speed.
                 - Enhanced to allow O/S to transmit when no link is detected.

v2.0.2 (06/01/01)
                 - Fixed a problem where driver doesn't recognize a certain 
                   OEM NICs.
                 - Fixed a problem where dirver is unable to Autonegotiate
                   1000 Mbps Full Duplex ONLY.

v2.0.3 (06/24/01)
                 - Optimized data path.
                 - Added support for new NIC types.

v2.0.4 (06/25/01)
                 - Optimized data path via host coalescing parameters.

v2.0.5 (07/03/01)
                 - Added support for Solaris 2.6.
                 - Added ndd option to allow users to blink all LEDs of
                   a given NIC instance for a given duration.
                 - Fixed a problem where netperf intermittently fails in
                   a certain configuration.
                 - Added support for 32-bit version NICs.

v2.0.6 (07/06/01)
                 - Fixed a problem where interface hangs up when Jumbo
                   frame is enabled and under heavy traffic such as 
                   Chariot performance testing.
v2.0.7 (08/04/01)
                 - Fixed a problem where promiscuous mode doesn't work.

                 - Fixed a problem where flow-control cannot be set
                   via ndd command on Fiber interface.
                 - Fixed a problem where not all LEDs are blinked via 
                   ndd command on BCM5700-based NICs.
                 - Added software workaround AMD Athlon issue.
                 - Changed default host coalescing parameters to improve
                   Netpef Performance.

v2.0.11 (08/30/01)
                 - Fixed a problem where driver fails to initialize in 
                   a certain Compaq machines.
                 - Added checksum offload support.
                 - Optimized Tx performance.
                 - Fixed a problem where per-instance parameters are not
                   set correctly if instance number is 16.
                 - Provided software workaround if NIC is behind an external
                   PCI-X bridge.

v2.0.12 (08/31/01)
                 - Fixed a problem where interface is hung under heavy traffic
                   and a lot of clients.

v2.0.13 (09/01/01)
                 - Fixed a problem where driver doesn't recover after DMA write
                   underrun is detected on the PCI-X platform.

v2.0.14 (09/10/01)
                 - Fixed FCS counter issue.
                 - Fixed some OEM strings.
                 - Fixed a problem systems might hang up during bootup time if 
                   Fiber NICs are on some systems.
                 - Fixed a problem performance is low on 1000 Mbps Half.

v2.0.15 (09/13/01)
                 - Fixed a problem where link can come up at 10Mbps if pre-boot
                   WOL is enabled on the NIC in back-to-back configuration.
                 - Fixed a problem where setting speed/duplex with ndd command
                   doesn't work if speed/duplex is changed from Selective
                   Autoneg to Autoneg.

v2.0.16 (09/14/01)
                 - Fixed a problem where system might crash if cable is unplugged
                   under heavy traffic. This problem only occurs on BCM5700-based
                   NICs.  It also requires bootcode firmware version 2.4 or newer.

v2.0.18 (09/24/01)
                 - Enhanced performance when running in the SPARC environment.
                 - Added a workaround where older version of OpenBoot firmware
                   (in some Sun systems) doesn't initialize upper 32-bit of 
                   64-bit BAR.

v2.0.19 (10/18/01)
                 - Fixed a problem where driver doesn't work correctly when
                   single LED mode is utilized in BCM5701-based NIC/LOM.
                 - Added support for BCM5702 and BCM5703.

v2.0.20 (10/25/01)
                 - Fixed a problem where receiving data can be corrupted under
                   heavy traffic in high-speed (>100 MHz) PCI-X systems.

v2.0.21 (10/29/01)
                 - Fixed a problem where performance is degraded in Intel platform.
                 - Fixed a problem where jumbo frame is broken in Intel platform.









                 





                                    
                  





Download Driver Pack

How To Update Drivers Manually

After your driver has been downloaded, follow these simple steps to install it.

  • Expand the archive file (if the download file is in zip or rar format).

  • If the expanded file has an .exe extension, double click it and follow the installation instructions.

  • Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.

  • Find the device and model you want to update in the device list.

  • Double-click on it to open the Properties dialog box.

  • From the Properties dialog box, select the Driver tab.

  • Click the Update Driver button, then follow the instructions.

Very important: You must reboot your system to ensure that any driver updates have taken effect.

For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.

server: web5, load: 1.20