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