American Megatrends, Inc.

SMIFlash

Copyright

Release Notes

© American Megatrends, Inc.


Release Notes - NDA Required

Component Information:
Component Title: SMIFlash
Component Reference Name: SMIFlash
Component Type: eModule
Release Date: 2016-04-12
Source Control Label: 4.6.3.6_SMIFLASH_31
Source Control Location: SS:\\Alaska\Source\Modules\SMIFlash

Dependencies
N0NE
Non-Compiled BIN and LIB File(s) within this Component:
N0NE
Component Description:
The SMIflash module provides the BIOS interface to flash system BIOS through the use of the SMI interface. This can be achieved in DOS, Shell or Windows by using AMI’s AFU utilities.
Filename | Description
SMIFlash.cif | Component information file for the eModule.
SMIFlash.sdl | Contains BIOS build parameters.
SMIFlash.c (i)Register For Software SMI Notification.
(ii)Handle The Software SMI Notification.
(iii)Generate Software SMIs.
SMIFlash.mak | Make file becomes part of the BIOS build process.
SMIFlash.dxs | This file contains list of the dependent GUID for SMIFlash Driver.
SMIFlashDxe.dxs | This file contains list of the dependent GUID for SMIFlash DXE Driver.
SMIFlashLinks.c | This file contains Elinks for SMIFlash Driver.
SMIFlash.chm | File that provide necessary information about SMIFlash driver.
ModulePart Name: SMIFlash Protocols
ModulePart Description: This SMIFlash Protocols ModulePart does the declaration of the services that it will provide and give the defination of the protocols that SMIFlash driver will support.
Filename | Description
SMIFlashProtocols.CIF | Component information file for SMIFlash Protocol module part.
SMIFlash.h | Files that contain SMIFlash Related Functions declaration and Protocols defination.
Function Name: SMIFlash Software SMIs
Function Description: To use SMIFlash Driver Software developer already register some SMI Command Value with some functions within SMIFlash.c.
The following functions are used in the file: SMIFlash.c :
SMI Command value | Function | Description
0x20 | Enable Write Flash | This function chooses the correct flash part to call and then enables write operation for a flash device
0x21 | Read Flash | This function allows to read from the Flash.
0x22 | Erase Flash | This function allows to erase the onboard loaded Flash contains.
0x23 | Write Flash | This function allows to write into the Flash.
0x24 | Disable Write Flash | This function chooses the correct flash part to call and then disables write operation for a flash device.
0x25 | Disable Write Flash | All the Flash related information regarding Length, Version, Implementation, Total Block that Flash have & Starting Address of BB, NVRAM & MAIN Block & if EC_FIRMWARE_UPDATE_INTERFACE_SUPPORT && SMI_FLASH_INTERFACE_VERSION>10 then it supports EC block also.
AMI Build Tools:
Tools Label: 4.5.5_tools_34, Dated: 2010-10-06
Visual eBios: RSS.5.70.0171, Dated: 2010-10-04
Compiler Tool(s): Microsoft Windows Driver Kit (WDK) Ver. 7.1.0 build 7600.16385.1
New features added in this label:
N0NE
General Bug Fixes:
N0NE
EIP addressed in this label:
EIP156780, EIP166597
Files changed for EIP fixes:
SMIFlashLinks.c
Known issues and limitations in this label:
N0NE
Remaining Issues:
N0NE
Unit Testing:
N0NE
Validation Testing:
N0NE
Release History:

Label : 4.6.3.6_SMIFLASH_31
Improvement:
1. (EIP261702) Register event to get UsbRtKbcAccessControl() function to disable keyboard.
BugFix:
1. (EIP262060) Buffer Overflow Vulnerability
[RootCause] SmiFlash interface security vulnerability if the buffer address is starting before/less SMM Base and the buffer length is larger than SMM size.
[Solution] Adapted the CheckAddressRange function as the "AmiValidateMemoryBuffer" function of the AptioV.

Label : 4.6.3.6_SMIFLASH_30
Improvement:
1. (EIP249791) SMM Buffer Validation - additional vulnerability.
BugFix:
None

Label : 4.6.3.6_SMIFLASH_29
Improvement:
1. (EIP211721) Modify codes to call UsbRtKbcAccessControl() instead of using outside smm pointer.
BugFix:
None

Label : 4.6.3.6_SMIFLASH_28
Improvement:
1. (EIP156780) Boot related variables preserving while re-flashing in Aptio 4.
2. (EIP166597) Removing RT from variables could cause problems accessing variables if PRESERVE_EFIBOOTORDER=1
BugFix:
None

