                     Release Note for B57DIAG64 EFI Engineering Diagnostics.
                    ==================================================
version 8.14:

    1. Problem: (CQ# 13028)
          In asfcfg command, user could configure the link to speed to a invalid 
          configuration.
       Cause:
          There is no such configuration: Force 10_100 speed or force all_speed.
          When force speed is selected, one of 10, 100, or 1000 speed must be used.
       Fix:
          When an invalid conbination is found, it will change to force 100 speed
          as default.             

    2. Problem: (CQ# 13027)
          In asfcfg command, user could not change the speed to 1000
       Cause:
          The code was erronously coded; when use try to force 1000, the code will
          configure to force to all_speed.
       Fix:
          Fixed the bug.

    3. Problem: (CQ# 12946)
          System under test would be hung when save secfg data via b57diag v8.08.
       Cause:
          This issue was introduce during adding IPMI support for dual-port devices in diag v8.08.  
          The cause is a flag used for detecting if IPMI firmware checksum was corrupted had not been set correctly
          when IPMI firmware was not loaded.
       Fix:
          Modified code such that the flag will be set correctly.

    
    4. Problem: 
          Diag failed to filter out chips that did not pad small size packet (< 60 bytes) to 60 bytes with zeros.
       Cause:
          Diag loopback test did not test with packet that has less than 60 bytes in length.  The start_packet_size
          in loopback test is 60.
       Fix:
          Changed the start_packet_size to 22 bytes in loopback test.  With packet size less than 60 bytes, the chip
          should pad it to 60 bytes.  For those devices that fail to do so will be filter out.

    5. Enhancement:
          Added support to PCI and PCI-E PXE firmware programming.
          Impacted commands and option switches:
          pxeprg, pxeprga, upgfrm, -pxe, -ppxe.


version 8.08 :

    1. Problem: 
          When NVRAM is corrupted or is blank, diag will warn user to
          reprogram NVRAM and Mac address.  

          "Warnung: NVRAM content corrupted"
          "Reprogrammning NVRAM and Mac Addr may correct this problem"
       
          When user only try to program the blank NVRAM without 
          programming the MAC address.  Diag will issue the same warning message. 
          However, user usually ignore the warning.
       Fixed:
          Improved the warning messages when the NVRAM is corrupted or is blank.
          *******************************************************************************
	  *WARNING: NVRAM content is corrupted or NVRAM is blank.                       *
	  *         Please reprogram the following:                                     *
	  *         1. NVRAM by using -f option.                                        *
	  *         2. MAC ADDRESS by using -m, -mac (for single port) or -fmac options *
	  *******************************************************************************
   
          Improved the warning messages when user only progame the corrupted/blank NVRAM 
          without programming the MAC address.
          *******************************************************************************
	  *WARNING: NVRAM content is corrupted or NVRAM is blank.                       *
	  *         Please reprogram the following:                                     *
	  *         1. MAC ADDRESS by using -m, -mac (for single port) or -fmac options *
	  ******************************************************************************* 

    2. Problem: (CQ # 12887)
          sedump with '-a' option fails
          OEM reported that when using the command "sedump" with the '-a' option, it will fail 
          the Checksum test.
       Cause:
          A checksum test has been added in "sedump" command to check the data being read back from NVRAM.  
          Before NVRAM data being dump to a file without using -a option, the start address of the 
          firmware will be changed.  Then the checksum test function will take care of the change and 
          calculate the checksum correctly.  However, in case of using -a option, there is no start 
          address modification.  That is why the checksum function failed.  
       Fix:
          Diag will perform the checksum test to a duplicate of the NVRAM data buffer.  
          If the test pass, diag will either perform the start address modification depends on 
          if the -a option present.

    3. Problem: (CQ # 12570)
          If a flash image is created with the wrong length the image still can be programmed 
          using the b57diag command line without failure.
       Cause:
          Normally, diag will only check the magic value before programming the NVRAM.
       Fix:
          Diag will test the checksum of the NVRAM image before programming to NVRAM 
          to make sure the NVRAM image is in good condition.

    4. Problem:
          The -pnchk option checks that an entered part number matches
          the value stored in the image file that is to be programmed.
          If the entered string was longer than the string in the
          file image, then no error was flagged (incorrect action).
       Cause:
          The code has a bug that did not flag an error when the
          entered string was longer than the string in the image file.
       Fix:
          Fixed the code so that if the string length of the entered 
          value is longer than the expected value in the file then 
          the characters up to the expected string length are compared.
          
    5. Enhancement:
          The "-exe" option was enhanced so that when multiple devices
          are present and the "-exe" option is used then the "@" symbol
          can be used to execute a tests on multiple devices.
    
    6. Enhancement:
          Continued adding code for Stanford IPv6 support.
    
    7. Enhancement: 
          Added Smbus address programming support for IPMI on dual-port devices. 
          In case of IPMI firmware on dual-port devices, SMBUS Address can be configurated 
          via "secfg" command, item 51 and 52.
          User can only configurate SMBUS Address on the 1st port via "asfcfg" command. 

          In case of IPMI firmware and ASF firmware on single-port devices, SMBUS Address can be 
          configurated via both "asfcfg" command and "secfg" command, item 51.

    8. Enhancement:
          Decreased the flash arbitration time out value because the 
          delay on failure was too long.

    9. Enhancement: (Hamilton)
          - Read the PCI bus speed value from PCI register 0x74 for 
            revision A3-on instead of using the fixed speed of 133 MHz.
          - "seprg" now does not over write the second MAC address
          - "umpecho" command added to put the ump firmware in loopback 
             mode so that every thing seen on the input is echo'ed to
             the output (supported on A1 and newer devices)
             / ump14b.bin is updated (version 1.3)
          
    10. Enhancement:
          Added the following changes for Stanford:
          - added support for variable ATMEL NVRAM sizes
          - fixed a number NVRAM access bug
          - disabled FastBoot
          - disabled VPD test (not supported)
          - disable voltage variation because it is fixed
          - added multiple ring support
          - added device ID for the mobile version
          - IPv6 implementation started


    version 8.06 :

    1. Enhancement:
          Modified "regtest" so that it runs on the Stanford FPGA when
          the -fpga55 option is used.

    2. Enhancement:
          Added SelfBoot Support to Diag (Phase 3).
          Impacted the following option switches and Commands.
          
          -w -asf -x -fmac -m -mac -mba -mbas -pxe -pipmi 
          -dids -pasf -pxes -pupdateasfcfg -firm -firmall 
          -updatesecfg -updateumpcfg -chksecfg -ppxe -smbaddr -vpxe -f -u

          nictest dids setwol

    3. Enhancement:
          Started adding Stanford support for multiple rings.

    4. Enhancement:
          Added the "pciwr" command and improved the "pcird" command's
          help.

    version 8.05 :

    1. Enhancement:
          Removed "Hot Plug" secfg options for Baxter family of chips
          because the chip family does not support those options.

    2. Enhancement:
          Modified Jade device ID to 0x7f7f.

    3. Enhancement:
          Added engineering mode commands txcrcip, txcrcport, txdstip,
          txdstport, txtype, txprot and txipprot which set up the Tx
          packet information without using the txcfg command.

    4. Enhancement:
          The blast engineering mode command can now specify an
          absolute timeout value after which the blast command
          automatically returns to the command prompt via -Q<value>.

    5. Enhancement: (CQ #12619)
          The "nvsize" commands allows entry and display of data in
          hex and decimal.

    6. Enhancement: (CQ #12620)
          The "tpm" size was misinterpreted due to a bug in the 
          "nvsize" command which was fixed above in CQ #12619.

    7. Enhancement:
          Added SelfBoot Support to Diag (Phase 2).
          Impacted the following Commands.
          
          seprg upgfrm pxeprg asfprg setpxe setwol 
          setump setasf dir dirw erase semap secfg setipmi 
          sechksum sedump sever semap 
          secfg secfg1 secfg2 secfg3 secfg4 secfg5
          asf asfcfg umpcfg binchksum vpdwrite vpdinfo userblock tpm.

    8. Problem: (CQ #12545)
          A use did not like the display when programming at ST NVRAM
          on the Shasta chip family.
       Cause:
          Too much intermediate status send to screen.
       Fix:
          Modified code to remove verbose output.
      
    version 8.04 :

    1. Enhancement:
          For Stanford support:
          - Modified the msi_test according to new register locations
          - Added Stanford register definitions for the PCI cfg reg
          - Memory testing now uses the Stanford memory map.

    2. Enhancement:
          Added initial Jade support.

    3. Enhancement:
          Added Shasta C1 support.

    4. Enhancement:
          Replaced CPU14.BIN with CPU14A.BIN and CPU14B.BIN.
          CPU14A.BIN will have no-op workaround.
          CPU14B.BIN will NOT have no-op workaround.
          Hamilton A0, HTLE A0-A3 will need to use CPU14A.BIN.
          Hamilton A1 will need to use CPU14B.BIN

    5. Enhancement:
          Replaced FLSHDG14.BIN with FLSHD14A.BIN and FLSHD14B.BIN.
          FLSHD14A.BIN will have no-op workaround.
          FLSHD14B.BIN will NOT have no-op workaround.
          Hamilton A0, HTLE A0-A3 will need to use FLSHD14A.BIN.
          Hamilton A1 will need to use FLSHD14B.BIN

    6. Enhancement:
          Replaced UMP14.BIN with UMP14A.BIN and UMP14B.BIN.
          UMP14A.BIN will have no-op workaround.
          UMP14B.BIN will NOT have no-op workaround.
          Hamilton A0, HTLE A0-A3 will need to use UMP14A.BIN.
          Hamilton A1 will need to use UMP14B.BIN


    version 8.03 :

    1. Problem: (CQ #12424).
          Baxter displays voltage variation on test B7 and C8, even 
          though the voltage of the chip is fixed. 
       Cause:
          Oversight.
       Fix:
          Voltage variation for test B7 and C8 removed.

    2. Enhancement:
          Run the Open/Short Test (E1) only at 1000 Mbits/s.
          Experimental data shows no advantage to running at 10/100.

    3. Enhancement:
          Baxter support enable by default.

    4. Enhancement:
          Modified to ban bin-bang interface to NVRAM.

    version 8.02 :

    1. Enhancement:
          Performed changing in device ids for HT-LE Copper and Serdes devices so that it will be different 
          than the device ID for Hamilton.  The new device IDs for the 5780 (aka HT-LE) are:
          5780 (HT-LE) copper:	0x166A
          5780 (HT-LE) serdes:  	0x166B

    2. Enhancement:
          Added code in "binchksum" command to handle invalid input file.  Function will return "Invalid Magic Value"
          message if invalid file has been used.

    3. Enhancement:
        -chksecfg <file_p> | <file_s>  Check Boot code configuration.
        
        -chksecfg will enable the NVRAM Secfg Test.
	Boot code configuration will be checked against input files.  
        The input files are in the same format as EEPROM.TXT.  
        <file_p> is for the primary port and <file_s> is for the secondary port.  
        Software will read command from input files and compare with the boot code 
        configuration and return Passed or Failed accordingly.


	Example:
		b57diag chksecfg file_p.txt                  (for single port devices)
                b57diag chksecfg file_p.txt file_s.txt       (for dual port devices)


    4. Enhancement:
          Added "vpdinfo" command in engineering mode to Show VPD Information.
          
          vpdinfo
          cmd: vpdinfo
          Description:  Show VPD Information. 

          Syntax:  vpdinfo 

    5. Enhancement:
          Added the engineering mode command "dmashasta" that tests
          basic DMA functionality (valid for the Shasta family only).
    
    6. Enhancement:
          Baxter A1 bond ID test and seprg device identification 
          enhanced/fixed.
    
    7. Enhancement:
          Added "binchksum" command in Diag engineering mode.
          The "binchksum" command will take a firmware file and test the checksum of each piece of firmware 
          stored in the file.  It is simular to the "sechksum" command which is testing the 
          checksum of each piece of firmware stored in nvram.

          syntax: 0:>binchksum -f<name>

    8. Enhancement:
          Added code to the "sedump" command to verify the firmware checksum of the extracted data from nvram 
          to ensure the qulity of the output image of the "sedump" command.
    
    version 8.00 : 

    1. Enhancement:
         version 8.00 : 

    1. Enhancement:
          Modified diagnostics to not touch register 0x2018 for chips
          that belong to the Shasta family.
    
    2. Enhancement:
          Added back the Open/Short test that was removed in release
          v7.01 of diagnostics, with some algorithm improvements.
          The test is available under the new "Group E" tests. Group E
          is used for tests under development.
          
    3. Enhancement: (CQ# 12180)
          Allow enable of IPMI on both ports for the dual-port chips.
       Fix:
          Modified diag to let user to enable IPMI firmware in both ports of the dual port devices.  
          However, user will be able to enable ASF firmware only in one port of the dual port devices.
       Impact:
          Impacted commands and option switches are list below.
          1. secfg   2. secfg3 -a   3. setasf   4. setipmi   5. setwol   6. setpxe   7. setmba
          8. -asf    9. -mba       10. -mbap   11. -mbas    12. -pxes   13. -w      14. -x
         15. -ipmi  16. -meep 

    4. Enhancement: (CQ# 12323)
          Enhancement request to display the slot type in Diag engineering mode.
       Fix:
          Modified diag to show slot type and speed in the following format.
          For PCI-E Devices display changed from:
	       PCI = E 2
               Spd = 500

          to:
  	       PCI = Ex1 (for pci-e x1 slot type)
	       Spd = 250 (2.5G)

    5. Enhancement:
         Update cpu14.bin to V3.1 which include NOOP workaround (CQ# 11592).


    version 7.60 :

    1. Problem: (CQ# 12176)
          B57diag did not get NvRAM grant before issuing GRC_RESET.
       Fix:
          B57diag will get NvRAM grant before issuing GRC_RESET.

    2. Problem: (CQ# 12179)
          b57diag C2 & D1 test fails
       Cause:
          C2 test fails has been fixed in v7.59.(CQ# 12143)
          The cause of D1 fails is due to diag did not wait long enough after resetting the RX Engine.
          Diag continued to its rx setup when the rx engine was still in reset mode.  
          This only happened to the two CIOBE ports.
       Fix:
          Diag will increase the wait after resetting the RX engine.  

    3. Enhancement:
          Remove support for Baxter device.


    version 7.57 :
    1. This version is based on B57diag Dos Diagnostics V7.57.

    2. Problem:
          The VPD test failed on a system (CQ #12013).
       Cause:
          Static function are handled incorrectly by the compiler.
       Fix:
          Removed static function calls and recompiled the following
          binary images (release 3.0)
            cpu05.bin, cpu.bin, cpudg05.bin, cpudiag.bin,
            flshdg05.bin, flshdg5x.bin, and flshdiag.bin.
    3. Problem:
          The same system send/receive test fails.
       Cause:
          The interrupt fix (CQ# 11107) of point 1 of release v7.47
          below introduced an error which caused the above failure.
          The error is that on some interrupts an EOI was not sent.
       Fix:
          Modified the code to send an EOI for all interrupts 
          destined for the BRCM controller.
    4. Problem:
          The embedded CPU test (cputest or nictest c2) fails when the
          host CPU is throttled.
       Cause:
          The modification in version 7.52 point 7 caused this problem
          and additional delay is required in order for the embedded 
          CPU to return the pass indication to the host CPU.
       Fix:
          Increased the time out amount the host CPU waits for the
          embedded CPU before a failure is declared.

    version 7.56 :
    1. This version is based on B57diag Dos Diagnostics V7.56.

    2. Problem: (CQ #11933) (EFI1_1)
         5703s NIC does not show when in slot 4 of OEM system
       Cause:
         Diag has missed to scan the last item on the PCI IO deiveces list.  
         The device on the slot in question happened to be the last device 
         on the PCI IO devices list.  As a result, diag is not showing this device.

       Fix:
         Fixed code to scan all items on the PCI IO devices list.

    3. Problem:
          PCI cfg reg test failed on Shasta C0 at reg 0x6000.
       Cause:
          For Shasta C0 the functionality of register 0x6000 (the MSI
          register) has changed.
       Fix:
          Modified code to correctly test register 0x6000.

    4. Problem: (CQ #11960)
          'Cannot gain access to flash' error on OEM 5751 A1 LOM
       Cause:
         The issue happened during diag unloading driver and 
         only when ASF was enabled.  When diag was tring to gain NVRAM 
         arbitration before stop CPU, CPU was still loading ASF firmware.  
         Since the LOM was using EEPROM instead of flash, it took longer 
         time to load ASF from NVRAM. As a result, daig failed to gain 
         access to NVRAM.  
       Fix:
         To resolve this issue, diag will wait until 
         CPU completed loading firmware from NVRAM before accessing NVRAM.
 
   5. Enhancement: (CQ 11902)
          Add Command Line Option for Programming ASF SMBus Address
       Fix:
          Added -smbaddr <hex1> | <hex2>|<hex3> option switch to diag.
          -smbaddr can take mutiple parameters.
          Example:
          a. -smbaddr 45    (SMB Address = 0x45)
          b. -smbaddr 45 6c (SMB Address for 1st device=0x45 and 2nd device = 0x6c)

          -smbaddr must be used along with -c option.  
          Number of parameters for -smbaddr must be the same as number of devices 
          selected by -c.

          Example:
          b57diag -c 0 3 6 -smbaddr 6c 6e 70 -t abcd.
          b57diag c 0 e b57kia pasf asf.bin smbaddr 66 t abcd


    version 7.54 :
    1. This version is based on B57diag Dos Diagnostics V7.54.

    2. Problem: (CQ# 11708) (EFI_110)
          EFI64 DIAG fails to program MAC address
       Cause:
          The issue is due to mishandle the incoming charector in EFI system.  
          As a result, mac address cannot be programmed.
       Fix:
          Corrected the way how software handle incoming charector, mac address can be programmed to NVRAM.

    3. Problem: (CQ# 11707) (EFI_110)
          EFI64 DIAG Fails to create custom  bootcode bin file from EEPROM.TXT
       Cause:
          The issue is due to mishandling the eeprom.txt in EFI system.
          As a result, the command in eeprom.txt cannot take effect.
       Fix:
          Corrected the way how software handle command in eeprom.txt.

    version 7.46 :
    1. Enhancement:
          Add support to configure the 5704 SERDES TX Pre-Emphasis.
          The engineering mode "secfg" and "secfg4" commands, and the
          "-meep" DOS command line option now have options to enable
          the Pre-Emphasis and set the values for both ports.
       Fix:
          Added support as specified above.

    1. Problem: (CQ# 10966)
          b57diag -all option position dependent in command string
       Cause:
          "-firm" and "-firmall" are single task functions.
          They only take a few option switches which are entered after "-firm" and "-firmall" commands.  
          "-firm" will take: "-sil" and "-log" 
          "-firmall" will take: "-sil", "-log", "-updatesecfg" and "-updateasfcfg".
       Fix:
         "-all" has been added to "-firm" and "-firmall" option switches list. 

    2. Problem: (CQ# 11171)
          B57diag64.efi Test Failures (A3- Interrupt Test) on 5705 and 5750 NIC.
       Cause:
          There are a few new interrupt tests had been added to DOS diag for Shasta and 5705 to test out 
          the PCI interrupt mask.  Since EFI diag is using a time event to running interrupt test instead of
          true PCI interrupt, the new added test should not be run in EFI systems.
       Fix:
          Skip new added interrupt test for Shasta and 5705 in EFI diag. 

    version 7.45
   
    B57diag64.efi V7.45 is built for 64 bit EFI 1.10 systems only.
    This version is based on B57diag Dos Diagnostics V7.45.

