InsydeFlash for Windows (Use IHISI)

Version 4.04
------------
1.Support customize error message in [UpdateExtraData] section.
2.Fix passing platform.ini to bios data error. 

Version 4.03
------------
1.Add a command line parameter /noconfirm to disable confirm dialog. (This command must add as latest parameter.)
2.Modify Silent flag to match "-s" silent mode.
3.Update iFDPacker to v2.1.5.0. Fix v2.1.3.0 can't work in Windows 7 issue.

Version 4.02
------------
1.Fix the issue that InsydeFlash settings in "Option" and "Browse FD File" buttons won't effect until next launch.
2.Fix /cpf will load driver twice error.
3.Modify iFDPacker to package FlsHook.exe and FlsHook.dll.

Version 4.01
------------
1.Change sequence of id and size check function, and remove flag "Check_Before_ROM_Size".
2.Add to check extra data image and pop error message.
3.Fix cannot show confirm dialog in silent mode with "SilentWithDialog=2".
4.Fix cannot check bios size when image with header.
5.Add UI for silent mode normal flash process.
6.Fix do not show error when cannot found match file in multi-fd feature.
7.Fix the issue that AC power will be checked in UEFI flash when [CommonFlash] is removed.
8.Fix cannot show date in confirm dialog.
9.Support log status code to CMOS. The settings are in [Log_file] section with prefix CMOS_.
10.Fix the issue that USB mouse can work when flashing VBIOS region.
11.Fix will show <N/A> in new version edit.

Version 4.00
------------
1.Fix return code error issue when driver load fail.
2.Fix can't run EFI flash issue when [BIOSVersionFormat] BIOSVFEnable=1.

Version 3.99
------------
1.Modify warning message to "Do Not Remove the AC Power and Turn Off Computer During BIOS Flashing!" for OEM.
2.Modify definition of [Others] VerifyErrorRetry key from enable/disable retry to retry times.
3.Fix flash extra data with no data in image will error.
4.Fix show dialog with "DisableMouseAndKeyboardInput" will lock keyboard and mouse.
5.Don't check AC power in UEFI flash.
6.Allow same version flash in non-silent mode when [Bios_Version_Check] Flag=1 for OEM behavior.

Version 3.98
------------
1.Fix flash data size error in extra data feature.
2.Fix x64 common flash interface fail issue.

Version 3.97
------------
1.Fix UEFI flash will get error data with non-share EC update.
2.Fix that cannot flash BIOS after Intel ME update.
3.Support password check by BIOS feature (IHISI 43h).
4.Support flash by BIOS check feature (IHISI 44h).
5.Add new return error code in [ReturnErrorCode].
6.Fix 3D feature cannot flash VBIOS data.

Version 3.96
------------
1.Support show IHISI version.
2.Modify "UpdateExtraData" feature to support 3D panel.
3.Fix Windows PE cannot shutdown and reboot.
4.Fix the issues cause by Unicode feature.

Version 3.95
------------
1.Fix /ecp cannot get IHISI version from BIOS.
2.Modify to support flash EC only.
3.Extracting image size is incorrect for OEM feature.
4.Add a section [PermitFlashVersion] to support conditional process of BIOS update.
  When a serial bios from old to new is version A B C,
   the newest bios update package is version C,
   and version C only can update from version B.
  Then you can use this feature to warning user of version A on board to update to version B first.
5.Add EC_Path key of [UpdateEC] section to support update EC by inputed file path.
6.Fix bug: When CheckVersion=2 and the ME FW is the same, it will close intel tool and doesn't continue to update BIOS.
7.Fix bug: Set Platform_Check flag=1 and Bios_Version_Check flag=1 to platform.ini,
when bios version check is pass and platform ID is different, then WinFlash will flash the bios.

Version 3.94
------------
1.Fix cannot flash DXE region when you set "DXE=1" in 32 bit OS.
2.Fix flash in silent mode with not SilentWithDialog=1 and ActionOverride=1 will 
return error return code.
3.Add "/ECP" feature to flash non-share EC only.
4.Modify ATp feature.
5.Version check enhancement, add [BIOSVersionFormat] section in platfrom.ini.
6.Modify to flash ME before BIOS.

Version 3.93
------------
1.Fix "Reboot!" dialog can't popup after flash in command silent mode if set 
	"SilentWithDialog=2, [FlashFlashComplete]Action=2, Dialog=1" 
