//************************************************************************* //************************************************************************* //** ** //** (C)Copyright 1987-2013, American Megatrends, Inc. ** //** ** //** All Rights Reserved. ** //** ** //** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 ** //** ** //** Phone: (770)-246-8600 ** //** ** //************************************************************************* //************************************************************************* //**************************************************************************** // $Header: /Alaska/SOURCE/Modules/SharkBayRefCodes/Haswell/AMI Cpu PKG/CPU Core/MicrocodeUpdate/MicrocodeUpdate.h 1 2/07/12 3:59a Davidhsieh $ // // $Revision: 1 $ // // $Date: 2/07/12 3:59a $ // //**************************************************************************** // Revision History // ---------------- // $Log: /Alaska/SOURCE/Modules/SharkBayRefCodes/Haswell/AMI Cpu PKG/CPU Core/MicrocodeUpdate/MicrocodeUpdate.h $ // // 1 2/07/12 3:59a Davidhsieh // // //**************************************************************************** // //---------------------------------------------------------------------------- // // Name: MicrocodeUpdate.h // // Description: Header file for Microcode Update SMI handler. // //---------------------------------------------------------------------------- // #ifndef _MICROCODE_UPDATE_H_ #define _MICROCODE_UPDATE_H_ #ifdef __cplusplus extern "C" { #endif //#define SIG_PART_ONE 0x0494e5445 // 'INTE' //#define SIG_PART_TWO 0x04c504550 // 'LPEP' #define CARRY_FLAG 1 #define UC_LOADER_VERSION 1 #define UC_HEADER_VERSION 1 #define UC_LOADER_REVISION 1 #define UC_INT15_ENABLE 0x01 #define UC_PRESCENCE_TEST 0 #define UC_WRITE_UPDATE_DATA 1 #define UC_UPDATE_CONTROL 2 #define UC_READ_UPDATE_DATA 3 #define UC_SUCCESS 0x0000 #define UC_NOT_IMPLEMENTED 0x8600 #define UC_ERASE_FAILURE 0x9000 #define UC_WRITE_FAILURE 0x9100 #define UC_READ_FAILURE 0x9200 #define UC_STORAGE_FULL 0x9300 #define UC_CPU_NOT_PRESENT 0x9400 #define UC_INVALID_HEADER 0x9500 #define UC_INVALID_HEADER_CS 0x9600 #define UC_SECURITY_FAILURE 0x9700 #define UC_INVALID_REVISION 0x9800 #define UC_UPDATE_NUM_INVALID 0x9900 #define UC_NOT_EMPTY 0x9a00 typedef struct { UINT32 EAX; UINT32 EBX; UINT32 ECX; UINT32 EDX; UINT32 ESI; UINT32 EDI; UINT32 EFLAGS; UINT16 ES; UINT16 CS; UINT16 SS; UINT16 DS; UINT16 FS; UINT16 GS; UINT32 EBP; } SMI_UC_DWORD_REGS; VOID PresenceTest(SMI_UC_DWORD_REGS *Regs); VOID WriteUpdateData(SMI_UC_DWORD_REGS *Regs); VOID UpdateControl(SMI_UC_DWORD_REGS *Regs); VOID ReadUpdateData(SMI_UC_DWORD_REGS *Regs); EFI_STATUS FwhErase( IN UINTN Address, IN UINTN NumberOfBytes ); EFI_STATUS FwhWrite( IN UINT8 *Buffer, IN UINTN Address, IN UINTN NumberOfBytes ); /****** DO NOT WRITE BELOW THIS LINE *******/ #ifdef __cplusplus } #endif #endif //************************************************************************* //************************************************************************* //** ** //** (C)Copyright 1987-2013, American Megatrends, Inc. ** //** ** //** All Rights Reserved. ** //** ** //** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 ** //** ** //** Phone: (770)-246-8600 ** //** ** //************************************************************************* //*************************************************************************