diff options
author | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
---|---|---|
committer | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
commit | b7c51c9cf4864df6aabb99a1ae843becd577237c (patch) | |
tree | eebe9b0d0ca03062955223097e57da84dd618b9a /Core/CPU/MicrocodeUpdate/MicrocodeUpdate.h | |
download | zprj-master.tar.xz |
Diffstat (limited to 'Core/CPU/MicrocodeUpdate/MicrocodeUpdate.h')
-rw-r--r-- | Core/CPU/MicrocodeUpdate/MicrocodeUpdate.h | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/Core/CPU/MicrocodeUpdate/MicrocodeUpdate.h b/Core/CPU/MicrocodeUpdate/MicrocodeUpdate.h new file mode 100644 index 0000000..73b5dea --- /dev/null +++ b/Core/CPU/MicrocodeUpdate/MicrocodeUpdate.h @@ -0,0 +1,133 @@ +//************************************************************************* +//************************************************************************* +//** ** +//** (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 +// +// +//**************************************************************************** + +//<AMI_FHDR_START> +//---------------------------------------------------------------------------- +// +// Name: MicrocodeUpdate.h +// +// Description: Header file for Microcode Update SMI handler. +// +//---------------------------------------------------------------------------- +//<AMI_FHDR_END> + +#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 ** +//** ** +//************************************************************************* +//************************************************************************* |