2.Fix will pop EC auto close dialog in silent mode with SilentWithDialog=1.
3.Fix will not passing ini to BIOS when run OEM1 special flash rule.
4.Add "ForceIHISIVersion" in "Others" section.

Version 3.92
------------
1.Add "ActionOverride" flag.
  Flash utility bases action key setting to do original behavior.  
2.Fix /cpf cannot process issue.
3.Fix when flash extra data with "DisableMouseAndKeyboardInput=1" will show error.
4.Add a section [PlatformVersion] in platform.ini.
  When the Flag=1 and platform check enabled, it will display the version string
   list in this [PlatformVersion] section and use it to compare.
  The Version is pair with the PlatformName.
  For example: When the platform ID matches with PlatformName2, the Version2 will be used.

Version 3.91
------------
1.Add new action definition when EC update completely.
2.Fix cannot copy correct BIOS image with sign file to USB dangle in 
Window XP system.

Version 3.90
------------
1.Add 16M ROM support
2.Add feature to pass parameter setting in platform.ini to BIOS.
3.Fix incorrect dialog pop up that cause when AT-P function enable and bios 
	update only.
4.Fix update non-share EC feature error.

Version 3.89
------------
1.Rename "ErrorRetryDelay" to "SMIErrorRetryDelay".
2.Rename "ErrorRetry" to "VerifyErrorRetry".
3.Fixed some situation will not return error code.
4.Update AtpTimerInfo.dll to 2.0.2.24.
5.Added silent mode return code and flash complete action.

Version 3.88
------------
1.Fixed some error return bugs.
2.Modify OEM special feature in silent mode with SilentWithDialog=1.
3.Updated 32bits AT-p component (AtpTimerInfo.dll).
4.Fix file path conver from unicode to ansi string will lose the non-English words issue.

Version 3.87
------------
1.Pure 64bits application support AT-p utility.
2.Added update extra data feature to update VBIOS.

Version 3.86
------------
1.Fix the issue that system will crash after flashing when Check_Before_ROM_Size = 1.

Version 3.85
------------
1.Added "AllowVersion" to support OEM1 EFI update feature.
2.Fixed flash non-share EC, EC cannot shutdown/Reboot. Update from 3.84
3.Fix incorrect spelling in "The BIOS image is corrupted or does not contain the correct digital signature. The system BIOS will not be updated."

Version 3.84
------------
1.Added check platform ID for UEFI update.
2.Add new warning/error message for AC/DC and Platform/Version check.
  (OEM specified message requirement)
3.Fixed flash whole BIOS with non-share EC or only BIOS region will show file size may not match.

Version 3.83
------------
1.Fixed Can not flash only BIOS region and non-share EC.
2.Support up to 20 PlatformName in platform.ini.

Version 3.82
------------
1.add /cpf command for copy file to specific partition and folder.

Version 3.81
------------
1.fixed IHISI failed when run /g command then run InsydeFlash again.
2.fixed can not run InsydeFlash from different folder.

Version 3.80
------------
1.Modify "CheckVersion". If set 2, tool will not 
	show error and continue to flash when ME flash error is cause of same version and downgrade 
 	version.
2.Fixed flash only BIOS region with only BIOS region data will not show new 
	version and check version.
3.Removed SMI error code in SMI error message.
4. Fixed  flash bios failed with AT-p utility.
5.Fixed EC size error.

Version 3.79
------------
1.Added "ErrorRetryDelay" and "SMIErrorRetry" at section "Others" in 
	"Pltform.ini".
2.Modify behavior of OEM special signed feature.
3.Added solution that tool cannot identify BIOS binary (single BIOS region) is ATp or non-ATp BIOS.
4.Fixed that finished updating single BIOS region cause fail with AT-P utility.
5.Fixed that execute tool casue fail on Windows XP.

Version 3.78
------------
1.Added Calpella ME feature.
	[UpdateOEMME]
	MEFileName=
	CheckVersion=0
2.Added option "/ecr" and "/ecw" to access extend CMOS
3.Modified "UpdateME" to "UpdateOEMME" and run Calpella ME feature.
4.Modified behavior about ATp feature in tool.
5."BeforeRunToolDelayTime" will Delay before UI dispaly.

Version 3.77
------------
1.Fixed get IHISI version error.
2.Added "MPCIIO" in Multi-FD.
	You can input many "PCI" or "IO" to check, even if "PCI" and "IO".
	If all of them match, tool will get this file to flash.

