release.txt Driver File Contents (HS416A_LAN_Broadcom.zip)

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

                                Release Note 
                      Broadcom BCM570x Engineering Diagnostics
                                 11/02/2001
                    ==================================================
Version 2.18:
    1. Added new command romhdr to allow user to update Vendor ID/Device ID
       in ROM header for PXE images.  The syntax is shown as follows:

     Usage : romhdr -i=<input filename> -o=<output filename>
                    -v=<vendor ID> -d=<device ID>

               -i : Input file
               -o : Output file
               -v : Vendor ID
               -d : Device ID

Version 2.17:
    1. Used optimum DMA read/write watermark.
    2. Enhanced so that mini support is enabled by default for BCM5700
       Cx NICs with external memory.

Version 2.16:
    1. Added Mini Ring support.  This feature requires NIC with external memory.
       By default, this feature is disabled.  To enable this feature use driver
       configuration via diagcfg command.

Version 2.15:
    1. Added extended receive BDs on blast (blast loopback may not transmit
       identical frames due to diagnostic and performance reasons; for
       loopback testing, configure rxcfg and use the normal interrupt mode).
    2. Added split header checking on blast.
    3. Enhanced loaddrv command to allocate buffer with byte offset.

Version 2.14:
    1. Fixed a bug in 4k boundary memory allocation routine.

Version 2.13:
    1. Enhanced blast command to allow users to transmit protocol
       packets which is configured with txcfg command.  For instance,
           
           blast -t -p -l=1514.

    2. Enhanced secfg command to allow users to configure MAX PCI 
       Retry parameters.  It requires firmware 2.5 or newer to
       utilize this parameters.

Version 2.12:
    1. Added feature to avoid straddling 4k boundary during memory allocation

Version 2.11:
    1. Correct CRC error reading

Version 2.10:
    1. Fixed a problem where source and destination MAC addrresses are 
       reversed in txcfg command.
    2. Command upgfrm is changed to update vendor ID/device ID of both
       ROM headers when PXE is upgraded.

Version 2.9:
    1. Added extended BD support.
    2. Added workaround to accomodate the timing conflict between different
       methods of accessing pci config space for 5703.

Version 2.5:
    1. Fixed a problem where Fiber NIC's link LED is on when no cable
       is attached.

Version 2.4:
    1. Added command line option in secfg to allow users to configure Physical
       interface type (fiber or copper), PHY LED mode, etc...

Version 2.3:
    1. Added command line option in secfg to allow users to configure Input Voltage
       Level and Force PCI mode.
    2. Enhance pxecpy command to update PCI ROM header field to match with NIC
       when upgrading PXE code.
    3. Fixed typo in pmpd's usage.
    4. Enhanced serial EEPROM programming time.

Version 2.2:
    1. Enhanced upgfrm command to update PCI ROM header field to match with NIC
       when upgrading PXE code.

Version 2.1:
    1. Changed so that PHY is forced to use master clock for BCM5701 Rev. A0 or B0.

Version 2.0:
    1. Added 16 Rx return ring support.
    2. Added external memory test with DMA scheme.
    3. Enhanced blast command to allow Tx a given number of packets.

Version 1.48:
    1. Added external memory support.  If external memory exists on the
       NICs, users have to use diagcfg to enable usage of external 
       memory.  By default, external memory is not used.

Version 1.47:
    1. Fixed a problem where diagnostics intermittently fails in BCM5701.

Version 1.46:
    1. Added option in blast and txpkt command to transmit large TCP packets
       for TCP segmentation checkout..
    2. Fixed a problem where bcmediag -i doesn't work with BCM5701.

Version 1.45:
    1. Fixed a problem where diag fails if BROADCOM network NIC is not the
       first network is detected in the system. 

Version 1.44:
    1. Added sedump command to dump content of serial eeprom into a file.
    2. Added code initializing Athlon fix.
    3. Added BCM5701 support.

Version 1.43:
    1. Fixed a problem where diagnostics doesn't recognize some of the NICs if 
       there is mixed Broadcom and Altima NICs.

Version 1.42:
    1. Fixed a problem where DMA test failed unless BCM5700 is reset first time
       or driver is loaded.
    2. Added feature to DMA test so that pattern can be specified as input file.

Version 1.41:
    1. Added Altima AC1000 support.

Version 1.40:
    1. Added support for BCM5411 PHY.

Version 1.39:
    1. Fixed a problem where MBUF pool is corrupted when tx packets.

Version 1.38:
    1. Fixed the bug created in 1.36. The driver was not able to be loaded twice.

Version 1.37:
    1. Programmed MAC (in PCI-X mode) to not allow set the Relaxed Ordering Bit in 
       the Requestor Attributes of transactions it initiates that do not require 
       strong write ordering.