Label : 4.6.3.6_SMIFLASH_27
Improvement:
None
BugFix:
1. (EIP145305) Fixed failed to restore variables if "BACKUP_NVRAM_WHEN_FLASH Token" is Disabled and Nvram is in Backup Area.

Label : 4.6.3.6_SMIFLASH_26
Improvement:
1. (EIP64328) Update modules to be compliant with PI 1.2 and UEFI 2.3.1 specifications.
BugFix:
1. (EIP100950) Fix the attribute of Win8 Debug Variable been changed after restored.
2. (EIP98199) The #### in Boot#### should be upper case.

Label : 4.6.3.6_SMIFLASH_25
Improvement:
1. Emulation SMI should be disabled before Read/Write 60/64 ports in smiflash(EIP92023).
2. Preserve SMBIOS Data if Secure Update with Recovery mode.** AFU 3.03 have support to preserve Romholes(EIP86878).
3. As Windows Logo requirment, need support to preserve all UEFI variables with VendorGuid {77fa9abd-0359-4d32-bd60-28f4e78f784b} between flash updates(EIP87892).
4. Restore variables when recovery(EIP81706).
BugFix:
1. Fix sometimes Deadloop when GetNextVariableName.
2. Fix build error when EC_FIRMWARE_UPDATE_INTERFACE_SUPPORT is on.

Label : 4.6.3.6_SMIFLASH_24
Improvement:
1. Support all NCB updated when Sceure Flash Update is Enabled.
2. Don't update NVRAM backup blocks when AFU(Keep a backup nvram).
3. Get Secure keys form backup region when keys not found.

Label : 4.6.3.6_SMIFLASH_23
Improvement:
1. Support OA key update when Sceure Flash Update is Enabled.

Label : 4.6.3.6_SMIFLASH_22
Improvement:
1. Updated for Secure Update.
Bug Fixed:
1. (EIP54533)Request for afu capable updating OEM firmware volumes separatly.

Label : 4.6.3.6_SMIFLASH_21
Improvement:
1. Removed BiosLockEnablePatchHook hook. Moved to Chipset file.
2. Also enable/disable PS2 keyboard in Enable/DisableUSBKBD hook.
3. (EIP54533) Request for afu capable updating OEM firmware volumes separatly.
4. (EIP73027)SavedBootXXX - conditionally not set.
5. (EIP73017)SavedBootXXX - conditionally not set.
Bug Fixed:
None.

Label : 4.6.3.6_SMIFLASH_20
Improvement:
None.
Bug Fixed:
1. Fix system hangs when AFU, memory doesn't free property.

Label : 4.6.3.6_SMIFLASH_19
Improvement:
1. Speed up NVRAM restore.
2. Report project Tag length to AFU.
3. Read buffer from shadow(Token : AFU_BUFFER_IN_SHADOW).
4. Add OA30 Block type.
Bug Fixed:
1. AFU will hang when restore BootXXXX size is greater than 0x200.
2. Fix build error when AMIUSB_SUPPORT is disabled.
3. Boot#### variable , the #### should be upper case of A-F.

Label : 4.6.3.6_SMIFLASH_18
Improvement:
1. Added Elinks "SMIFlashInSmmList", "SMIFlashPreUpdateList" and "SMIFlashPreUpdateList" for OEM used.
2. Added Elinks "BiosLockEnablePatchHook" for Intel BIOS Lock feature.
Bug Fixed:
None.

Label : 4.6.3.6_SMIFLASH_17
Improvement:
1. Add Elinks to GetFlashInfo.
2. Replace Memory Read by SPI Read.
3. Move Elinks to a new file SMIFlashElinks.c.
4. Remove USB Protocol dependency .
5. Preserve BOOTxxxx for all EFI OS .
Bug Fixed:
None.

Label : 4.6.3.6_SMIFLASH_16
Improvement:
1. Report NVRam backup address as NVRam block.
Bug Fixed:
1. When FAULT_TOLERANT_NVRAM_UPDATE is on and system runs on nvram backup area, system might lose restore variables after updating NVRam blocks(because after updating NVRam block, system works on main nvram block next boot).

Label : 4.6.3.6_SMIFLASH_15
Improvement:
1. After flashupdate, Silent boot setup option is not restored to default value.
2. USB K/B and USB M/S should be stopped during flashing BIOS.
3. Add E-link to Disable/Enable when updating BIOS.
Bug Fixed:
None.

