summaryrefslogtreecommitdiff
path: root/Core/CPU/MicrocodeUpdate/MicrocodeUpdate.h
diff options
context:
space:
mode:
Diffstat (limited to 'Core/CPU/MicrocodeUpdate/MicrocodeUpdate.h')
-rw-r--r--Core/CPU/MicrocodeUpdate/MicrocodeUpdate.h133
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 **
+//** **
+//*************************************************************************
+//*************************************************************************