Broadcom NetXtreme II Gigabit Ethernet Driver
For Solaris 10 for i386 platform
Copyright (c) 2000-2003 Broadcom Corporation
All rights reserved.
Version 2.8.3 (06 July, 2006)
============================
Fixes
=====
1. Problem: Cont00025692 - SOL10 system with 2.8.2 driver failed to attach second NIC
Cause: Per-device instance structure was not freed in detach() routine. This caused
ddi_soft_state_zalloc() to fail in subsequent attach() call.
Change: Per-device instance structure is freed back to the system control by calling
ddi_soft_state_free().
Enhancements
============
None.
Version 2.8.2 (June 30, 2006)
============================
Fixes
=====
1. Problem: Cont00025640 - Solaris 10 system will panic and reboot when using
ndd command to set speed.
Cause: Forced PHY interrupt processing after reconfiguring speed caused
deadlock read/write lock (nested) in GLD. This lock is held by GLD
when it called driver's IOCTL routine to change speed.
Change: Moved lm_service_phy_int() from um_setup_phy() routines and it's up to
caller now to issue forced phy interrupt or not. In case of speed
re-configure, driver will not force phy intr process in IOCTL thread
but let the chip generate an interrupt
Enhancements
============
None.
Version 2.8.1 (June 29, 2006)
============================
Fixes
=====
1. Problem: Cont00025616 - Solaris system stopped load and unload driver
after 275 iterations
Cause: memory leak, receive buffers not freed in the detach thread
Change: This bug was introduced while adding support for
DRV_MSG_CODE_UNLOAD_LNK_DN message. Earlier posted RX buffer were
reclaimed when the driver is unloaded and this used to work fine.
But with the new requirement to power down link when the last active
interface is unplumbed, partial clean-up and chip reset is done in
driver's stop() routine. In this process all the RX buffers are
reclaimed form the chip, 'active_descq' and moved to 'free_descq'.
This works fine if the interface is re-plumbed, start() call will
reset the chip and calls lm_post_buffers() to post buffers in 'free_descq'
to asic and move them to 'active_descq'. But on the other hand when the
driver is unloaded, detach() routine will free all receive buffers in
'active_descq', where as this queue was earlier emptied out by the stop()
routine. so non of the receive buffers are freed.
The fix is to look at both the queues and free all receive buffers.
1. Problem: Cont00025612 - Solaris system rebooted with new 2.8.0 sol driver if
received heavy data while unloading driver
Cause: race condition b/w interrupt thread and the driver shutdown ioctl thread
change: Issue is a typical case where thousands of packets are received while the
driver is unloaded. Driver unload thread itself being in bh context (ioctl)
could be running in parallel with the driver ISR. While the interrupt thread
is consuming these received packets one by one and notifying the net stack,
detach thread moved all the receive buffers from 'active_descq' to 'free_descq'.
This caused the crash. Fix is to implement synchronization b/w isr and
the shutdown thread. Shutdown thread will set in_shutdown' flags and waits for
ISR to complete (if the isr is pending or processing). On the other hand isr
will probe 'in_shutdown' flags and immediately bails out if it is '1'.
Enhancements
============
None.
Version 2.8.0 (June 28, 2006)
============================
Fixes
=====
1. Problem: Cont00025510 - Need new driver to deposit a new code
DRV_MSG_CODE_UNLOAD_LNK_DN to shut down link
Cause: Enhancement request
Change: Added support to deposit this newly created message code
if driver finds firmware with revision > 1.9.3. Driver
will continue to deposit SHUTDOWM message for older f/w
Enhancements
============
Merged LM files to bring in changes made to support Xinan and
the bug fixes.
Version 1.18.0 (June 23, 2006)
============================
Fixes
=====
Fixed Solaris 9 crash issue with 1.17
Enhancements
============
None
Version 1.17.0 (June 22, 2006)
============================
Fixes
=====
1. Problem: Cont00025060 - modinfo command does not show version of installed bnx driver.
Cause: driver product banner was too long and 'modinfo' was displaying only first
32 bytes.
Change: Separated module info message from product banner and kept newly defined
module info message short so that driver version string falls within
first 32 bytes.
2. Problem: Cont00025234 - Similar of 22728 , error messages popped up when running
chariot with 50 pairs against SOL10 driver ver 1.16
Cause: There are just warning messages and inappropriate words raised the alarm
Change: removed the assert condition and the message
3. Problem: Cont00025201 - No NIC info were displayed after driver was loaded with
BNX driver on SOL system
Cause: feature not supported
Change: Added support to display following NIC info -
1) device instance
2) device type (BCM5706, BCM5708, etc')
3) Firmware revision Id
4. Problem: Cont00025196 - SOL system will reboot if received data while loading and
unloading driver.
Cause: Race condition under following condition was causing system to crash -
our interrupt line is shared with other device and shared intr line
is asserted after driver reclaims Rx buffers in shutdown routine.
Change: Driver now sets 'in_shutdown' flag before starting the driver cleanup
process and isr will not claim any more interrupts if it sees this
flag set. For sure this interrupt is not generated by our device as the OS
invokes driver's stop() routine to disable device interrupts before calling
the shutdown routine. Please refer to changes.txt for further details
Enhancements
============
Added VLAN tagging support GLDv2 based driver and also suppressed flow control
info when link is configured to operate in half duplex mode.
Version 1.16.0 (May 05, 2006)
============================
Fixes
=====
1. Problem: Cont00023572 - No ndd command instruction in readme text for Teton
Cause: Description related to parameters configurable using 'ndd' command
was missing.
Change: Added this section in readme.txt file
Enhancements
============
None.
Version 1.15.0 (May 04, 2006)
============================
Fixes
=====
1. Problem: Cont00024371 : Starting with SOLbnx ver12 installation into
SOL9 system will be successful but driver failed to attach
Cause: For binary backward compatibility with Solaris 9, certain function
added in later version need to be guarded with '#pragma weak', but
as the implementation was not complete, driver failed with system
crash on one old 32-bit HP (previously Compaq) server.
Change: Driver code was changed to handle functions which are not defined
in Solaris 9 such as memmove(), hcksum_retrieve(), hcksum_assoc(),
gld_recv_tagged() and gld_linkstate() properly.
Enhancements
============
None.
Version 1.14.0 (April 03, 2006)
============================
Fixes
=====
Fixed a issue related to transmit packet resulting in more that 16 fragments.
LM driver is tested to work fine up to 16 chained transmit BD's. Once this condition
is detected, driver will copy packet contents to a bounce buffer before transmitting
it out.
Enhancements
============
None.
Version 1.13.0 (Mar 30, 2006)
============================
Fixes
=====
None.
Enhancements
============
9KB jumbo supported added. This required driver and firmware changes to
handle multiple BD per receive packet buffer.
Version 1.12.0 (Mar 24, 2006)
============================
Fixes
=====
None.
Enhancements
============
64-bit and 32-it binaries are packaged in a single BRCMbnx.pkg file
Version 1.11.0 (Mar 21, 2006)
============================
Fixes
=====
None.
Enhancements
============
Flow control was always disabled with earlier drivers, so added code to
process configuration property, "Flow" and correspondingly update
LM module data structures.
Version 1.10.0 (Mar 21, 2006)
============================
Fixes
=====
1. Problem: Cont00023957 : When link is up please provide duplex and flowcontrol
statuses along with link up message
Cause: Link status change notification message was only giving out information
regarding link status, i.e. UP or DOWN
Change: Changed Link DOWM/UP messages to include more informantion such as
media type (Copper or Fiber), speed (10/100/1000/2500 Mbps),
duplex mode (Full or Half) and flow control type (TX & RX).
Enhancements
============
None.
Version 1.09.0 (Mar 20, 2006)
============================
Fixes
=====
None.
Enhancements
============
Ported driver to support GLDv3. With GLDv3 interface, driver is able to saturate 2.5G pipe
in both Tx as well Rx directions. Also was able to validate VLAN feature with this GLDv3 driver
on Solaris 10 update1 operating system. Jumbo frame code was validated and currently maximum
of 3800 byte jumbo frame is supported.
Version 1.8.0 (Mar 06, 2006)
============================
Fixes
=====
None.
Enhancements
============
Performance optimizations was made to mrch towards 2.5G goal. Current numbers using
'netperf' is 2.1G for transmits and 1.55G for receive. Also one another bug related
to soft interrupt handler race codition was fixed.
Version 1.7.0 (Feb 15, 2006)
============================
Fixes
=====
1. Problem: Cont00023292 : ifconfig -a caused system to generate error message
then core dumped with SOL driver 1.6.0 64bit
Cause: unsupported IOCTL was not correctly responded with miocack() instead
of miocnak(). This caused application to think IOCTL completed successfully,
and an assert case triggered while parsing the reponse.
Change: Unhandled ioctls are properly returned with type 'M_IOCNAK' and additional
error code by calling miocnak().
Enhancements
============
Added code to support VLAN, but it is untested.
Version 1.6.0 (Feb 08, 2006)
============================
Fixes
=====
None.
Enhancements
============
Added provision for admin to enable selective auto negotiation by specifying
'adv_autoneg_cap' and one of 'adv_10???dx_cap' parameters.
Version 1.5.0 (Feb 07, 2006)
============================
Fixes
=====
1. Problem: Cont00022723 : Ndd -set command is not supported with SOL 1.1.0
Cause: 'ndd' command processing was not supported.
Change: 'ndd' command support was added based on bge driver specifications.
The parameter set is different than the ones in bcme driver, please
check bnx.conf and readme.txt for the updated parameter list and usage.
Enhancements
============
None
Version 1.4.0 (Jan 24, 2006)
============================
Fixes
=====
1. Problem: Cont00022780 : Ping packet has source Mac addr =zero with SOL 1.2.0 64bit
Cause: 64 bit address was not handled properly.
Change: issue was fixed by proper handling of transmit buffer address and couple
of issues in receive path were also identified and fixed.
Enhancements
============
None
Version 1.3.0 (Jan 13, 2006)
============================
Fixes
=====
1. Problem: Cont00022728 : Error message popped up after 1/2 hour of stress
test with Chariot
Cause: Resource leak was causing system hang after a while.
Change: Cleaned up Tx DMA handle allocation and freeing module.
Enhancements
============
TCP/IP checksum offload is enabled in this driver release.
Version 1.2.0 (Jan 12, 2006)
============================
Fixes
=====
1. Problem: Cont00022722 : System hung after driver load unload ~200 iterations.
Cause: There was caused because of resource leak, certain memory and dma handles
were not freed properly.
Change: During driver unload all resouces are freed. Instrumentation code to
track each allocation and freeing is also added for future use.
Enhancements
============
This release also includes 64 bit driver.
Version 1.1.0 (Jan 09, 2006)
============================
1. Problem: Cont00022713 : Unable to plumb bnx port after a reboot with driver
already installed
Cause: There was a syntax error in postinstall script which was causing
driver install package to wrongly update /etc/driver_aliases file.
Change: postinstall script was updated to include necessary change
2. Problem: Cont00022715 : SOL driver ver 1.0.0 does not recognize 5708 Nic
Cause: 5708 device ID was not commented out from the list of supported device
Change: 5708 ID is included in the supported device ID list
Version 1.0.0 (Jan 09, 2006)
============================
Initial release. Following are not currently supported -
jumbo frame, checksum offload & vlan tagging. Also man pages needs
to be updated with relevant information on NetXtreme II driver.
Download Driver Pack
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.