Version 3.76
------------
1.Modify when flash EC, tool will check EC rom size before flash BIOS. This 
is depended on IHISI version.
	When IHISI is newer than 1.8.6, it will check before BIOS flash.
	If not, it will check after BIOS flash.
2.Fixed flash EC with BIOS will flash many times error.
4.Added "DelayBeforeFlash" to delay before flash.
5.Modify "BeforeFlashDelayTime" to "BeforeRunToolDelayTime".
6.Added some messages and modified behavior about ATp feature in tool.
8.Modify confirm message.

Version 3.75
------------
1.Fixed tool will send wrong EC size to BIOS with non-share EC.
2.Extended the EC buffer size to 2M.
3.Support OEM special request about check RSA check sign feature.
4.Skip check platform name and version feature will confirm BIOS.
5.Modify when flash EC, tool will check EC rom size before flash BIOS.
6.Add Platform data region access feature.
7.Add Platform_Check = 3 and Bios_Version_Check = 2 will get BIOS setting.
8.Modify default value of Platform_Check, Bios_Version_Check and ALL.

Version 3.74
------------
1.Modify main dialog logo and string font.
2.Added tool and BIOS hand shaking feature.
	Tool send BIOS information that include tool and OS version by functoin 10h.
	Get the customer vendor ID in function 10h.

Version 3.73
------------
1.Fixed to use /base /size option will hang.
2.Fixed to erase variable by ini will hang.
3.Fixed when setting "flag=2" in the section name "PlatformCheck" will get new name when current 
  platform name and new platform name are match.

Version 3.72
------------
1.Fixed tool will show "Winodws 7" when it can not load driver in Windows XP.
2.Fixed tool will wait when using silent mode with no AC plug in.
3.Fixed error message when binary file not with EC part in UpdateEC feature.
Change show "Error:File may not have ME rom" to "Error:File may not have EC rom".
4.Fixed platform check get ID fail, when updateEC flag = 2.
5.Add "/base:" and "/size:" to input base and size when use "/g" to read BIOS.
6.Modify Silent mode behavier: 
    When SilentWithDialog=0, Not show any dialog.
	When SilentWithDialog=1, Show main dialog only.
	When SilentWithDialog=2, Show all dialogs without main dialog.
7.When SilentWithDialog=1 and run in silent mode, tool will check same 
version and not flash. (This Silent mode is mean use "-s" in command line)

Version 3.71
------------
1.Add "/lg:" to input the GUID.

Version 3.70
------------
1.Fixed the situation that tool will hang in XP on some platforms.

Version 3.69
------------
1.Modify Me flash feature.
  Support separate ME binary, and two type of Me:
  1.FULL SKU.
  2.Ignition SKU.

Version 3.67
------------
1.Add "/cr" and "/cw" to access CMOS in console mode.
2.Fixed some error word in status message when option flag set.

Version 3.66
------------
1.Add flash Me feature.
2.Fixed message from "If you are running this utility in Vista" to "If you are 
running this utility in Windows 7" for Windows 7 system.

Version 3.65
------------
1.Do not show dialog with "-s".
2.Fixed the problem can not get the return code.
3.Add flag "SilentWithDialog".

Version 3.64
------------
1.Modify the EC shutdown and reboot to get the "Action" in "FlashComplete".
2.Change "flag" in "Platform_Check". If flag=1 compare new rom platform name 
  and current platform, else if flag=2 get the below names to compare.

Version 3.63
------------
1.Add "Progress_Bar" in ini file: Flash EC with draw progress bar.

Version 3.62
------------
1.Add "BIOS_Only" in ini file: Only flash BIOS when EC and bios are merge in the same file.

Version 3.61
------------
1.Before update EC after flash bios show dialog, change status and add flag 
  "EC_Dialog=0" in ini file.
2.Fixed when tool flash on Calpella, the SMI will fail sometimes.

Version 3.60
------------
1.Expand EC buffer to 0x100000.

Version 3.59
------------
1.Fixed can not flash when rom file with platform region.

Version 3.58
------------
1.Fix the tool cound not run in UEFI OS(GPT format).

Version 3.57
------------
1.8M support.
2.Fixed the error message when you flash same bios.
3.Fixed UpdateBlock feature about coundn't flash 
  if physical address small than 0xFFF00000.
4.Fixed the processbar action problem, sometimes cound not process.

