**************************************************************************
*                                                                        *
*  Copyright (c) 2007 Broadcom Corporation.                              *
*  This program contains proprietary and confidential information. All   *
*  rights reserved except as may be permitted by prior written consent.  *
*                                                                        *
**************************************************************************


                      Broadcom (R) Corporation
                           USHUPGRADE
             Windows Utility to Upgrade the USH Firmware


                         RELEASE 1.11.5
                           (1/7/2009)

                         RELEASE NOTES



=======================================
Description
=======================================

This is a windows based utility that will upgrade the USH firmware.


=======================================
Usage
=======================================

Refer to readme.txt for operating instructions.


=======================================
History
=======================================

ver   date          description
===============================================================================

1.11.5 2009/01/07   * Added logging into ushupgrade.log file.
                    * Adjusted some return codes.

1.11.4 2009/01/06   * Changed "reset" messages to "restart".
                    * Only retry CV BCM update once.
                    * TPM update: Reset to SBI after clear SCD.
                    * When waiting for USH to come back, also check rtc for longer than normal command responses.
                    * Removed initial message about TPM updates.
                    * If BCM fails (only display AH message).

1.11.3 2008/12/31   * Added reset message when CV update completes OK, and changed return code to 1.

1.11.2 2008/12/30   * Retry PBA packet if fail.
                    * Added more error checks when TPM PBA fails.

1.11.1 2008/12/23   * If TPM upgrade generates auth failure, display appropriate message.
                    * If TPM upgrade fails SBI update, display message to try upgrade via CV and steps to disable TPM.

1.11  2008/12/23    * Modified ushupgrade to also be called via the command line.
                    * Now return error code.
                    * Only display message box if batchMode not enabled.
                    * Created KillTask API to kill task from a list.
                    * Get version number from app.rc.

1.10a 2008/12/19    * TPM upgrades: after reset, verify USH comes back before continuing.
                      This requires updated fwupgrdtool.exe (/rsts command).
                    * When upgrade fails, display "Reset and Retry" message.
                    * Only show Exit button when fail update API.

1.10  2008/12/12    * Enabled firmware update via TPM.
                    * TPM: Now update SBI, SCD, SCD1 via TPM.
                    * TPM: Reset to USH via TPM.
                    * TPM: Don't reset when update SCD, SCD1 or BCM

1.9e  2008/12/08    * Don't kill off the following processes\services:
                      Dell.UCM.exe, SMManager.exe & DCPButtonSvc.exe

1.9d  2008/12/07    * The tool was killing off following processes\services:
                      Dell.ControlPoint.exe  HostStorageService.exe  HostControlService.exe  bcmdeviceAndtaskStatusService.exe
                      Now also killing off the following processes\services:
                      DCPSysmgr.exe    TdmService.exe  Dell.UCM.exe      SecureUpgrade.exe
                      WavXDocMgr.exe   SMManager.exe   DCPSysMgrsvc.exe  DCPButtonSvc.exe

1.9c  2008/12/06    * After killing off the tasks, wait 3 seconds before verifying they are removed.
                    * If tasks are not removed, try one more time.
                    * Prior to issuing a reset, issue a cv_open and cv_close (to fix 0x0e error).

1.9b  2008/12/05    * If TPM enabled, do not update firmware.

1.9a  2008/12/05    * If fail flash SBI due to TPM, change ERROR to Warning.
                    * When USH does not comeback from reset, show exit button.
                    * When press start button, kill off host and DCP tasks.
                    * Then verify that the host and DCP tasks are removed.
                      If any are still running display error and exit button.
                    * If get 0x100002 error, show dll mismatch error and show exit button.

1.9   2008/11/26    * When rescan hardware force waiting more.
                    * For Anti-hammering issue, change text from "reset system" to "power cycle system".
                    * Added logic to retry BCM if failed. Added more error checking on bcm update.
                    * Hide Cancel button when start upgrade.
                    * Check if hit anti-hammering on last reset, then say OK.
                    * Moved common strings into defines.

1.8   2008/11/21    * Fixed GUI, so always update GUI window (added background worker).
                    * If USH does not comeback after reset, rescan hardware and wait somemore.
                    * If TPM enabled, update PBA and then use fwupgrdtool.exe to update BCM.
                    * Changed initial message to: "To fully update teh USH firmware, the TPM should be deactivated."

1.7   2008/07/03    * If PBA download fails due to Auth Error, set admin to our, do PBA download then clear CV Admin.

1.6   2008/07/03    * No longer clear CV Objs when init CV Admin for PBA download.

1.5   2008/06/23    * Removed the logic to chagne cust ID.  Support A0, B0, C0 NONOTP, C0 CustID1, and C0 CustID7.

1.3   2008/06/04    * Mods for changing cust ID 1 to 3.

1.2   2008/05/22    * Change cust ID 1 to 3.

1.1   2008/05/21    * Improved reset logic wait to wait up to 15 seconds and poll
                      once a second to see if the device came back up.

1.0   2008/05/09    * Initial release


=======================================
Known issues:
=======================================

1)  During the update process, the USH will reset several times.  When the USH comes back up, it may
    renumerate with a different PID.  There must be a CV USB Driver associated with these PIDs.
    If there is no driver associated with the new PID, this utility will not detect the USH starting
    back up and stop the upgrade process.  When there is no driver associated with the new PID,
    windows will indicate that it found new hardware (Credential Vault Device) and prompt you to
    install a driver for the device.  Select the existing Credential Vault Driver (cvusbdrv.sys)
    for the new hardware found.  Once the driver is loaded rerun this utility.
