Broadcom Corporation 16215 Alton Parkway, Irvine, CA 92619-7013 Release Notes Broadcom BCM5700 Solaris 8 driver for i386/SPARC platform 04/03/2001 Introduction ============ This file describes the Solaris Release 8 driver for Broadcom's BCM5700 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.] 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. # # 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. Once this is configured, # ifconfig command is used to configure desired MTU size. For instance, # to configure instance 2 to support jumbo frame up to 9000 byte. # # MaxJumboFrameSize=0,0,9000,0,0,0,0,0,0,0,0,0,0,0,0,0; # # ifconfig bcme2 mtu 9000 # 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 100. # TxPacketDescCnt=100; # # 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 150. # TxCoalescingTicks=150; # # 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 10. # TxMaxCoalescedFrames=10; # # 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 50. # RxCoalescingTicksDuringInt=50; # # 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 50. # TxCoalescingTicksDuringInt=50; # # 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 4. # RxMaxCoalescedFramesDuringInt=4; # # 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 4. # TxMaxCoalescedFramesDuringInt=4; # # 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) 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 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 for Dell LOM, 3COM NICs. 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.