Version 3.56
------------
1.Fix BVDT Protect when the move region size smaller than 0x1000.

Version 3.55
------------
1.Fix BVDT protect function.

Version 3.54
------------
1.Fix some bug and some dialog string.

2.Modify backup rules.

[BackupROM]
Flag=0
FilePath=
FileName=
 
Flag 1   -> Backup current BIOS and new BIOS binary
FilePath -> If user does not enter the file path, utility will use current directory.
FileName -> If user does not enter the file name, utility will use platform ID.
xxx.xxx = Current BIOS image
xxx_01.xxx = Previous BIOS image
xxx_new.xxx = New BIOS image

Version 3.53
------------
1.Fix a bug in FlashTester.

Counter is not correct.

2.Add mew BVDT protect function
3.Modify "Error:No FD match in INI settings." to "It is not for your notebook."

Version 3.52
------------
1.Add new key in INI setting

The "Disable read" function in DOS Flashit will skip "Compare" and "Verify" steps.
In INI file, "DisableCompare" only skip "Compare" step.
However, some OEM/ODM projects can not read binary from flash part.
Windows version add "DisableVerify" key in INI, It will disable "Verify" step if this key is 1.

2. Add BIOS binary selection in INI file.

[MULTI_FD]
Flag=1
FD#01=PCI,0,1F,2,80,7006,7007,9.fd
FD#02=PCI,2,0,0,4,100006,100007,7.fd
FD#03=PCI,2,0,0,18,0c,0e,9.fd
FD#04=PCI,0,1f,0,0,0015808F,2815808F,8.fd
FD#05=IO,C0,5AABFE02,5AABFE02,9.fd
FD#06=IO,1F6,E7,E4,7.fd
FD#07=IO,C0,fe03,fe03,7.fd
FD#08=IO,C0,03,01,7.fd
FD#09=PCI,2,0,0,0,813,812,9.fd

Flag 1 -> Multi-FD mode, 0 -> normal mode
FD#XX support 99 files FD#01 ~ FD#99
FD#XX=IO Type,Offset,Mask,Value,File name
FD#XX=PCI Type,Bus,Device,Function,Offset,Mask,Value,File name
Type -> Support IO space and PCI address type
Offset -> Offset (HEX)
Mask -> IO type support BYTE, WORD, DWORD (HEX). For example, BYTE -> 03, WORD -> 0A01, DWORD 100400D3 
     -> PCI type support DWORD only
File name -> File name of FD
If [Offset] & Mask == Value, then flash the following file.

3. Support Windows PE 2.0 x64 version

User must run InsydeFlashx64.exe in x64 PE.
The user can make pure x64 InsydeFlash in FD Packer.

4. Support FD argument

For example: Run InsydeFlash.exe xxx.fd
It will skip MULTI_FD in INI and auto-searching FD.

5. Support /g argument

For example: Run InsydeFlash.exe xxx.fd /g
Just like DOS version, user can read current ROM to a file.

6. Verify regions(descriptor mode) in ROM file.


Version 3.48
------------
1.When user enable UAC in Vista, the user need to "Run as administrator" with InsydeFlash.

Now, InsydeFlash will notice Vista. Vista will pop up message box.

2.Fix unstable place when InsydeFlash is initializing.

Version 3.47
------------
1.Change InsydeFlash behavior.

OLD : Even AC flag is 1, AC adapter does not plugged but battery life percent is fine. InsydeFlash allow flash process.
NEW : If AC flag is 1, AC adapter should be plugged.

Version 3.46
------------
1.Fix a battery detection bug.

InsydeFlash will get current battery life percent value from OS and compare
with value in platform.ini

[AC_Adapter]
BatteryCheck=1
BatteryBound=20

Also, if battery life percent is not enough, it will display the value in message box.

Version 3.45
------------
1.In platform.ini, InsydeFlash add more keys for model checking process.

For example, ODM may have one BIOS for different model.
They need to use different ID in different model.

There are two kinds of solutions.
First, user add ID list in ini file. User set Flag to 2.

[Platform_Check]
flag=2
PlatformName=AAA1
PlatformName2=AAA2
PlatformName3=AAA3
PlatformName4=AAA4
PlatformName5=AAA5
PlatformName6=AAA6
PlatformName7=
PlatformName8=
PlatformName9=

