release.txt Driver File Contents (

                               Broadcom Corporation
                             5300 California Avenue,
                                 Irvine, CA 92617

                                  Release Notes 
                 Broadcom BCM570X UEFI Diagnostics for IA-32 and x64
Current Release 

Version 15.4.08 (2012.07.30)
   	1. Problem: 
        run ‘seprg o57788c2.07’ after ‘seprg o57788c2.05’report ‘Checking
        selfbootII OTP Content ….:  invalid’. 
        the new patch size exceed the OTP size.  Previous b57diags 
        reported no error if the new patch exceed the OTP max size, but 
        it did NOT program the data that exceed the max size.  Thus 
        caused an unfinished programming and failure checking.
        Improve b57diag to check available OTP space and report error 
        “!!! ERROR, OTP space is not big enough” if the space is insufficient.
        The programming is also stopped so that the OTP is not messed up 
        with an unfinished patch.

    1. CQ64556
        Remove all A1 silence mode support for 57788, no more SW OTP. All OTP
        data that is displayed, written and read,  are from OTP memory directly.   
    2. CQ64560
        During OTP write procedures, enhance current code to write/read/compare
        each DW up to three times if the read back value is not equal the 
        written value.  Report error and exit b57diag if they don't match
        after 3 times.

Version 15.4.07 (2012.07.20)
    1. Problem (CQ64627)
         b57diag: Please remove the TPH in secfg menu on 5718.
         Remove TPH in 5718.
    2. Problem (CQ64562)
         PXE: customized DID combined pxe can't be programmed to correct 
         Remove unnecessary message when vendor and device id are the same
         when programming PXE image since no update is required.
    3. Problem (CQ64642)
         With '-sn' option specified in command line, "pattern" substring 
         field doesn't work as expected.  B57diag only checks for SN to be
         22 characters long, but failed to verify the beginning chars.
       	 Existing b57diag only fails when all pattern didn't match.
         if any pattern doesn't match, b57diag fail the string.       	 
    1. Update CQ64126 Secfg option 60 disappear on 5719/5720 fiber.       
    2. CQ64642:
    	a. Please allow only numeric, 0-9, and uppercase letters, A-Z to be
    	string that gets input from -sn command line option. 
    	b. support 3 SN pattern, each has larger length.  Previous b57diag 
    	support 2 SN patterns, each one has length of 6.
    	c. support 3 OUI pattern.  Previous b57diag support 2 OUI patterns.

Version 15.4.06 (2012.07.12)
    1. Problem (CQ64126)
         Secfg option 60 disappear on 5719/5720 fiber.
         Too many options printing out at once.
         Add a Press any key to continue message between options.
    2. Problem (CQ64191)
         To reset 5715NIC then it will show "Firmware timout 0 OK".
         To restore prior reset setting.
    3. Problem (CQ64331)
         5718 displayed Cannot gain access to flash, SwArbit: 3100 after 
         programming dumped image and reset both ports.
         Besides the primary port, the secondary port needs to reload new fw. 
         Add code to let seconday port reload the new fw code. 
    1. Add TPH feature in secfg menu. 
    2. CQ64530 57766 Family-Please remove EEE option with selfboot patch.
Version 15.4.05 (2012.06.18)
    1. Cq63932, enhancement request
         To enable/disable Alternate PME Suppression for 57761 and 57762.
         add secfg option 83 to config NVRAM offset 0x78[31] as Alternate
         PME Suppression for 57761 and 57762. 

    2. Add 5717c0 support.
Version 15.4.04 (2012.06.13)
    1. Problem (CQ63399)
          Please deny programing iscsiboot with iscsiprg -e command on 
          57786x bootcode.
          Implement fix as requested.
    2. Problem (CQ63400)
          Please deny to setman/setasf -e/-d on 57782/57786x boot code.
          Implement fix as requested.
   3. Problem (CQ63912)
          B57uEFIDiag: The log/nolog for time and date always show 
          "Thu Jan 1 00:00:xx 1970".
          Use the real systime when invoking log/nolog command.
Version 15.4.03 (2012.05.18)
    1. Problem (CQ63012)
         TCL Environment Variables for "[dir]" command will returned bad
         code: 178 with SelfBoot Patch.
         Diag only print outs error messages instead of return TCL status

    2. Problem (CQ63361)
         Command 'apelog' was not supported in UEFI diag.
         Add 'apelog' command into UEFI diag.

    1. CQ63331 - Add F1 character as an alternate way to terminate the
       'ledblink' command in B57diag.

Version 15.4.02 (2012.05.08)

    1. Problem (CQ62327)
         Failed to program NCSI fw after running FLR test.
         MiscHostCtrl register(0x68) was cleared after issuing an FLR so that
         Indirect access was disabled. 
         Setup MiscHostCtrl register again after an FLR.

    2. Problem (CQ62356)
         FLR test failed on OEM systems.
         According to PCIe spec and simulation, there must be at least 100ms
         delay before checking the completion of FLR.
         Add 100ms delay before checking the FLR result.

    3. Problem (CQ62497)
         With specific customer OTP image, the xD/MS functions are disabled, 
         but related secfg config items are still seen.
         Hide xD/MS related config if 0x3600 shows that function 2/3 are hidden; 

    4. Problem (CQ63011)
         TCL Environment Variables $::nx1(WOL) not work with SelfBoot Patch.
         This is a code problem.
         Update code to get the configuration and set TCL variables correctly.

    5. Problem (CQ62750) 
         Fail to program NCSI FW with blank NVRAM on some NICs. Error 
         message "Invalid ASF file format!" is displayed after program BC 
         and NCSI FW.
         Existing b57diag rely on HW config in shared memory 0xb58 to detect
         if the APE present.  If APE present, b57diag program APE FW, otherwise
         b57diag program ASF FW.  If the NVRAM content is invalid, shared 
         memory is not set by BC so that the 0xb58 value is random;  meaning,
         some boards have ape present bit set, some board have ape present bit

         If the ape present bit is cleared, b57diag try to program ASF FW, but 
         failed because of the format.  If there is a 'reset', the BC kick in
         and set the bit correctly.
         new version check shared memory signature, if it is valid, use 0xb58
         ape present bit; if the signature is invalid, return APE present if
         the device is 5761/5718/5719/5720.

    6. Problem:
         Integrate change from v15.21b: A few 5719 NVRAM get corrupted after 
         entering b57diag engineering mode. 
         During NVRAM writing, if the system out of power or the power dropped
         below some voltage, the write operation cannot be finished correctly. 
         Random data may be wrote to the NVRAM. 
         If 5718/5719 has 2M pin strap, previous b57diag get the NVRAM size 
         by writing to some locations. It wrote to NVRAM 4 times if the chip 
         is 5719. the workaround is to avoid the NVRAM writing if the NVRAM
         0xf2 has valid data.  if the NVRAM 0xf2 is zero or 0xffff, write to 
         NVRAM once to get the NVRAM size. 

    7. Problem:
         Fixed the problem that OEM VPD CRC calculation is incorrect.
         Previous version did exclude byte 2 and 3.
         Exclude byt2 and byte 3 and reduce the VPD data length go get the 
         correct CRC. 

    Application note:
      VMAC is implemented after version 15.4.00.  Previous b57diag read NVRAM
      address when running 'device' command; starting from v15.4.00, b57diag 
      check register 0x410 first.  If user change NVRAM MAC via secfg command,
      MAC address might not get updated via 'dev' command.  User need to reset
      the chip after 'secfg' to have the change take effect immediately. 

	 1. CQ62895, add SGMII support to 5718/5719/5720
	    Two NVRAM control bits per port are defined in Extended Configuration 
	    (nvram offset 0x278, 0x27c, 0x280 and 0x284).	
	      Bit 13: It's used to enable/disable SGMII Mode
	        0b: SGMII Mode Disable; 
	        1b: SGMII Mode Enable.
	      Bit 14: It's used to select SGMII link is forced or auto negotiated: 
	        0b: Auto negotiated; 
	        1b: Forced.	

	    'secfg' option 85 and 86 are added to config SGMII.  
	        85. SGMII {Disable(0), Enable(1)}
	        86. SGMII Force Link {Disable(0), Enable(1)}

	    With these configuration, every time PHY get reset, b57diag set PHY 
	    register 0x10[4](autodet_en) to ~NVRAM bit 14 SGMII_Force_Link_En; 
	    set 0x10[0](SGMII_MODE) to ~NVRAM bit 13 SGMII_En.

	2. Add command option 'nvsize -f' to force b57diag get the NVRAM size by
	   writing to NVRAM. the command only applies to 5718/5719.

	3. CQ62834, Enhancement is needed for b57diag to calculate OEM UUID in 
	   VPD block 0 and then calculate the new CRC for block 0.  MAC address 
	   needs to be read from board and put at location 0x640 as before. 

	   Algorithm to generate UUID is added.

Version 15.4.01 (2012.04.01)

    1. Problem (CQ62339)
         b57diag overwriting BDA when executing with '-l' (log) option. 
         scrn.buffer is not initialized in scrn_init() before it was used
         hence corrupting BDA region.  
         Initialize scrn.buffer before printing out characters.

    2. fixed the problem that OTP version is not correctly displayed for
       57785/57765/57795/57761/57781/57791 B0.

    1. Add 57766/57762/57786/57782 A1 support.
Version 15.4.00 (2012.03.26)

    1. Problem (CQ61999)
         Incorrect value "0" returned after typing “secfg c=” twice.
         B57diag takes the value of zero when "secfg c=" is entered.  
         Report back the correct value when "secfg c=" is entered.
    2. Problem (CQ61951)
         On customer blade server, the b57diag shows the NVRAM macs instead of 
         vmacs on the device list.
         This was as designed.  b57diag used to read MAC address from NVRAM.
         Check VMAC first.  If it is non zero, display VMAC. Otherwise, display
         the MAC address from NVRAM.

   1. Added "mancfg -N" option to disable the notification of the firmware 
      of any configuration changes. For use with provisioning of private 
      key before SSL certificate.
   2. Added support for ASIC_REV_57786.
   3. Added functions to get major OTP image version: 
   		a. version 1.xx is for Aspen+;
   		b. version 2.xx is for Aspen+ A1; 
   		c. version 3.xx is for Aspen C0;
   		d. version 4.xx is for Aspen C1;
   4. Starting from this release, b57diag will use 3 digit version scheme
      such as 15.4.xx instead of previous two digits scheme.

Version 15.30 (2012.03.02)

    1. Problem (CQ61903)
         Error message "Cannot gain access to flash, SwArbit: 3100" is seen
         after C4 test and before D group test.
         C4 is followed immediately by group D which will reset RxCPU and 
         APE again. At this time, the previous APE reset might not be completed
         and the Software Arbitration might be locked out.  
         Wait 500ms after APE CPU reset.
Version 15.29 (2012.02.29)

   1. CQ61870      
      Customer is requesting b57diag doing multiple D3 (external loopback) test
      in addition to default iteration of 1. Option '-loopd3' is added to server
      this purpose.  Also '-loopd3' command line parameter is independent of 
      '-chkled' command line parameter, it will only request the operator to 
      verify the LED color once at default iteration.  

   2. CQ61845
      Added support for programming ARP Batch firmware, 'seprg -B';
      The current way of programming the ARP Batch firmware to the NVRAM 
      was to use the ASF firmware method which require 4 directory entries. 
      The ARP Batch firmware only require one directory entry. 

Version 15.28 (2012.02.24)

    1. Problem (CQ61723)
         If via "secfg" and select item 7.Subsystem Device ID (0,1) to change, it will
         show up "No parameter entered".
         Implementing enhancement CQ61588 causing this failure.
         Roll back the changes made in CQ61588.              

    2. Problem (CQ61754)
         cfg file restore will get  "Invalid parameter entered" failure.
         Implementing enhancement CQ61588 causing this failure.
         Roll back the changes made in CQ61588.  

    3. Problem (CQ61759)
         nictest d3 would failed with same system sender/responder test on OEM system.
         EEE mode is not disabled during the sender/responder test.
         Disable EEE mode during the sender/responder test. 

    4. This version is synchronized with B57diag V15.31.
Version 15.27 (2012.02.22)

    1. CQ61588 - Please deny out of range/invalid input in secfg with 
    2. This version is synchronized with B57diag V15.30.
Version 15.26 (2012.02.14)

   1. Problem (CQ61537)
        SB_Patch cfg file restore incorrectly at item g. Cable Sense.
   	    Diag took the compliment value of item g when restoring cfg file.
   	    Restore the item g value as it was in the cfg file.
Version 15.25 (2012.02.06)

   1. Problem (CQ61385)
        It failure at "C4. MII Test" on B5719 when B5719 Adapter and B5720 Adapter co-exist.
   	    Management firmware changes registers value during MII registers read/write test.
   	    Disable management firmware during C4 MII register test.
Version 15.24 (2012.01.19)

   1. Problem (CQ60990)
         Leagcy bootcode without iscsi fw mba config boot protocol missing "None" field.
         Add the "None" field for Legacy bootcode without iscsi fw.
   2. Problem (CQ60992)
         57766 should remove the MS SDID.
         Remove MS SDID in secfg menu for 57766.
   3. Problem (CQ61006)
         Cfg file restore incorrectly at item SDID (Item 7).
         Cfg file does not generate correct format at SDID (Item 7).
         Generate the correct SDID (Item 7) format.
    1. CQ60936 - Please deny asf programming with 57782/57786x.
Version 15.23 (2012.01.04)

     1.	Add support for 57762 family device. 
Version 15.22 (2011.12.13)

     1. Problem: (CQ60261)
          The system will get "F3" failure when run stress test over-night 
          on an OEM system.
          Heart beat timer will start counting to zero after been written. 
          Omit testing heart beat timer.
Version 15.21 (2011.12.09)

     1. Problem: 
          On a customer system, register test failed on 0x170 "R/W bit 
          0,1,2,3,4,5,6,7 didn't get set after writing one"
          5761 register spec says 0x170[7:0] "bit 6 of Register 7c04 needs
          to be set to a 1 to allow this parameter to be R/W. Otherwise, 
          this field is Read-Only". AE confirmed that 0x7c04[6] is cleared 
          on that system. 
          b57diag need to check 0x7c04[6] before test 0x170; 
          set 0x170[7:0] to R/O if 0x7c04[6] is cleared.
    2. Problem: (CQ57848)
          The system will auto reboot when run uefidiag stress test over-night 
          on an OEM system.
          Roll back to the previous version way of running the APE CPU test.

Version 15.20 (2011.12.02)

     1. Problem: (CQ59898)
           Program image that generated from 'sedump xx.bin' gets error
           message: "2nd Boot Code    00000000 81D0797C Failed "
           The error message is caused by the latest BC code size.  
           Previously, the BC size is relatively small, so b57diag use 
           default size 0x3000 Bytes if there is no '-l' specified.  
           Now, the BC is about 20K bytes, so 0x3000 is not enough.
           'sedump xx.bin' generate an image that is not complete 
           so the CRC calculation is wrong.
           Increase the default size to 0x6000 (~25k).

     2. Problem: (CQ59955)
     	   FW CRCs are not checked completely when user program an image.
     	   CRCs for Manufacture II block and FWs in extended directory
     	   are not checked.
     	   Add CRC check for Manufacture II block and FWs in extended 
     	   directory block when user program an image. 
     3. Problem: (CQ59910)
           b57diag doesn't check the syntax of MAC address input when using
           "-m - automac" command options which could end up programming an 
           invalid label as MAC address on the board. 
           Add syntax check of MAC address input to catch invalid entry

     1. CQ57533: remove all hot plug related config settings and validation
                 for newer devices since we don't support it anymore.

Version 15.07 (2011.11.23)

     1. Problem: (CQ59877)
           When user execute command 'sedump xx.bin' , error message
           "2nd Boot Code    4200000E E1379AC1 Failed!" is seen.
           An incorrect checking is introduced when fix another problem.
           revert the change
     2. Problem: (CQ59780)
           Garbage characters appended in the test log with the use of
           "-chkled" command option.
           Continuous write test result to test log instead of writing
           it once when exiting b57diag.

   1. CQ58698 - Update the logic to control APE_GPIO6 pin for ASIC#2 
                access to I2C bus on an OEM system.
   2. CQ59859 - B57diag needs to add to secfg the field "Backed Up MAC

Version 15.06 (2011.11.17)

   1. Problem:
        PXE get enabled after source a configuration file that with item 
        8(PXE) disabled. 
        b57diag associate item 26 to PXE disable/enable. if item 26 (MBA 
        Boot Protocol) set to 0(PXE)-3, b57diag enable the PXE 

        Remove the association between item 26 and PXE, now, option #8 and 
        #26 are independent of each other.
   2. Problem: (CQ59718)
        One customer reports nictest D1 failure issue under certain steps 
        to program NVRAM image.
        To perform a global chip reset after new firmware is programmed 
        due to the constraint of "not disable FASTBOOT" in 5718, 5719, 
        and 5720.

   3: Problem:
        CCM (Comprehensive Configuration Manager) image's header is not 
        stripped off when it is programmed into NVRAM.
        Remove 20B header and validate image signature and type before 

   1. Support the specific CRC algorithm and new VPD spec for the command
   2. CQ59110 - Provide the access to Network SerDes adjustment parameter
      in 5718.  Defined option 79 and 80 for Network SerDes Pre-emphasis
      and TX Amplitude in secfg command.

Version 15.05 (2011.11.10)
   1. Problems:  
	    On some UEFI system, error message "assertion "tmp != NULL" failed: 
	    file "sys\open.c", line 172" is seen when user load b57diag from USB
	    drive.  If user load the b57diag from default shell, there is no 
	    problem, for example, 'shell>fs0:\b57diag64'.
	    Some EFI bios has the environment size over 44K, which exceed EFI 
	    tool kit boundary 4K and cause the device mapping table created
	    Increase the MAX_ENVIRONMENT_DATA in \lib\libc\efi\env.c to 64k 
	    in EFI toolkit

   2. Enhancement:
	    Add CCM (Comprehensive Configuration Manager)  programming capability:
	    . ‘seprg –C' option to program the CCM image (It is capital C);
	    . 4 bytes CRC is appended at the end of image;
	    . Use ‘dir’ to display its version.  

Version 15.04 (2011.11.03)
		b57diag prints debug message.
		remove the debug message.

Version 15.03 (2011.11.02)

     1. Problem: (CQ59480)
            b57diag: Unable to exit b57diag engineer mode after running 
            nictest a3.
            Fix the order of Tcl_deleteCommand when exiting tcl and also 
            remove infrequently used tcl command.
     2. Problem: (CQ59526)
            b57diag: 5717 nictest D2/D5/D6 fails with OEM system.
            When allocating memory size for nictest D2/D5/D6, use the 
            minimum memory requirement setting.
     3. Problem: (CQ59543)
            OEM reports when importing SMBIOS table in b57diag, the 
            system will stop running at Reading SMBIOS Structures.
            Fix memory corrupt issue when importing SMBIOS structures.

     4. Problem: (CQ59316)
            b57diag : Re-define and fix the Syntax of sedump with -f and
            -l0 command line options.
            Check if command syntax with option value follows immediately 
            with option.

     1.	Disassociate -sn and -vpd command with -sysop command.
     2. CQ59222
           requirement:  OEM device has two chips, each chip has different
           SDID;  When we program the image to the chip, the image with 
           specific SDID should go to specific chip.  We are using GPIO 0 to
           tell which chip is the first one.
               - Chip#1: GPIO 0 is high. 
               - Chip#2: GPIO 0 is low. 
    3. Display device ID 57100
           Display device ID 57100 if the device ID is Aspen Dummy ID 0x16A3.  
           Previously, b57diag displays 'dummy'.

Version 15.01 (2011.10.14)

     1. Problem: (CQ59118)
            b57diag: It takes VERY long time for updating NVRAM when running tcl script.
            The process of running a TCL script was hidden by mistake. So, users thought it took very long time to complete.
            Output the whole results of processing a TCL script.
     2. Problem: (CQ58873)
        b57diag: Error reading occurred when type vpdinfo command. 
        Need to do a reset to every port on mulitple devices after the nictest. 

	 1. CQ58698 - Requirement for a tool to flash I2C VPD Serial EEPROM.
	 2. CQ59115 - Associate the usage of -sysop with -t and -T command line parameters.
	 3. CQ58527 - No warning message pop out when using "upgfrm -b" to upgrade non-bootcode file.
   4. CQ57994 - SN and MAC fields need to be entered into the VPD section of the NVRAM.

Version 15.00 (2011.08.09)
   1. Problem: (CQ57203)
        M45PE16-VMW6TG cannot be recognized correct memory size by b57diag.
        Add M45PE16 support in the auto-sense mode. 
   2. Problem: (CQ57400)
        NCSI NX1: 5720 unable to reestablish NCSI pass-through after running nictest.
        NCSI firmware is not run after running nictest.
        Restart NCSI firmware after nictest finishes.
   3. Problem: (relate to CQ57013) 
        After 'upgfrm -b' bootcode from a special customer image, the port3&4 
        MAC addresses and some NVRAM setting are lost. 
        The power budge count is deferent between BC and image. Diag didn't 
        restore the Manufacture block II and the shared config correctly if 
        this setting is different. 
        Restore the Manufacture block II and the shared config correctly. 

Version 14.76 (2011.07.25)
   1. Problem: (CQ57191)
        B57UEFIdiag:Run nictest will failed in "F4" with manufacture mode on an OEM system.   
        Remove fluctuating bits in F4.  
   2. Problem: (CQ57093)
        B57UEFIdiag:Run nictest will failed in "G8" with manufacture mode on an OEM system.  
        Run G8 test on each port.
Version 14.75 (2011.07.18)
   1. Problem: (CQ56640)
        B57UEFIdiag:5719 fiber run nictest will failed in "D2" when port connected to switch.   
        RBD fetch count limitation.   
        Reduce RBD fetch count during initialization.  
   2. Problem: (CQ56920)
        B57uefidiag: 5719fiber-If selects a reference device for test D3 will get failure.  
        RBD fetch count limitation.   
        Reduce RBD fetch count during initialization. 
   3. Problem: (CQ56922)
        B57uefidiag: 5719sb-If selects a reference device for test D3 will get failure.   
        RBD fetch count limitation.   
        Reduce RBD fetch count during initialization.
   4. Problem: (CQ56926)
        B57uEFIDiag: Run D3 with reference device will get failure on an OEM system.  
        RBD fetch count limitation.   
        Reduce RBD fetch count during initialization.
   1. Add option 77 and 78 in secfg menu for 5718 and 5719.
Version 14.74 (2011.07.11)
   1. Problem: (CQ56752)
        B57uEFIDiag: Run D3 with reference device will get "Exception from pro- boot UEFI environment" on an OEM system.   
        Buffer management in sender/responder will corrupt in optimized setting.   
        Use normal tx/rx setting for sender/responder case.  
   2. Problem: (CQ53578)
        UEFIb57diag: If selects a reference device o for test D3 will get failure on Testing Speed 1000.  
        Buffer management in sender/responder will corrupt in optimized setting.   
        Use normal tx/rx setting for sender/responder case.  
Version 14.73 (2011.07.05)
   1. Problem: (CQ56445)
        B57uEFIDiag: 5720-fiber run loop back test with RJ45 Loop Back connected will get failed.  
        Problem introduced in previous version.   
        Do not apply copper patch when 5720 is configured as serdes mode.  
   2. Problem: (CQ56508)
        Run nictest C7 will get "Exception from pro- boot UEFI environment" on OEM system. 
        B57diag issues memory read/write command after memory base has been set to zero in C7 test.   
        Using indirect memory access.  
   3.Problem (CQ56632)
        B57uEFIDiag: program sb firmware will reset MAC to default on port 1,2 and 3.   
        To restore all 4 port's mac address.    
   4.Problem (CQ56635)
        B57UEFIdiag:5719 sb patch run nictest will failed in "F4" with manufacture mode.   
        Timer register will count down to zero once initialized.   
        Remove testing timer register in the read write test.  
Version 14.72 (2011.06.21)
   1. Problem: (CQ56321)
        B57uefidiag- Same System Sender/Responder test fail with 5720-Fiber. 
        Does not consider 5720 in this case.   
        Remove testing 5720-Fiber mode in 10 and 100 speed.  
   2. Problem: (CQ56415)
        B57UEFIdiag:5719-A1 run nictest will failed in "F3" with manufacture mode.
        Timer register will counts down to zero once initialized.   
        Remove testing timer register in the read write test.  
   1. Resolve CQ56337 Add b57diag Command to Return ASIC Termperature.
   2. Resolve CQ56353 Need to add an option in b57diag to set MBA protocol to 'none'.    
Version 14.71 (2011.06.14)
   1. Problem: (CQ56167)
        B57UEFIdiag:5718 sb patch run nictest will failed in "D5" with manufacture mode. 
        Link Aware Power Mode is enabled.   
        Disable Link Aware Power Mode during D5 test.  
   2. Problem: (CQ56215)
        B57UEFIdiag:5718-fiber run tcl command for "MAX_SPEED" will get 2500.   
        Change the MAX_SPEED to 1000.  
   1. Remove secfg option 76(Parity Error Reset Enable).
   2. Set the PXE ROM size of all ports in 5718/5719/5720 concurrently.
   3. Do not restore SDID if NVRAM content is corrupted. 
Version 14.70 (2011.05.13)
   1. Problem: (CQ55119)
        UEFIb57diag: During upgrading bootcode will see incorrect bootcode version on 5720. 
        Display correct bootcode version on 5720.  
   2. Problem: (CQ55514)
        UEFIb57diag: Execute vpdinfo will get error after run vpdtest.  
        It lacks a fastboot disable global reset after vpdtest.
        Perform a fastboot diable global reset after vpdtest.  
   1. Fix CQ55183 B57Diag: Version display under 'FamVer' is either from V0 or true boot code version if the manu-ID is 1028.
   2. Hide item 11-16, 31 and 32 in secfg if extended vpd exists.
   3. Fix "vpdsecfg" string too long causing display error issue. 
Version 14.69 (2011.05.09)
   1. Problem: (CQ54832)
        Output of some TCL's commands were not captured in a log file.
        The channel to a log file was not created for TCL.
        Add code to create a channel for a log file.  
   1. Fix "vpdsecfg" string too long causing display error issue.         
Version 14.68 (2011.5.03)
   1. Problem (CQ55039)
        UEFIb57diag:5718 fiber run nictest will fail in "G6" with manufacture mode. 
        Remove excessive enable/disable APE CPU.
   2. Problem (CQ54872)
        UEFIb57diag:5718 run nictest will hang in "B1" with manufacture mode.  
        Remove excessive enable/disable APE CPU.
   1. Add vpdinfo support for Snaggletooth.
Version 14.67 (2011.4.14)
   1. Problem (CQ54666)
        B57UEFIDiag: 5718 fails F1 Indirect APE Ctrl Register Test in manufacture Mode. 
        Some APE registers default value will change if management firmware is loaded.
        Remove testing changing R/W bits that will change during test.
   2. Problem (CQ54667)
        B57UEFIdiag: 5718 fails D2 PHY Loopback Test. 
        Management firmware changes registers value during D2 test.
        Disable management firmware during D2 test.
Version 14.66 (2011.4.11)
   1.Problem (CQ52854)
   	   UEFIdiag: 5719 run nictest will failed in "C4" with manufacture mode. 
   	   Management firmware changes registers value during MII registers read/write test.
   	   Disable management firmware during C4 MII register test.
   2.Problem (CQ53583)
   	   UEFIb57diag: If selects a reference device o for test D3 will get failure on Testing Speed 10. 
   	   EMAC mode register was not set to correct speed value when management firmware enabled.
   	   Disable management firmware during reference device test.
   3.Problem (CQ53578)
   	   UEFIb57diag: If selects a reference device o for test D3 will get failure on Testing Speed 10. 
   	   EMAC mode register was not set to correct speed value when management firmware enabled.
   	   Disable management firmware during reference device test.
   4.Problem (CQ53812)
   	   UEFIb57diag: Run reference device for test D3 will get failure on Testing Speed 10. 
   	   EMAC mode register was not set to correct speed value when management firmware enabled.
   	   Disable management firmware during reference device test.
Version 14.65 (2011.3.24)
   1.Problem (CQ53522)
   	   UEFIdiag: Run nictest will failed in A2. Control Register Test Failed. 
   	   Some registers offset have been changed.
   	   Apply the new registers offset.
   2.Problem (CQ53692)
   	   UEFIb57diag:The "DID" on pxe version is incorrect when program combined image- uEFI+ PXE. 
   	   Diag does not access the correct location in nvram to display pxe version if programmed combined
   	   image-uEFI+PXE image.
   	   Access the correct address in nvram to display pxe version.
   3.Problem (CQ52774)
   	   B57diag UEFI version locks up on IBM system. 
   	   Use memory base access to read DeviceId causes system lock up.
   	   Use PCI configuration to read deviceId.
Version 14.64 (2011.3.02)
   1.Problem (CQ52678)
   	   Takes long time(over 3 minutes) to show failed when running nictest d3 without external loopback pluged. 
   	   Reduce the wait for link time.
   2.Problem (CQ52639)
   	   Error messages displayed when programming selfboot patch by Manufacture command line.
   	   Remove unnecessary warning messages during selfboot patch programming.
   3.Problem (CQ53001)
   	   NCSI fw can be programed on 5761.
   	   "seprg -a" restrict NC-SI/DASH/Mustang fw on proper devices.
   4.Problem (CQ52982)
   	   B57Diag doesn't show extra file in MBA area with DIR command
   	   Implement code to support FCODE_IMAGE ind the DIR command.
   5.Problem (CQ51247)
   	   UEFI b57diag: G Group tests are not ran when executing default Nictest for 5719.
   	   APE does not restart properly after ape firmware download.
   	   Pefrom a apectl reset after ape firmware download.
   6.Problem (CQ53211)
   	   BCM5720: B57diag does not detect ST45PE80 Flash correctly during manual strap mode.
   	   Display typo.
   	   Display ST45PE80 Flash correctly in the manual strap mode.
   7.Problem (CQ53048)
   	   B57diag:Secfg Item 67 Is Displayed For Sawtooth.
   	   Hide Item 67 for Sawtooth in the secfg menu.   
   1. Add support for Snaggletooth.
   2. Add Clause 37 option for Snaggletooth.
   3. Add Link Idle Mode item in the secfg for Sawtooth/Cotopaxi/Snaggletooth.
   4. Add Force Expansion ROM Advertisement Configuration item in the secfg for Sawtooth/Cotopaxi/Snaggletooth. 
   5. Add sysop option.
Version 14.63 (2011.2.01)
   1.Problem (CQ52636)
   	   A2 Control Register test fails in Manufacturing Mode. 
   	   Some RO status bit will change during test.
   	   Remove testing changing RO status bits that will change during test. 
Version 14.62 (2011.1.27)
   1.Problem (CQ52492)
   	   b57diag will hang at C2 test on a Dell 690 system on the middle PCI-E x4 slot. 
   	   This is time sensitive problem.  PCIE trace shows that the memory read is not 
       complete and has payload error; The system hang is due to immediately memory 
       read after CPMU SW reset in chip global reset routine.
   	   Add some delay after CPMU SW reset. 
Version 14.61 (2011.1.24)
   1.Problem (CQ52434)
   	   5717 NIC failed Nictest C2 CPU test due to mutex error, it is only 
   	   be seen when EEE enabled. 
   	   If EEE is enabled in one port, that CPU will request/release
   	   mutex frequently to check link status.  When B57diag halting the target
   	   port during the CPU test, the other port is still running and locking/
   	   unlocking Mutex.  As a result, the CPU test failed because CPU.bin 
   	   tests all the Mutex bits and registers. 
   	   Before running cpu.bin, halt every CPU on the same board, then reset
   	   mutex block;  after the test, reset all CPUs and reset all NVRAV blocks
   	   on same board. 

   2.Problem (CQ52465)
       5718 Fails G2 APE CPU Packet Test 
       Only do a chip reset if it is in serdes mode.

   3.Problem (CQ50550)
       5715 "nictest" failed in "A5"PCI Cfg Registed Test.
       Do not set BIT_29 for 5715 in GRC reset.

Version 14.60 (2011.1.19)
   1.Problem (CQ50074)
       After exiting b57uefi-diag. the drivers won¡¦t be unloaded.
       b57uefi-diag should unload uefi driver if it is loaded to avoid h/w access contention. 
       Added code to unload EFI drivers before exiting UEFIdiag.
   2.Problem (CQ52188)
       Downgrading Bootcode with Multi_SDID support for 5718 Causes a Checksum Error.
       The 2nd manufacture regions in NVRAM is not updated correctly due to New/Old NVRAM layout change. 
       Update 2nd manufacture region accordingly to the bootcode format.
   3.Problem (CQ50127)
       5718 B0 fails Nictest G7 APE CPU GRC Reset Test after programming Firmware from Script.
       Extended waiting time for the APE CPU to finish reset.
   4.Problem (CQ50229)
       5718B0 Fiber port 0 run nictest will failed in "G2". 
       Add code to support Fiber mode in G2. 
   5.Problem (CQ52121)
       The Subsystem Device ID will get 0000 when program image from dump image.
       The 2nd manufacture regions in NVRAM is not updated correctly due to New/Old NVRAM layout change. 
       Update 2nd manufacture region accordingly to the bootcode format.
   1. Improve the timing when testing D3 with a reference card during multiple iterations.
   2. Skip D1 (MAC loopback) for Sawtooth and Cotopaxi.
Version 14.21 (2011.1.6)
   1.Problem (CQ52057)
       Aspen B0: b57diag fails to enumerate device when otp is blank.
       Default clock setting may hit corner cases in some platform.
       Implement a workaround to select a better clock source when otp is blank.
   2.Problem (CQ51345)
       Add an option to program ISCSI block on all 4 ports when user programs the iSCSI boot firmware with ¡§iscsiprg¡¨ command.
       By default to program iscsi blck on all the ports.
   3.Problem (CQ51346)
       Make the configure defult as IPv4 when b57diag configures the iSCSI config block. 
       Make Ipv4 as the default setting in the iscsi config block.
   4.Problem (CQ51518)
       Cotopaxi Fails Nictest D1 MAC Loopback Test. 
       Set correct parameters to enable Nictest D1. 
   1. Add multiple SDID support.
   2. Prompt the test operator to enter the mac address for every UUT when using -n, -m and -automac options.
Version 14.20 (2010.12.16)
   1.Problem (CQ51735)
       DID command show incorrect otp version for 57781B0.
       Use chip revision to display otp version.
   2.Problem (CQ51684)
       The "phyctrl" command doesn't work.
       Roll back to the old Phyctrl function.
Version 14.19 (2010.12.14)
    1. Replace the 'nvmcfg' command with using other commands 'dump_all_cfg' and
       'source'. The command 'dump_all_cfg' can dump configurations for all 
       devices detected into one file. The output file is a TCL script.
    2. Removed an out-of-date workaround that caused Tcl interpreter failed to 
       read data from a file.
    3. Add 'secfg' item 82 to control Gen1/Gen2, This change is applicable to 
    4. Skip D1 (MAC loopback) for 57765 series.
    5. Release first working APE diag for 5719 ad5719.bin version 2.1.0.  
    6. Remove unused files from release directory; add newer firmwares that are
       used by b57diag into release sub folders.
Version 14.17 (2010.12.08)
   1.Problem (CQ50230)
       5718B0 fiber run nictest will failed in "D1" without cable. 
       Set correct PHY parameters to enable Nictest D1.

   2.Problem (CQ51514)
       The nictest -e/-n / -i / -b command doesn't work in engineering mode. 
       Command argument count is miss calculated when checking command options.
       Get the correct argument count at checking command options.

   3.Problem (CQ51516)
       The mancfg for all option key doesn't work. 
       Command argument count is miss calculated when checking command options.
       Get the correct argument count at checking command options.
Version 14.16 (2010.12.07)
   1.Problem (CQ51245)
       Sechksum will fail if MAC address is programmed on device 2 and 3 for 5719.
       Manfacture region II checksum is not updated after programming. 
       Update checksum accordingly.

   2.Problem (CQ51269)
       Upgrading firmware will reset MAC address and configurations to default on 5719.
       All ports' mac address and configurations are not saved when upgrading firmware.
       Save and restore MAC address and configurations of all ports after upgrading 

   3.Problem (CQ51301)
       UEFI b57diag: A2. Control Register Test failed when run nictest several times. 
       Enable the current measurement and temperature monitor process will start 
       recording in the data registers.
       Avoid setting current measurement and temperature monitor process.

   4.Problem (CQ51319)
       Add EEE option from SECFG menu for 57765x bc.
       Add EEE option in the SECFG menu.

   5.Problem (CQ50742)
       TCL execution issues with b57diag.
       TCL command is not reloaded and executed correctly in every loop iteration.
       Save and restore TCL command after each loop iteration.

   1. Add -lapp command.
   2. Add ISCSI programming for Cotopaxi.
   3. Dump NVRAM image with no address translation for bench programmer environment.
Version 14.15 (2010.11.18)
   1.Problem (CQ50976)
       Upgrading and Downgrading Aspen OTP patch will cause B57diag to hang.
       Caused by the wrong logic on sorting patches when comparing to the input image. 
       Re-write the code to sort patches.

   2.Problem (CQ50875)
       "All Sub Device Id" configration can't be changed when program from otp or dump image.
       Changed the default IDs to 0x0 when trying to overwrite the existing 
       IDs, which caused this problem.
       Do not regard the default IDs as 0x0 if the fields of IDs were already used.

   3.Problem (CQ50300)
       The b57diag reports incorrect NVRAM type with 4M/8M parts after programm bootcode.

       The 2M/4M/8M parts share same pin strap as the 2M part. Instead of using pin 
       strap, We use special method to determine the actual NVRAM size and write the 
       size to NVRAM location 0xf0. 'semode' command read the NVRAM location 0xf0 to get
       the NVRAM size. Bootcode programming can wipe out the value in 0xf0 that is 
       calculated during chip init. 'semode' will get incorrect NVRAM size after that.
        Recalculate and update the NVRAM location 0xf0 with the correct NVRAM size after 
        program bootcode.

   4.Problem (CQ50872)
       Programming Selfboot on Device 0 in Manufacture mode will clear MAC and config on 
       Sawtooth Device 1.
       MAC and configuration data of device 1 is not saved.
       Save device 1's MAC and configuration data.

   5.Problem (CQ50873)
       Programming Bootcode on device 0 from manufacturing mode will cause device 1 
       configurations to reset to default.
       The device 1's configuration data is not saved.
       Save device 1's MAC and configuration data.

   6.Problem (CQ51067)
       B57 diag can not program MAC addresses for each port - BCM95719A1900G.
       MAC addresses of other port is not saved.
       Save other port's MAC addresses.

   1. Add -lmac -automac and -macnum commands.
   2. Fix CQ50704.
   3. Add 4M/8M NVRAM support for Cotopaxi.
   4. Add OTP write verify_done checking and -otpwrtchk options.

Version 14.14 (2010.11.05)
   1.Problem (CA50689)
       Incorrect OTP patch version is displayed after upgrading and downgrading
       multiple times.
       Logic problem
       Correct the code logic.

   2.Problem (CQ49873)
       After MBA is programmed, 5717 NVRAM can be lockup on a specific system.
       B57diag disable rxCPU fastboot, so when there is GRC reset, rxCPU will 
       need to fetch code from NVRAM.  NVRAM lock up is due to timing when both
       port rxCPU hitting nvram right after ctrl-alt-del.
       The workaround is to not disable fastboot in B57diag for 5717.

   3.Problem (CQ50518)
       5718B0 port 1 sechksum will fail after “iscsiprg" and "iscsiprg -v",
       the problem only be seen on port 1.
       Previous b57diag programs second port ISCSI CFG with the length 4B 
       shorter than the first port, that caused the chksum was not programmed 
       Program 2nd port ISCSI CFG with correct length.

   4.Problem (CQ50868)
       Changing Option H in secfg will also change G for Aspen OTP
       Previous b57diag use incorrect area.
       Use correct area for the option H and G.

   1. Support 57765/57785/57795 dummy device ID 0x16A3.
   2. Assign the Fiber PHY address for 5718.
   3. Support new OTP write procedure.
Version 14.13 (2010.10.27)
   1.Problem (CQ50395) 
       Unable to modify "VPD Data" from secfg on 5718 sb. 
       add option 'f' for VPD configuration back to 'secfg' menu.
   2.Problem (CQ50475) 
       UEFI b57diag: To do "sedump" then show "Cannot open 204.bin". 
       Use the correct file attribute when writing to sedump files.
   3.Problem (CQ50478) 
       UEFI b57diag: To do "upgfrm" from otp:v2.03i to 2.04 will show "Diffed @ 9". 
       Pointer casting error. 
       Use the correct pointer casting for Aspen.
   4.Problem (CQ50480) 
       The card readers does not categorize by device when plug in two ASPEN cards.
       Resorting the ASPEN devices accordingly.
   5.Problem (CQ50498) 
       UEFI b57diag:: Nictest does not stop if "Ctrl+C or ESC" to aborted testing when running multiple iterations. 
       The stop condition is not cleared when error occurs. 
       Set the stop condition correctly.
   6.Problem (CQ50520) 
       UEFI b57diag: Change item 76/ 77/ 78 to disabled in secfg will casue diag crash when type "dev -r".
       UEFI does not rescan the devices. 
       The workaround to this problem is to do a sanity check by reading VID and DID. Any enabled and working device will return its 
       VID and DID as normal. But if the device is disabled, all F's will be read. So, UEFIdiag can check if it is disabled or not.
   7.Problem (CQ50582) 
       B57diag: Unable to set bit 23 of reg0x3668 in B57diag. 
       Missing CR_ACT_LED options in the legacy boot and selfboot config menu. 
       Add CR_ACT_LED item in the config menu.
   1. Update "sedump -f filename.bin" for Aspen devices.
   2. CQ48450 To modify EEPROM WP control pin from GPIO1 to GPIO0 in B57diag.
   3. CQ49633 To assign GPIO0 to control EEPROM WP on 48-pin Aspen devices.
   4. Update "sever" command to return boot code version. 
   5. CQ49890 Add the ability to select the number of MSI-X vectors in NVRAM for Sawtooth.
   6. CQ50456 Remove EEE option from SECFG menu for 5718 sb.
Version 14.12 (2010.10.15)
   1.Problem (CQ49974)
     OTP will get Mismatched OTP data when compared to file when upgrading a 
     dump'd selfboot image. 
   2.Problem (CQ50330)
     Manufacture programming a sedump'd otp image will fail .

   3.Problem (CQ50160)
       Program bootcode will failed under manufacturing mode.
       Update the Manufacturing information II region's mac addresses causes 
       the NVRAM content check failure.
       Only update the mac addresses in the manufacture Information II for 
       5719 device.
  4.Problem (CQ49541)
      B57diag failed to display 'qstat' correctly.
      The program only terminates one port from transmitting instead of both
      ports. This will cause the qstat displayed incorrectly.
      B57diag will terminates both ports from transmitting further packets 
      after the ESC key is pressed.
   5.Problem (CQ50361, CQ50396, Cq50393)
       Unable to program Dash firmware using "seprg -a -k450 5761tm1.43". When 
       above command is executed with 14.15.04 diag, 'RSA verification error'
       is displayed.
       Memory corruption that introduced by recent code change.  
       Allocate correct size of memory to avoid the memory corruption.  This 
       fix also relate the system crash or hang that reported in other CQs.
   6.Problem (CQ50038, 50433, 50394)
       B57diag is unable to program sb_patch on 5718 B0 chip.
       Previous version didn't has the Selfboot rev 6 support that is required 
       for 5717/5718 B0 chip.
       Added Selfboot Rev 6 support.

       Support ST45PE 2M/4M/8M parts.
Version 14.11 (2010.09.09)
  1. Enhancement:
       Added xD CIS restoration support. 
       Two command can be used to complete the task:
       	 a. Generate the CIS file.  This step is optional if you have the CIS 
       	    file already.  You can use a xD card that has good CIS block, issue
       	    command 'xd -i -fxx' to generate the CIS file.  xx is the file name. 
       	 b. Write the CIS data into xD card.  Please use command "xd -w0 -b0 -l0 
       	    -e -s32 -fcis_mp1g.txt ".  Press 'y' after you see the prompt "Are you
       	    sure to write to the CIS block?".  Please note, if the CIS block is 
       	    not 0, you need to change the option '-b' with CIS block number.

  2. Based on LSI design change, modified b57diag to support the new pin strap 
     for the Atmel 4M/8M and ST 4M/8M parts.  

  3. Problem (CQ49805)
       b57diag64 will show "Global Resetting CHIP...**Error** when I disabled the
       xD function.
       When xD is disabled, all registers are FFs include interrupt status 
       register, when ISR is called, interrupt messages are printed.
       Disabled xD ISR if the xD is disabled.

  4. Problem (CQ49808)
       In secfg menu, there have item 76 (MS) and 77 (SD) on b57761 but the NIC 
       card didn't have card reader support.
       Previous b57diag shows the configuration item if the device belongs to 
       57785 family.
       Change the b57diag to show the items only when the device have card 
       reader support.

Version 14.10 (2010.09.03)

  1. Problem (CQ49619)
       mancfg -i<filename.cfg> would fail to import configuration records.
       mancfg -i treated all import files as though they were in .ini format.
       Fixed file extension detection logic.

  2. Problem (CQ48405)
  	   With a 5787m that programmed with selfboot code, the nictest "C8" 
  	   failed after command "setwol -e".
  	   Overwrote another dword following CRC when running the command of 
  	   'setwol -e' to enable WOL

  3. Enhancement (CQ48450)  	  
       Current EEPROM WP control is done by GPIO1 and the same pin is used 
       for other critical function on 57765 series.  Therefore, suggested
       to change the control pin to GPIO0 for LOM applications.  This fix 
       should apply to B0 only.  A0 needs GPIO0 for over current protection 
        Use GPIO0 for WP control. For other chips still use GPIO1.

  4. Enhancement
       . Added support for importing management config.ini files using mancfg
         -A, -M, or -R.
       . Support PLDM state sensor polling using B57diag 'apectl -s<sensorID>'.
  	   . for multi ports device like 5718 or 5719,  we use different mutex
  	     register pair for PHY reset of each port.  

  5. xD Card reader enhancement:
 	   . Read back one page to compare after write data into xD 
 	     card to make sure the data in xD card is what we expected.
 	   . Print out error message if error related interrupt received.  
 	   . check if the block is good before write.
 	   . add software ECC ability. 	   

  6. Problem:
       With three party running together (b57diag, BC, and NCSI), mutex lock
       occurs sometimes. 
       This is time sensitive problem.  When multiply party running, there
       is higher possibility that the mutex get locked because there are so many 
       things happen together, halt rx cpu, halt ape cpu, reboot BC, reboot NCSI, 
       mutex request and grant.
       Change the code to reset mutex block wherever the Rx CPU or APE-CPU get

  7. Problem (CQ49619)       
       To  import config record(s) from cfg data file will show “0 configuration 
       records imported from xx.cfg
       Incorrect import file name extension parsing logic - was treating all files 
       as though they were ".ini" format.
       fixed the parsing logic.

  8. Enhancement (CQ49691)       
	   Add option 77 and 78 in 'secfg' to disable/enable SD/xD functions.
Version 14.09 (2010.8.12)
  1. Problem (CQ49291)
       Please hide the card reader SSID options in OTP's secfg menu for Aspen non-card reader skus.
       B57diag does not differentiate non-card reader skus with card reader skus.
       Display SSID info according to different Aspen skus.

  2. Problem
        PHY loopback failure on 5718 port0.
        B57diag resets adapter when loadd driver.  During the reset, existing 
        b57diag read 3664 to determine if the port is serdes or copper.  But during 
        reset, port 0 3664[5] is cleared somehow so the phy_id get changed from 8 
        to 1.
        Don't use shard memory to determine the phy type for sawtooth.

  3. Problem (CQ45405)
       B57Diag: 5718 fails C group test in Manufacturing Mode on second port.
        global.optSWRestCPMU gets set to TRUE after port 0 has been run.
       Move the original fix from test_doAllTests to startAllTests.

  4. Problem (CQ49191)
      Invalid Character is displayed in ISCSI Boot version in the NVRAM 
       String pointer is not correctly aligned. It is the same issue as in CQ31958.
       Include Aspen family for the CQ31958 fix.
  5. Problem (CQ48606)
      B57diag doesn't update ROMHDR checksum correctly when option "-n" is used.
       Changed the configuration data after generating and updated CRC.
       To change the specific configuration data before updating CRC.

  1. Fix CQ48864 Display Family Version of Firmware for OEM system.
  2. Fix CQ49077 Add sub system device ID for the card reader functions in nvram config menu.
  3. Fix CQ48401 OTPChk will show a blank red dialog with appropriate warning text, if NIC is configured for EEPROM.
  4. Support new Aspen B0 changes.
Version 14.08 (06/14/2010)
  1. Problem (CQ48282):
       NCSI pass through traffic is stopped after 'loadd' command.
       "Enable APE TX/RX path" setting is reset during 'loadd'.  It caused the 
       traffic stopped.
       If the device has Ape, preserve APE tx/rx path setting after 'loadd'; 
  2. Problem (CQ48292)
       5718 Bootcode: BC v1.18 fails b57diag PCI Cfg  Register Test;  
       In bc V1.18, the Function Level Reset is enabled by default in each 
       Function. With Function Level Reset is enabled, set bit 15 of the Reg 
       0xB4 will reset the Function and resulting in losing the Host memory 
       access.  That means, B57diag cannot access registers via memory access. 
       During Nictest A5, B57diag will set Bit 15 of Reg 0xB4 and reset the 
       function.  Reg 0xB4 also get reset and then fail the test.  
       Skip writing 1 to Bit 15 of Reg 0xB4.

Version 14.07 (06/10/2010)
   1. Problem (CQ47938)
       5785: 50612 PHY Failed to link at 10M speed.
       GPHY RXC clock is running at incorrect speed (25MHz instead of 2.5MHz)
       when GPHY Inband function is enabled and device is linked at 10Mbps.
       Forced RXC to 2.5MHz when device is linked at 10Mbps.

   2. Problem (CQ48141)
       5785: 50612 Link Flap while setting the speed to 100M.
       GreenMode is enabled with force link at 100Mbps.
       Disable EEE advertisement and autogreen mode when speed is forced at

   3. Problem (CQ48003)
        Run nictest on 5724 will failed in "G2" APE packet loopback test.
        5724 only have one port while ad5717.bin test two port if it is
        5717 device family.
        Only test one port if it is 5724 device in ad5717.bin.
        released new ad5717.bin v2.06.
    4. Enhancement:
        . Display apediag firmware filename and version if APE test involved.
        . Display card's Serdes mode info in command "showcurrcard".
        . Add code to shorten the search time to discovering 50612 PHY address.

Version 14.06 (05/17/2010)
   1.  Problem (CQ46233): executing nictest with -n cause extra iteration.
       Fix: Remove the duplicated loop in TCL engine.
   2.  Fixed CQ47033, 
         program 57761/57765 ASF v8.16 will show "Management Firmware 
         is incompatible with this device".
   3.  Fixed the problem that selfboot device MAC address is not updated 
       correctly when execute 'secfg'.
   4.  Fix CQ46756:
         5717 bc ee5717c1.11 can be programmed to 5718A0 adapter.
   5.  Enhancement:
         Added secfg menu item 60 and 61 for NVRAM and image configuration. 
         Item 60 is for NC-SI package ID assignment method while item 61 is 
         for NC-SI package ID assigned value.
   6.  Enhancement:
         In 'seprg', if selfboot bc will be programmed and the device had 
         legacy bootcod, reserve the NVRAM configuration for selfboot code;
         If legacy bootcode will be programmed and the deice had selfboot 
         code, reserve the NVARM configuration for legacy bootcode.
   7.  Enhancement:
         Support 2nd port selfboot NVRAM configuration in 'secfgsb1'.
   8.  Problem cq40856:
         Testing some CPMU register can cause system hang/crash in a specific
         slot of a specific system.  The problem is not seen on other slots,
         or other systems. 
         These registers on port 1 relate with TLP clock control. It's 
         possible that some modification of those registers can end up having
         too slow a clock.  Depending on the test and the slot, a slow TLP 
         clock can be a problem.  
         Skip register 361c, 3624, and 3628.   
   9.  Problem (CQ47306):
         B57diag v12.41 and later will print an error when '-fmac' is used to 
         program OTP.
       Cause: Previous b57diag loaded the mac address from the -f file instead
         from the '-fmac' file.
       Fix: Add code to load the mac address from -fmac file.
   10. Enhancement:
         . Support programming 57780 OTP image v2.07. 
         . Support 50612E PHY in 'inband' command.
         . Update 50612E Mii Register table.
         . Update 50612E EMAC_PHY pattern.
   11. Enhancement:
         5717/5718 A0 chip cannot access shared memory directly from port1; 
         Rev B0 has fixed the problem, so we allow direct shared memory test 
         from port1.
   12. Problem: UEFI diag cannot display ASF and SMBIOS table correctly.
   	   Fix: Import ASF! and SMBIOS Table from EFI Config Table.
   13. Problem (CQ47520)
         57785 with OTP, reset -c failed and error message displayed if the MAC
         address maximum times is reached.
       Cause: During reset -c scenario, b57diag does not use the correct 
         OTP format for 57785. 
       Fix: Use the correct OTP format for Aspen series chip.
   14. Problem (CQ47509)
         B57diag allows programming ASF on 57785x device. 
       Cause: Program does not block programming ASF on 57785x device. 
         Display error messages when programming ASF on 57785x device.

Version 14.05 (04/06/2010)
  1.  Added security library to support management firmware. 
  2.  Fix CQ46178 - 57765 "upg" the same otp will display "Error : Not enough 
      space in OTP".
  3.  Fix CQ46177 - 5704s prg bc will display mismatch device family.
  4.  Added 5717 selfboot support,  and 'secfg' for both 5717 ports.
  5.  Fixed the problem that b57diag cannot program SB image larger than 256B
      into NVRAM.
  6.  Support selfboot link aware mode and link idle mode on devices (5784, 
      5764, 5785, 57780, 57760, 57790, 5717, 5718, 5724), and 5717 port1.      
  7.  Skip C4(MII register test) , D5 (PHY interrupt test),   External loopback 
      at 10M and 100M if the port is 5717 Serdes.
  8.  Fixed the problem of Serdes link down after load driver.
  9.  Recognize 57788 by the latest Device ID stored in OTP.
  10. Fixed the problem that Config3 of SBII was not updated correctly when 
      programming SBII image into OTP.      
  11. Modify "apeinfo" commands to support 5717:
          "apeinfo -n" - shows NCSI firmware persistent data;
          "apeinfo -A" - shows various apeinfo commands related to 5717
  12. Support 50612E PHY 
  13. Resolved CQ46975. ASF firmware for 5785 cannot be program on 57765 and 

Version 14.04 (02/17/2010)
  1. Support dummy device support with device id 0x160A.
  2. After executing script file, return back to the prompt.
  3. Corrected the broken logic when running the command of 'otpchk -f' on Cilai devices.
  4. Fixed problem that some commands could not show the correct MAC address and firmware version of OTP image for Aspen

Version 14.03 (01/27/10)
  1. Fix CQ44791 - Sawtooth failed to run nictest on port2 without a link.
  2. Fix CQ45330 - v14.00.11 prg bc cannot open file.
  3. Fix CQ45351 - prg sb will display incorrect sb ver and MAC in 57785/
  4. fixed cq43867;  changed the Aspen CR MAC and BC to N/A when display device;
  5. Fix CQ45273 -prg sb will display incorrect version
  6. fixed 5717 port 1 interrupt failure (A3).
  7. fixed Cq45277, Cq45048, Cq45076, inconsistent F6 and F7 failure: 
  8. Added MS_En bit support for 57765.  It is used to enable/disable Memory 
     stick (function 2).  It is item 76 in secfg, 1-enable and 0-disable.

Version 14.02 (01/08/10)
  1. Problem:
       Print problem when aboart a long output. E.g. "help mii" prints out the 
       mii commands.  Then "help" and after the first page of output, 
       hit "escape" to stop the listing. It stops, and then *redisplays* 
       the mii info.
       New tcl engine didn't process the abord command that generated by 'ESC'. 
       If the 'ESC' is pressed during the command output, let TCL return 
       without error.

  2. Fix CQ45111 - b57diag should stop programming otp patch if the OTP 
     space is full.

  3. Fix CQ45107 - 5704 shows the wrong NVRAM size.
  4. Fix CQ45092 - Display the wrong major version if selfboot image is
     format 0.

  5. Fix CQ45210 - The command of 'setwol -e' caused CRC error(show unkn)
     in config block with SB1.01

  6. Fix CQ44770 - The default Sub Vendor ID in the warning message is 
     incorrect, should be 14E4.

  7. Fix CQ44771 - Failed to go back to default value if Sub-VID maximum 
     times in 'secfg' is reached then attempt forced.   

  8. Fix CQ45095 - A failure in sechksum will cause the previous command 
     to be automatically executed.

  9. Fix CQ44329 - Please hide "PHY Auto Powerdown" option from SECFG menu 
     when OTP is used

 10. Fix CQ44356 - Extend the length of the string within the batch file. 
                   The current text string command within the batch file can 
                   take up to ~128 characters MAX (including space).

Version 14.01 (12/18/09)
  1. Changed the SD/MMC Card Detect Polarity bit definition: 
     0b : Active Low (internal chip pull-up is activated)
     1b : Active High (internal chip pull-down is activated)

  2. Fixed cq44947 
     Problem: 57765 does not see the SD/MS devices in UEFI;
     Fix:  Add the SD/MS discovery in UEFI.

  3. Fixed A1 (indirect register test) failure on 5784.

  4. Fix CQ44973 - Unable detect correct 57765 NVRAM type
  5. Fix CQ44972 - Can not show correct NVRAM type for U303 on 57765 NIC
  6. Fix CQ44948 - nictest will fail "C7" under NX1 legacy card.
  7  Fix the system hang caused by "setbit" and "clearbit" commands
  8. Enhance the stability of the command interface with the merge 
     of TCL engine.

Version 14.00 (12/11/09)

  1. Added 5717/5718 chip support;
  2. Added 57765/57761/57785/57781/57795/57791 chip support;
  3. Add 'seotp -v' and 'seotp -rx' to get the current revision and update the current
     revision to x for 57765 .
  4. Support the new way to store/manipulate the patch length, revision and magic 
     signature for 57765.
  5. Fix CQ44474 - failed to program iSCSI image for 5717. 
  6. Added extended directory support for advanced management firmware.
  7. Enhancement:
         Previous code used register 6804 value to determine the chip type, it 
         generated a lot register reads;  Enhancement is made to eliminate the 
         reads to improve the performance.

Version 12.40 (10/09/09)  
    Updated release to incorporate changes from DOS B57diag v12.41, v12.40, 
    v12.19, and v12.18:

    Changes from DOS B57diag version 12.41
      1. Problem (CQ43709)
           The system will hang when attempting to read otp content on a specific platform.

           The index to memory was corrupted.

           Changed code to correct the index to read.

      2. Problem (CQ43817)
           C8 test failed with certain MAC address.

           ROM loader setup the starting address to store the testing image in SRAM based on the MAC address.

           Change code to decide the starting address based on device ID only.  

      3. Problem (CQ43645)
           Error message displayed if OTP mem is not blank when programming 
           image without '-n' option.

           Without '-n', the original configuration and ID's will be remained. 
           That means those data might be different from the input image. 
           This problem was caused from comparing both. 
           Added code to avoid comparing configuration block if the '-n'
           option is specified.  

      4. Problem (CQ43308):
           Checking selfbootII OTP Content failed while programming customer 
           platform with 57790A1 OTP.
           It was caused by the uninitialized memory block that hold OTP data.
           Initialized and zeroed out array block before using it.

      1. Update the usage of the command 'otpchk' as below.

          usage: otpchk 
            -n          Do not check configurations and all IDs.
            -m          Do not check MAC
            -l<HEX>     Iteration (def=00000001)
            -f<string>  filename

      2. CQ42758 - Please add a command line command to print out the SECFG menu.

      3. CQ43894 - Add a new option  -run "<cmd> [option]"  to run a single command with its options. 
                   in the manufacturing mode.

         For example, to execute the command of otpchk with a specific image without checking the configuation.

         b57diag -run "otpchk -f otpfile -n"

         Another example, to dump the NVRAM image to a file.

         b57diag -run "sedump -f dumpfile"

      4. CQ43159 - Creating MBA releases with UEFI drivers inside should not be device specific.

    Changes from DOS B57diag version 12.40
      1. Enhancement:  
           Add an option '-y' for command 'blast' to page down the statistics 
           counters automatically from page 0 to 7.  The reason to add this option
           is for the dead USB keyboard since of the legacy USB device sharing 
           the same interrupt with 5785 on the AMD motherboard.

      2. Enhancement:
           Continue to get 5761 event log entries even if get event fails for some.

      3. Problem (CQ43308):
           Checking selfbootII OTP Content failed while programming customer 
           platform with 57790A1 OTP.
           It was caused by the uninitialized memory block that hold OTP data.
           Initialized and zeroed out array block before using it.

      4. Enhancement:
           . Added Tcl support for B57diag.  
           . Renamed 'read' command to 'rread'.
           . Added option '-rc <filename>' to 'b57diag': Specify a script file
             to source after starting b57diag.
           . 'write' and 'rwrite' commands are same.

      5. Enhancement for command 'mancfg':
           . Added '-t' option. It allows specifying a specific
             record type (e.g. to view, with '-v'), this must be used with the (new) 
             -I (import data file) command, and may be used with the -r, -e, and -u 
             commands.  The old -rXX, -eXX, -uXX syntax (where XX is a record type in 
             hexadecimal) is still supported for backwards compatibility.
           . Added the -I command to import data files, automatically detected PEM 
             certificate files and decoding them accordingly.
           . Added option '-V', view cfg record headers and data.

      6. Enhancement:
           Change the 'otpchk' command to compare the configuration bits and all IDs
           (DID, SSID and SVID) by default. The option '-m' will compare MAC address 
           in addition.

    Changes from DOS B57diag version 12.19
      1. Enhanced the solution to CQ43709 introduced in v12.18

    Changes from DOS B57diag version 12.18
      1. Problem (CQ43709)
           The system will hang when attempting to read otp content on a specific platform.

           The index to memory was corrupted.

           Changed code to correct the index to read.

      2. Problem (CQ43817)
           C8 test failed with certain MAC address.

           ROM loader setup the starting address to store the testing image in SRAM based on the MAC address.

           Change code to decide the starting address based on device ID only.  

      1. Update the usage of the command 'otpchk' as below.

          usage: otpchk 
            -n          Do not check configurations and all IDs.
            -m          Do not check MAC
            -l<HEX>     Iteration (def=00000001)
            -f<string>  filename

+---------------+ Previous Revisions +---------------+

Version 12.04.02 (09/15/09)
     1. Added support for exporting most command outputs to Tcl shell.
     2. Fixed CQ43680 - can't upgrade bootcode using upgfrm -b command.

Version 12.04.01 (09/09/09)
     1. Fixed the way engineering mode command argument parsing when Tcl
        engine is present to be consistent with the one without Tcl engine.
     2. Fixed version 12.04 engineering mode command parameter parsing for 
        the following commands : phyctrl, pmpd, do, fillpattern, erase, 
        msitest, qstat, apectl, debug, pxecpy, rread.
     3. Fixed some version 12.04 engineering commands with multiple iteration 
     4. Fixed D8 DB SADB Interrupt failure.

     1. Added Tcl support.
     b57diag engineering mode read command has been renamed to rread to avoid 
     conflicts with tcl shell read command.

Version 12.04 (09/02/09)
     1. Fixed CQ43144 - unable to run D3 external loopback test on 5785.
     2. Fixed CQ42183 - should exit gracefully and retain any error messages
        without user intervention.

     1. Added Tcl support.

Version 12.03 (07/09/09)
     1. Fixed CQ35732 - Sender/response test failure on 5761.

Version 12.02 (05/27/09)
     1. Fixed CQ40651 - NVRAM size show zero and program MBA firmware fail when two NICs in the SUT.
     2. Fixed CQ40650 - Bootcode upgrade and downgrade fail because of available size is 0.

Known problems/issues with this release:
     1. Some PCI utility commands are not functional.
     2. Not all client management (ASF) utility commands are functional.
     3. Serial port communication is not supported.

Version 12.01 (04/16/09)  
    Updated release to incorporate changes from DOS B57diag v12.02, v12.03 and v12.04:
    See the DOS B57diag release.txt file for information about the changes.

Version 12.00 (04/06/09)  
    The following code changes were picked up from DOS B57diag v12.00 and v12.01:
    1. Add the new command 'otpchk' to verify patches in OTP.  
    2. Revise the algorithm for version upgrade/downgrade in OTP.   
    3. Fix CQ40042 - Patches does not get deactivated after upgrade and downgrade the OTP patch code.    
    4. Fix CQ40182 - Support compare function to verify the content of OTP memory against an OTP image
    5. Fix CQ40183 - Modify SEDUMP to support dumping of OTP memory content for use with CQ40182 otp compare fucntion.
    6. Enhancement request (CQ39405):
          Customer is requesting "Lowest Speed Advertised" equivalent 
          option to 5761 management firmware. 
           Consider driver Vaux speed setting if available.

Version 11.16 (03/09/09)
     1. Fix for CQ39264. Loop Back test failed at G1 on 5761s.
     2. Fix for intermittent G8 GRC reset failure.
     3. Synchronize updates from the latest DOS version release.

Version 11.15 (01/09/09)
     1. Update to support 57760/57780/57790 devices.
     2. Fix for 5714/15 external loopback PHY configuration for Blast and Txpkt commands.
     3. Synchronize updates from the latest DOS version release.

Version 11.14 (10/28/08)
     1. Fix for delay in Phy MII R/W routines. 
     2. Fix for error checking in APE diag firmware load.

Version 11.13 (10/17/2008)
    1. Synchronize code to DOS version. (See B57diag DOS release notes)

Version 11.12 (09/09/2008)
    1. Synchronize code. See B57diag DOS release notes.

Version 11.11 (8/22/2008)
    1. Fix (-asf 1) command line option to enable DASH firmware.
    2. Fix cosmetic problems when programming large NVRAM image.
    3. Synchronize code with latest DOS version.

Version 11.10 (8/6/2008)

    1. Updates to support latest Soledad B0 Bond Id's (IPsec and non-IPSec).
    2. Synchronize code with latest DOS version.

Version 11.09 (05/28/2008)

    1. Fix for CQ35343.
       Problem: UEFI Diag executing nictest, but system hang randomly
       Resolution: Issue is related to DOS diagnostic fixes.  Synchronized code to latest version.
    2. Fix for CQ35550.
       Problem: UEFI Diag - "Mutex register request 0x2c failed" message seen in nictest.
       Resolution: Issue is related to DOS diagnostic fixes.  Synchronized code to latest version.
    3. Fix for CQ35551. 
       Problem: UEFI Diag - NIC 5761m Rework(P7) Loop Back test failed at F group
       Resolution: Issue is related to DOS diagnostic fixes.  Synchronized code to latest version.
    4. Fix for handling very long strings. 

Version 11.08 (05/12/2008)
    1. Fix for CQ34504 
       Problem: Error message in D group test when running nictest in 5906
	 Resolution: Check for Rx receive rules register removed for 5906 (does not exist) 
    2. Fix for CQ35009  
       Problem: DASH - EFI/UEFI Diag can not upgrade DASH firmware V0.95
	 Resolution: Incorporated latest DASH support code to fix problem.
    3. Fix for chksecfg command parsing error.
    4. Added new blast option to disable VLAN tag copy in host loopback mode. 
    5. Added 5761 IPsec tests and support commands.
    6. Updated USB test functionality.  Updated USB test firmware with FAT support.
    7. Incorporated latest DOS diag source updates.  See DOS b57diag release notes for more information.
Version 11.07 (03/25/2008)
    1. Fix for CQ34381
       Problem : UEFI diag version 11.06 failed check bond ID in 5721 board.
	 Resolution: Bond ID mask test changed to work with all devices.
    2. Added APE USB device test for 5761/5761E devices.
    3. Removed APE Boot Loader test (redundant).
    4. Added support for APE DASH utility commands, apeinfo and apectl.
    5. Added device support for 5752,5752M,5754,5754M,5755,5755M,5756ME,and 5722

Version 11.06 (3/12/2008) 
    1. Fix for CQ34118. (A5 test failed on 5764m B0). 
    2. Additional device support added for 5761/5761E/5715/5714/5721/5906/5704. 

Version 11.05 (2/29/2008)
    1. Fix for CQ34018.  
       Problem : upgfrm command does not correctly set the checksum in the NVRAM directory.
       Resolution:  Corrected code to add checksum on selfboot format 1 type.
    2. Added code to correctly display shadow on dialog boxes.
    3. Added code to pause after error condition when in manufacturing mode.
    4. Fix EFI display routines for handling console displays larger than 80x25 characters. 

Version 11.04.01 (2/26/2008)
    1. Added support for launching without the EFI Shell.  
    2. Fixed console screen display routines to support unicode screen save and restore.
    3. Fixed 'read' command alignment on displays wider than 80 characters.
    4. This release adds support for BCM5784M, and BCM5764M.

Version 11.01.01 Evaluation Release (1/29/2008)
    1. Updated to UEFI/EFI 2.0x specification.  Added support for x64 (EM64T/x64).
    2. Added support for PCI-E devices (only BCM5787 fully supported in this release).

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: web2, load: 0.70