summaryrefslogtreecommitdiff
path: root/ReferenceCode/ME/Protocol/MePlatformPolicy/MePlatformPolicy.h
diff options
context:
space:
mode:
Diffstat (limited to 'ReferenceCode/ME/Protocol/MePlatformPolicy/MePlatformPolicy.h')
-rw-r--r--ReferenceCode/ME/Protocol/MePlatformPolicy/MePlatformPolicy.h134
1 files changed, 134 insertions, 0 deletions
diff --git a/ReferenceCode/ME/Protocol/MePlatformPolicy/MePlatformPolicy.h b/ReferenceCode/ME/Protocol/MePlatformPolicy/MePlatformPolicy.h
new file mode 100644
index 0000000..ee3ef25
--- /dev/null
+++ b/ReferenceCode/ME/Protocol/MePlatformPolicy/MePlatformPolicy.h
@@ -0,0 +1,134 @@
+/** @file
+ Interface definition details between ME and platform drivers during DXE phase.
+
+@copyright
+ Copyright (c) 2006 - 2013 Intel Corporation. All rights reserved
+ This software and associated documentation (if any) is furnished
+ under a license and may only be used or copied in accordance
+ with the terms of the license. Except as permitted by such
+ license, no part of this software or documentation may be
+ reproduced, stored in a retrieval system, or transmitted in any
+ form or by any means without the express written consent of
+ Intel Corporation.
+
+ This file contains a 'Sample Driver' and is licensed as such
+ under the terms of your license agreement with Intel or your
+ vendor. This file may be modified by the user, subject to
+ the additional terms of the license agreement
+**/
+#ifndef _ME_PLATFORM_POLICY_H_
+#define _ME_PLATFORM_POLICY_H_
+
+///
+/// ME policy provided by platform for DXE phase
+/// This protocol provides an interface to get Intel ME Configuration information
+///
+#define DXE_PLATFORM_ME_POLICY_GUID \
+ { \
+ 0x69bf9e8a, 0x4ad6, 0x9a28, 0x87, 0xf3, 0x09, 0xa0, 0x71, 0x29, 0x2a, 0x00 \
+ }
+
+///
+/// Initial Revision
+///
+#define DXE_PLATFORM_ME_POLICY_PROTOCOL_REVISION_1 1
+///
+/// Remove MbpSecurity
+///
+#define DXE_PLATFORM_ME_POLICY_PROTOCOL_REVISION_2 2
+extern EFI_GUID gDxePlatformMePolicyGuid;
+
+#pragma pack(1)
+
+typedef struct {
+ //
+ // Byte 0, bit definition for functionality enable/disable
+ //
+ UINT8 MeFwDownGrade : 1; ///< 0: Disabled; 1: Enabled
+ UINT8 MeLocalFwUpdEnabled : 1; ///< 0: Disabled; 1: Enabled
+ UINT8 Byte0ReservedBit2 : 1;
+ UINT8 EndOfPostEnabled : 1; ///< 0: Disabled; 1: Enabled
+ UINT8 EndOfPostDone : 1; ///< 0: Not yet; 1: Done
+ UINT8 MdesCapability : 1; ///< 0: Disabled; 1: Enabled
+ UINT8 SvtForPchCap: 1; ///< 0: Disabled; 1: Enabled
+ UINT8 MdesForBiosState : 1; ///< 0: Disabled; 1: Enabled
+ UINT8 ByteReserved[15]; ///< Byte 1-15 Reserved for other bit definitions in future
+} ME_CONFIG;
+
+///
+/// ME ERROR Message ID
+///
+typedef enum {
+ MSG_EOP_ERROR = 0,
+ MSG_ME_FW_UPDATE_FAILED,
+ MSG_ASF_BOOT_DISK_MISSING,
+ MSG_KVM_TIMES_UP,
+ MSG_KVM_REJECTED,
+ MSG_HMRFPO_LOCK_FAILURE,
+ MSG_HMRFPO_UNLOCK_FAILURE,
+ MSG_ME_FW_UPDATE_WAIT,
+ MSG_ILLEGAL_CPU_PLUGGED_IN,
+ MSG_KVM_WAIT,
+ MSG_PLAT_DISABLE_WAIT,
+ MAX_ERROR_ENUM
+} ME_ERROR_MSG_ID;
+
+/**
+ Show Me Error message. This is to display localized message in
+ the console. This is used to display message strings in local
+ language. To display the message, the routine will check the
+ message ID and ConOut the message strings. For example, the
+ End of Post error displayed in English will be:
+ gST->ConOut->OutputString (gST->ConOut, L"Error sending End Of
+ Post message to ME\n"); It is recommended to clear the screen
+ before displaying the error message and keep the message on
+ the screen for several seconds.
+ A sample is provided, see ShowMeReportError () to retrieve
+ details.
+
+ @param[in] MsgId Me error message ID for displaying on screen message
+
+ @retval None
+**/
+typedef
+VOID
+(EFIAPI *ME_REPORT_ERROR) (
+ IN ME_ERROR_MSG_ID MsgId
+ );
+
+typedef struct {
+ ///
+ /// This member determines the SMBIOS OEM type (0x80 to 0xFF) defined in SMBIOS
+ /// Type 14 - Group Associations structure - item type. FVI structure uses it as
+ /// SMBIOS OEM type to provide MEBx, ME FW and reference code version information
+ ///
+ UINT8 FviSmbiosType;
+} ME_MISC_CONFIG;
+
+#pragma pack()
+///
+/// ME DXE Platform Policy
+/// This protocol provides information of the current Intel ME feature selection. Information is
+/// passed from the platform code to the Intel ME Reference code using this structure. There are
+/// 2 types of information, BIOS setup option and ME status information.
+///
+typedef struct _DXE_ME_POLICY_PROTOCOL {
+ ///
+ /// Revision for the protocol structure
+ ///
+ UINT8 Revision;
+ ///
+ /// Intel ME feature selection enable/disable and firmware configuration information
+ ///
+ ME_CONFIG MeConfig;
+ ///
+ /// Support Localization for displaying on screen message
+ ///
+ ME_REPORT_ERROR MeReportError;
+ ///
+ /// Miscellaneous items
+ ///
+ ME_MISC_CONFIG MeMiscConfig;
+} DXE_ME_POLICY_PROTOCOL;
+
+#endif