Version 1.36:
    1. use #ifdef changed DMPI access to regular malloc() & free()

Version 1.35:
    1. Added PCI-X support for B2 silicon.
    2. Added option to read/write command for reading PCI config registers 8-bit 
       or 16-bit accesses.  For examples, to dump PCI config registers with 8-bit 
       access:
             read k0 ff
       To modify 16-bit register at offset 4,
             wrote w4 6
    3. Optimize PCI config access with direct I/O accesses instead of using 
       BIOS interface.

Version 1.34:
    1. Added multi-NIC support.  Added new command to select active NIC. 
         Usage : switch -n=<card_number>
                    -n : Specifies NIC number for current ACTIVE NIC.

    2. Enhanced seprg command to allow users to program serial EEPROM of one or all
       NICs in the system. 
           Usage : seprg -f=<file> -o=<offset> -l=<length> -a
            -f : file name
            -o : offset of serial eeprom (Default = 0)
            -l : length in bytes (Default = size of input file)
            -a : Programs all NIC cards in the system. If not specified, current
                 NIC card is programmed

       For examples, 

       * To program all NICs with file eeprom.bin (firmware + default  manufacturing + 
         default VPD). 
           seprg -f=eeprom.bin -a
       Note that this command will overwrite all manufacturing and VPD information
       on these NIC.    

       * To program all NICs with default VPD data and not affecting other information
         such as firmware and manufacturing info.
           seprg -f=vpd.dat -o=100 -a

       Note that offset of 0x100 is used since VPD info is stored in offset 0x100
       of serial EEPROM.

    3. Enhanced upgfrm command to allow users to upgrade firmware or PXE of one
       or all NICS in the system. 
          Usage : upgfrm -b -p -f=filename
                     -b : Upgrade boot code
                     -p : Upgrade PXE code
                     -f : Input file
                     -a : Upgrade all NICs in this system.  If not specified, only current
                          NIC will be upgraded

       For examples,
  
        * To upgrade firmware ONLY on all NICs in the system.
           upgfrm -f=eeprom.bin -a -b

        * To upgrade PXE on all NICs in the system.
           upgfrm -f=b57pxe.bin -a -p

Version 1.33:
    1. Added features to secfg command to allow users to program VPD-R and 
       VPD-W information.
    2. Removed all debugging information to reduce file size.

Version 1.32:
    1. Added status block polling function for interrupt testing. This function
       polls status block STATUS_BLOCK_UPDATED bit in ISR, purposely delay the
       process of ISR to ensure STATUS_BLOCK_UPDATED bit updates properly by
       hardware.

           Usage : statblk -p=poll_count -c
                   -p : poll count before process interrupt.
                   -c : clear the status block updated changed count.

Version 1.31:
    1. Added feature to secfg command to allow user to enable/disable PXE,
       enable/disable WOL, and configure PXE link speed.
    2. Minor enhancement on bustest command.

Version 1.30:
    1. Added bustest to test out PCI bus in the worst case scenarios.  The goal is
       to have every data/control lines toggled.
           Usage : bustest -a=address -n=iteration -l=min_len -h=max_len
                   -i=transaction -s=start_case -e=end_case
                   -a : NIC address to DMA data to.
                   -l : Minimum length (default = 256).
                   -h : Maximum length (default = 1024).
                   -n : iteration (default = 1)
                   -i : Number of transactions per pattern (default = 10)
                   -s : Start of test case (default = 0)
                   -e : End of test case (default = 259)

There are total 260 test cases (258 unique tests cases) which 
are described as follows:

Test case#                    Pattern 
==========       ==================================
   0             ffffffff ffffffff 00000000 00000000
   1             ffffffff fffffffe 00000000 00000000
   2             ffffffff fffffffd 00000000 00000000
   .                    .
   .                    .
   .                    .
   64            7fffffff ffffffff 00000000 00000000
   65            00000000 00000000 ffffffff ffffffff
   66            00000000 00000000 ffffffff fffffffe
   67            00000000 00000000 ffffffff fffffffd
    .                   .
    .                   .
    .                   .
   129           00000000 00000000 7fffffff ffffffff
   130           00000000 00000000 ffffffff ffffffff (repeat)
   131           00000000 00000001 ffffffff ffffffff
   132           00000000 00000002 ffffffff ffffffff
    .                   . 
    .                   .
    .                   .
   194           80000000 00000000 ffffffff ffffffff
   195           ffffffff ffffffff 00000000 00000000 (repeat)
   196           ffffffff ffffffff 00000000 00000001
   197           ffffffff ffffffff 00000000 00000002
    .                   .
    .                   .
    .                   .
   259           ffffffff ffffffff 80000000 00000000

   If you run bustest command without any parameters, it will perform 
   DMA testing on all 260 patterns with 10 iterations per pattern and
   different data length in each iteration.  First eight bytes of data
   are used to store the following info for debug:

   byte 0-4 : length
   byte 5-6 : iteration#
   byte 6-7 : test case#

   2. Added PCI-X support and work-around for B1 silicon.  This version
      diagnostics detects if the NIC is in PCI-X slot.  If yes, work-around
      is implemented.  However, user still can overwrite this by issuing 
      debug -c=5 to toggle PCI-X work-around before loading driver.

