American Megatrends, Inc.

Flash

Copyright

Release Notes

© American Megatrends, Inc.


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.


Release Notes - NDA Required

Component Information:
Component Title: Flash Library
Component Reference Name: FLASH_COMBINED_SOURCE
Component Type: eModule
Release Date: 2012-03-18
Source Control Label: 4.6.3_Flash_Combined_2_34
Source Control Location:SS:\\Alaska\Source\Flash_Combined_2\Core

Dependencies
N0NE
Non-Compiled BIN and LIB File(s) within this Component:
N0NE
Component Description:
1. This Flash library supports flash parts of multiple types in the same build. FWH, LPC, and SPI types are supported.
2. The “Flash_Combined_2” module is going to replace the “flash_combined” module. The “Flash_Combined” module will not be updated, all the new flash parts support and new SPIs support will only be updated to “Flash_Combined_2” module.
3. The “Flash_Combined_2” module is fully compatible with “Flash_Combined”, the difference between the “Flash_Combined_2” and “Flash_Combined” is the part of SPI. For generic and OEM reason, the porting of SPI part is split from chipset to be an independent component.
4. The “Flash_Combined_2” module includes a “DUMMY SPI” component as default for compiling only. Please add the proper SPI component from “Flash_Combinded_2\CSP_SPI” folder and keep the “DUMMY SPI” in the project.
Filename | Description
Flash.cif | Component information file for this e-Module.
Flash.mak | Make file that includes Flash source files into BIOS build process.
Flash.sdl | Flash parameters file.
FlashWrite.c | Flash update routines.
FlashUpdate.c | Flash Update routines.
SpiTokens.c | Contains global variable definitions that are defined in the chipset porting part of the module.
Flash.chm | Flash chm file.
ModulePart Name: Flash - Includes
ModulePart Description: Flash Include files.
Filename | Description
FlashPart.cif | Component information file for Flash Include file module part.
FlashPart.h | Flash Part related equates and structures.
ModulePart Name: FWH Interface - Source
ModulePart Description: FWH Flash interface files.
Filename | Description
FwhFlash.cif | Component information file for FWH Flash module part.
FwhFlash.mak | Make file that includes FWH Flash source files into BIOS build process.
FwhFlash.sdl | FWH Flash parameters file.
FwhSstFlashWrite.c | FWH Flash update routines.
FwhIntelFlashWrite.c | FWH Flash update routines.
ModulePart Name: LPC Interface - Source
ModulePart Description: LPC Flash interface files.
Filename | Description
LPCFlash.cif | Component information file for LPC Flash module part.
LPCFlash.mak | Make file that includes LPC Flash source files into BIOS build process.
LPCFlash.sdl | LPC Flash parameters file.
LPCFlashWrite.c | LPC Flash update routines.
LpcSst2MblFlashWrite.c | LPC Flash update routines.
ModulePart Name: STD Interface - Source
ModulePart Description: STD Flash interface files.
Filename | Description
StdFlash.cif | Component information file for STD Flash module part.
StdFlash.mak | Make file that includes STD Flash source files into BIOS build process.
StdFlash.sdl | STD Flash parameters file.
StdSpansionFlashWrite.c | STD Flash update routines.
STDIntelFlashWrite.c | STD Flash update routines.
StdMxicFlashWrite.c | STD Flash update routines.
ModulePart Name: SPI Interface - Source
ModulePart Description: SPI Flash interface files.
Filename | Description
SpiFlash.cif | Component information file for SPI Flash module part.
SpiFlash.mak | Make file that includes SPI Flash source files into BIOS build process.
SpiFlash.sdl | SPI Flash parameters file.
SpiFlash.h | Flash Part related equates and structures.
SpiIdentify.c | SPI Flash Identify routines.
Platform File List:
Filename | Description
CSP : Altera EPM240T (CPLD) - Source
SS: \\ALASKA\SOURCE\Flash_Combined_2\CSP_SPI\Altera
SpiCspSrc.cif | Component information file for the SPI Flash specific module part.
Epm240tSpi.sdl | SPI Flash CSP parameters file.
SPIFlash.c | SPI Flash Update routines.
CSP : ATI SB700 SPI - Source
SS: \\ALASKA\SOURCE\Flash_Combined_2\CSP_SPI\ATI\SB700
SpiCspSrc.cif | Component information file for the SPI Flash specific module part.
SB700Spi.sdl | SPI Flash CSP parameters file.
SPIFlash.c | SPI Flash Update routines.
CSP : ENE 3925 SPI - Source
SS: \\ALASKA\SOURCE\Flash_Combined_2\CSP_SPI\ENE\ENE3925
SpiCspSrc.cif | Component information file for the SPI Flash specific module part.
Ene3925Spi.sdl | SPI Flash CSP parameters file.
SPIFlash.c | SPI Flash Update routines.
CSP : Fintek F76512 EC SPI - Source
SS: \\ALASKA\SOURCE\Flash_Combined_2\CSP_SPI\Fintek\F76512
SpiCspSrc.cif | Component information file for the SPI Flash specific module part.
Ene3925Spi.sdl | SPI Flash CSP parameters file.
SPIFlash.c | SPI Flash Update routines.
CSP : Intel ICH7 SPI - Source
SS: \\ALASKA\SOURCE\Flash_Combined_2\CSP_SPI\Intel\ICH7
SpiCspSrc.cif | Component information file for the SPI Flash specific module part.
ICH7Spi.sdl | SPI Flash CSP parameters file.
SPIFlash.c | SPI Flash Update routines.
CSP : Intel ICHx SPI - Source
SS: \\ALASKA\SOURCE\Flash_Combined_2\CSP_SPI\Intel\ICHx
SpiCspSrc.cif | Component information file for the SPI Flash specific module part.
ICHxSpi.sdl | SPI Flash CSP parameters file.
SPIFlash.c | SPI Flash Update routines.
CSP : Intel PCH (Whitney) SPI - Source
SS: \\ALASKA\SOURCE\Flash_Combined_2\CSP_SPI\Intel\PCH_Whitney
SpiCspSrc.cif | Component information file for the SPI Flash specific module part.
WnPCHSpi.sdl | SPI Flash CSP parameters file.
SPIFlash.c | SPI Flash Update routines.
CSP : ITE 8512 SPI - Source
SS: \\ALASKA\SOURCE\Flash_Combined_2\CSP_SPI\ITE\ITE8512
SpiCspSrc.cif | Component information file for the SPI Flash specific module part.
ITE8512Spi.sdl | SPI Flash CSP parameters file.
SPIFlash.c | SPI Flash Update routines.
CSP : ITE 8718 SPI - Source
SS: \\ALASKA\SOURCE\Flash_Combined_2\CSP_SPI\ITE\ITE8518
SpiCspSrc.cif | Component information file for the SPI Flash specific module part.
Ite8718Spi.sdl | SPI Flash CSP parameters file.
SPIFlash.c | SPI Flash Update routines.
CSP : Renesas H8S2117 SPI - Source
SS: \\ALASKA\SOURCE\Flash_Combined_2\CSP_SPI\Renesas\H8S2117
SpiCspSrc.cif | Component information file for the SPI Flash specific module part.
H8S2117Spi.sdl | SPI Flash CSP parameters file.
SPIFlash.c | SPI Flash Update routines.
CSP : SiS 968 SPI - Source
SS: \\ALASKA\SOURCE\Flash_Combined_2\CSP_SPI\SiS\SiS968
SpiCspSrc.cif | Component information file for the SPI Flash specific module part.
SiS968Spi.sdl | SPI Flash CSP parameters file.
SPIFlash.c | SPI Flash Update routines.
CSP : VIA VT8237S SPI - Source"
SS: \\ALASKA\SOURCE\Flash_Combined_2\CSP_SPI\VIA\VT8237S
SpiCspSrc.cif | Component information file for the SPI Flash specific module part.
VT8237Spi.sdl | SPI Flash CSP parameters file.
SPIFlash.c | SPI Flash Update routines.
CSP : Winbond 627 SPI - Source"
SS: \\ALASKA\SOURCE\Flash_Combined_2\CSP_SPI\Winbond\W83627DHG
SpiCspSrc.cif | Component information file for the SPI Flash specific module part.
Win627Spi.sdl | SPI Flash CSP parameters file.
SPIFlash.c | SPI Flash Update routines.
CSP : Winbond WPC876xL SPI - Source
SS: \\ALASKA\SOURCE\Flash_Combined_2\CSP_SPI\Winbond\WPC876xL
SpiCspSrc.cif | Component information file for the SPI Flash specific module part.
W876xLSpi.sdl | SPI Flash CSP parameters file.
SPIFlash.c | SPI Flash Update routines.