Second, ODM reports all IDs in one string at IHISI function 11h and BVDT.
For example, the string will be like "AAA1AAA2AAA3AAA4AAA5AAA6"
Also, some share ROM model need check EC's id, ODM can combine the ID with this string.

2.iFdPacker version 2.0.5

The single execution file's icon change to official Insyde icon.

Version 3.44
------------
1.Platform.ini add [VARIABLE] to erase variable 

Version 3.43
------------
1.Fix flash after platform can not boot to OS

Version 3.42
------------
1.Confirm dialog always on top

Version 3.41
------------
1.Fix fail issue that user press start button

Version 3.40
------------
1.Add a GET FD file button
  [UI]
  GetFDFileButton=0

Version 3.39
------------
1.Add a wrong mesage box

Version 3.38
------------
1.Add when error message occur , unlock keyboard and mouse
2.Fix PlatformName by ini display error

Version 3.37
------------
1.fix "Alone Flash Region binary file" function can not flash EC
2.fix "Alone Flash Region binary file" function flash protect area issue

Version 3.36
------------
1.fix "Alone Flash Region binary file" function issue

Version 3.35
------------
1.Add "Alone Flash Region binary file" function
2.Modify "write HDCP key" function read file rule

Version 3.34
------------
1.Remove program window (X) button.(Beta1)
2.Add Retry checking AC power function.(Beta1)
3.Modify some wrong message.(Beta2)
4.Add on flashing playing wav file.(Beta3)
5.support IHISI function 19h(Beta4)
6.Lock all input without system key("CTRL+ALT+DEL")(Beta5)
7.Add check platform name by .INI function(Beta6)
8.Add return code set by .INI(Beta6)
9.Add a new argument(/WH) for "write HDCP key function"(Beta7)
10.support IHISI 1.7.4(OEM/ODM customization-2)(Beta8)

Version 3.33
------------
1.Fix driver bug.
2.Add /EV arguments

Version 3.32
------------
1.Add Disable read compare by IHISI(function 11h)
2.Add new Variable(SLP2M & SLP2P)
3.Add support IHISI spec 1.7.1 new feature
4.Add Disable model name & Version display by IHISI(function 11h)

Version 3.31
------------
1.Add Display Wrong message on Dialog "Do not turn off your computer"

Version 3.30
------------
1.Support R3.5 code base for "patch logo function"

Version 3.29
------------
1.Add Region map arguments(BIOSĦBGbEĦBMEĦBDESC)

Version 3.28
------------
1.Add DLL_AP_FlashComplete function
2.Add ICL50_M005_TURN_OFF_DTS
3.Add APTURN_OFF_DTS
4.Add AP_Read_Memory_Buffer

Version 3.27
------------
1.Add error code configuration.
2.Add silent style in console mode (-s).

Version 3.26
------------
1.Add application flash (64bit)

Version 3.25
------------
1.Fix 64bit driver bug.

Version 3.24
------------
1.Add application flash (32bit)

Version 3.23
------------
1.Fix driver bug.
2.Add retry function.
3.Add read compare switch.

Version 3.22
------------
1.Add error return code.
2.Support binary variable access.

Version 3.21
------------
1.Add /C arguments

Version 3.20
------------
1.Add UI configurations.

Version 3.19
------------
1.Dynamic find IHISI main function number.
2.Add UI configurations.

Version 3.18
------------
1.Add BVDT.
2.Add ID display.

Version 3.17
------------
1.Fix buffer overflow bug.

Version 3.16
------------
1.Modify iFdPacker function.

Version 3.15
------------
1.Add /1 /2 /4 /8 arguments.

Version 3.14
------------
1.Add command line argument for iFdPacker.
2.Add FV ID protection.

Version 3.13
------------
1.Support BIOS IHISI 1.6.2
2.Add log file argument.

Version 3.12
------------
1.Add command line arguments

Version 3.11
------------
1.Fix UI block problem

Version 3.10
------------
1.Add silent mode
2.Add tool: InsydeFdPacker

Version 3.06
------------
1.Add a key in INI for turn on/off end dialog.
2.Fix file not found bug

Version 3.05
------------
1.Support BIOS IHISI 1.5.8
2.Add FV update mode

Version 3.04
------------
1.Support BIOS IHISI 1.5.7

Version 3.03
------------
1.Support BIOS IHISI 1.5.6

Version 3.02
------------
1.Supprt BIOS IHISI 1.5.5
2.Utility can covert logo image.
