AFU (AMI Firmware Update) is a package of utilities used 
to update the system BIOS under various operating systems.  

Note: AFU only works for APTIO with SMI FLASH support.
      Compatible with Aptio 3, 4, 4.5 and later.
      For supporting Secure Flash, the following eModules are required to be included in the firmware:
            - Secure Flash Pkg (4.6.5.1_SECMOD_003 or later)
            - CryptoPkg (4.6.5_CRYPTOAPI_0003 or later)
            - Capsule (4.5.6_Capsule_00 or later)
            - SMIFlash (4.6.3.6_SMIFLASH_23 or later)
            - OFBD (4.6.3.2_OFBD_1.0.2 or later)
            - OFBD Secure Flash (4.6.5.0_OFBD_SECURE_FLASH_0.0.5 or later)


The package includes:

- AFUEFI64 3.01
- AFUEFI Release Notes
- AFU User Guide

To run, extract all of the files from the folder with the name corresponding to the desired operating system.


Usage (applies to AFUWIN, AFUDOS, AFUEFI and AFUEFI64...
       for usage of AFUBSD and AFULNX see help files provided in their folders):
------------------------------------------------------------------
AFUXXX <BIOS ROM File Name> [Option 1] [Option 2]
Or
AFUXXX <Input or Output File Name> <Command>
Or
AFUXXX <Command>

BIOS ROM File Name
The mandatory field is used to specify path/filename of the BIOS ROM file with extension.

Commands
The mandatory field is used to select an operation mode.
- /O	Save current ROM image to file
- /U	Get and display ROM ID from BIOS ROM file
- /S	Refer to Option: /S
- /D	Verification test of given ROM File without flashing BIOS.
- /A	Refer to Option: /A
- /OAD	Refer to Option: /OAD
- /CLNEVNLOG 	Refer to Option: /CLNEVNLOG

Options
The optional field used to supply more information for flashing BIOS ROM. Following lists the supported optional parameters and format:
- /Q	Silent execution
- /X	Do not check ROM ID
- /CAF  Compare ROM file's data with Systems is different or not, if not then cancel related update.
- /S	Display current system's ROMID
- /HOLEOUT: Save specific ROM Hole according to given RomHole GUID.
- /SP 	Preserve Setup setting.
- /R	Preserve all SMBIOS structures during programming.
- /Rn	Preserve SMBIOS type N during programming.(n=0-255)
- /B	Program Boot Block
- /P	Program main bios image
- /N	Program NVRAM
- /K	Program all non-critical blocks
- /Kn	Program n'th non-critical block (n=0-15)
- /HOLE: Upate sepcific ROM Hole according to RomHole GUID.
- /L	Program all ROM Holes
- /Ln	Program n'th ROM Hole only (n=0-15)
- /ECUF	Update EC BIOS when newer version is detected.
- /E	Program Embedded Controller block
- /ME	Program ME Entire Firmware Block.
- /MEUF	Program ME Ignition Firmware Block.
- /A	Oem Activation file.
- /OAD	Delete OEM Activation Key
- /CLNEVNLOG	Clear Event Log.
- /CAPSULE	Override Secure Flash policy by Capsule
- /RECOVERY	Override Secure Flash policy by Recovery
- /EC		Program Embedded Controller Block. (Flash Type)
- /REBOOT	Reboot after programming.
- /SHUTDOWN 	Shutdown after programming.


Rules
- Any parameter encolsed by < > is a mandatory field.
- Any parameter enclosed by [ ] is an optional field.
- <Commands> cannot co-exist with any [Options].
- Main BIOS image is default flashing area if no any option present.
- [/REBOOT], [/X], and [/S] will enable [/P] function automatically.
- If [/B] present alone, there is only the Boot Block area to be updated.
- If [/N] present alone, there is only the NVRAM area to be updated.
- If [/E] present alone, there is only the Embedded Controller block to be updated.
- [/CAPSULE] and [/RECOVERY] commands present only while Security Flash Module exists in the BIOS.
