Release Note for B57DIAG Engineering Diagnostics.
==================================================
Version 2.14
1. Finalize external test coding
2. Added external memory test option
3. Added external memory code execution test into external mem test
4. Fixed wol/pxe enabling/disabling problem
5. Enhanced -x & -w options to accept inputs 0/1 for disabling/enabling
Version 2.13
1. Correct FCS error statistic read
Version 2.12
1. Fixed a bug in PXE programming code
Version 2.11
1. Fixed DMA failure for specific OEM
2. Fixed failure on an OEM PCIX bridge
Version 2.10
1. Added detection for specific OEM
Version 2.09
1. Removed un-neccessary command line options
Version 2.08
1. Correct Silicon revision
Version 2.07
1. Fixed external loopback failure in version 2.06
2. Added command line option to view eeprom binary file
3. Disable WOL update function
Version 2.06
1. Fixed TBI mode failures on phy_type problem
2. Fixed Specific OEM message
3. Enter OEM manufacture code to handle link polarity in loopback tests
Version 2.05
1. Fixed DMA on PCIX failure
2. Take out packet # on loopback tests
3. Change order of tests per customer request
4. Fixed external loopback failure
5. Changed VPD test
6. Added -all option
7. Added -noinit option
Version 2.04
1. Fixed copper mac loopback hang problem
2. Fixed D3 loopback link problem
Version 2.03
1. Added Phy type/led mode/voltage source/part revision selectability in eeprom.txt
2. Added real/customer rev options
3. Speed up prog. pxe
4. Mac I/O reset
Version 2.02
1. Added TBI support
Version 2.01
1. Added FORCE_PCI and VOLTAGE_SOURCE to EEPROM.TXT file.
2. Changed secfg command to support FORCE_PCI and VOLTAGE_SOURCE
3. Added -coe to continue on error
Version 2.00
1. Fixed IRQ9 problem on specific OEM
2. Fixed Interrupt test failure reported from QSA
3. Fixed CPU test problem reported from Systems Engineers
Version 1.29
1. Skip test on NIC card that has ODI loaded
2. Fixed loopback hanging problem by adding delay time to ISR
Version 1.28
1. Added generic key code for eeprom generation
Version 1.27.1
1. Fixed a bug in manufacturing mode
2. Added compile option for specific oem
Version 1.27
1. Added sramtest command to test external memory in engineering mode
2. Added dbgmode to set a debug mode flag in engineering mode
3. Removed xmtest option which is not really needed
4. Added patch in loopback test to lower expectation on reception in case of chip testing
5. Modified external memory test routine
6. Added options debug/nocrc/chip/mac
7. Modified LoadPatchFirmware routine
8. Modified testfailed routine to enter engineering mode if fails and debug option entered
9. Fixed bug in eeprom programming
Version 1.26
1. Checked-in the fix for HP shared 9 interrupt issue (enabled back irq9 interrupt)
2. Fixed a bug in loopback tests
3. Fixed IRQ sharing with another device, such as Intel NIC, on memory read problem
4. Added CRC patch from Engineering for 5701
Version 1.25 (Internal Verion)
1. Added -debug option, when it fails jumps to debug prompt
2. Reduced timeout wait time
Version 1.24
1. Fixed bug in the load_firmware routine
2. Disabel IRQ9 chaining
Version 1.23
1. Added support for BCM5701-A0
2. Fixed interrupt chaining with IRQ9
Version 1.20
1. Changed to jump into command mode when no card detected with option -b57eng
2. Revise options -x and -w as following:
When nothing entered, always disable PXE/WOL
When -x or -w is entered, always enable PXE/WOL
When -f is entered, use eeprom.bin's content for PXE/WOL/PXE speed setting
When -f is entered and -x or -w is also entered, force PXE or WOL to enable
Version 1.19.3
1. Changed -f option to use eeprom.bin PXE and WOL setting instead of forcing to disable
Version 1.19.2
1. Changed software to exit directly to dos when no card was detected. No ESC needed
Version 1.19.1:
1. Added Altima/5411 support
2. Added loop command
3. Added mrloop command
4. Added option -geneep, -geneepkey
5. Added option -ver to display current version number
6. Removed mac_pref.txt input file for mac prefix -> now should use eeprom.txt to update eeprom.bin.
The eeprom.bin prefix is used if the mac input is less than 12 digit.
7. Added RJ45 external loopback for 100/1000
Version 1.19:
1. Add -xmtest option to increase memory test coverage
2. Reverse some coding on eeprom file dumping that is no long needed
3. Change eeprom programming counter display from hex to decimal
4. Added B7 MBUF memory special test
5. Put back interrupt chaining except irq9
6. Increased MAX_DEVICE from 8 to 16. Now it can support up to 16 devices
7. Fixed bug to restore phy state from isolated mode after test
Version 1.18e:
1. Fixed EEPROM access hang when loopback connector is connector is connected
Version 1.18:
1. Fixed IRQ 9 test D1 hang problem.
2. Restored LED to LINK3 LEDMODE after phy loopback test.
3. Added command rm.
4. Fixed MAC address display bug.
5. Added Link speed 10 test A1,A2 failure problem with workaround.
6. Changed -bus option to test specified slot only. This option is invalid if -c option is used.
7. Fixed intermitent failure/system hang problem when loopback connector is connected
Version 1.17:
1. Change MAC address reading to accept variable length instead fixing to 7 digits.
Version 1.16:
1. Changed the parameter misspelling "-dmpi" to "-dpmi"
2. Fixed the EEPROM size 0x204 programming bug due to the structure size define error.
3. Display not only device number but also bus:dev on error messages
4. Fixed Test D1, "Cannot Tx Packet" bug.
5. No sharing on IRQ 9
Version 1.15:
1. Added command line option -dpmi to use DMPI method memory allocation
2. Added command line option -bus bb:dd:ff to test against specified bus & device number
3. Displays device number on error message
Version 1.14:
1. Fixed PCI-X eeprom access bug.
2. Invalidate the default xx-xx-xx-00-00-00 mac address. However, it allow user
to enter mac address as xx-xx-xx-00-00-00.
Version 1.13:
1. Fixed Memory Allocation Problem for Dell 8450.
2. Added PCI-X support
3. 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.12:
The new options -n, -m, and -f now requires -e option to be activated
1. New Option -n
With this option, the program will run in manufacturing loop.
It supports power on/off of UUT. This will ignore the option -I,
the iteration option.
2. New Option -m
Prompt user for the MAC address. With this option, user must enter/scan
the mac address before testing. The program also checks for the file
"mac_pref.txt" This is a text file should contain six digits of ASCII
MAC three-byte-prefix address. Any of the following format is supported:
Example:
000467
00 04 67
00
04
67
If this file exists, user has option to enter/scan 7 digit hex number.
The first digit will be ignored and the last 6 digits will be used for
the lower part of MAC address. Combine with the prefix, it creates 6
byte (12 digit) hex number.
If this file does not exist, the whole 12 digit number must be entered
for the MAC address. When entering MAC address, a space character is
allow between each byte. For example, any of the following is valid.
000467010203
00 04 67 01 02 03
1010203 (currently, the scanner uses this format)
3. New Option -f
Program "eeprom.bin" into EEPROM before testing. The file "eeprom.bin"
must be there or the program will not run with this option.
The -m and -f combination will create the following behavior:
a) -f and -m:
Program will not validate the eeprom content and go ahead to prompt
user for the MAC address. It programs MAC address and EEPROM content
and then checks the validity of eeprom content at the end of
programming.
Loading EEPROM content from eeprom.bin: passed -- enter MAC address after pass here
Programming EEPROM from eeprom.bin....: passed
Checking EEPROM content...............: passed
b) -f only
Program will check the validity of eeprom. If it is not valid,
it will act as a), -f -m option. If it is good, it saves the MAC
address from eeprom, program new eeprom.bin content into EEPROM
and then restores the original MAC address. It checks the validity
of eeprom content once more at the end of programming.
Checking EEPROM content...............: passed
Loading EEPROM content from eeprom.bin: passed
Programming EEPROM from eeprom.bin....: passed
Checking EEPROM content...............: passed
or
Checking EEPROM content...............: invalid
Loading EEPROM content from eeprom.bin: passed -- enter MAC address after pass here
Programming EEPROM from eeprom.bin....: passed
Checking EEPROM content...............: passed
c) -m only
Program will check the validity of eeprom. If it is not valid,
it will act as a), -f -m option. If it is good, the program will
prompt the user for a new MAC address and program the MAC address
only. It checks the validity of eeprom content once more at the
end of programming.
Checking EEPROM content...............: passed -- enter MAC address after pass here
Programming MAC address...............: passed
Checking EEPROM content...............: passed
or
Checking EEPROM content...............: invalid
Loading EEPROM content from eeprom.bin: passed -- enter MAC address after pass here
Programming EEPROM from eeprom.bin....: passed
Checking EEPROM content...............: passed
d) no -m and -f options
Program will check the validity of eeprom. If it is not valid,
it will act as a), -f -m option. If it is good, it proceed to
normal diagnostics.
Checking EEPROM content...............: passed
or
Checking EEPROM content...............: invalid
Loading EEPROM content from eeprom.bin: passed -- enter MAC address after pass here
Programming EEPROM from eeprom.bin....: passed
Checking EEPROM content...............: passed
4. Fixed -x -w option checksum false error report bug
Version 1.11:
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.
3. Manufacture test includes EEPROM content testing. If manufacture checkusm
is bad, it prompts user to enter MAC address. If the checksum it good, it
will save the mac address before programming eeprom.bin if user choose to
do so.
4. Changed Internal MAC loopback test from 100 to 200 packets.
Changed Phy loopback test from 100 to 2000 packets.
Changed RJ45 loopback test from 100 to 2000 packets.
5. Removed pattern and altenate pattern test from memory test to increase speed.
6. Removed VPD test to increase speed. Since both eeprom test and vpd test
exercise hardware eeprom. There is no needs for extensive test for both.
Version 1.10:
1. Removed bit 13 register 11 read only bit test for MII test
The MDI Crossover state bit changes internally when there is no cable
connected. It is not reliable to be tested as read only bit and it is not
an error.
2. Suppressed the error dialog when run without -p option
Version 1.09:
1. Moved over bcmediag.exe version 1.24 - 1.30 changes.
bcmediag.exe Version 1.30:
a. 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#
b. 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.
bcmediag.exe Version 1.28:
a. Made minor changes to support B1 silicon due to changes in ASIC revision
format.
bcmediag.exe 1.27:
a. 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.
bcmediag.exe Version 1.26
a. Changed initialization of BCM5500.
bcmediag.exe version 1.25
a. Added support for Serdes PHY (BCM5500) and TBI interface.
b. 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).
c. 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.
bcmediag.exe version 1.24:
a. 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.
b. Added code to check IP/TCP/UDP checksums of incoming packets.
2. Changed command user interface routines. This changes some of command syntax
3. Fixed WOL spelling
4. Change command help output.
5. Added -p option to print on Error
6. Display error on Red dialog with option to continue or print
Version 1.08:
1. Put delay in test C3 to avoid low priority DMA test error
2. Replaced original nictest with manufacturing tests
3. Fixed domument error code error, error code number 28 and greater was
shifted by 1.
4. Added error code 39,40,41,42
5. Changed test B5. External RAM test to detect the existance of external
RAM first for testing
Version 1.07:
1. Changed ESC to CTL-C as break key
2. Changed -t and -T option to allow multiple group specification in one option
3. Changed test D3 to be disabled by default
4. Added "Unit Under Test: NIC" line at error output
5. Unload all drivers upon exit
Version 1.06:
Added -I option for iteration
Version 1.05:
1. Rewrote all tests to comply to OEM's manufacture error message requirement
2. Added -t to disable tests and -T to enable tests
format: -t <gnnn> where g is the group letter can be A,B,C, or D
n is the subtest number it should be '1' to '9'
example: -t A345 -t C13 -T b12 this will disable test A3,A4,A5,C1,C3
and enable test B1,B2.
Version 1.04:
1. Added -m option to disable RJ45Loopback Test
Version 1.03:
1. Fixed multiple card interrupt problem.
Original call had only one variable to save original interrupt
vector. If multiple cards use different interrupts, some origianal
interrupt vector get lost. This will cause problem after exiting program.
Code is changed to support shared interrupt as well.
2. Comment out some unreachable code in order to reduce code size.
Version 1.02:
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.
3. Changed command line option -m to -e to run engineering mode
4. Added command line -i for force_program_device_id option
restored option -a for setting base memory address
5. Added 5701 support
6. Added multiple card support
This version change is the same as bcmediag.exe v1.20 changes to v1.23.
Version 1.01:
1. Fixed and enabled RJ45 loopback test
The test requires to reset the system each time
replace the adapter.
Version 1.00:
1. Fixed Phy Loopback test
2. Fixed ASIC version number display
3. Disabled RJ45 loopback test
The program disables PXE and WOL by default.
To enable PXE: type b57diag -x
To enable WOL: type b57diag -w
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.