Release Note for B57DIAG Engineering Diagnostics. ================================================== version 6.12 1. Print error message and return an error code 1 for incorrect card selection when executing diagnostics from the EFI prompt. Diagnostics used to return without an error when an invalid card was selected (not test would be run). 2. Increase FIRMWARE_WAIT_TIME from 150 to 230. 3. Modified "-elog <file>" option to only create a file on an error and if the file exists to append to it (customer requirement). 4. Added the EFI command line option -dids to print out the DID,VID, SDID, VID, firmware, PXE, PXESpd, WOL, ASF and MBA options. 5. All memory initialization was done by efi_bzero() function instead of bzero() LIB function. the bzero() LIB function will cause some machine to hang. efi_bzero() is a function that will initialization the memory block using a for loop. version 6.07 1. The space between the file name an -f option in 'upgfm' is no longer needed. 2. Added the DOS command option "-elog <file>" that generates an error information log file that ONLY logs errors (NOT passes). 3. When a user aborts a test the string "User Aborted Testing" is displayed/logged. Helps differentiate a power-down/hang/user-exit. 4. Stopped logging to log file the flash address counters during a flash update. 5. Added efi_bzero function. 6. Added support to extract version from new PXE code format(UNDI 16). version 6.06 1. Fixed the special memory test 'memtest -c' incorrect memory size limits for the 5705. 2. Fixed the EFI command line -m option corruption of the NVRAM when a user attempts to ESCape out of the MAC address data entry prompt 3. A lib function 'bzero' had been used to initialize memory. For some systems, it will hang the machine. This has been fixed by using a for loop to initialize the memory. version 6.05 1. Enable swapXBAR option in SECFG when 5404 B0 is detected. 2. Added 5703B0 ASIC Rev ID 3. Fixed the diags DOS command -firm multiple card failure. version 6.04 1. Fixed a Expansion Rom test system hang bugs. Originally, after Rom bar has been assigned, rom byte and dword test were done by checking byte and dword data of address offset from the ROM BAR in memory pointed by a pointer However, in EFI system the right way to perform this test is using EFI function to access the memory instead of pointers. 2. Modified D4 test label. version 6.03 1. Fixed the diags command -firm 5704 NVRAM update failure. 2. Inserted test D4 for 1G Tx/Rx lines open/short testing. version 6.02 1. Backed out D3 loopback test checking for opens and shorts. The feature is no longer supported by diagnostics. 2. Rebuilt efi_interrupt_mask to handle IRQ up to 255. With this, diag has a better control on handling interrupt status polling time event. And it reduce the chance of system hang due to interrupt polling time event interrupting normal operations. version 6.01 1. Customer requested that DOS command line execution of the loopback test D3 allow selection of line speed. Line speeds for this test can be set via the command line option "-lbspd t/h/g", where t/h/g is ten/hundred/giga line speeds. To run ten and giga LB "b57diag -t abcd T D3 -lbspd tg" 2. A customer requested a DOS command line option to program the firmware on a device, only if the did, vid, sdid, & svid of the device matches the information in the firmware file. Use "b57udiag -firm abc.bin" to program all device on a system where the device did, vid, sdid, & svid matches the same information in the firmware file "abc.bin". 3. Interrupt test used to handle IRQ from 0 to 15. However, some systems may have IRQ ranged up to 255. Software has been modiflied to handle IRQ ranged up to 255. 4. Tx/Rx 32 bit packet counters are extended to 64 bits, to allow for longer test runs without a counter rollover. 5. -w and -b options take no effect in dmaw cmd in engineering mode. These had been fixed. 6. The 5705 would not catch a open on gigabit Tx/Rx lines during loopback. Tap2, mean square error, on the DSP is used to screen for opens. 7. Stopping "blast -t -r -n=0" via ESC would stop the Tx/Rx simultaneously. If packets are loopedback (LB) some packets would not be RXed due to the LB delay. Fixed by first stopping Tx, then waiting, then stopping Rx. 8. Fixed setorture command failure. Bug added in code since v5.03 where the firmware bootup handshaking is tested for twice, which causes the incorrect failure. 9. Added Support to 5705 A2/A3, 5901 A2/A3, 5705M A2/A3. 10. Modified Phy Interrupt test. Since the purpose of this test is to check if phy can update our interrupt status bit (to generate interrupt) and we do not want to use actually interrupt to test this feature we were polling the interrupt status. Since some systems will randomly call our interrupt service routine and clears the interrupt status, caused our polling routine to fail to see the interrupt status. The workaround was not only polling for interrupt status in the register, but also checks if actually interrupt service routine has cleared the status. If the interrupt service routine clears the status, it will increment a counter to indicate that the status was cleared by interrupt service routine. 11. Removed "Disable Expansion Rom Test" from Expansion Rom test. Once the Expansion ROM is "disabled" on the system, when the diag is accessing to the Expansion ROM, it in fact, is accessing to "non-existing" memory address. Depending on the system design, the system reaction to the "invalid memory access" may be different, and it is very possible to hang the system. Version 5.17 1. Added 5704 A2 A3 bond ID and Rev ID. 2. The current release is base on B57diag V5.17. Version 3.21 1. Fixed 5700/5701 failure on oem machine. 2. Added delay for cpugprtest 3. Change voltage control in cpu general purpose register test. 4. Added 5704S Bond id support 5. Added Updated Bond id check for 5700 6. Fixed Voltage regular control correctly for 5704 secondary device 7. Removed debugging code. 8. Modified Mac source address during tx/rx 9. Added 5703SA2 Bond Id fix Version 3.20 1. Added loopback packet options. 2. Added multiple boot agent options (-mba). 3. Added command line options for b57udiag. Version 3.19 1. Fixed bond id checking for CIOB Version 3.18 1. Enhanced cpugprtest to test under v1.1, v1.2, and v1.3 2. Added workaround for 5704 A1 for NVRAM access locking when NVRAM was invalid 3. Fixed a problem where clock control register is overwritten when driver is loadded. 4. Added support for 5704S A1 5. Added support for 5705 (non-mobile version) 6. Added 5705 cputest failure workaround Version 3.17 1. Inverted polarity for Auto Powerdown mode so that default Autopower down is disabled. Version 3.16 1. Removed some debug break points. 2. Fixed 5704 eeprom programming. 3. Added more statistics support for qstats commands. 4. Fixed an issue where Tx flow control cannot be set with drvrcfg command. 5. Added 5901 support. 6. Added Auto powerdown mode support. Version 3.15 1. Changed so that Phy interrupt test is skipped for BCM5705 A0. 2. Added Mini-PCI configuration in secfg command. Version 3.14 1. Fixed memory allocation in pxe programming code. 2. Added 5702fe exclusion for gig external lpbk. Version 3.13 1. Added 5705 support. 2. Fixed a memory allocation error on some systems. Version 3.12 1. Embedded bist data into codes to reduce number of released files. 2. Corrected some spelling errors. 3. Fixed -f option to program eeprom image with size greater than 8k. 4. Added ASF command line to program ASF firmware. 5. ASF firmware files to be read from a text file. 6. VPD Write test to run only once if in continuous loop. Version 3.11.0 1. Added commands "dir", "asfprg" for end user purpose. 2. Fixed b57udiag freezing problem. Version 3.10.0 1. Fixed Link polarity problem in loopback modes. 2. Implement Power Saving option for firmware and driver use. Version 3.09 1. Fixed a bug when both -m -f are entered in 5704. 2. Fixed output messages when -fmac option is in use. 3. Fixed problem with EFI hanging when clearing nic statistics Version 3.08 1. Automatically skips serdes loopback if external link is detected in fiber. 2. Fixed help command in engineering mode. 3. Fixed -fmac command line. Version 3.07 1. Enhenced setest command. 2. Fixed reset -w option bug 3. Skipped ROM/PCI config regi. test for secondary device in Daul MAC mode 3 for 5704. 4. Create the first version of short diag -- b57sdiag 5. Changed Altima indirect access method workaround only specific to A2 revision 6. Changed to dynamic firmware debug printf 7. Fixed bustest in ikos system (need more time before checking data) 8. Added help menu and miscellaneous small changes per oem's request Version 3.06 1. Fixed serdes loopback failures on some product 2. Added filename support for -geneep option Version 3.05 1. Changed (shorten) delay time for 5704 NVRAM arbitration timeout 2. Fixe Fiber internal loopback problem. Version 3.04 1. Fixed serdes loopback failures on 5701 2. Fixed Phy loopback failure on 5700 Version 3.03 1. Fixed Altima 1011/1012 screening process power on/off problem 2. Added tx/rx octal display on qstat command. 3. Changed stsblk command display format from 10-digit-number to 15-digit-number 4. Added manufacturing mode, concurrent nvram programming and pxe update capability Version 3.02 1. Added workaround for 1011/1012 2. Fixed some indirect memory access bugs Version 3.01 1. Added Fiber Voltage workaround. 2. Added altima 1011, 1012 support 3. Added -fmac <filename> option to program mac address from a file. Version 3.00 1. Added compile option for b57udiag (user diag) 2. Code size reduction Version 2.39 1. Added phy crc counter to engineering blast 2. Fixed multiple interrupt problem on 5700 B2/B1/B0 3. Fixed failure when WOL is enabled 4. Added prevention to program wrong eeprom.bin to device Version 2.38 1. Added cread/cwrite command 2. Fixed broken phy workaround created in v2.37 3. Fixed sedump command to support ATMEL Flash Version 2.37 1. Added 5704 support 2. Added 5704 A0 workarounds 3. Added geneep new configuration commands 4. Fixed bug for chicken and egg problem for LOM write protection Version 2.36 1. Fixed flash corruption failure. 2. Fixed indirect register test failure. Version 2.35 This version does not support more than 3 devices on a PCIX system. It would result in register test A2 failure if 4 or more devices are in the system. 1. Fixed dma test problem in 5701/pcix. 2. Fixed a failure on phy interrupt test. 3. Fixed a failure on Rx Cpu test when loaded from the floppy drive. Version 2.34 1. Added secondary device (for 5704) NVRAM configaration support Cold reset instead of warm reset before exit 2. Fixed bustest problem with new DOS extender 3. Added pciinit function call before reset if engineering mode was entered be noinit option to prevent reset & flash access fail problem. 4. Fixed NVRAM test failure 5. Fixed Register Faiure 6. Added legacy eeprom test for sedvt command 7. Added dynamic directory support 8. Fixed some bugs in seeprom cfg which did not save cfg completely. 9. Fixed loopback failure on 5700 for backward compatibility. Version 2.33 1. Added seclock command 2. Added seinit command 3. Changed setorture command display 4. Added -e, -a, -w option to sedvt command Version 2.32 1. Added coverage for 5702FE 2. Handle appropriate link polarity for OEM in PHY loopback test Version 2.31 1. Added memory test patterns to memory test 2. Replaced dos4gw dos extender to pmodew 3. Added fix to eeprom corruption problem 4. Fixed IRQ9 hanging problem Version 2.30 1. Restored the original prompt :> instead of > 2. Fixed function/do command parameter passing bug 3. Fixed version string problem 4. Extended wait time for firmware after reset 5. Fixed ROM_test/VPD_test failure 6. Fixed upgfrm command bug 7. Added -r option for reset/pcii command to not to halt CPU 8. Changed sechksum command Version 2.29 1. Fixed function printf() parameter bug 2. Appended CRC for ASF image programming 3. Changed sechksum command to display every block checksum in the directory 4. Support two phase boot code 5. Changed upgfrm algorithm 6. Changed secfg to support more configurations 7. Added user define function 8. Added parameter passing for user defined function and do commands 9. Added auto malloc()/DPMI memory detection algorithm Version 2.28 1. Fixed problem with firmware response 2. Fixed problem with eeprom corruption 3. Fixed MSI test to avoid device string corruption Version 2.27 1. Fixed atmel bitbang, seread bug 2. Fixed -i option for 5703A1 3. Fixed bug for Gigabit link issue. -- not to force Master all the time. 4. Added 'skips' 5. Fixed EEPROM size detection bug 6. Fixed Rainer 1000 link problem 7. Removed test engineering test B8 from test menu 8. Fixed error control on test D3 9. Add loading escape if ASF hangs 10. Add ASF cold and warm boot simulation 11. Add WOL configuation in menu 12. Fix smbout parameter issue 13. Added Error Control 14. Removed flshprg command 15. In manufacturing mode: ROM_test (C7) is skipped for 5700/5701 running on PCIX-bus. BIST_test (A4) is skipped for 5700/5701. MSI_test (D4) is skipped for 5700/5701. 16. Removed ROM disable test from 5703_A0 device. Version 2.26 1. Changed MBUF water mark for BCM5702/BCM5703. Version 2.25 1. Fixed 5703 register 0x4c00 bit 31/30 error (should be no problem with 5703 A1) 2. Fixed external loop hang problem Version 2.24 <Pending> 1. Added support for bridge detection and testing 2. Changed nictest command. It take "test list" parameter. By defaut, disable EEPROM content check in engineering mode 3. Separated register test for each board. 4. Added pcicfgtest 5. Added bitbang mode for atmel/stt FLASH device 6. Added passthru mode for all atmel/att Flash and seeprom 7. Fixed @ sign (multiple device command parameter bug) 8. Added ROM disable test 9. Fixed scratchpad memory test in conjunction with runing firmware bug. Version 2.23 1. Updated 5703 register test 2. Updated DMA test 3. Added individual register test with back-to-back access 4. Fixed Interrupt test failing on BCM5700 Version 2.22 1. Fixed eeprom programming 4k/8k problem 2. Fixed 5704 register test 3. Fixed receive mask error for 5704 XBar mode 4. Fixed MIItest failure 5. Fixed 5704 xbar mode, interrupt line bug 6. Unconditionally enables RX/TX cpu clock at start up (it may be possible disabled by bootcode for WOL) 7. Added Bist test 8. Added back-to-back access register test option Version 2.21 1. Moved changes from bcmdiag version 2.6 - version 2.9 2. Changed t_writemem16, t_writemem8, t_readmem16, t_readmem8 from big endian to little endian 3. Separated regtest for 5700, 5703, and 5704 Version 2.20 1. Fixed blast -q option bug 2. Fixed ASF eeprom programming gap filling bug Version 2.19 1. Fixed Register test 2. Restore letency timer/cache line value after reset 3. Fixed sleep command 4. Fixed rs232 echoing 5. Fixed register test: regster 690,694 -> 590,594 6. Fixed Broadcast config. 7. Changed IKOS flash clock devider to zero Version 2.18 1. Fixed VPD test 2. 5703.bin update 3. flshdiag.bin update Version 2.17 1. Stablizing tx/rx test 2. Fixed memory allocation bug 3. C5/D4 tests still have to be disabled 4. D2 test has to be disabled due to board design Version 2.16.2 1. command clearbit bug fix 2. added checksum report for bootstrap on sechksum command 3. Added MSI test. Due to chip bug, this test will not pass on 5703 A0 chips 4. Fixed setest failure after running romtest. Version 2.16.1 1. Memory Leak fix Version 2.16 1. Added support commands for engineering mode 2. Added auto-polling test to mii_test 3. Added 10MB loopback test 4. Fixed "Stack Overflow!" bug 5. Fixed romtest/vpdtest 6. Added Backword bcmediag compatibility syntax for upgfrm command 7. Merged board to board test with Fiber Test 8. Fixed command line option -i to seach for invalid device id. 9. Stablized link in TBI/engineering mode. Version 2.14 1. Finalize external memory 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 -wDownload 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.