Flash Support List:
\
SPI
FWH
LPC
STD
AMIC
A25L040/080
A25L40/80
A25LQ32/64
A25LQ032/064
x
x
x
ATMEL
AT26DF041/081/161 AT25DF321/641
AT25DQ161
49LW080
x
x
EON
EN25F40/80/16/32 EN25P40/80/16/32 EN25Q40/80/16/32/64
EN25QH40/80/16/32/64
x
x
x
ESMT
25L004A/008A
25L04/08/16/32PA
25L16/32/64QA
x
x
x
FIDELIX
FM25Q08/16/32/64
x
x
x
GigaDevice
25Q80/16/32/64
25LQ80/16/32/64
x
x
x
INTEL
25F160/320(160/320S33x)
N82802AB/AC
x
x
MXIC
MX25L40x5/80x5/16x5
/32x5/64x5/128x5 MX25L40x6/80x6/16x6
/32x6/64x6/128x6
MX25U32x5/64x5
x
x
MX29LV640DB/T
Micron(Numonyx)
M25P16/32/64/128
M25PE80/16
M25PX16/32/64
M25PF32
N25Q16/32/64/128
x
x
64/128/256P30T/B
PMC
25LV040/080/016/032
25LQ032
x
x
x
SPANSION
S25FL004/008/016
/032/064A
S25FL004/008/016
/032/064K
S25FL032/064/128
/129P
x
x
x
SST (Microchip)
25LF040/080A 25VF020/040/080/016 25VF032B/064C 26VF064B/BA
49LF004/008/016C
49LF020A/080A 49LF016/160C
39VF160x/320x
ST
M25P16/32/64/128
M25PE80
M25PX16/32/64
M25PF32
M50FW080/016
M50LPW080
29W160EB/T
Winbond
W25X20/40/80/16
/32/64 W25Q80/16/32/64/128/F/W
x
W39V080A
x

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:
EIP #110515 - Added MXIC 25U and GigaDevice 25LQ Series flash part.
EIP #114488 - Added Microchip 26VF064B/BA flash part.
Files changed for EIP fixes:
(EIP #114488, #110515)SpiIdentify.c, SpiFlash.h
Known issues and limitations in this label:
Numonyx N25Q128 3Volt got Uniform Blocks and Erase on Boot Sectors two kinds with same ID.
Now only supports N25Q128 Uniform Blocks.
Remaining Issues:
N0NE
Unit Testing:
N0NE
Validation Testing:
N0NE
Release History:

4.6.3_Flash_Combined_2_34:
Improvement :
1. Added support for Winbond W25Q F and W series Flash Parts.
2. Added support for GigaDevice 25LQ series Flash Parts.
3. Added support for Microchip 26VF064B/BA series Flash Parts.
4. Added support for MXIC 25U series Flash Parts.
Bug Fixed :
None

4.6.3_Flash_Combined_2_33:
Improvement :
1. Changed N25Q128 to 4K erase.
2. Added N25Q128A support.
Bug Fixed :
1. Fixed for ESMT 25L B Series.

4.6.3_Flash_Combined_2_32:
Improvement :
1. Added Support for ESMT 25L64QA.
2. Updated Flash.chm for EIP#51416.
3. Added Support for SST 39VF160x/320x
4. Added "AAI_WORD_PROGRAM" Token. (Default [OFF])
5. Added Flash Capacity reported for SMIFlash.
Bug Fixed : None.

4.6.3_Flash_Combined_2_31:
Improvement : Added Token "FAST_READ_SUPPORT" for switching the SPI Read(03)/FastRead(0B)/DualOutputFastRead(3B) command. To use the FastRead and the Dual Output Fast Read command MUST have Hardware SPI support.
**Only validated with Intel Mahobay platform (Southbridge: PatherPoint)**
Bug Fixed : None.

4.6.3_Flash_Combined_2_30:
Improvement : Changed Erase Size to 4K for Numonyx N25Q32/64.
Bug Fixed : None.

4.6.3_Flash_Combined_2_29:
Improvement :
1. Added Support for EON EN25QH08/16/32/64 and ESMT 25L08/16/32PA.
2. Added "OemFlashValidTableList" eLink for OEM/ODM invalidates the flash part supports those they don't needed.
Example for Winbond W25Qxx Flash Part:
ELINK
Name = "0x40EF,"
Parent = "OemFlashValidTableList"
InvokeOrder = AfterParent
End
Bug Fixed : None.

4.6.3_Flash_Combined_2_28:
Improvement :
1. Added Support for FIDELIX FM25Q32A/64A and AMIC 25LQ032.
Bug Fixed : None.

4.6.3_Flash_Combined_2_27:
Improvement :
1. (EIP#51416)Flash Combined 2 Module - Please correct the Release notes and make sure your Module is compiled correctly.
2. Added "Numonyx_M25P128" Token for Numonyx M25P128 support to modify the FLASH_BLOCK_SIZE to 256K and lock it (Default setting is "OFF").
Bug Fixed :
1. (EIP#50771) - There should have a 10ns delay according SSTVF1681 specification, else sometime vendor id return incorrect value.
2. (EIP#53437) - Corrected Numonyx M25P128 Minimum Sector Size to 256K.

4.6.3_Flash_Combined_2_26:
Improvement : None.
Bug Fixed : 1. Fixed Build Failed with label “4.6.3_Flash_Combined_2_25”.

4.6.3_Flash_Combined_2_25:
Improvement : 1. Added support for Numonyx N25Q128 and PMC 25LQ032.
Bug Fixed : None.

4.6.3_Flash_Combined_2_24:
Improvement : 1. Added support for PEI Flash Library. (Default setting “BUILD_PEI_FLASH_LIB” is “OFF”)
Bug Fixed : None.

4.6.3_Flash_Combined_2_23:
Improvement : 1. Improved for adding the “SPI_INITIALIAL_WITH_VSCC” token support for Intel ICHx SPI. (Default setting is “OFF”)
Bug Fixed : None.

4.6.3_Flash_Combined_2_22:
Improvement :
1. Added the “DIRECT_FLASH_MEMORY_ACCESS” Token. (Default setting is “ON”, “OFF” for specific EC SPIs.)
2. Changed the priority for oem hook “OemFlashDeviceWriteEnable” in FlashDeviceWriteEnable procedure.
Bug Fixed : None.

4.6.3_Flash_Combined_2_21:
Improvement :
1. With Core 4.6.3.7 or later, the FlashVirtualFixup function gets called from Nvramdxe.c and flash.c, do anything when the function is called second time.
2. Added SST AAIWordProgram SPI command to speed up the programming time with Intel chipset (ICHx Label : 4.6.3_SPI-Intel-ICHx_06).
Bug Fixed : None.

4.6.3_Flash_Combined_2_20:
Improvement : 1. Added Support for Spansion S25FL128/129P and EON EN25Q80/16/32.
Bug Fixed : None.

4.6.3_Flash_Combined_2_19:
Improvement :
1. Added FWH/LPC/STD Flash Device Number support.
2. Changed for SMIFlash module Label “4.6.3.6_SMIFLASH_12" or later
Bug Fixed : None.

4.6.3_Flash_Combined_2_18:
Improvement : 1. Added support for ATMEL 25DQ161.
Bug Fixed : None.

4.6.3_Flash_Combined_2_17:
Improvement :
1. Added support for GigaDevie 25Q80/16 and STM 29W160EB/T.
2. Added Flash Chip Name support.
Bug Fixed :
1. Programming failed with SST 39VF1681.

4.6.3_Flash_Combined_2_16:
Improvement : 1. Added support for SST 49LF016C, 39VF1681/2 and MXIC 29LV640DB/T..
Bug Fixed : None

4.6.3_Flash_Combined_2_15:
Improvement : 1. (EIP22177) Updated for Aptio Source Enhancement.
Bug Fixed : None

4.6.3_Flash_Combined_2_14:
Improvement : 1. Added support for SST 25VF064C and MXIC MX25L1635/3235/6435.
Bug Fixed : None

4.6.3_Flash_Combined_2_13:
Improvement : None.
Bug Fixed :
1. Download Project failed if flash module updated to label#12.
2. Rename the “Template SPI” component to “DUMMY SPI – Do Not Delete” for indicating the modulepart haven’t need to be deleted.
Description : When download a project from SS, A Error message “Error: Unresolved reference in SPI Interface – Source see reference TEMPLATE_SPI_CSP_SOURCE in section [parts]” occurred if flash module updated to Label#12 and Latest CSP SPI modulepart. Due to the ref. name of SPI modulepart is changed from generic name “SPI_INTERFACE_SOURCE” to specific ref. name for multiple CSP SPI modulepart support, Project download operation will fail with using VeB if “TEMPLATE_SPI_CSP_SOURCE” not exist in Spiflash.cif file.
Solution : Please keep the “DUMMY SPI” in the project for completing the Project Download Operation with VeB.

4.6.3_Flash_Combined_2_12:
Improvement :
1. Added support for Winbond 25Q128
2. (EIP20459) Added Multiple SPI CSP component support.
Bug Fixed : None.

4.6.3_Flash_Combined_2_11:
Improvement : Added Unprotect Command OpCode (39h) to AMTEL SPI FLASH_INFO structure.
Bug Fixed : Sometimes failed to unlock the Block Protect of SST SPI flash if Label ”4.6.3_Flash_Combined_2_6 “ or later.

4.6.3_Flash_Combined_2_10:
Improvement : Updated Flash.chm file.
Bug Fixed : None

4.6.3_Flash_Combined_2_09:
Improvement :
Added support for OemflashWriteEnable/Disable eLink.
Added support for Numonyx (Intel) 256P30T 32MB flash part.
Bug Fixed : None

4.6.3_Flash_Combined_2_08:
Improvement :
Added support for Winbond W25Q80/16 SPI flash part.
Added support for Spansion A29GL128/256/512/01GP STD flash part.
Bug Fixed : None

4.6.3_Flash_Combined_2_07:
Improvement : None.
Bug Fixed : Fixed Boot Block recovery and re-flash BIOS failed with using SST 49LF160C.

4.6.3_Flash_Combined_2_06:
Improvement : According to Intel ICH7/ICH8/ICH9/ICH10 - SPI Family Flash Programming Guide Application Note - Rev#2.4, Section#5.3 Software Sequencing Opcode Requirements and Recommendations, It is strongly recommended that the "9Fh" JEDEC ID be used instead of "90h" or "AB". Intel utilities such as the Flash Programming tool (Fprog.exe and fpt.exe) will incorrectly detect the flash part in the system and it may lead to undesired program operation.
Bug Fixed : None

4.6.3_Flash_Combined_2_05:
Improvement : Added support for Eon 25F32 4MB SPI flash.
Bug Fixed : None

4.6.3_Flash_Combined_2_04:
Improvement : Added support for AMTME 25DF641.
Bug Fixed :
Fixed Fail to un-protect ATMEL flash.
Fixed building failed if "$(CFLAGS)" = "/W4".

4.6.3_Flash_Combined_2_03:
Improvement : Added Flash.chm for Flash_Combined_2.
Bug Fixed : Fail to install EFI OS.

4.6.3_Flash_Combined_2_02:
Improvement : Added support for SST 49LF016C 2MB FWH flash.
Bug Fixed : None

4.6.3_Flash_Combined_2_01:
Improvement :
Added support for Winbond W39V080AP and ST M50LPW080 LPC flash.
Added support for ST M25PF32 SPI flash.
Bug Fixed : None

4.6.3_Flash_Combined_2_00Beta1:
Improvement : Remove the file SpiTokens.C.
Bug Fixed : None

4.6.3_Flash_Combined_2_00Beta:
Improvement : Initial check-in for Flash module improvements.

© 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.

  • Flash.mak
  • FlashUpdate.c
  • FlashWrite.c
  • FWHFlash.mak
  • FWHIntelFlashWrite.c
  • FWHSSTFlashWrite.c
  • FWHSSTFlashWrite_Polling.c
  • LPCFlash.mak
  • LPCFlashWrite.c
  • LPCSST2MBlFlashWrite.c
  • SpiFlash.c
  • SpiFlash.H
  • SpiFlash.mak
  • SpiIdentify.c
  • StdFlash.mak
  • STDIntelFlashWrite.c
  • StdMxicFlashWrite.c
  • StdSpansionFlashWrite.c
Built on 16:07:56 03/18/13


Flash.mak

Description:


FlashUpdate.c

Description:
Provides the rom flashing functions to the system

The following functions are used in the file: FlashUpdate.c.

Function | Description
FlashEraseBlock | Erases the block pointed to by BlockAddress
FlashProgram | Programs the area pointed to by BlockAddress and defined by Length with the data pointed to by Data
FlashProgramBlock | Programs the Block pointed to by pBlock with the data pointed to by pData
FlashRead | This function returns the read data from the location indicated
FlashWriteBlock | Enables the ability to write to the flash part and programs the Block pointed to by pBlock with the data pointed to by Data and then sets the block to read only
IsCleanOrEqual | Verifies if the device has been erased properly or if the current byte is the same as the byte to be written at this location


FlashEraseBlock in the FlashUpdate.c

Function : FlashEraseBlock

File: FlashUpdate.c
Description:
Erases the block pointed to by BlockAddress
Input:
*BlockAddress - Address within the block to be erased
Output:
TRUE - Erase completed successfully
FALSE - Erase did not complete properly


FlashProgram in the FlashUpdate.c

Function : FlashProgram

File: FlashUpdate.c
Description:
Programs the area pointed to by BlockAddress and defined
by Length with the data pointed to by Data
Input:
*Address - Address where to write the Data
*Data - pointer to the data to write
Length - length of the data to write
Output:
None

Return:  TRUE - Program completed successfully
FALSE - Program did not complete properly


FlashProgramBlock in the FlashUpdate.c

Function : FlashProgramBlock

File: FlashUpdate.c
Description:
Programs the Block pointed to by pBlock with the data
pointed to by pData
Input:
*pBlock - Address of the beginning of the block
*Data - pointer to the data to write
Output:
None

Return:  TRUE - Program completed successfully
FALSE - Program did not complete properly


FlashRead in the FlashUpdate.c

Function : FlashRead

File: FlashUpdate.c
Description:
This function returns the read data from the location
indicated
Input:
*Address - Address where to write the Data
*Data - pointer to the data to write
Length - length of the data to write
Output:
None

Return:  TRUE - Program completed successfully
FALSE - Program did not complete properly


FlashWriteBlock in the FlashUpdate.c

Function : FlashWriteBlock

File: FlashUpdate.c
Description:
Enables the ability to write to the flash part and
programs the Block pointed to by pBlock with the data
pointed to by Data and then sets the block to read only
Input:
*pBlock - Address of the beginning of the block
*Data - pointer to the data to write
Output:
None

Return:  TRUE - Program completed successfully
FALSE - Program did not complete properly


IsCleanOrEqual in the FlashUpdate.c

Function : IsCleanOrEqual

File: FlashUpdate.c
Description:
Verifies if the device has been erased properly or if the
current byte is the same as the byte to be written at this location
Input:
UINT8 *pDest - starting address of where the data will be written
const UINT8 *pSource - starting address of the data that
       is supposed to be written
UINTN Size - length of the data set to check
BOOLEAN *pIsClean - return value to indicate that the data area
       that will be written to has already been erased
BOOLEAN *pIsEqual - return value to indicate that the data to be
       written is the same as the data that is already there
Output:
see info on pIsClean and pIsEqual above

Return:  None


FlashWrite.c

Description:
Flash update routines

The following functions are used in the file: FlashWrite.c.

Function | Description
FlashBlockWriteDisable | This function chooses the correct flash part to call and then disables write operations(erase/programming) for a specific block
FlashBlockWriteEnable | This function chooses the correct flash part to call and then enables write operations(erase/programming) for a specific block
FlashDeviceWriteDisable | This function chooses the correct flash part to call and then disables write operation for a flash device
FlashDeviceWriteEnable | This function chooses the correct flash part to call and then enables write operation for a flash device
FlashEraseCommand | This function Chooses the correct flash part to call and then initiates flash block erase command
FlashInit | This function goes through the elinked list of identify functions giving control until one part is identified properly
FlashIsEraseCompleted | This function chooses the correct flash part to call and then checks current status of the last erase operation
FlashIsProgramCompleted | This function chooses the correct flash part to call and then checks current status of the last program operation
FlashProgramCommand | This function chooses the correct flash part to call and then initiates the program command
FlashReadCommand | This function chooses the correct flash part to call and then initiates the program command
FlashVirtualFixup | Fixup global data for for a virtual address space. This routine must be called by the library consumer in the EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE event handler
GetFlashPartInfomation |
OemFlashDeviceWriteDisable | This function goes through the elinked list of oem flash write disable functions giving control.
OemFlashDeviceWriteEnable | This function goes through the elinked list of oem flash write enable functions giving control.
OemIsFlashValid | This function identifies the supported SPI flash parts and returns TRUE. If flash part is not supported by this module it will return FALSE.


FlashBlockWriteDisable in the FlashWrite.c

Function : FlashBlockWriteDisable

File: FlashWrite.c
Description:
This function chooses the correct flash part to call and
then disables write operations(erase/programming) for a specific
block
Input:
*pBlockAddress - Address to access flash part
Output:
None

Return:  None


FlashBlockWriteEnable in the FlashWrite.c

Function : FlashBlockWriteEnable

File: FlashWrite.c
Description:
This function chooses the correct flash part to call and
then enables write operations(erase/programming) for a specific block
Input:
*pBlockAddress - Address to access flash part
Output:
None

Return:  None


FlashDeviceWriteDisable in the FlashWrite.c

Function : FlashDeviceWriteDisable

File: FlashWrite.c
Description:
This function chooses the correct flash part to call and
then disables write operation for a flash device
Input:
None
Output:
None

Return:  None


FlashDeviceWriteEnable in the FlashWrite.c

Function : FlashDeviceWriteEnable

File: FlashWrite.c
Description:
This function chooses the correct flash part to call and
then enables write operation for a flash device
Input:
None
Output:
None

Return:  None


FlashEraseCommand in the FlashWrite.c

Function : FlashEraseCommand

File: FlashWrite.c
Description:
This function Chooses the correct flash part to call and then
initiates flash block erase command
Input:
*pBlockAddress - Address to access flash part
Output:
None
Returns:
None


FlashInit in the FlashWrite.c

Function : FlashInit

File: FlashWrite.c
Description:
This function goes through the elinked list of identify
functions giving control until one part is identified properly
Input:
*pBlockAddress - Address to access the flash part
Output:
None
Returns:
EFI_SUCCESS


FlashIsEraseCompleted in the FlashWrite.c

Function : FlashIsEraseCompleted

File: FlashWrite.c
Description:
This function chooses the correct flash part to call and
then checks current status of the last erase operation
Input:
*pBlockAddress - Address to access flash part
*pError - Boolean that tells if fatal error occured
*pStatus - Status of the erase command
Output:
*pError - Boolean that tells if fatal error occured
*pStatus - Status of the erase command
Returns:
TRUE - erase complete
FALSE - erase not completed


FlashIsProgramCompleted in the FlashWrite.c

Function : FlashIsProgramCompleted

File: FlashWrite.c
Description:
This function chooses the correct flash part to call
and then checks current status of the last program operation
Input:
*pBlockAddress - Address to access flash part
*Byte - values previously written to the Flash Device
Length - The amount of data that needs to be checked
*pError - Boolean that tells if fatal error occured
*pStatus - Status of the erase command
Output:
*pError - Boolean that tells if fatal error occured
*pStatus - Status of the erase command

Return:  TRUE - Program completed, check pError for fatal error
FALSE - programming in progress


FlashProgramCommand in the FlashWrite.c

Function : FlashProgramCommand

File: FlashWrite.c
Description:
This function chooses the correct flash part to call and
then initiates the program command
Input:
*pBlockAddress - Address to access flash part
*Byte - pointer to data to write to the flash part
Length - The total amount of data that Byte points to
Output:
None

Return:  None


FlashReadCommand in the FlashWrite.c

Function : FlashReadCommand

File: FlashWrite.c
Description:
This function chooses the correct flash part to call and
then initiates the program command
Input:
*pBlockAddress - Address to access flash part
*Byte - pointer to data to write to the flash part
Length - The total amount of data that Byte points to
Output:
None

Return:  None


FlashVirtualFixup in the FlashWrite.c

Function : FlashVirtualFixup

File: FlashWrite.c
Description:
Fixup global data for for a virtual address space.
This routine must be called by the library consumer in the
EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE event handler
Input:
EFI_RUNTIME_SERVICES *pRS - pointer to the Runtime Services Table
Output:
None

Return:  None


GetFlashPartInfomation in the FlashWrite.c

Function : GetFlashPartInfomation

File: FlashWrite.c
Description:
Input:
*pBlockAddress - Address to access the flash part
*Buffer - Buffer to write the flash part number string.
Output:
None
Returns:
EFI_SUCCESS


OemFlashDeviceWriteDisable in the FlashWrite.c

Function : OemFlashDeviceWriteDisable

File: FlashWrite.c
Description:
This function goes through the elinked list of oem flash
write disable functions giving control.
Input:
None
Output:
None

Return:  None


OemFlashDeviceWriteEnable in the FlashWrite.c

Function : OemFlashDeviceWriteEnable

File: FlashWrite.c
Description:
This function goes through the elinked list of oem flash
write enable functions giving control.
Input:
None
Output:
None

Return:  None


OemIsFlashValid in the FlashWrite.c

Function : OemIsFlashValid

File: FlashWrite.c
Description:
This function identifies the supported SPI flash parts and
returns TRUE. If flash part is not supported by this
module it will return FALSE.
Input:
dFlashId    Present Flash Part ID
Output:
None

Return:      TRUE            Flash part is Valid.
FALSE           Flash part is not Valid.


FWHFlash.mak

Description:


FWHIntelFlashWrite.c

Description:
Flash update routines

The following functions are used in the file: FWHIntelFlashWrite.c.

Function | Description
IntelFlashBlockWriteDisable | This function contains any flash specific code need to disable a particular flash block write
IntelFlashBlockWriteEnable | This function contains any flash specific code need to enable a particular flash block write
IntelFlashDeviceWriteDisable | This function contains any flash specific code need to disable flash write
IntelFlashDeviceWriteEnable | This function contains any flash specific code need to enable flash write
IntelFlashEraseCommand | This API function erases a block in the flash. Flash model specific code will branch out from this routine
IntelFlashIsEraseCompleted | This function verifies whether the block erase command is completed and returns the status of the command
IntelFlashIsProgramCompleted | This function verifies whether the program (page or byte) command is completed and returns the status of the command
IntelFlashProgramCommand | This function programs a byte data to the specified location
IntelFlashReadCommand | This function programs a byte data to the specified location
IntelFlashVirtualFixup | This function will be invoked by the core to convert runtime pointers to virtual address
IntelFwhCmdDelay | This function resets the Sst flash part
IntelFwhOperationCompleted | This function verifies whether the command sent to the FWH part has completed and returns the status of the command
IntelFwhResetFlash | This function resets the Sst flash part
mIntelIdentify | This function identifies the supported LPC flash parts and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE.
SetBlockLock | This function programs a page of data at a time


IntelFlashBlockWriteDisable in the FWHIntelFlashWrite.c

Function : IntelFlashBlockWriteDisable

File: FWHIntelFlashWrite.c
Description:
This function contains any flash specific code need to
disable a particular flash block write
Input:
None
Output:
None

Return:  None


IntelFlashBlockWriteEnable in the FWHIntelFlashWrite.c

Function : IntelFlashBlockWriteEnable

File: FWHIntelFlashWrite.c
Description:
This function contains any flash specific code need to
enable a particular flash block write
Input:
None
Output:
None

Return:  None


IntelFlashDeviceWriteDisable in the FWHIntelFlashWrite.c

Function : IntelFlashDeviceWriteDisable

File: FWHIntelFlashWrite.c
Description:
This function contains any flash specific code need to
disable flash write
Input:
None
Output:
None

Return:  None


IntelFlashDeviceWriteEnable in the FWHIntelFlashWrite.c

Function : IntelFlashDeviceWriteEnable

File: FWHIntelFlashWrite.c
Description:
This function contains any flash specific code need to
enable flash write
Input:
None
Output:
None

Return:  None


IntelFlashEraseCommand in the FWHIntelFlashWrite.c

Function : IntelFlashEraseCommand

File: FWHIntelFlashWrite.c
Description:
This API function erases a block in the flash. Flash model
specific code will branch out from this routine
Input:
pBlockAddress   Block that need to be erased
Output:
Nothing
Returns:
None


IntelFlashIsEraseCompleted in the FWHIntelFlashWrite.c

Function : IntelFlashIsEraseCompleted

File: FWHIntelFlashWrite.c
Description:
This function verifies whether the block erase
command is completed and returns the status of the command
Input:
*pBlockAddress  Location of the block erase
Output:
*pError     True on error and false on success
*Status     Error status code (0 - Success)

Return:      TRUE        If operation completed successfully
           *pError = FALSE, *pStatus = 0
FALSE       If operation failed
           *pError = TRUE, *pStatus = error status


IntelFlashIsProgramCompleted in the FWHIntelFlashWrite.c

Function : IntelFlashIsProgramCompleted

File: FWHIntelFlashWrite.c
Description:
This function verifies whether the program (page or byte)
command is completed and returns the status of the command
Input:
*pByteAddress   Location of the program command
Byte            Last data byte written
Output:
*pError         True on error and false on success
*Status         Error status code (0 - Success)

Return:      TRUE        If operation completed successfully
           *pError = FALSE, *pStatus = 0
FALSE       If operation failed
           *pError = TRUE, *pStatus = error status


IntelFlashProgramCommand in the FWHIntelFlashWrite.c

Function : IntelFlashProgramCommand

File: FWHIntelFlashWrite.c
Description:
This function programs a byte data to the specified location
Input:
*pByteAddress   Location where the data to be written
*Byte - Byte to be written
*Length - Number of bytes to write
Output:
*Length - Number of bytes still left to write

Return:  None


IntelFlashReadCommand in the FWHIntelFlashWrite.c

Function : IntelFlashReadCommand

File: FWHIntelFlashWrite.c
Description:
This function programs a byte data to the specified location
Input:
*pByteAddress   Location where the data to be written
Bytes - data to be written.
Length - number of bytes to write
Output:
Length - number of bytes that were not written

Return:  None


IntelFlashVirtualFixup in the FWHIntelFlashWrite.c

Function : IntelFlashVirtualFixup

File: FWHIntelFlashWrite.c
Description:
This function will be invoked by the core to convert
runtime pointers to virtual address
Input:
*pRS    Pointer to runtime services
Output:
None

Return:  None


IntelFwhCmdDelay in the FWHIntelFlashWrite.c

Function : IntelFwhCmdDelay

File: FWHIntelFlashWrite.c
Description:
This function resets the Sst flash part
Input:
None
Output:
None

Return:  None


IntelFwhOperationCompleted in the FWHIntelFlashWrite.c

Function : IntelFwhOperationCompleted

File: FWHIntelFlashWrite.c
Description:
This function verifies whether the command sent to the FWH part
has completed and returns the status of the command
Input:
IN volatile UINT8*  pAddress    Location to check the device status
Output:
EFI_SUCCESS -
EFI_TIMEOUT -
EFI_DEVICE_ERROR -


IntelFwhResetFlash in the FWHIntelFlashWrite.c

Function : IntelFwhResetFlash

File: FWHIntelFlashWrite.c
Description:
This function resets the Sst flash part
Input:
None
Output:
None

Return:  None


mIntelIdentify in the FWHIntelFlashWrite.c

Function : mIntelIdentify

File: FWHIntelFlashWrite.c
Description:
This function identifies the supported LPC flash parts and
returns appropriate flash device API pointer. If flash part is
not supported by this module it will return FALSE.
Input:
pBlockAddress   Block address of the flash part. Can be used to
               send ID command
Output:
**FlashApi      Pointer to hold the returned flash API

Return:  TRUE            If flash part is supported, FlashApi contains
               routines to handle the flash requests
FALSE           Flash part is not supported

Note:    This routine is part of the global flash init list. Make sure
it is properly linked to the init list "FlashList" (in SDL file)


SetBlockLock in the FWHIntelFlashWrite.c

Function : SetBlockLock

File: FWHIntelFlashWrite.c
Description:
This function programs a page of data at a time
Input:
*pBlockAddress - This is location where the data
   is to be written
LockState - Value to use to set the Lock register for the
   block defined by pBlockAddress
Output:
None

Return:  None


FWHSSTFlashWrite.c

Description:
Flash update routines

The following functions are used in the file: FWHSSTFlashWrite.c.

Function | Description
mSstFwhIdentify | This function identifies the supported SST flash parts and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE.
SetBlockLock | This function programs a page of data at a time
SSTFlashBlockWriteDisable | This function contains any flash specific code need to disable a particular flash block write
SSTFlashBlockWriteEnable | This function contains any flash specific code need to enable a particular flash block write
SSTFlashDeviceWriteDisable | This function contains any flash specific code need to disable flash write
SSTFlashDeviceWriteEnable | This function contains any flash specific code need to enable flash write
SstFlashEraseCommand | This API function erases a block in the flash. Flash model specific code will branch out from this routine
SSTFlashIsEraseCompleted | This function verifies whether the block erase command is completed and returns the status of the command
SstFlashIsProgramCompleted | This function verifies whether the program (page or byte) command is completed and returns the status of the command
SSTFlashProgramCommand | This function programs a byte data to the specified location
SstFlashReadCommand | This function programs a byte data to the specified location
SSTFlashVirtualFixup | This function will be invoked by the core to convert runtime pointers to virtual address
SstFwhResetFlash | This function resets the SST flash part
SstFwhWaitForOperationCompleted | This function verifies whether the command sent to the FWH part has completed and returns the status of the command


mSstFwhIdentify in the FWHSSTFlashWrite.c

Function : mSstFwhIdentify

File: FWHSSTFlashWrite.c
Description:
This function identifies the supported SST flash parts and
returns appropriate flash device API pointer. If flash part is
not supported by this module it will return FALSE.
Input:
pBlockAddress   Block address of the flash part. Can be used to
               send ID command
Output:
**FlashApi      Pointer to hold the returned flash API

Return:  TRUE            If flash part is supported, FlashApi contains
               routines to handle the flash requests
FALSE           Flash part is not supported

Note:    This routine is part of the global flash init list. Make sure
it is properly linked to the init list "FlashList" (in SDL file)


SetBlockLock in the FWHSSTFlashWrite.c

Function : SetBlockLock

File: FWHSSTFlashWrite.c
Description:
This function programs a page of data at a time
Input:
volatile UINT8* pBlockAddress - This is location where the data
   is to be written
UINT8 LockState - Value to use to set the Lock register for the
   block defined by pBlockAddress
Output:
None

Return:  None


SSTFlashBlockWriteDisable in the FWHSSTFlashWrite.c

Function : SSTFlashBlockWriteDisable

File: FWHSSTFlashWrite.c
Description:
This function contains any flash specific code need to
disable a particular flash block write
Input:
None
Output:
None

Return:  None


SSTFlashBlockWriteEnable in the FWHSSTFlashWrite.c

Function : SSTFlashBlockWriteEnable

File: FWHSSTFlashWrite.c
Description:
This function contains any flash specific code need to
enable a particular flash block write
Input:
None
Output:
None

Return:  None


SSTFlashDeviceWriteDisable in the FWHSSTFlashWrite.c

Function : SSTFlashDeviceWriteDisable

File: FWHSSTFlashWrite.c
Description:
This function contains any flash specific code need to
disable flash write
Input:
None
Output:
None

Return:  None


SSTFlashDeviceWriteEnable in the FWHSSTFlashWrite.c

Function : SSTFlashDeviceWriteEnable

File: FWHSSTFlashWrite.c
Description:
This function contains any flash specific code need to
enable flash write
Input:
None
Output:
None

Return:  None


SstFlashEraseCommand in the FWHSSTFlashWrite.c

Function : SstFlashEraseCommand

File: FWHSSTFlashWrite.c
Description:
This API function erases a block in the flash. Flash model
specific code will branch out from this routine
Input:
pBlockAddress   Block that need to be erased
Output:
Nothing
Returns:
None


SSTFlashIsEraseCompleted in the FWHSSTFlashWrite.c

Function : SSTFlashIsEraseCompleted

File: FWHSSTFlashWrite.c
Description:
This function verifies whether the block erase
command is completed and returns the status of the command
Input:
*pBlockAddress  Location of the block erase
Output:
*pError         True on error and false on success
*Status         Error status code (0 - Success)

Return:  TRUE        If operation completed successfully
           *pError = FALSE, *pStatus = 0
FALSE       If operation failed
           *pError = TRUE, *pStatus = error status


SstFlashIsProgramCompleted in the FWHSSTFlashWrite.c

Function : SstFlashIsProgramCompleted

File: FWHSSTFlashWrite.c
Description:
This function verifies whether the program (page or byte)
command is completed and returns the status of the command
Input:
*pByteAddress   Location of the program command
*Byte           Pointer to data written
Length          Amount of data to check
Output:
*pError         True on error and false on success
*Status         Error status code (0 - Success)

Return:  TRUE        If operation completed successfully
           *pError = FALSE, *pStatus = 0
FALSE       If operation failed
           *pError = TRUE, *pStatus = error status


SSTFlashProgramCommand in the FWHSSTFlashWrite.c

Function : SSTFlashProgramCommand

File: FWHSSTFlashWrite.c
Description:
This function programs a byte data to the specified location
Input:
*pByteAddress - Location where the data to be written
*Byte - Byte to be written
*Length - Number of bytes to write
Output:
*Length - Number of bytes still left to write

Return:  None


SstFlashReadCommand in the FWHSSTFlashWrite.c

Function : SstFlashReadCommand

File: FWHSSTFlashWrite.c
Description:
This function programs a byte data to the specified location
Input:
*pByteAddress   Location where the data to be written
Bytes - data to be written.
Length - number of bytes to write
Output:
Length - number of bytes that were not written

Return:  None


SSTFlashVirtualFixup in the FWHSSTFlashWrite.c

Function : SSTFlashVirtualFixup

File: FWHSSTFlashWrite.c
Description:
This function will be invoked by the core to convert
runtime pointers to virtual address
Input:
*pRS    Pointer to runtime services
Output:
None

Return:  None


SstFwhResetFlash in the FWHSSTFlashWrite.c

Function : SstFwhResetFlash

File: FWHSSTFlashWrite.c
Description:
This function resets the SST flash part
Input:
None
Output:
None

Return:  None


SstFwhWaitForOperationCompleted in the FWHSSTFlashWrite.c

Function : SstFwhWaitForOperationCompleted

File: FWHSSTFlashWrite.c
Description:
This function verifies whether the command sent to the FWH part
has completed and returns the status of the command
Input:
IN volatile UINT8*  pAddress    Location to check the device status
Output:
EFI_SUCCESS -
EFI_TIMEOUT -
EFI_DEVICE_ERROR -


FWHSSTFlashWrite_Polling.c

Description:
Flash update routines

The following functions are used in the file: FWHSSTFlashWrite_Polling.c.

Function | Description
mSstFwhIdentify | This function identifies the supported SST flash parts and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE.
SetBlockLock | This function programs a page of data at a time
SSTFlashBlockWriteDisable | This function contains any flash specific code need to disable a particular flash block write
SSTFlashBlockWriteEnable | This function contains any flash specific code need to enable a particular flash block write
SSTFlashDeviceWriteDisable | This function contains any flash specific code need to disable flash write
SSTFlashDeviceWriteEnable | This function contains any flash specific code need to enable flash write
SstFlashEraseCommand | This API function erases a block in the flash. Flash model specific code will branch out from this routine
SSTFlashIsEraseCompleted | This function verifies whether the block erase command is completed and returns the status of the command
SstFlashIsProgramCompleted | This function verifies whether the program (page or byte) command is completed and returns the status of the command
SSTFlashProgramCommand | This function programs a byte data to the specified location
SstFlashReadCommand | This function programs a byte data to the specified location
SSTFlashVirtualFixup | This function will be invoked by the core to convert runtime pointers to virtual address
SstFwhResetFlash | This function resets the SST flash part
SstFwhWaitForOperationCompleted | This function verifies whether the command sent to the FWH part has completed and returns the status of the command


mSstFwhIdentify in the FWHSSTFlashWrite_Polling.c

Function : mSstFwhIdentify

File: FWHSSTFlashWrite_Polling.c
Description:
This function identifies the supported SST flash parts and
returns appropriate flash device API pointer. If flash part is
not supported by this module it will return FALSE.
Input:
pBlockAddress   Block address of the flash part. Can be used to
               send ID command
Output:
**FlashApi      Pointer to hold the returned flash API

Return:  TRUE            If flash part is supported, FlashApi contains
               routines to handle the flash requests
FALSE           Flash part is not supported

Note:    This routine is part of the global flash init list. Make sure
it is properly linked to the init list "FlashList" (in SDL file)


SetBlockLock in the FWHSSTFlashWrite_Polling.c

Function : SetBlockLock

File: FWHSSTFlashWrite_Polling.c
Description:
This function programs a page of data at a time
Input:
volatile UINT8* pBlockAddress - This is location where the data
   is to be written
UINT8 LockState - Value to use to set the Lock register for the
   block defined by pBlockAddress
Output:
None

Return:  None


SSTFlashBlockWriteDisable in the FWHSSTFlashWrite_Polling.c

Function : SSTFlashBlockWriteDisable

File: FWHSSTFlashWrite_Polling.c
Description:
This function contains any flash specific code need to
disable a particular flash block write
Input:
None
Output:
None

Return:  None


SSTFlashBlockWriteEnable in the FWHSSTFlashWrite_Polling.c

Function : SSTFlashBlockWriteEnable

File: FWHSSTFlashWrite_Polling.c
Description:
This function contains any flash specific code need to
enable a particular flash block write
Input:
None
Output:
None

Return:  None


SSTFlashDeviceWriteDisable in the FWHSSTFlashWrite_Polling.c

Function : SSTFlashDeviceWriteDisable

File: FWHSSTFlashWrite_Polling.c
Description:
This function contains any flash specific code need to
disable flash write
Input:
None
Output:
None

Return:  None


SSTFlashDeviceWriteEnable in the FWHSSTFlashWrite_Polling.c

Function : SSTFlashDeviceWriteEnable

File: FWHSSTFlashWrite_Polling.c
Description:
This function contains any flash specific code need to
enable flash write
Input:
None
Output:
None

Return:  None


SstFlashEraseCommand in the FWHSSTFlashWrite_Polling.c

Function : SstFlashEraseCommand

File: FWHSSTFlashWrite_Polling.c
Description:
This API function erases a block in the flash. Flash model
specific code will branch out from this routine
Input:
pBlockAddress   Block that need to be erased
Output:
Nothing
Returns:
None


SSTFlashIsEraseCompleted in the FWHSSTFlashWrite_Polling.c

Function : SSTFlashIsEraseCompleted

File: FWHSSTFlashWrite_Polling.c
Description:
This function verifies whether the block erase
command is completed and returns the status of the command
Input:
*pBlockAddress  Location of the block erase
Output:
*pError         True on error and false on success
*Status         Error status code (0 - Success)

Return:  TRUE        If operation completed successfully
           *pError = FALSE, *pStatus = 0
FALSE       If operation failed
           *pError = TRUE, *pStatus = error status


SstFlashIsProgramCompleted in the FWHSSTFlashWrite_Polling.c

Function : SstFlashIsProgramCompleted

File: FWHSSTFlashWrite_Polling.c
Description:
This function verifies whether the program (page or byte)
command is completed and returns the status of the command
Input:
*pByteAddress   Location of the program command
*Byte           Pointer to data written
Length          Amount of data to check
Output:
*pError         True on error and false on success
*Status         Error status code (0 - Success)

Return:  TRUE        If operation completed successfully
           *pError = FALSE, *pStatus = 0
FALSE       If operation failed
           *pError = TRUE, *pStatus = error status


SSTFlashProgramCommand in the FWHSSTFlashWrite_Polling.c

Function : SSTFlashProgramCommand

File: FWHSSTFlashWrite_Polling.c
Description:
This function programs a byte data to the specified location
Input:
*pByteAddress - Location where the data to be written
*Byte - Byte to be written
*Length - Number of bytes to write
Output:
*Length - Number of bytes still left to write

Return:  None


SstFlashReadCommand in the FWHSSTFlashWrite_Polling.c

Function : SstFlashReadCommand

File: FWHSSTFlashWrite_Polling.c
Description:
This function programs a byte data to the specified location
Input:
*pByteAddress   Location where the data to be written
Bytes - data to be written.
Length - number of bytes to write
Output:
Length - number of bytes that were not written

Return:  None


SSTFlashVirtualFixup in the FWHSSTFlashWrite_Polling.c

Function : SSTFlashVirtualFixup

File: FWHSSTFlashWrite_Polling.c
Description:
This function will be invoked by the core to convert
runtime pointers to virtual address
Input:
*pRS    Pointer to runtime services
Output:
None

Return:  None


SstFwhResetFlash in the FWHSSTFlashWrite_Polling.c

Function : SstFwhResetFlash

File: FWHSSTFlashWrite_Polling.c
Description:
This function resets the SST flash part
Input:
None
Output:
None

Return:  None


SstFwhWaitForOperationCompleted in the FWHSSTFlashWrite_Polling.c

Function : SstFwhWaitForOperationCompleted

File: FWHSSTFlashWrite_Polling.c
Description:
This function verifies whether the command sent to the FWH part
has completed and returns the status of the command
Input:
IN volatile UINT8*  pAddress    Location to check the device status
Output:
EFI_SUCCESS -
EFI_TIMEOUT -
EFI_DEVICE_ERROR -


LPCFlash.mak

Description:


LPCFlashWrite.c

Description:
This file contains LPC flash write related code. The
following are the flash parts currently supported and/or tested:
SST 49LF020A        Tested

The following functions are used in the file: LPCFlashWrite.c.

Function | Description
InitSstAndCheckId | This function checks whether the flash device on the system is SST Lpc flash
LpcFlashBlockWriteDisable | This function contains any flash specific code need to disable a particular flash block write
LpcFlashBlockWriteEnable | This function contains any flash specific code need to enable a particular flash block write
LpcFlashDeviceWriteDisable | This function contains any flash specific code need to disable flash write
LpcFlashDeviceWriteEnable | This function contains any flash specific code need to enable flash write
LpcFlashEraseCommand | This API function erases a block in the flash. Flash model specific code will branch out from this routine
LpcFlashIsEraseCompleted | This function verifies whether the block erase command is completed and returns the status of the command
LpcFlashIsProgramCompleted | This function verifies whether the program (page or byte) command is completed and returns the status of the command
LpcFlashProgramCommand | This function programs a byte data to the specified location
LpcFlashReadCommand | This function programs a byte data to the specified location
LpcFlashVirtualFixup | This function will be invoked by the core to convert runtime pointers to virtual address
LpcOperationCompleted | This function verifies whether the previous (erase or program) command is completed and returns the status of the command
LpcResetFlash | This function resets the Lpc flash part
mLpcFlashIdentify | This function identifies the supported Lpc flash parts and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE.
SetBlockLock | This function programs a page of data at a time


InitSstAndCheckId in the LPCFlashWrite.c

Function : InitSstAndCheckId

File: LPCFlashWrite.c
Description:
This function checks whether the flash device on the system
is SST Lpc flash
Input:
None
Output:
None

Return:      TRUE            If flash part is identified as SST
FALSE           If non-SST Lpc flash part identified


LpcFlashBlockWriteDisable in the LPCFlashWrite.c

Function : LpcFlashBlockWriteDisable

File: LPCFlashWrite.c
Description:
This function contains any flash specific code need to
disable a particular flash block write
Input:
None
Output:
None

Return:      None


LpcFlashBlockWriteEnable in the LPCFlashWrite.c

Function : LpcFlashBlockWriteEnable

File: LPCFlashWrite.c
Description:
This function contains any flash specific code need to
enable a particular flash block write
Input:
None
Output:
None

Return:      None


LpcFlashDeviceWriteDisable in the LPCFlashWrite.c

Function : LpcFlashDeviceWriteDisable

File: LPCFlashWrite.c
Description:
This function contains any flash specific code need to
disable flash write
Input:
None
Output:
None


LpcFlashDeviceWriteEnable in the LPCFlashWrite.c

Function : LpcFlashDeviceWriteEnable

File: LPCFlashWrite.c
Description:
This function contains any flash specific code need to
enable flash write
Input:
None
Output:
None

Return:      None


LpcFlashEraseCommand in the LPCFlashWrite.c

Function : LpcFlashEraseCommand

File: LPCFlashWrite.c
Description:
This API function erases a block in the flash. Flash model
specific code will branch out from this routine
Input:
pBlockAddress   Block that need to be erased
Output:
Nothing

Return:      Nothing


LpcFlashIsEraseCompleted in the LPCFlashWrite.c

Function : LpcFlashIsEraseCompleted

File: LPCFlashWrite.c
Description:
This function verifies whether the block erase
command is completed and returns the status of the command
Input:
*pBlockAddress  Location of the block erase
Output:
*pError         True on error and false on success
*Status         Error status code (0 - Success)

Return:      TRUE        If operation completed successfully
           *pError = FALSE, *pStatus = 0
FALSE       If operation failed
           *pError = TRUE, *pStatus = error status


LpcFlashIsProgramCompleted in the LPCFlashWrite.c

Function : LpcFlashIsProgramCompleted

File: LPCFlashWrite.c
Description:
This function verifies whether the program (page or byte)
command is completed and returns the status of the command
Input:
*pByteAddress - Location of the program command
*Byte - Last data byte written
Length - Amount of data that was written
Output:
*pError - True on error and false on success
*Status - Error status code (0 - Success)

Return:  TRUE        If operation completed successfully
           *pError = FALSE, *pStatus = 0
FALSE       If operation failed
           *pError = TRUE, *pStatus = error status


LpcFlashProgramCommand in the LPCFlashWrite.c

Function : LpcFlashProgramCommand

File: LPCFlashWrite.c
Description:
This function programs a byte data to the specified location
Input:
*pByteAddress   Location where the data to be written
*Data - Byte to be written
*Length - Number of bytes to write
Output:
*Length - Number of bytes left to write

Return:  None


LpcFlashReadCommand in the LPCFlashWrite.c

Function : LpcFlashReadCommand

File: LPCFlashWrite.c
Description:
This function programs a byte data to the specified location
Input:
*pByteAddress   Location where the data to be written
Bytes - data to be written.
Length - number of bytes to write
Output:
Length - number of bytes that were not written

Return:  None


LpcFlashVirtualFixup in the LPCFlashWrite.c

Function : LpcFlashVirtualFixup

File: LPCFlashWrite.c
Description:
This function will be invoked by the core to convert
runtime pointers to virtual address
Input:
*pRS    Pointer to runtime services
Output:
None

Return:      None


LpcOperationCompleted in the LPCFlashWrite.c

Function : LpcOperationCompleted

File: LPCFlashWrite.c
Description:
This function verifies whether the previous (erase or
program) command is completed and returns the status
of the command
Input:
*pAddress   Location of the previous operation
Output:
*pError     True on error and false on success
*Status     Error status code (0 - Success)

Return:  TRUE        If operation completed successfully
           *pError = FALSE, *pStatus = 0
FALSE       If operation failed
           *pError = TRUE, *pStatus = error status


LpcResetFlash in the LPCFlashWrite.c

Function : LpcResetFlash

File: LPCFlashWrite.c
Description:
This function resets the Lpc flash part
Input:
None
Output:
None

Return:      None


mLpcFlashIdentify in the LPCFlashWrite.c

Function : mLpcFlashIdentify

File: LPCFlashWrite.c
Description:
This function identifies the supported Lpc flash parts and
returns appropriate flash device API pointer. If flash part is
not supported by this module it will return FALSE.
Input:
pBlockAddress   Block address of the flash part. Can be used to
               send ID command
Output:
**FlashApi      Pointer to hold the returned flash API

Return:  TRUE            If flash part is supported, FlashApi contains
               routines to handle the flash requests
FALSE           Flash part is not supported

Note:    This routine is part of the global flash init list. Make sure
it is properly linked to the init list "FlashList" (in SDL file)


SetBlockLock in the LPCFlashWrite.c

Function : SetBlockLock

File: LPCFlashWrite.c
Description:
This function programs a page of data at a time
Input:
volatile UINT8* pBlockAddress - This is location where the data
   is to be written
UINT8 LockState - Value to use to set the Lock register for the
   block defined by pBlockAddress
Output:
None
Modified:
Notes:

Referrals:


LPCSST2MBlFlashWrite.c

Description:
Support routines for the LPC Sst 2Mb part

The following functions are used in the file: LPCSST2MBlFlashWrite.c.

Function | Description
InitSst2MbCheckId | This function identifies the supported LPC flash parts.
mSstLpcIdentify | This function identifies the supported LPC flash parts and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE.
SetBlockLock | This function programs a page of data at a time
Sst2mLpcCmdDelay | This function resets the Sst flash part
Sst2mLpcOperationCompleted | This function verifies whether the command sent to the FWH part has completed and returns the status of the command
Sst2mLpcResetFlash | This function resets the Sst flash part
SstLpcBlockWriteDisable | This function contains any flash specific code need to disable a particular flash block write
SstLpcBlockWriteEnable | This function contains any flash specific code need to enable a particular flash block write
SstLpcDeviceWriteDisable | This function contains any flash specific code need to disable flash write
SstLpcDeviceWriteEnable | This function contains any flash specific code need to enable flash write
SstLpcEraseCommand | This API function erases a block in the flash. Flash model specific code will branch out from this routine
SstLpcIsEraseCompleted | This function verifies whether the block erase command is completed and returns the status of the command
SstLpcIsProgramCompleted | This function verifies whether the program (page or byte) command is completed and returns the status of the command
SstLpcProgramCommand | This function programs a byte data to the specified location
SstLpcReadCommand | This function programs a byte data to the specified location
SstLpcVirtualFixup | This function will be invoked by the core to convert runtime pointers to virtual address


InitSst2MbCheckId in the LPCSST2MBlFlashWrite.c

Function : InitSst2MbCheckId

File: LPCSST2MBlFlashWrite.c
Description:
This function identifies the supported LPC flash parts.
Input:
pBlockAddress   Block address of the flash part. Can be used to
               send ID command
Output:
EFI_SUCCESS     If flash part is supported
EFI_NOT_FOUND   Flash part is not supported


mSstLpcIdentify in the LPCSST2MBlFlashWrite.c

Function : mSstLpcIdentify

File: LPCSST2MBlFlashWrite.c
Description:
This function identifies the supported LPC flash parts and
returns appropriate flash device API pointer. If flash part is
not supported by this module it will return FALSE.
Input:
pBlockAddress   Block address of the flash part. Can be used to
               send ID command
**FlashApi      Pointer to hold the returned flash API
Output:
TRUE            If flash part is supported, FlashApi contains
               routines to handle the flash requests
FALSe           Flash part is not supported

Note:        This routine is part of the global flash init list. Make sure
it is properly linked to the init list "FlashList" (in SDL file)


SetBlockLock in the LPCSST2MBlFlashWrite.c

Function : SetBlockLock

File: LPCSST2MBlFlashWrite.c
Description:
This function programs a page of data at a time
Input:
volatile UINT8* pBlockAddress - This is location where the data
   is to be written
UINT8 LockState - Value to use to set the Lock register for the
   block defined by pBlockAddress
Output:
None
Modified:
Notes:

Referrals:


Sst2mLpcCmdDelay in the LPCSST2MBlFlashWrite.c

Function : Sst2mLpcCmdDelay

File: LPCSST2MBlFlashWrite.c
Description:
This function resets the Sst flash part
Input:
None
Output:
None

Return:  None


Sst2mLpcOperationCompleted in the LPCSST2MBlFlashWrite.c

Function : Sst2mLpcOperationCompleted

File: LPCSST2MBlFlashWrite.c
Description:
This function verifies whether the command sent to the FWH part
has completed and returns the status of the command
Input:
IN volatile UINT8*  pAddress    Location to check the device status
Output:
EFI_SUCCESS -
EFI_TIMEOUT -
EFI_DEVICE_ERROR -


Sst2mLpcResetFlash in the LPCSST2MBlFlashWrite.c

Function : Sst2mLpcResetFlash

File: LPCSST2MBlFlashWrite.c
Description:
This function resets the Sst flash part
Input:
None
Output:
None

Return:  None


SstLpcBlockWriteDisable in the LPCSST2MBlFlashWrite.c

Function : SstLpcBlockWriteDisable

File: LPCSST2MBlFlashWrite.c
Description:
This function contains any flash specific code need to
disable a particular flash block write
Input:
None
Output:
None


SstLpcBlockWriteEnable in the LPCSST2MBlFlashWrite.c

Function : SstLpcBlockWriteEnable

File: LPCSST2MBlFlashWrite.c
Description:
This function contains any flash specific code need to
enable a particular flash block write
Input:
None
Output:
None


SstLpcDeviceWriteDisable in the LPCSST2MBlFlashWrite.c

Function : SstLpcDeviceWriteDisable

File: LPCSST2MBlFlashWrite.c
Description:
This function contains any flash specific code need to
disable flash write
Input:
None
Output:
None


SstLpcDeviceWriteEnable in the LPCSST2MBlFlashWrite.c

Function : SstLpcDeviceWriteEnable

File: LPCSST2MBlFlashWrite.c
Description:
This function contains any flash specific code need to
enable flash write
Input:
None
Output:
None


SstLpcEraseCommand in the LPCSST2MBlFlashWrite.c

Function : SstLpcEraseCommand

File: LPCSST2MBlFlashWrite.c
Description:
This API function erases a block in the flash. Flash model
specific code will branch out from this routine
Input:
pBlockAddress   Block that need to be erased
Output:
Nothing


SstLpcIsEraseCompleted in the LPCSST2MBlFlashWrite.c

Function : SstLpcIsEraseCompleted

File: LPCSST2MBlFlashWrite.c
Description:
This function verifies whether the block erase
command is completed and returns the status of the command
Input:
*pBlockAddress  Location of the block erase
*pError         True on error and false on success
*Status         Error status code (0 - Success)
Output:
TRUE        If operation completed successfully
           *pError = FALSE, *pStatus = 0
FALSE       If operation failed
           *pError = TRUE, *pStatus = error status


SstLpcIsProgramCompleted in the LPCSST2MBlFlashWrite.c

Function : SstLpcIsProgramCompleted

File: LPCSST2MBlFlashWrite.c
Description:
This function verifies whether the program (page or byte)
command is completed and returns the status of the command
Input:
*pByteAddress   Location of the program command
Byte            Last data byte written
*pError         True on error and false on success
*Status         Error status code (0 - Success)
Output:
TRUE        If operation completed successfully
           *pError = FALSE, *pStatus = 0
FALSE       If operation failed
           *pError = TRUE, *pStatus = error status


SstLpcProgramCommand in the LPCSST2MBlFlashWrite.c

Function : SstLpcProgramCommand

File: LPCSST2MBlFlashWrite.c
Description:
This function programs a byte data to the specified location
Input:
*pByteAddress   Location where the data to be written
Data            Byte to be written
Output:
None


SstLpcReadCommand in the LPCSST2MBlFlashWrite.c

Function : SstLpcReadCommand

File: LPCSST2MBlFlashWrite.c
Description:
This function programs a byte data to the specified location
Input:
*pByteAddress   Location where the data to be written
Bytes - data to be written.
Length - number of bytes to write
Output:
Length - number of bytes that were not written

Return:  None


SstLpcVirtualFixup in the LPCSST2MBlFlashWrite.c

Function : SstLpcVirtualFixup

File: LPCSST2MBlFlashWrite.c
Description:
This function will be invoked by the core to convert
runtime pointers to virtual address
Input:
*pRS    Pointer to runtime services
Output:
None


SpiFlash.c

Description:
Flash update routines

The following functions are used in the file: SpiFlash.c.

Function | Description
CommonConvertSpiAddress |
CommonSpiBlockWriteDisable | This function contains any flash specific code need to disable a particular flash block write
CommonSpiBlockWriteEnable | This function contains any flash specific code need to enable a particular flash block write
CommonSpiDeviceVirtualFixup | This function will be invoked by the core to convert runtime pointers to virtual address
CommonSpiDeviceWriteDisable | This function contains any flash specific code need to disable flash write
CommonSpiDeviceWriteEnable | This function contains any flash specific code need to enable flash write
CommonSpiEraseCommand | This API function erases a block in the flash. Flash model specific code will branch out from this routine
CommonSpiIsEraseCompleted | This function verifies whether the block erase command is completed and returns the status of the command
CommonSpiIsProgramCompleted | This function verifies whether the program (page or byte) command is completed and returns the status of the command
CommonSpiProgramCommand | This function programs a byte data to the specified location
CommonSpiReadByte |
CommonSpiReadCommand | This function programs a byte data to the specified location
CommonSpiReadId |
CommonSpiReadStatus |
CommonSpiWriteStatus | Routine for Write SPI Status Register.
InitializeSpiEnvironment |
IoDelay |
ReinitializeSpiEnvironment |
WaitForSpiCycleDone |
WaitForWriteOperationCompleted |


CommonConvertSpiAddress in the SpiFlash.c

Function : CommonConvertSpiAddress

File: SpiFlash.c
Description:
Input:
Output:


CommonSpiBlockWriteDisable in the SpiFlash.c

Function : CommonSpiBlockWriteDisable

File: SpiFlash.c
Description:
This function contains any flash specific code need to
disable a particular flash block write
Input:
*pBlockAddress - Address within the block to write disable
Output:
None

Return:  None


CommonSpiBlockWriteEnable in the SpiFlash.c

Function : CommonSpiBlockWriteEnable

File: SpiFlash.c
Description:
This function contains any flash specific code need to
enable a particular flash block write
Input:
*pBlockAddress - Address within the block to write enable
Output:
None

Return:      None


CommonSpiDeviceVirtualFixup in the SpiFlash.c

Function : CommonSpiDeviceVirtualFixup

File: SpiFlash.c
Description:
This function will be invoked by the core to convert
runtime pointers to virtual address
Input:
*pRS    Pointer to runtime services
Output:
None

Return:  None


CommonSpiDeviceWriteDisable in the SpiFlash.c

Function : CommonSpiDeviceWriteDisable

File: SpiFlash.c
Description:
This function contains any flash specific code need to
disable flash write
Input:
None
Output:
None

Return:  None


CommonSpiDeviceWriteEnable in the SpiFlash.c

Function : CommonSpiDeviceWriteEnable

File: SpiFlash.c
Description:
This function contains any flash specific code need to
enable flash write
Input:
None
Output:
None

Return:  None


CommonSpiEraseCommand in the SpiFlash.c

Function : CommonSpiEraseCommand

File: SpiFlash.c
Description:
This API function erases a block in the flash. Flash model
specific code will branch out from this routine
Input:
pBlockAddress   Block that need to be erased
Output:
Nothing


CommonSpiIsEraseCompleted in the SpiFlash.c

Function : CommonSpiIsEraseCompleted

File: SpiFlash.c
Description:
This function verifies whether the block erase
command is completed and returns the status of the command
Input:
*pBlockAddress  Location of the block erase
Output:
*pError         True on error and false on success
*Status         Error status code (0 - Success)

Return:  TRUE        If operation completed successfully
           *pError = FALSE, *pStatus = 0
FALSE       If operation failed
           *pError = TRUE, *pStatus = error status


CommonSpiIsProgramCompleted in the SpiFlash.c

Function : CommonSpiIsProgramCompleted

File: SpiFlash.c
Description:
This function verifies whether the program (page or byte)
command is completed and returns the status of the command
Input:
*pByteAddress   Location of the program command
Byte            Last data byte written
Output:
*pError         True on error and false on success
*Status         Error status code (0 - Success)

Return:  TRUE        If operation completed successfully
           *pError = FALSE, *pStatus = 0
FALSE       If operation failed
           *pError = TRUE, *pStatus = error status


CommonSpiProgramCommand in the SpiFlash.c

Function : CommonSpiProgramCommand

File: SpiFlash.c
Description:
This function programs a byte data to the specified location
Input:
*pByteAddress   Location where the data to be written
Bytes - data to be written.
Length - number of bytes to write
Output:
Length - number of bytes that were not written

Return:  None


CommonSpiReadByte in the SpiFlash.c

Function : CommonSpiReadByte

File: SpiFlash.c
Description:
Input:
dByteAddress    Address that need to be read.
Output:
BYTE            Value which is read from SPI flash.


CommonSpiReadCommand in the SpiFlash.c

Function : CommonSpiReadCommand

File: SpiFlash.c
Description:
This function programs a byte data to the specified location
Input:
*pByteAddress   Location where the data to be written
Bytes - data to be written.
Length - number of bytes to write
Output:
Length - number of bytes that were not written

Return:  None


CommonSpiReadId in the SpiFlash.c

Function : CommonSpiReadId

File: SpiFlash.c
Description:
Input:
Output:


CommonSpiReadStatus in the SpiFlash.c

Function : CommonSpiReadStatus

File: SpiFlash.c
Description:
Input:
None.
Output:
Status Register which is read from SPI flash.


CommonSpiWriteStatus in the SpiFlash.c

Function : CommonSpiWriteStatus

File: SpiFlash.c
Description:
Routine for Write SPI Status Register.
Input:
None.
Output:
Status Register which is read from SPI flash.


InitializeSpiEnvironment in the SpiFlash.c

Function : InitializeSpiEnvironment

File: SpiFlash.c
Description:
Input:
Output:


IoDelay in the SpiFlash.c

Function : IoDelay

File: SpiFlash.c
Description:
Input:
Output:


ReinitializeSpiEnvironment in the SpiFlash.c

Function : ReinitializeSpiEnvironment

File: SpiFlash.c
Description:
Input:
Output:


WaitForSpiCycleDone in the SpiFlash.c

Function : WaitForSpiCycleDone

File: SpiFlash.c
Description:
Input:
Output:


WaitForWriteOperationCompleted in the SpiFlash.c

Function : WaitForWriteOperationCompleted

File: SpiFlash.c
Description:
Input:
None.
Output:
None.


SpiFlash.H

Description:
Contains Vendor IDs and Device IDs for ths supported
parts.  also contains the command values for each supported part


SpiFlash.mak

Description:


SpiIdentify.c

Description:
Provides device specific indentify functions for the
supported spi parts

The following functions are used in the file: SpiIdentify.c.

Function | Description
IdentifyAtmel_26DF | This function identifies the supported LPC flash parts and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE. Supports the following SPI parts ATMEL 26DFxx parts
IdentifySst_25LF | This function identifies the supported SPI flash parts and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE. Supports the following SPI parts SST 25LF040/080/106A, ESMT 25L004/008/016A
IdentifySst_25VF | This function identifies the supported SPI flash parts and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE. Supports the following SPI parts SST 25VF040B/080B/016B/032B, ESMT
IdentifySTM_25PExx | This function identifies the supported SPI flash parts and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE. Supports the following SPI parts ST Micro M25P80, M25P40
IntelCheckMemoryCapacity |
SpansionCheckMemoryCapacity |
SstCheckMemoryCapacity |
StmCheckMemoryCapacity |


IdentifyAtmel_26DF in the SpiIdentify.c

Function : IdentifyAtmel_26DF

File: SpiIdentify.c
Description:
This function identifies the supported LPC flash parts and
returns appropriate flash device API pointer. If flash part is
not supported by this module it will return FALSE.
Supports the following SPI parts
ATMEL 26DFxx parts
Input:
pBlockAddress   Block address of the flash part. Can be used to
               send ID command
Output:
**FlashApi      Pointer to hold the returned flash API

Return:  TRUE            If flash part is supported, FlashApi contains
               routines to handle the flash requests
FALSE           Flash part is not supported

Note:   This routine is part of the global flash init list. Make sure
it is properly linked to the init list "FlashList" (in SDL file)


IdentifySst_25LF in the SpiIdentify.c

Function : IdentifySst_25LF

File: SpiIdentify.c
Description:
This function identifies the supported SPI flash parts and
returns appropriate flash device API pointer. If flash part is
not supported by this module it will return FALSE.
Supports the following SPI parts
SST 25LF040/080/106A, ESMT 25L004/008/016A
Input:
pBlockAddress   Block address of the flash part. Can be used to
               send ID command
Output:
**FlashApi      Pointer to hold the returned flash API

Return:      TRUE            If flash part is supported, FlashApi contains
               routines to handle the flash requests
FALSE           Flash part is not supported

Note:        This routine is part of the global flash init list. Make sure
it is properly linked to the init list "FlashList" (in SDL file)


IdentifySst_25VF in the SpiIdentify.c

Function : IdentifySst_25VF

File: SpiIdentify.c
Description:
This function identifies the supported SPI flash parts and
returns appropriate flash device API pointer. If flash part is
not supported by this module it will return FALSE.
Supports the following SPI parts
SST 25VF040B/080B/016B/032B, ESMT
Input:
pBlockAddress   Block address of the flash part. Can be used to
               send ID command
Output:
**FlashApi      Pointer to hold the returned flash API

Return:  TRUE            If flash part is supported, FlashApi contains
               routines to handle the flash requests
FALSE           Flash part is not supported

Note:   This routine is part of the global flash init list. Make sure
it is properly linked to the init list "FlashList" (in SDL file)


IdentifySTM_25PExx in the SpiIdentify.c

Function : IdentifySTM_25PExx

File: SpiIdentify.c
Description:
This function identifies the supported SPI flash parts and
returns appropriate flash device API pointer. If flash part is
not supported by this module it will return FALSE.
Supports the following SPI parts
ST Micro M25P80, M25P40
Input:
pBlockAddress   Block address of the flash part. Can be used to
               send ID command
Output:
**FlashApi      Pointer to hold the returned flash API

Return:  TRUE            If flash part is supported, FlashApi contains
               routines to handle the flash requests
FALSE           Flash part is not supported

Note:   This routine is part of the global flash init list. Make sure
it is properly linked to the init list "FlashList" (in SDL file)


IntelCheckMemoryCapacity in the SpiIdentify.c

Function : IntelCheckMemoryCapacity

File: SpiIdentify.c
Description:
Input:
Output:


SpansionCheckMemoryCapacity in the SpiIdentify.c

Function : SpansionCheckMemoryCapacity

File: SpiIdentify.c
Description:
Input:
Output:


SstCheckMemoryCapacity in the SpiIdentify.c

Function : SstCheckMemoryCapacity

File: SpiIdentify.c
Description:
Input:
Output:


StmCheckMemoryCapacity in the SpiIdentify.c

Function : StmCheckMemoryCapacity

File: SpiIdentify.c
Description:
Input:
Output:


StdFlash.mak

Description:


STDIntelFlashWrite.c

Description:
Flash update routines

The following functions are used in the file: STDIntelFlashWrite.c.

Function | Description
IntelFlashBlockWriteDisable | This function contains any flash specific code need to disable a particular flash block write
IntelFlashBlockWriteEnable | This function contains any flash specific code need to enable a particular flash block write
IntelFlashDeviceWriteDisable | This function contains any flash specific code need to disable flash write
IntelFlashDeviceWriteEnable | This function contains any flash specific code need to enable flash write
IntelFlashEraseCommand | This API function erases a block in the flash. Flash model specific code will branch out from this routine
IntelFlashIsEraseCompleted | This function verifies whether the block erase command is completed and returns the status of the command
IntelFlashIsProgramCompleted | This function verifies whether the program (page or byte) command is completed and returns the status of the command
IntelFlashProgramCommand | This function programs a byte data to the specified location
IntelFlashReadCommand | This function programs a byte data to the specified location
IntelFlashVirtualFixup | This function will be invoked by the core to convert runtime pointers to virtual address
IntelSTDCmdDelay | This function resets the Sst flash part
IntelSTDIdentify | This function identifies the supported LPC flash parts and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE.
IntelSTDOperationCompleted | This function verifies whether the command sent to the FWH part has completed and returns the status of the command
IntelSTDResetFlash | This function resets the Sst flash part
SetBlockLock | This function programs a page of data at a time


IntelFlashBlockWriteDisable in the STDIntelFlashWrite.c

Function : IntelFlashBlockWriteDisable

File: STDIntelFlashWrite.c
Description:
This function contains any flash specific code need to
disable a particular flash block write
Input:
None
Output:
None

Return:  None


IntelFlashBlockWriteEnable in the STDIntelFlashWrite.c

Function : IntelFlashBlockWriteEnable

File: STDIntelFlashWrite.c
Description:
This function contains any flash specific code need to
enable a particular flash block write
Input:
None
Output:
None

Return:  None


IntelFlashDeviceWriteDisable in the STDIntelFlashWrite.c

Function : IntelFlashDeviceWriteDisable

File: STDIntelFlashWrite.c
Description:
This function contains any flash specific code need to
disable flash write
Input:
None
Output:
None

Return:  None


IntelFlashDeviceWriteEnable in the STDIntelFlashWrite.c

Function : IntelFlashDeviceWriteEnable

File: STDIntelFlashWrite.c
Description:
This function contains any flash specific code need to
enable flash write
Input:
None
Output:
None

Return:  None


IntelFlashEraseCommand in the STDIntelFlashWrite.c

Function : IntelFlashEraseCommand

File: STDIntelFlashWrite.c
Description:
This API function erases a block in the flash. Flash model
specific code will branch out from this routine
Input:
pBlockAddress   Block that need to be erased
Output:
Nothing
Returns:
None


IntelFlashIsEraseCompleted in the STDIntelFlashWrite.c

Function : IntelFlashIsEraseCompleted

File: STDIntelFlashWrite.c
Description:
This function verifies whether the block erase
command is completed and returns the status of the command
Input:
*pBlockAddress  Location of the block erase
Output:
*pError     True on error and false on success
*Status     Error status code (0 - Success)

Return:      TRUE        If operation completed successfully
           *pError = FALSE, *pStatus = 0
FALSE       If operation failed
           *pError = TRUE, *pStatus = error status


IntelFlashIsProgramCompleted in the STDIntelFlashWrite.c

Function : IntelFlashIsProgramCompleted

File: STDIntelFlashWrite.c
Description:
This function verifies whether the program (page or byte)
command is completed and returns the status of the command
Input:
*pByteAddress   Location of the program command
Byte            Last data byte written
Output:
*pError         True on error and false on success
*Status         Error status code (0 - Success)

Return:      TRUE        If operation completed successfully
           *pError = FALSE, *pStatus = 0
FALSE       If operation failed
           *pError = TRUE, *pStatus = error status


IntelFlashProgramCommand in the STDIntelFlashWrite.c

Function : IntelFlashProgramCommand

File: STDIntelFlashWrite.c
Description:
This function programs a byte data to the specified location
Input:
*pByteAddress   Location where the data to be written
*Byte - Byte to be written
*Length - Number of bytes to write
Output:
*Length - Number of bytes still left to write

Return:  None


IntelFlashReadCommand in the STDIntelFlashWrite.c

Function : IntelFlashReadCommand

File: STDIntelFlashWrite.c
Description:
This function programs a byte data to the specified location
Input:
*pByteAddress   Location where the data to be written
Bytes - data to be written.
Length - number of bytes to write
Output:
Length - number of bytes that were not written

Return:  None


IntelFlashVirtualFixup in the STDIntelFlashWrite.c

Function : IntelFlashVirtualFixup

File: STDIntelFlashWrite.c
Description:
This function will be invoked by the core to convert
runtime pointers to virtual address
Input:
*pRS    Pointer to runtime services
Output:
None

Return:  None


IntelSTDCmdDelay in the STDIntelFlashWrite.c

Function : IntelSTDCmdDelay

File: STDIntelFlashWrite.c
Description:
This function resets the Sst flash part
Input:
None
Output:
None

Return:  None


IntelSTDIdentify in the STDIntelFlashWrite.c

Function : IntelSTDIdentify

File: STDIntelFlashWrite.c
Description:
This function identifies the supported LPC flash parts and
returns appropriate flash device API pointer. If flash part is
not supported by this module it will return FALSE.
Input:
pBlockAddress   Block address of the flash part. Can be used to
               send ID command
Output:
**FlashApi      Pointer to hold the returned flash API

Return:  TRUE            If flash part is supported, FlashApi contains
               routines to handle the flash requests
FALSE           Flash part is not supported

Note:    This routine is part of the global flash init list. Make sure
it is properly linked to the init list "FlashList" (in SDL file)


IntelSTDOperationCompleted in the STDIntelFlashWrite.c

Function : IntelSTDOperationCompleted

File: STDIntelFlashWrite.c
Description:
This function verifies whether the command sent to the FWH part
has completed and returns the status of the command
Input:
IN volatile UINT8*  pAddress    Location to check the device status
Output:
EFI_SUCCESS -
EFI_TIMEOUT -
EFI_DEVICE_ERROR -


IntelSTDResetFlash in the STDIntelFlashWrite.c

Function : IntelSTDResetFlash

File: STDIntelFlashWrite.c
Description:
This function resets the Sst flash part
Input:
None
Output:
None

Return:  None


SetBlockLock in the STDIntelFlashWrite.c

Function : SetBlockLock

File: STDIntelFlashWrite.c
Description:
This function programs a page of data at a time
Input:
*pBlockAddress - This is location where the data
   is to be written
LockState - Value to use to set the Lock register for the
   block defined by pBlockAddress
Output:
None

Return:  None


StdMxicFlashWrite.c

Description:
Flash update routines

The following functions are used in the file: StdMxicFlashWrite.c.

Function | Description
mStdMxicIdentify | This function identifies the supported Mxic flash part and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE.
MxicFlashBlockWriteDisable | This function contains any flash specific code need to disable a particular flash block write
MxicFlashBlockWriteEnable | This function contains any flash specific code need to enable a particular flash block write
MxicFlashDeviceWriteDisable | This function contains any flash specific code need to disable flash write
MxicFlashDeviceWriteEnable | This function contains any flash specific code need to enable flash write
MxicFlashEraseCommand | This API function erases a block in the flash. Flash model specific code will branch out from this routine
MxicFlashIsEraseCompleted | This function verifies whether the block erase command is completed and returns the status of the command
MxicFlashIsProgramCompleted | This function verifies whether the program (page or byte) command is completed and returns the status of the command
MxicFlashProgramCommand | This function programs a byte data to the specified location
MxicFlashReadCommand | This function programs a byte data to the specified location
MxicFlashVirtualFixup | This function will be invoked by the core to convert runtime pointers to virtual address
MxicResetFlash | This function resets the Mxic flash part
MxicStdWaitForOperationCompleted | This function verifies whether the command sent to the FWH part has completed and returns the status of the command
MxicWriteBufferAbortReset | This function resets the Mxic flash part


mStdMxicIdentify in the StdMxicFlashWrite.c

Function : mStdMxicIdentify

File: StdMxicFlashWrite.c
Description:
This function identifies the supported Mxic flash part and
returns appropriate flash device API pointer. If flash part is
not supported by this module it will return FALSE.
Input:
pBlockAddress   Block address of the flash part. Can be used to
               send ID command
Output:
**FlashApi      Pointer to hold the returned flash API

Return:  TRUE            If flash part is supported, FlashApi contains
               routines to handle the flash requests
FALSE           Flash part is not supported

Note:    This routine is part of the global flash init list. Make sure
it is properly linked to the init list "FlashList" (in SDL file)


MxicFlashBlockWriteDisable in the StdMxicFlashWrite.c

Function : MxicFlashBlockWriteDisable

File: StdMxicFlashWrite.c
Description:
This function contains any flash specific code need to
disable a particular flash block write
Input:
None
Output:
None

Return:  None


MxicFlashBlockWriteEnable in the StdMxicFlashWrite.c

Function : MxicFlashBlockWriteEnable

File: StdMxicFlashWrite.c
Description:
This function contains any flash specific code need to
enable a particular flash block write
Input:
None
Output:
None

Return:  None


MxicFlashDeviceWriteDisable in the StdMxicFlashWrite.c

Function : MxicFlashDeviceWriteDisable

File: StdMxicFlashWrite.c
Description:
This function contains any flash specific code need to
disable flash write
Input:
None
Output:
None

Return:  None


MxicFlashDeviceWriteEnable in the StdMxicFlashWrite.c

Function : MxicFlashDeviceWriteEnable

File: StdMxicFlashWrite.c
Description:
This function contains any flash specific code need to
enable flash write
Input:
None
Output:
None

Return:  None


MxicFlashEraseCommand in the StdMxicFlashWrite.c

Function : MxicFlashEraseCommand

File: StdMxicFlashWrite.c
Description:
This API function erases a block in the flash. Flash model
specific code will branch out from this routine
Input:
pBlockAddress   Block that need to be erased
Output:
Nothing
Returns:
None


MxicFlashIsEraseCompleted in the StdMxicFlashWrite.c

Function : MxicFlashIsEraseCompleted

File: StdMxicFlashWrite.c
Description:
This function verifies whether the block erase
command is completed and returns the status of the command
Input:
*pBlockAddress  Location of the block erase
Output:
*pError         True on error and false on success
*Status         Error status code (0 - Success)

Return:  TRUE        If operation completed successfully
           *pError = FALSE, *pStatus = 0
FALSE       If operation failed
           *pError = TRUE, *pStatus = error status


MxicFlashIsProgramCompleted in the StdMxicFlashWrite.c

Function : MxicFlashIsProgramCompleted

File: StdMxicFlashWrite.c
Description:
This function verifies whether the program (page or byte)
command is completed and returns the status of the command
Input:
*pByteAddress   Location of the program command
*Byte           Pointer to data written
Length          Amount of data to check
Output:
*pError         True on error and false on success
*Status         Error status code (0 - Success)

Return:  TRUE        If operation completed successfully
           *pError = FALSE, *pStatus = 0
FALSE       If operation failed
           *pError = TRUE, *pStatus = error status


MxicFlashProgramCommand in the StdMxicFlashWrite.c

Function : MxicFlashProgramCommand

File: StdMxicFlashWrite.c
Description:
This function programs a byte data to the specified location
Input:
*pByteAddress - Location where the data to be written
*Byte - Byte to be written
*Length - Number of bytes to write
Output:
*Length - Number of bytes still left to write

Return:  None


MxicFlashReadCommand in the StdMxicFlashWrite.c

Function : MxicFlashReadCommand

File: StdMxicFlashWrite.c
Description:
This function programs a byte data to the specified location
Input:
*pByteAddress   Location where the data to be written
Bytes - data to be written.
Length - number of bytes to write
Output:
Length - number of bytes that were not written

Return:  None


MxicFlashVirtualFixup in the StdMxicFlashWrite.c

Function : MxicFlashVirtualFixup

File: StdMxicFlashWrite.c
Description:
This function will be invoked by the core to convert
runtime pointers to virtual address
Input:
*pRS    Pointer to runtime services
Output:
None

Return:  None


MxicResetFlash in the StdMxicFlashWrite.c

Function : MxicResetFlash

File: StdMxicFlashWrite.c
Description:
This function resets the Mxic flash part
Input:
None
Output:
None

Return:  None


MxicStdWaitForOperationCompleted in the StdMxicFlashWrite.c

Function : MxicStdWaitForOperationCompleted

File: StdMxicFlashWrite.c
Description:
This function verifies whether the command sent to the FWH part
has completed and returns the status of the command
Input:
IN volatile UINT8*  pAddress    Location to check the device status
Output:
EFI_SUCCESS -
EFI_TIMEOUT -
EFI_DEVICE_ERROR -


MxicWriteBufferAbortReset in the StdMxicFlashWrite.c

Function : MxicWriteBufferAbortReset

File: StdMxicFlashWrite.c
Description:
This function resets the Mxic flash part
Input:
None
Output:
None

Return:  None


StdSpansionFlashWrite.c

Description:
Flash update routines

The following functions are used in the file: StdSpansionFlashWrite.c.

Function | Description
mStdSpansionIdentify | This function identifies the supported Spansion flash part and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE.
SpansionFlashBlockWriteDisable | This function contains any flash specific code need to disable a particular flash block write
SpansionFlashBlockWriteEnable | This function contains any flash specific code need to enable a particular flash block write
SpansionFlashDeviceWriteDisable | This function contains any flash specific code need to disable flash write
SpansionFlashDeviceWriteEnable | This function contains any flash specific code need to enable flash write
SpansionFlashEraseCommand | This API function erases a block in the flash. Flash model specific code will branch out from this routine
SpansionFlashIsEraseCompleted | This function verifies whether the block erase command is completed and returns the status of the command
SpansionFlashIsProgramCompleted | This function verifies whether the program (page or byte) command is completed and returns the status of the command
SpansionFlashProgramCommand | This function programs a byte data to the specified location
SpansionFlashReadCommand | This function programs a byte data to the specified location
SpansionFlashVirtualFixup | This function will be invoked by the core to convert runtime pointers to virtual address
SpansionResetFlash | This function resets the Spansion flash part
SpansionWriteBufferAbortReset | This function resets the Spansion flash part
WaitForPollingCompleted | This function waits until the command sent to the flash part has completed


mStdSpansionIdentify in the StdSpansionFlashWrite.c

Function : mStdSpansionIdentify

File: StdSpansionFlashWrite.c
Description:
This function identifies the supported Spansion flash part and
returns appropriate flash device API pointer. If flash part is
not supported by this module it will return FALSE.
Input:
pBlockAddress   Block address of the flash part. Can be used to
               send ID command
Output:
**FlashApi      Pointer to hold the returned flash API

Return:  TRUE            If flash part is supported, FlashApi contains
               routines to handle the flash requests
FALSE           Flash part is not supported

Note:    This routine is part of the global flash init list. Make sure
it is properly linked to the init list "FlashList" (in SDL file)


SpansionFlashBlockWriteDisable in the StdSpansionFlashWrite.c

Function : SpansionFlashBlockWriteDisable

File: StdSpansionFlashWrite.c
Description:
This function contains any flash specific code need to
disable a particular flash block write
Input:
None
Output:
None

Return:  None


SpansionFlashBlockWriteEnable in the StdSpansionFlashWrite.c

Function : SpansionFlashBlockWriteEnable

File: StdSpansionFlashWrite.c
Description:
This function contains any flash specific code need to
enable a particular flash block write
Input:
None
Output:
None

Return:  None


SpansionFlashDeviceWriteDisable in the StdSpansionFlashWrite.c

Function : SpansionFlashDeviceWriteDisable

File: StdSpansionFlashWrite.c
Description:
This function contains any flash specific code need to
disable flash write
Input:
None
Output:
None

Return:  None


SpansionFlashDeviceWriteEnable in the StdSpansionFlashWrite.c

Function : SpansionFlashDeviceWriteEnable

File: StdSpansionFlashWrite.c
Description:
This function contains any flash specific code need to
enable flash write
Input:
None
Output:
None

Return:  None


SpansionFlashEraseCommand in the StdSpansionFlashWrite.c

Function : SpansionFlashEraseCommand

File: StdSpansionFlashWrite.c
Description:
This API function erases a block in the flash. Flash model
specific code will branch out from this routine
Input:
pBlockAddress   Block that need to be erased
Output:
Nothing
Returns:
None


SpansionFlashIsEraseCompleted in the StdSpansionFlashWrite.c

Function : SpansionFlashIsEraseCompleted

File: StdSpansionFlashWrite.c
Description:
This function verifies whether the block erase
command is completed and returns the status of the command
Input:
*pBlockAddress  Location of the block erase
Output:
*pError         True on error and false on success
*Status         Error status code (0 - Success)

Return:  TRUE        If operation completed successfully
           *pError = FALSE, *pStatus = 0
FALSE       If operation failed
           *pError = TRUE, *pStatus = error status


SpansionFlashIsProgramCompleted in the StdSpansionFlashWrite.c

Function : SpansionFlashIsProgramCompleted

File: StdSpansionFlashWrite.c
Description:
This function verifies whether the program (page or byte)
command is completed and returns the status of the command
Input:
*pByteAddress   Location of the program command
*Byte           Pointer to data written
Length          Amount of data to check
Output:
*pError         True on error and false on success
*Status         Error status code (0 - Success)

Return:  TRUE        If operation completed successfully
           *pError = FALSE, *pStatus = 0
FALSE       If operation failed
           *pError = TRUE, *pStatus = error status


SpansionFlashProgramCommand in the StdSpansionFlashWrite.c

Function : SpansionFlashProgramCommand

File: StdSpansionFlashWrite.c
Description:
This function programs a byte data to the specified location
Input:
*pByteAddress - Location where the data to be written
*Byte - Byte to be written
*Length - Number of bytes to write
Output:
*Length - Number of bytes still left to write

Return:  None


SpansionFlashReadCommand in the StdSpansionFlashWrite.c

Function : SpansionFlashReadCommand

File: StdSpansionFlashWrite.c
Description:
This function programs a byte data to the specified location
Input:
*pByteAddress   Location where the data to be written
Bytes - data to be written.
Length - number of bytes to write
Output:
Length - number of bytes that were not written

Return:  None


SpansionFlashVirtualFixup in the StdSpansionFlashWrite.c

Function : SpansionFlashVirtualFixup

File: StdSpansionFlashWrite.c
Description:
This function will be invoked by the core to convert
runtime pointers to virtual address
Input:
*pRS    Pointer to runtime services
Output:
None

Return:  None


SpansionResetFlash in the StdSpansionFlashWrite.c

Function : SpansionResetFlash

File: StdSpansionFlashWrite.c
Description:
This function resets the Spansion flash part
Input:
None
Output:
None

Return:  None


SpansionWriteBufferAbortReset in the StdSpansionFlashWrite.c

Function : SpansionWriteBufferAbortReset

File: StdSpansionFlashWrite.c
Description:
This function resets the Spansion flash part
Input:
None
Output:
None

Return:  None


WaitForPollingCompleted in the StdSpansionFlashWrite.c

Function : WaitForPollingCompleted

File: StdSpansionFlashWrite.c
Description:
This function waits until the command sent to the flash part
has completed
Input:
IN volatile UINT8*  pAddress    Location to check the device status
IN UINT8  bData                 Polling Data
Output:
Nothing


Functions in Alphabetical Order

In Alphabetical Order

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

  • C
  • F
  • G
  • I
  • L
  • M
  • O
  • R
  • S
  • W


Functions in Alphabetical Order

C

Function | Description
CommonConvertSpiAddress |
CommonSpiBlockWriteDisable | This function contains any flash specific code need to disable a particular flash block write
CommonSpiBlockWriteEnable | This function contains any flash specific code need to enable a particular flash block write
CommonSpiDeviceVirtualFixup | This function will be invoked by the core to convert runtime pointers to virtual address
CommonSpiDeviceWriteDisable | This function contains any flash specific code need to disable flash write
CommonSpiDeviceWriteEnable | This function contains any flash specific code need to enable flash write
CommonSpiEraseCommand | This API function erases a block in the flash. Flash model specific code will branch out from this routine
CommonSpiIsEraseCompleted | This function verifies whether the block erase command is completed and returns the status of the command
CommonSpiIsProgramCompleted | This function verifies whether the program (page or byte) command is completed and returns the status of the command
CommonSpiProgramCommand | This function programs a byte data to the specified location
CommonSpiReadByte |
CommonSpiReadCommand | This function programs a byte data to the specified location
CommonSpiReadId |
CommonSpiReadStatus |
CommonSpiWriteStatus | Routine for Write SPI Status Register.


Functions in Alphabetical Order

F

Function | Description
FlashBlockWriteDisable | This function chooses the correct flash part to call and then disables write operations(erase/programming) for a specific block
FlashBlockWriteEnable | This function chooses the correct flash part to call and then enables write operations(erase/programming) for a specific block
FlashDeviceWriteDisable | This function chooses the correct flash part to call and then disables write operation for a flash device
FlashDeviceWriteEnable | This function chooses the correct flash part to call and then enables write operation for a flash device
FlashEraseBlock | Erases the block pointed to by BlockAddress
FlashEraseCommand | This function Chooses the correct flash part to call and then initiates flash block erase command
FlashInit | This function goes through the elinked list of identify functions giving control until one part is identified properly
FlashIsEraseCompleted | This function chooses the correct flash part to call and then checks current status of the last erase operation
FlashIsProgramCompleted | This function chooses the correct flash part to call and then checks current status of the last program operation
FlashProgram | Programs the area pointed to by BlockAddress and defined by Length with the data pointed to by Data
FlashProgramBlock | Programs the Block pointed to by pBlock with the data pointed to by pData
FlashProgramCommand | This function chooses the correct flash part to call and then initiates the program command
FlashRead | This function returns the read data from the location indicated
FlashReadCommand | This function chooses the correct flash part to call and then initiates the program command
FlashVirtualFixup | Fixup global data for for a virtual address space. This routine must be called by the library consumer in the EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE event handler
FlashWriteBlock | Enables the ability to write to the flash part and programs the Block pointed to by pBlock with the data pointed to by Data and then sets the block to read only


Functions in Alphabetical Order

G

Function | Description
GetFlashPartInfomation |


Functions in Alphabetical Order

I

Function | Description
IdentifyAtmel_26DF | This function identifies the supported LPC flash parts and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE. Supports the following SPI parts ATMEL 26DFxx parts
IdentifySst_25LF | This function identifies the supported SPI flash parts and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE. Supports the following SPI parts SST 25LF040/080/106A, ESMT 25L004/008/016A
IdentifySst_25VF | This function identifies the supported SPI flash parts and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE. Supports the following SPI parts SST 25VF040B/080B/016B/032B, ESMT
IdentifySTM_25PExx | This function identifies the supported SPI flash parts and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE. Supports the following SPI parts ST Micro M25P80, M25P40
InitializeSpiEnvironment |
InitSst2MbCheckId | This function identifies the supported LPC flash parts.
InitSstAndCheckId | This function checks whether the flash device on the system is SST Lpc flash
IntelCheckMemoryCapacity |
IntelFlashBlockWriteDisable | This function contains any flash specific code need to disable a particular flash block write
IntelFlashBlockWriteDisable | This function contains any flash specific code need to disable a particular flash block write
IntelFlashBlockWriteEnable | This function contains any flash specific code need to enable a particular flash block write
IntelFlashBlockWriteEnable | This function contains any flash specific code need to enable a particular flash block write
IntelFlashDeviceWriteDisable | This function contains any flash specific code need to disable flash write
IntelFlashDeviceWriteDisable | This function contains any flash specific code need to disable flash write
IntelFlashDeviceWriteEnable | This function contains any flash specific code need to enable flash write
IntelFlashDeviceWriteEnable | This function contains any flash specific code need to enable flash write
IntelFlashEraseCommand | This API function erases a block in the flash. Flash model specific code will branch out from this routine
IntelFlashEraseCommand | This API function erases a block in the flash. Flash model specific code will branch out from this routine
IntelFlashIsEraseCompleted | This function verifies whether the block erase command is completed and returns the status of the command
IntelFlashIsEraseCompleted | This function verifies whether the block erase command is completed and returns the status of the command
IntelFlashIsProgramCompleted | This function verifies whether the program (page or byte) command is completed and returns the status of the command
IntelFlashIsProgramCompleted | This function verifies whether the program (page or byte) command is completed and returns the status of the command
IntelFlashProgramCommand | This function programs a byte data to the specified location
IntelFlashProgramCommand | This function programs a byte data to the specified location
IntelFlashReadCommand | This function programs a byte data to the specified location
IntelFlashReadCommand | This function programs a byte data to the specified location
IntelFlashVirtualFixup | This function will be invoked by the core to convert runtime pointers to virtual address
IntelFlashVirtualFixup | This function will be invoked by the core to convert runtime pointers to virtual address
IntelFwhCmdDelay | This function resets the Sst flash part
IntelFwhOperationCompleted | This function verifies whether the command sent to the FWH part has completed and returns the status of the command
IntelFwhResetFlash | This function resets the Sst flash part
IntelSTDCmdDelay | This function resets the Sst flash part
IntelSTDIdentify | This function identifies the supported LPC flash parts and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE.
IntelSTDOperationCompleted | This function verifies whether the command sent to the FWH part has completed and returns the status of the command
IntelSTDResetFlash | This function resets the Sst flash part
IoDelay |
IsCleanOrEqual | Verifies if the device has been erased properly or if the current byte is the same as the byte to be written at this location


Functions in Alphabetical Order

L

Function | Description
LpcFlashBlockWriteDisable | This function contains any flash specific code need to disable a particular flash block write
LpcFlashBlockWriteEnable | This function contains any flash specific code need to enable a particular flash block write
LpcFlashDeviceWriteDisable | This function contains any flash specific code need to disable flash write
LpcFlashDeviceWriteEnable | This function contains any flash specific code need to enable flash write
LpcFlashEraseCommand | This API function erases a block in the flash. Flash model specific code will branch out from this routine
LpcFlashIsEraseCompleted | This function verifies whether the block erase command is completed and returns the status of the command
LpcFlashIsProgramCompleted | This function verifies whether the program (page or byte) command is completed and returns the status of the command
LpcFlashProgramCommand | This function programs a byte data to the specified location
LpcFlashReadCommand | This function programs a byte data to the specified location
LpcFlashVirtualFixup | This function will be invoked by the core to convert runtime pointers to virtual address
LpcOperationCompleted | This function verifies whether the previous (erase or program) command is completed and returns the status of the command
LpcResetFlash | This function resets the Lpc flash part


Functions in Alphabetical Order

M

Function | Description
mIntelIdentify | This function identifies the supported LPC flash parts and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE.
mLpcFlashIdentify | This function identifies the supported Lpc flash parts and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE.
mSstFwhIdentify | This function identifies the supported SST flash parts and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE.
mSstFwhIdentify | This function identifies the supported SST flash parts and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE.
mSstLpcIdentify | This function identifies the supported LPC flash parts and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE.
mStdMxicIdentify | This function identifies the supported Mxic flash part and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE.
mStdSpansionIdentify | This function identifies the supported Spansion flash part and returns appropriate flash device API pointer. If flash part is not supported by this module it will return FALSE.
MxicFlashBlockWriteDisable | This function contains any flash specific code need to disable a particular flash block write
MxicFlashBlockWriteEnable | This function contains any flash specific code need to enable a particular flash block write
MxicFlashDeviceWriteDisable | This function contains any flash specific code need to disable flash write
MxicFlashDeviceWriteEnable | This function contains any flash specific code need to enable flash write
MxicFlashEraseCommand | This API function erases a block in the flash. Flash model specific code will branch out from this routine
MxicFlashIsEraseCompleted | This function verifies whether the block erase command is completed and returns the status of the command
MxicFlashIsProgramCompleted | This function verifies whether the program (page or byte) command is completed and returns the status of the command
MxicFlashProgramCommand | This function programs a byte data to the specified location
MxicFlashReadCommand | This function programs a byte data to the specified location
MxicFlashVirtualFixup | This function will be invoked by the core to convert runtime pointers to virtual address
MxicResetFlash | This function resets the Mxic flash part
MxicStdWaitForOperationCompleted | This function verifies whether the command sent to the FWH part has completed and returns the status of the command
MxicWriteBufferAbortReset | This function resets the Mxic flash part


Functions in Alphabetical Order

O

Function | Description
OemFlashDeviceWriteDisable | This function goes through the elinked list of oem flash write disable functions giving control.
OemFlashDeviceWriteEnable | This function goes through the elinked list of oem flash write enable functions giving control.
OemIsFlashValid | This function identifies the supported SPI flash parts and returns TRUE. If flash part is not supported by this module it will return FALSE.


Functions in Alphabetical Order

R

Function | Description
ReinitializeSpiEnvironment |


Functions in Alphabetical Order

S

Function | Description
SetBlockLock | This function programs a page of data at a time
SetBlockLock | This function programs a page of data at a time
SetBlockLock | This function programs a page of data at a time
SetBlockLock | This function programs a page of data at a time
SetBlockLock | This function programs a page of data at a time
SetBlockLock | This function programs a page of data at a time
SpansionCheckMemoryCapacity |
SpansionFlashBlockWriteDisable | This function contains any flash specific code need to disable a particular flash block write
SpansionFlashBlockWriteEnable | This function contains any flash specific code need to enable a particular flash block write
SpansionFlashDeviceWriteDisable | This function contains any flash specific code need to disable flash write
SpansionFlashDeviceWriteEnable | This function contains any flash specific code need to enable flash write
SpansionFlashEraseCommand | This API function erases a block in the flash. Flash model specific code will branch out from this routine
SpansionFlashIsEraseCompleted | This function verifies whether the block erase command is completed and returns the status of the command
SpansionFlashIsProgramCompleted | This function verifies whether the program (page or byte) command is completed and returns the status of the command
SpansionFlashProgramCommand | This function programs a byte data to the specified location
SpansionFlashReadCommand | This function programs a byte data to the specified location
SpansionFlashVirtualFixup | This function will be invoked by the core to convert runtime pointers to virtual address
SpansionResetFlash | This function resets the Spansion flash part
SpansionWriteBufferAbortReset | This function resets the Spansion flash part
Sst2mLpcCmdDelay | This function resets the Sst flash part
Sst2mLpcOperationCompleted | This function verifies whether the command sent to the FWH part has completed and returns the status of the command
Sst2mLpcResetFlash | This function resets the Sst flash part
SstCheckMemoryCapacity |
SSTFlashBlockWriteDisable | This function contains any flash specific code need to disable a particular flash block write
SSTFlashBlockWriteDisable | This function contains any flash specific code need to disable a particular flash block write
SSTFlashBlockWriteEnable | This function contains any flash specific code need to enable a particular flash block write
SSTFlashBlockWriteEnable | This function contains any flash specific code need to enable a particular flash block write
SSTFlashDeviceWriteDisable | This function contains any flash specific code need to disable flash write
SSTFlashDeviceWriteDisable | This function contains any flash specific code need to disable flash write
SSTFlashDeviceWriteEnable | This function contains any flash specific code need to enable flash write
SSTFlashDeviceWriteEnable | This function contains any flash specific code need to enable flash write
SstFlashEraseCommand | This API function erases a block in the flash. Flash model specific code will branch out from this routine
SstFlashEraseCommand | This API function erases a block in the flash. Flash model specific code will branch out from this routine
SSTFlashIsEraseCompleted | This function verifies whether the block erase command is completed and returns the status of the command
SSTFlashIsEraseCompleted | This function verifies whether the block erase command is completed and returns the status of the command
SstFlashIsProgramCompleted | This function verifies whether the program (page or byte) command is completed and returns the status of the command
SstFlashIsProgramCompleted | This function verifies whether the program (page or byte) command is completed and returns the status of the command
SSTFlashProgramCommand | This function programs a byte data to the specified location
SSTFlashProgramCommand | This function programs a byte data to the specified location
SstFlashReadCommand | This function programs a byte data to the specified location
SstFlashReadCommand | This function programs a byte data to the specified location
SSTFlashVirtualFixup | This function will be invoked by the core to convert runtime pointers to virtual address
SSTFlashVirtualFixup | This function will be invoked by the core to convert runtime pointers to virtual address
SstFwhResetFlash | This function resets the SST flash part
SstFwhResetFlash | This function resets the SST flash part
SstFwhWaitForOperationCompleted | This function verifies whether the command sent to the FWH part has completed and returns the status of the command
SstFwhWaitForOperationCompleted | This function verifies whether the command sent to the FWH part has completed and returns the status of the command
SstLpcBlockWriteDisable | This function contains any flash specific code need to disable a particular flash block write
SstLpcBlockWriteEnable | This function contains any flash specific code need to enable a particular flash block write
SstLpcDeviceWriteDisable | This function contains any flash specific code need to disable flash write
SstLpcDeviceWriteEnable | This function contains any flash specific code need to enable flash write
SstLpcEraseCommand | This API function erases a block in the flash. Flash model specific code will branch out from this routine
SstLpcIsEraseCompleted | This function verifies whether the block erase command is completed and returns the status of the command
SstLpcIsProgramCompleted | This function verifies whether the program (page or byte) command is completed and returns the status of the command
SstLpcProgramCommand | This function programs a byte data to the specified location
SstLpcReadCommand | This function programs a byte data to the specified location
SstLpcVirtualFixup | This function will be invoked by the core to convert runtime pointers to virtual address
StmCheckMemoryCapacity |


Functions in Alphabetical Order

W

Function | Description
WaitForPollingCompleted | This function waits until the command sent to the flash part has completed
WaitForSpiCycleDone |
WaitForWriteOperationCompleted |


General Information