Label : 4.6.3.6_SMIFLASH_14
Improvement:
1. Disable Power Button when flash ROM image.
2. Restore BOOTxxxx Variable contains “Windows Boot Manager” for EFI OS.
Bug Fixed:
1. When Update NVRAM region by AFU, Password will not be restore if Password length is changed.

Label : 4.6.3.6_SMIFLASH_13
Improvement:
1. Add a parameter FlashCapacity for ME update. Report Flash Part information to AFU.
Bug Fixed:
None.

Label : 4.6.3.6_SMIFLASH_12
Improvement:
1. SmiFlash module is updated to use new Flash Protocol introduced in Core 4.6.3.6 Flash library calls are replaced with the protocol function calls.
Bug Fixed:
None.

Label : 4.5.3_SMIFLASH_11
Improvement:
1. Reverted changes to use flashread for reading byte data. Also changes related the use of Non critical blocks for bootblock Recovery Data across flash when /b option is used in afudos.
Bug Fixed:
None.

Label : 4.5.3_SMIFLASH_10
Improvement:
1. Elink added of generic Preserve_lib for modules to hook into for functions that need to be executed before writing flash and after.
Bug Fixed:
None.

Label : 4.5.3_SMIFLASH_09
Improvement:
1. PRESERVE_PASSWORDS - Supported added for preservation of setup if flashing using the SMIFLASH interface (Token Based). Support added to allow Elinking to SMIFlashPreUpdateList and SMIFlashEndUpdateList for functions that need to be executed to before writing to flash and after writing to flash part.
Bug Fixed:
None.

Label : 4.5.3_SMIFLASH_08
Improvement:
1. Increase the size of Index (to UINT16) variable for case where number of blocks is more than 255.
Bug Fixed:
None.

Label : 4.5.3_SMIFLASH_07
Improvement:
None.
Bug Fixed:
1. Readflash failed for 1.5Mb flash size.

Label : 4.5.3_SMIFLASH_06
Improvement:
1. Added support for preservation of passwords through flashing. Requires NVRam update.
Bug Fixed:
None.

Label : 4.5.3_SMIFLASH_05
Improvement:
None.
Bug Fixed:
1. Previous label (4.5.3_SMIFLASH_04) does not work. This label fixes the issue.

Label : 4.5.3_SMIFLASH_04
Improvement:
1. Embedded Controller Support added
2. Upgraded to use new flash interface.(requires Core 4.5.3 and Flash_Combined_01)
Bug Fixed:
None.

Label : 4.5.3_SMIFLASH_03
Improvement:
1. Changes to treat error-logging area as part of NVRAM.
Bug Fixed:
None.

© American Megatrends Inc.


Function by File Name

AMIBIOS Function Reference

By File Name

The following is a list of the source files.
For a list in alphabetical order, see In Alphabetical Order.

Built on 15:47:46 04/12/16


Functions in Alphabetical Order

AMIBIOS Function Reference

In Alphabetical Order

The following topics provide a list in alphabetical order.
For a list by file name, see By File Name.

Built on 15:47:46 04/12/16


AMIBIOS Function Reference

General Information

Built on 15:47:46 04/12/16


Copyright

American Megatrends, Inc.
5555 Oakbrook Parkway
Suite 200
Norcross, GA 30093 (USA)

Copyright (c) 1999-2011 American Megatrends, Inc. All Rights Reserved.

This publication contains proprietary information, which is protected by copyright. No part of this publication may be reproduced, transcribed, stored in a retrieval system, translated into any language or computer language, or transmitted in any form whatsoever without the prior written consent of the publisher, American Megatrends, Inc.

American Megatrends, Inc. retains the right to update, change, modify this publication at any time, without notice.

For Additional Information

Call American Megatrends BIOS Sales Department at 1-800-828-9264 for additional information.

Limitations of Liability

In no event shall American Megatrends be held liable for any loss, expenses, or damages of any kind whatsoever, whether direct, indirect, incidental, or consequential, arising from the design or use of this product or the support materials provided with the product.

Limited Warranty

No warranties are made, either expressed or implied, with regard to the contents of this work, its merchantability, or fitness for a particular use. American Megatrends assumes no responsibility for errors and omissions or for the uses made of the material contained herein or reader decisions based on such use.

Trademark and Copyright Acknowledgments

All product names used in this publication are for identification purposes only and are trademarks of their respective Companies.