Version 1.28:
    1. Made minor changes to support B1 silicon due to changes in ASIC revision
       format.

Version 1.27:
    1. Added new commands to utilize BCM5500 built-in BERT features. Three 
       new commands are added:
       * lbertram: load BERT pattern into BERT TX&RX RAM, and enable BERT.
       * dbertram: Dump BERT TX& RX RAM.
       * bertstats: Display BERT statistics.

Version 1.26:
    1. Changed initialization of BCM5500.

Version 1.25:
    1. Added support for Serdes PHY (BCM5500) and TBI interface.
    2. Added code to allow transmit jumbo frames up to 9022 bytes/packet
       with txpkt command. (Note that you have to delete diagcfg.bin
       before run bcmediag if you want to transmit jumbo frames over
       4Kbyte/packet).
    3. Added PCI-X support and work-around for B0 silicon.  This version
       diagnostics detects if the NIC is in PCI-X slot.  If yes, work-around
       is implemented.  However, user still can overwrite this by issuing 
       debug -c=5 to toggle PCI-X work-around before loading driver.

Version 1.24:
    1. Enhanced txpkt/txcfg command to allow users to:
         * Transmit random IP headers including IP options.
         * Transmit random TCP headers including TCP options.
         * Transmit random data payload.
    2. Added code to check IP/TCP/UDP checksums of incoming packets.

Version 1.23:
    1. Provided a command line option to overwrite corrupted vendor ID of 
       Broadcom NIC. 
          For examples,
               bcmediag -i 
          Diag. program will search for network adapter with BCM5700 ASIC
          and overwrite with BROADCOM vendor ID/device ID.

       If BIOS has not assigned valid memory base address, user can specify
       an memory base address for this adapter card (User can verify this
       by reading config space at 0x10 and 0x14. e.g.  read @10 and read @14)
          For examples,
               bcmediag -i -a 0xfebf0000
       Users have to make sure that this address range is not used in the
       system.

    2. Added changes so that firmware upgrade via upgfrm command will not
       be allowed if manufacturing information is invalid.

Version 1.22:
    1. Fixed a problem where packet test executed in nictest fails if driver
       is not loaded first.
    2. Added code to allow user to update PXE (e.g upgfrm -p -f=b57pxe.bin).

Version 1.21:
    1. Added changes due to changes in boot code firmware 0.6.  Before issuing
       CHIP reset (or GRC reset), it writes a siginature to SRAM so that 
       firmware wouldn't perform code boot initialization such as PHY
       H/W reset, PXE loading, etc...

    2. Added new command to upgrade boot code firmware without corrupting 
       manufacturing information.  
           upgfrm -b -p -f=<filename>
               -b: upgrade boot code. 
               -p: upgrade PXE.
               -f: input filename.

Version 1.20:
    1. Fixed loopback issues when no cable is attached.

Version 1.19:
    1. Fixed loopback issues in NIC test.
    2. Added new command pkttest to allow user to perform both MAC and PHY
       internal loopback.
          pkttest -n=<iteration> -p -m

        -p : PHY internal loopback
        -m : MAC internal loopback
        -n : Number of iterations.

Version 1.18:
    1. Added command sechk to verify and update checksum of manufacturing
       region. Command secfg now recalculates checksum when updating
       parameters.

Version 1.16:
    1. Changed to do chip reset per NIC test iteration.

Version 1.15:
    1. Changed to support VPD with or without loading driver.

Version 1.14:
    1. Fixed a problem where txpkt command cannot transmit packets after 
       long period of transmission.  This happens very rarely.

Version 1.13:
    1. Initializating code is changed to support B0 silicon.
    2. Command txpkt is enhanced to support :
       * Transmit packets with fixed/random length.
       * Transmit packets with fixed/random number of BDs.
       * Transmit packets with minimum byte per BDs.
       * Transmit packets with interpacket gap in microseconds.
    3. Command memtest is changed to test additional memory scenarios:
       * Random Address and random data. 
       * Special test where writing one location and checking for 128 bytes
         of adjacent location.
    4. Command sever to dump serial eeprom and firmware version.
    5. Added command  memsearch to search a given contents in the memory.
    6. Command mbuf is modified to dump all MBUF headers and check for MBUF
       header corruption in MBUF pool.
    7. Fixed a problem where txpkt can stop if packets to be transmitted has
       too many fragments.




    

       
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: ftp, load: 1.87