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.