1218 lines
31 KiB
C
1218 lines
31 KiB
C
/** @file
|
|
MKHI Messages
|
|
|
|
@copyright
|
|
INTEL CONFIDENTIAL
|
|
Copyright 2010 - 2021 Intel Corporation.
|
|
|
|
The source code contained or described herein and all documents related to the
|
|
source code ("Material") are owned by Intel Corporation or its suppliers or
|
|
licensors. Title to the Material remains with Intel Corporation or its suppliers
|
|
and licensors. The Material may contain trade secrets and proprietary and
|
|
confidential information of Intel Corporation and its suppliers and licensors,
|
|
and is protected by worldwide copyright and trade secret laws and treaty
|
|
provisions. No part of the Material may be used, copied, reproduced, modified,
|
|
published, uploaded, posted, transmitted, distributed, or disclosed in any way
|
|
without Intel's prior express written permission.
|
|
|
|
No license under any patent, copyright, trade secret or other intellectual
|
|
property right is granted to or conferred upon you by disclosure or delivery
|
|
of the Materials, either expressly, by implication, inducement, estoppel or
|
|
otherwise. Any license under such intellectual property rights must be
|
|
express and approved by Intel in writing.
|
|
|
|
Unless otherwise agreed by Intel in writing, you may not remove or alter
|
|
this notice or any other notice embedded in Materials by Intel or
|
|
Intel's suppliers or licensors in any way.
|
|
|
|
This file contains an 'Intel Peripheral Driver' and is uniquely identified as
|
|
"Intel Reference Module" and is licensed for Intel CPUs and chipsets under
|
|
the terms of your license agreement with Intel or your vendor. This file may
|
|
be modified by the user, subject to additional terms of the license agreement.
|
|
|
|
@par Specification Reference:
|
|
**/
|
|
#ifndef _MKHI_MSGS_H
|
|
#define _MKHI_MSGS_H
|
|
|
|
#pragma pack(1)
|
|
|
|
///
|
|
/// MKHI host message header. This header is part of HECI message sent from MEBx via
|
|
/// Host Configuration Interface (HCI). ME Configuration Manager or Power Configuration
|
|
/// Manager also include this header with appropriate fields set as part of the
|
|
/// response message to the HCI.
|
|
///
|
|
typedef union {
|
|
UINT32 Data;
|
|
struct {
|
|
UINT32 GroupId : 8;
|
|
UINT32 Command : 7;
|
|
UINT32 IsResponse : 1;
|
|
UINT32 Reserved : 8;
|
|
UINT32 Result : 8;
|
|
} Fields;
|
|
} MKHI_MESSAGE_HEADER;
|
|
|
|
|
|
///
|
|
/// Defines for GroupID
|
|
///
|
|
#define MKHI_CBM_GROUP_ID 0x00
|
|
#define MKHI_PWD_GROUP_ID 0x02
|
|
#define MKHI_FWCAPS_GROUP_ID 0x03
|
|
#define MKHI_HMRFPO_GROUP_ID 0x05
|
|
#define MKHI_MCA_GROUP_ID 0x0A
|
|
#define MKHI_DNX_GROUP_ID 0x0D
|
|
#define MKHI_GEN_GROUP_ID 0xFF
|
|
|
|
|
|
///
|
|
/// Defines for Command
|
|
///
|
|
///
|
|
/// Defines for CBM_GROUP Command
|
|
///
|
|
#define CBM_RESET_CMD 0x0B
|
|
#define CBM_GET_INVOCATION_CODE 0x0D
|
|
#define CBM_SET_INVOCATION_CODE 0x0E
|
|
#define CBM_CLR_INVOCATION_CODE 0x0F
|
|
///
|
|
/// Defines for PWD_GROUP Command
|
|
///
|
|
#define PWD_CHANGE_CMD 0x01
|
|
#define PWD_VALIDATE_CMD 0x02
|
|
#define PWD_IS_MODIFIED_CMD 0x03
|
|
///
|
|
/// Defines for FWCAPS_GROUP Command
|
|
///
|
|
#define FWCAPS_GET_RULE_CMD 0x02
|
|
#define FWCAPS_SET_RULE_CMD 0x03
|
|
#define FWCAPS_GET_RULE_STATE_CMD 0x05
|
|
///
|
|
/// Defines for HMRFPO_GROUP Command
|
|
///
|
|
#define HMRFPO_ENABLE_CMD_ID 0x01
|
|
#define HMRFPO_LOCK_CMD_ID 0x02
|
|
#define HMRFPO_GET_STATUS_CMD_ID 0x03
|
|
///
|
|
/// Defines for MCA_GROUP Command
|
|
///
|
|
#define MCA_READ_FILE_CMD 0x02 // Ver3 API only
|
|
#define MCA_SET_FILE_CMD 0x03 // Ver3 API only
|
|
#define MCA_COMMIT_FILES_CMD 0x04
|
|
#define MCA_CORE_BIOS_DONE_CMD 0x05
|
|
#define MCA_GET_RPMC_STATUS_CMD 0x08
|
|
#define MCA_READ_FILE_EX_CMD 0x0A
|
|
#define MCA_SET_FILE_EX_CMD 0x0B
|
|
#define MCA_REQUEST_DEVICE_OWNERSHIP 0x0F
|
|
#define MCA_ARB_SVN_COMMIT_CMD 0x1B
|
|
#define MCA_ARB_SVN_GET_INFO_CMD 0x1C
|
|
///
|
|
/// Defines for DNX_GROUP Command
|
|
///
|
|
#define DNX_REQ_SET_CMD 0x01
|
|
#define DNX_REQ_CLEAR_CMD 0x02
|
|
///
|
|
/// Defines for GEN_GROUP Command
|
|
///
|
|
#define GEN_GET_MKHI_VERSION_CMD 0x01
|
|
#define GEN_GET_FW_VERSION_CMD 0x02
|
|
#define GEN_CORE_BIOS_DONE_CMD 0x05
|
|
#define GEN_SEND_CPU_BRAND_CLASS_FUSE_CMD 0x07
|
|
#define GEN_GET_CPU_TYPE_CHANGE_USER_MESSAGE_CMD 0x08
|
|
#define GEN_SET_CPU_TYPE_CHANGE_USER_RESPONSE_CMD 0x09
|
|
#define GEN_END_OF_POST_CMD 0x0C
|
|
#define GEN_UNCFG_WO_PWD_CMD 0x0D
|
|
#define GEN_GET_ME_UNCFG_STATE_CMD 0x0E
|
|
#define GEN_SET_ME_RESET_HALT_CMD 0x10
|
|
#define GEN_FW_FEATURE_STATE_OVERRIDE_CMD 0x14
|
|
#define GEN_GET_IMAGE_FW_VERSION 0x1C
|
|
#define GEN_SET_FIPS_MODE_CMD 0x20
|
|
#define GEN_GET_FIPS_MODE_CMD 0x21
|
|
#define GEN_SET_MEASURED_BOOT_STATE_CMD 0x22
|
|
#define GEN_GET_MEASURED_BOOT_STATE_CMD 0x23
|
|
|
|
//
|
|
// Typedef for Result field of MHKI Header
|
|
//
|
|
typedef enum {
|
|
MkhiStatusSuccess,
|
|
MkhiStatusInvalidState,
|
|
MkhiStatusMessageSkipped,
|
|
MkhiStatusSizeError = 0x5,
|
|
MkhiStatusInvalidAccess = 0x84,
|
|
MkhiStatusInvalidParams = 0x85,
|
|
MkhiStatusNotReady = 0x88,
|
|
MkhiStatusNotSupported = 0x89,
|
|
MkhiStatusInvalidAddress = 0x8C,
|
|
MkhiStatusInvalidCommand = 0x8D,
|
|
MkhiStatusFailure = 0x9E,
|
|
MkhiStatusInvalidResource = 0xE4,
|
|
MkhiStatusResourceInUse = 0xE5,
|
|
MkhiStatusNoResource = 0xE6,
|
|
MkhiStatusGeneralError = 0xFF
|
|
} MKHI_RESULT;
|
|
|
|
///
|
|
/// MKHI_CBM_GROUP Definitions
|
|
///
|
|
typedef union {
|
|
UINT32 Data;
|
|
struct {
|
|
UINT32 TableSyncError : 1; ///< BIT_0 No longer used
|
|
UINT32 CpuReplacement : 1; ///< BIT_1
|
|
UINT32 SyncMngState : 1; ///< BIT_2
|
|
UINT32 SolStateChange : 1; ///< BIT_3 No longer used
|
|
UINT32 IderStateChange : 1; ///< BIT_4 No longer used
|
|
UINT32 KvmStateChange : 1; ///< BIT_5 No longer used
|
|
UINT32 SyncRaAvailability : 1; ///< BIT_6
|
|
UINT32 FwUnconfiguration : 1; ///< BIT_7
|
|
UINT32 UserConsentFlow : 1; ///< BIT_8
|
|
UINT32 WlanPowerConfigChange : 1; ///< BIT_9
|
|
UINT32 FwUpdate : 1; ///< BIT_10 No longer used
|
|
UINT32 FirstMebxBoot : 1; ///< BIT_11
|
|
UINT32 DataSyncConfirmation : 1; ///< BIT_12
|
|
UINT32 ClsUserInfo : 1; ///< BIT_13 No longer used
|
|
UINT32 Reserved2 : 18; ///< BIT_14-31
|
|
} Fields;
|
|
} INVOCATION_CODE_BITS;
|
|
|
|
#define DATA_SYNC_CONFIRMATION BIT12
|
|
|
|
//
|
|
// Get Invocation Code
|
|
//
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} GET_INVOCATION_CODE;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 InvocationCode;
|
|
} GET_INVOCATION_CODE_ACK;
|
|
|
|
typedef union {
|
|
GET_INVOCATION_CODE Request;
|
|
GET_INVOCATION_CODE_ACK Response;
|
|
} GET_INVOCATION_CODE_BUFFER;
|
|
|
|
//
|
|
// Set Invocation Code
|
|
//
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 InvocationCode;
|
|
} SET_INVOCATION_CODE;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} SET_INVOCATION_CODE_ACK;
|
|
|
|
typedef union {
|
|
SET_INVOCATION_CODE Request;
|
|
SET_INVOCATION_CODE_ACK Response;
|
|
} SET_INVOCATION_CODE_BUFFER;
|
|
|
|
//
|
|
// Clear Invocation Code
|
|
//
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 InvocationCode;
|
|
} CLEAR_INVOCATION_CODE;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} CLEAR_INVOCATION_CODE_ACK;
|
|
|
|
typedef union {
|
|
CLEAR_INVOCATION_CODE Request;
|
|
CLEAR_INVOCATION_CODE_ACK Response;
|
|
} CLEAR_INVOCATION_CODE_BUFFER;
|
|
|
|
//
|
|
// MKHI_PWD_GROUP_ID Definitions
|
|
//
|
|
//
|
|
// Password Information
|
|
// The following is the information required for authenticating and storing a password.
|
|
//
|
|
// Password Identifier
|
|
// Identifier to track passwords used by various entities interacting with ME Kernel
|
|
//
|
|
#define MEPWDID_ME_BIOS_EXT 0 ///< MEBx password Identifier
|
|
|
|
#define MEPWDMGMT_PWD_MAX_SIZE 32 ///< Maximum Password Length
|
|
#define MEPWDMGMT_PWD_MIN_SIZE 8 ///< Minimum Password Length
|
|
|
|
//
|
|
// Password Management Status Codes.
|
|
//
|
|
typedef enum {
|
|
ME_PWDSTS_PWD_SUCCESS = 0, ///< Password change/verification was successful.
|
|
ME_PWDSTS_INVALID_PWD, ///< Current password in use is invalid.
|
|
ME_PWDSTS_INVALID_NEW_PWD, ///< New password provided does not meet the required syntax.
|
|
ME_PWDSTS_OUT_OF_RESOURCES, ///< Not sufficient flash space.
|
|
ME_PWDSTS_OPERATION_NOT_ALLOWED, ///< Password change/verification cannot be performed at this point in time.
|
|
ME_PWDSTS_FAILURE ///< Unknown failure has occured
|
|
} ME_PWD_STATUS;
|
|
|
|
//
|
|
// Change Password
|
|
//
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 PwdId;
|
|
UINT8 Reserved[2];
|
|
UINT8 OldPwdSize;
|
|
UINT8 OldPwd[MEPWDMGMT_PWD_MAX_SIZE];
|
|
UINT8 NewPwdSize;
|
|
UINT8 NewPwd[MEPWDMGMT_PWD_MAX_SIZE];
|
|
} PWD_CHANGE;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 PwdId;
|
|
} PWD_CHANGE_ACK;
|
|
|
|
typedef union {
|
|
PWD_CHANGE Request;
|
|
PWD_CHANGE_ACK Response;
|
|
} PWD_CHANGE_BUFFER;
|
|
|
|
//
|
|
// Validate Password
|
|
//
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 PwdId;
|
|
UINT8 Reserved[3];
|
|
UINT8 PwdSize;
|
|
UINT8 Pwd[MEPWDMGMT_PWD_MAX_SIZE];
|
|
} PWD_VALIDATE;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 PwdId;
|
|
UINT32 MaxCountExpired;
|
|
} PWD_VALIDATE_ACK;
|
|
|
|
typedef union {
|
|
PWD_VALIDATE Request;
|
|
PWD_VALIDATE_ACK Response;
|
|
} PWD_VALIDATE_BUFFER;
|
|
|
|
//
|
|
// Is Password Modified
|
|
//
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} PWD_IS_MODIFIED;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 IsModified;
|
|
} PWD_IS_MODIFIED_ACK;
|
|
|
|
typedef union {
|
|
PWD_IS_MODIFIED Request;
|
|
PWD_IS_MODIFIED_ACK Response;
|
|
} PWD_IS_MODIFIED_BUFFER;
|
|
|
|
//
|
|
// MKHI_FWCAPS_GROUP_ID Definitions
|
|
//
|
|
|
|
#define RULE_DATA_LENGTH 0x04
|
|
|
|
//Macro to build a rule identifier. For Me rules all other fields are zeros
|
|
#define FWCAPS_RULE_ID(FeatureId, RuleTypeId) ((FeatureId << 16) | RuleTypeId)
|
|
|
|
typedef enum {
|
|
KernelFeatureId = 0,
|
|
AmtFeatureId = 3
|
|
} FWCAPS_FEATURE_ID;
|
|
|
|
typedef enum {
|
|
FwCapsRuleTypeId = 0,
|
|
MePlatformStateRuleTypeId = 6,
|
|
MeFwUpdateRuleTypeId = 7,
|
|
UserCapsRuleTypeId = 9,
|
|
PlatTypeRuleTypeId = 29,
|
|
FeatureStateRuleTypeId = 32,
|
|
StateForAllFeaturesRuleTypeId = 33,
|
|
EnableClinkRuleTypeId = 38,
|
|
AvailableBitmapRuleTypeId = 39,
|
|
EnableMoffOverrideRuleTypeId = 41,
|
|
OemTagRuleTypeId = 43,
|
|
AcmTpmRuleTypeId = 47,
|
|
UnconfigOnRtcClarRuleTypeId = 48
|
|
} KERNEL_FEATURE_RULE_TYPE_ID;
|
|
|
|
typedef enum {
|
|
AmtBiosSyncInfoRuleTypeId = 5,
|
|
DisplayUserConsentRuleTypeId = 10
|
|
} AMT_FEATURE_RULE_TYPE_ID;
|
|
|
|
typedef union {
|
|
UINT32 Data;
|
|
struct {
|
|
UINT32 RuleTypeId : 16;
|
|
UINT32 FeatureId : 8;
|
|
UINT32 Reserved : 8;
|
|
} Fields;
|
|
} RULE_ID;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 RuleId;
|
|
} GET_RULE;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 RuleId;
|
|
UINT8 RuleDataLen;
|
|
UINT32 RuleData;
|
|
} GET_RULE_ACK;
|
|
|
|
typedef union {
|
|
GET_RULE Request;
|
|
GET_RULE_ACK Response;
|
|
} GET_RULE_BUFFER;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 RuleId;
|
|
UINT8 RuleDataLen;
|
|
UINT32 RuleData;
|
|
} SET_RULE;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 RuleId;
|
|
} SET_RULE_ACK;
|
|
|
|
typedef union {
|
|
SET_RULE Request;
|
|
SET_RULE_ACK Response;
|
|
} SET_RULE_BUFFER;
|
|
|
|
///
|
|
/// Get Firmware Capability
|
|
///
|
|
typedef union {
|
|
UINT32 Data;
|
|
struct {
|
|
UINT32 FullMng : 1; ///< [0] Full manageability
|
|
UINT32 StdMng : 1; ///< [1] Standard manageability
|
|
UINT32 Amt : 1; ///< [2] Any manageability
|
|
UINT32 Reserved : 1; ///< [3] Reserved
|
|
UINT32 IntegratedTouch : 1; ///< [4] Intel Integrated Touch [Deprecated]
|
|
UINT32 Reserved1 : 1; ///< [5] Reserved
|
|
UINT32 IntelCLS : 1; ///< [6] IntelR Capability Licensing Service (CLS)
|
|
UINT32 Reserved2 : 3; ///< [9:7] Reserved
|
|
UINT32 ISH : 1; ///< [10] IntelR Sensor Hub
|
|
UINT32 Reserved3 : 1; ///< [11] Reserved
|
|
UINT32 PAVP : 1; ///< [12] Protected Audio Video Path (PAVP)
|
|
UINT32 Reserved4 : 4; ///< [16:13] Reserved
|
|
UINT32 IPV6 : 1; ///< [17] IPV6
|
|
UINT32 KVM : 1; ///< [18] KVM Remote Control (KVM)
|
|
UINT32 Reserved5 : 1; ///< [19] Reserved
|
|
UINT32 DAL : 1; ///< [20] Dynamic Application Loader (DAL)
|
|
UINT32 TLS : 1; ///< [21] Cipher Transport Layer (TLS)
|
|
UINT32 Reserved6 : 1; ///< [22] Reserved
|
|
UINT32 WLAN : 1; ///< [23] Wireless LAN (WLAN)
|
|
UINT32 Reserved7 : 1; ///< [24] Reserved
|
|
UINT32 TrustedDevice : 1; ///< [25] Trusted Device
|
|
UINT32 Reserved8 : 3; ///< [28:26] Reserved
|
|
UINT32 PTT : 1; ///< [29] Platform Trust Technology (PTT)
|
|
UINT32 Reserved9 : 2; ///< [31:30] Reserved
|
|
} Fields;
|
|
} MEFWCAPS_SKU;
|
|
|
|
///
|
|
/// Get/Set Local FW Update
|
|
///
|
|
typedef enum {
|
|
UpdateDisabled,
|
|
UpdateEnabled
|
|
} LOCAL_FW_UPDATE;
|
|
|
|
///
|
|
/// Get Platform Type
|
|
///
|
|
|
|
/// [3:0]
|
|
typedef enum {
|
|
PlatformMobile = 1,
|
|
PlatformDesktop = 2,
|
|
PlatformServer = 4,
|
|
PlatformWorkstation = 8
|
|
} PLATFORM_TARGET_USAGE_TYPE;
|
|
|
|
/// [6]
|
|
typedef enum {
|
|
RegularSku,
|
|
SuperSku
|
|
} SKU_TYPE;
|
|
|
|
/// [11:8]
|
|
typedef enum {
|
|
IntelMeConsumerFw = 3,
|
|
IntelMeCorporateFw = 4,
|
|
IntelMeLiteFw = 5
|
|
} ME_IMAGE_TYPE;
|
|
|
|
/// [15:12]
|
|
typedef enum {
|
|
NoBrand,
|
|
IntelAmtBrand,
|
|
IntelStandardManageabilityBrand,
|
|
IntelReservedBrand1,
|
|
IntelReservedBrand2,
|
|
IntelReservedBrand3
|
|
} PLATFORM_BRAND;
|
|
|
|
typedef union {
|
|
UINT32 Data;
|
|
struct {
|
|
UINT32 PlatformTargetUsageType : 4;
|
|
UINT32 Reserved : 2;
|
|
UINT32 SuperSku : 1;
|
|
UINT32 Reserved1 : 1;
|
|
UINT32 IntelMeFwImageType : 4;
|
|
UINT32 PlatformBrand : 4;
|
|
UINT32 Reserved2 : 16;
|
|
} Fields;
|
|
} PLATFORM_TYPE_RULE_DATA;
|
|
|
|
///
|
|
/// Set ME Disable
|
|
///
|
|
|
|
#define ME_DISABLE 0
|
|
|
|
///
|
|
/// Set ACM TPM
|
|
///
|
|
|
|
typedef union {
|
|
UINT32 Data;
|
|
struct {
|
|
UINT32 Reserved : 8;
|
|
UINT32 TpmDeactivate : 1;
|
|
UINT32 Reserved1 : 23;
|
|
} Fields;
|
|
} TPM_STATE;
|
|
|
|
///
|
|
/// Unconfig On Rtc Clear Status
|
|
///
|
|
typedef enum {
|
|
EnableState = 0, ///< [Unconfigure on RTC Clear] is enabled.
|
|
DisableState = 1 ///< [Unconfigure on RTC Clear] is disabled.
|
|
} ME_UNCONFIG_ON_RTC_CLEAR_STATUS;
|
|
|
|
typedef enum {
|
|
AmtProvisioningStatePre = 0,
|
|
AmtProvisioningStateIn = 1,
|
|
AmtProvisioningStatePost = 2
|
|
} AMT_PROVISIONING_STATE;
|
|
|
|
typedef struct {
|
|
UINT32 Reserved : 1;
|
|
UINT32 CiraAvailable : 1; ///< CIRA Available
|
|
UINT32 ProvisioningAvailable : 1; ///< Corporate Provisioning Available
|
|
UINT32 ProvisioningState : 2; ///< Provisioning state. @see AMT_PROVISIONING_STATE
|
|
UINT32 Reserved1 : 27;
|
|
} AMT_BIOS_SYNC_INFO;
|
|
|
|
//
|
|
// MKHI_HMRFPO_GROUP_ID Definitions
|
|
//
|
|
|
|
///
|
|
/// HMRFPO ENABLE
|
|
///
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 Reserved[2];
|
|
} HMRFPO_ENABLE;
|
|
|
|
///
|
|
/// HMRFPO_ENABLE returned Status
|
|
///
|
|
#define HMRFPO_ENABLE_SUCCESS 0x00
|
|
#define HMRFPO_ENABLE_LOCKED 0x01
|
|
#define HMRFPO_NVAR_FAILURE 0x02
|
|
#define HMRFPO_ENABLE_UNKNOWN_FAILURE 0x05
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 Reserved[2];
|
|
UINT8 Status;
|
|
UINT8 Reserved1[3];
|
|
} HMRFPO_ENABLE_ACK;
|
|
|
|
typedef union {
|
|
HMRFPO_ENABLE Request;
|
|
HMRFPO_ENABLE_ACK Response;
|
|
} HMRFPO_ENABLE_BUFFER;
|
|
|
|
///
|
|
/// HMRFPO LOCK
|
|
///
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} HMRFPO_LOCK;
|
|
|
|
///
|
|
/// HMRFPO_LOCK_RESPONSE returned Status
|
|
///
|
|
#define HMRFPO_LOCK_SUCCESS 0x00
|
|
#define HMRFPO_LOCK_FAILURE 0x01
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 Reserved[4];
|
|
UINT8 Status;
|
|
UINT8 Reserved1[3];
|
|
} HMRFPO_LOCK_ACK;
|
|
|
|
typedef union {
|
|
HMRFPO_LOCK Request;
|
|
HMRFPO_LOCK_ACK Response;
|
|
} HMRFPO_LOCK_BUFFER;
|
|
|
|
///
|
|
/// HMRFPO GET STATUS
|
|
///
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} HMRFPO_GET_STATUS;
|
|
|
|
///
|
|
/// HMRFPO_GET_STATUS returned Status
|
|
///
|
|
#define HMRFPO_DISABLED 0x00
|
|
#define HMRFPO_LOCKED 0x01
|
|
#define HMRFPO_ENABLED 0x02
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT8 Status;
|
|
UINT8 Reserved[3];
|
|
} HMRFPO_GET_STATUS_ACK;
|
|
|
|
typedef union {
|
|
HMRFPO_GET_STATUS Request;
|
|
HMRFPO_GET_STATUS_ACK Response;
|
|
} HMRFPO_GET_STATUS_BUFFER;
|
|
|
|
///
|
|
/// MKHI_MCA_GROUP_ID Definitions
|
|
///
|
|
#define MCA_DAM_FILE_SIZE 1
|
|
#define MCA_PLAT_ID_SUPPORT_FILE_SIZE 1
|
|
#define MCA_MAX_FILE_SIZE 4096
|
|
|
|
#define MCA_DAM_FILE_ID 0x10050000
|
|
#define MCA_AMT_PROV_STATE_FILE_ID 0x10080200
|
|
#define MCA_AMT_PROV_ADT_REC_FILE_ID 0x1001A600
|
|
#define MCA_AMT_SEC_PKI_FILE_ID 0x1001A000
|
|
#define MCA_PLAT_ID_SUPPORT_FILE_ID 0x1001B900
|
|
#define MCA_AMT_BIOS_REDIR_FILE_ID 0x10080300
|
|
#define MCAPHY_OEM_CFG_ID 0x1001F200
|
|
|
|
///
|
|
/// Read File, Ver3 API only
|
|
///
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT8 FilePath[64];
|
|
UINT32 Offset;
|
|
UINT32 DataSize;
|
|
UINT8 Flags;
|
|
} READ_FILE;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 DataSize;
|
|
UINT8 Data[]; ///< Data Buffer
|
|
} READ_FILE_ACK;
|
|
|
|
typedef union {
|
|
READ_FILE Request;
|
|
READ_FILE_ACK Response;
|
|
} READ_FILE_BUFFER;
|
|
|
|
///
|
|
/// Set File, Ver3 API only
|
|
///
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT8 FilePath[64];
|
|
UINT32 Offset;
|
|
UINT32 DataSize;
|
|
UINT8 Flags;
|
|
UINT8 Data[]; ///< Data Buffer
|
|
} SET_FILE;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} SET_FILE_ACK;
|
|
|
|
typedef union {
|
|
SET_FILE Request;
|
|
SET_FILE_ACK Response;
|
|
} SET_FILE_BUFFER;
|
|
|
|
///
|
|
/// Commit Files
|
|
///
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} COMMIT_FILES;
|
|
|
|
///
|
|
/// Core Bios Done - both GEN and MCA group definition
|
|
///
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} CORE_BIOS_DONE;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} CORE_BIOS_DONE_ACK;
|
|
|
|
///
|
|
/// Get RPMC Status
|
|
///
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} GET_RPMC_STATUS;
|
|
|
|
typedef struct {
|
|
UINT32 DeviceType : 2; ///< Device Type. 00: EMMC; 01: UFS; 10: SPI; 11: No device
|
|
UINT32 RpSupport : 1; ///< Relay Protection. 0: Not supported; 1: Support NVM and FW configuraion
|
|
UINT32 BindStatus : 1; ///< 0: Pre-bind; 1: Post-bind
|
|
UINT32 RpRebindingAllowed : 1; ///< Rebind. 0: Not allowed 1: Allowed
|
|
UINT32 BindingCounter : 5; ///< Current binding counter
|
|
UINT32 MaxRebinds : 4; ///< Number of max rebinds allowed
|
|
UINT32 SpiRpmcCounters : 3; ///< Number of RPMC counters avaiable (0 if EMMC/UFS)
|
|
UINT32 SpiRpmcChipselect : 1; ///< 0 if EMMC/UFS
|
|
UINT32 SpiRpmcFatalError : 8; ///< 0 if EMMC/UFS
|
|
UINT32 Reserved : 6;
|
|
} RP_STATUS_2;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
RP_STATUS_2 Status;
|
|
} GET_RPMC_STATUS_ACK;
|
|
|
|
typedef union {
|
|
GET_RPMC_STATUS Request;
|
|
GET_RPMC_STATUS_ACK Response;
|
|
} GET_RPMC_STATUS_BUFFER;
|
|
|
|
///
|
|
/// Read File Ex
|
|
///
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 FileId;
|
|
UINT32 Offset;
|
|
UINT32 DataSize;
|
|
UINT8 Flags;
|
|
} READ_FILE_EX;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 DataSize;
|
|
UINT8 Data[]; ///< Data Buffer
|
|
} READ_FILE_EX_ACK;
|
|
|
|
typedef union {
|
|
READ_FILE_EX Request;
|
|
READ_FILE_EX_ACK Response;
|
|
} READ_FILE_EX_BUFFER;
|
|
|
|
///
|
|
/// Set File Ex
|
|
///
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 FileId;
|
|
UINT32 Offset;
|
|
UINT32 DataSize;
|
|
UINT8 Flags;
|
|
UINT8 Data[]; ///< Data Buffer
|
|
} SET_FILE_EX;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} SET_FILE_EX_ACK;
|
|
|
|
typedef union {
|
|
SET_FILE_EX Request;
|
|
SET_FILE_EX_ACK Response;
|
|
} SET_FILE_EX_BUFFER;
|
|
|
|
///
|
|
/// Request Device Ownership
|
|
///
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} REQUEST_OWNERSHIP;
|
|
|
|
typedef union {
|
|
REQUEST_OWNERSHIP Request;
|
|
REQUEST_OWNERSHIP Response;
|
|
} REQUEST_OWNERSHIP_BUFFER;
|
|
|
|
///
|
|
/// HW Anti-Rollback
|
|
///
|
|
|
|
typedef enum {
|
|
MFT_KEY_USAGE_INDEX_CSE_RBE_MANIFEST = 3, ///< RBE manifest
|
|
MFT_KEY_USAGE_INDEX_UNDEFINED_MANIFEST = 255 ///< Undefined and maximum usage
|
|
} MFT_KEY_USAGE;
|
|
|
|
#define ARB_SVN_COMMIT_ALL 0xFF ///< Value 0xFF refers to committing all pending ARBSVN values.
|
|
///
|
|
/// HW Anti-Rollback (ARB) Security Version Number Commit
|
|
///
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT8 UsageId;
|
|
UINT8 Reserved[3]; ///< Reserved for future use, to allow specifying explicit usage to be committed.
|
|
} ARB_SVN_COMMIT;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} ARB_SVN_COMMIT_ACK;
|
|
|
|
typedef union {
|
|
ARB_SVN_COMMIT Request;
|
|
ARB_SVN_COMMIT_ACK Response;
|
|
} ARB_SVN_COMMIT_BUFFER;
|
|
|
|
///
|
|
/// HW Anti-Rollback (ARB) Security Version Number Get Info
|
|
///
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} ARB_SVN_GET_INFO;
|
|
|
|
typedef struct {
|
|
UINT8 UsageId; ///< Key usage number according to FAS manifest.
|
|
/* Used in SPS to indicate partition.
|
|
In client the SVN is same for all partitions
|
|
0 - Boot partition 1 (RCV in SPS)
|
|
1 - Boot partition 2 (OPR1 in SPS)
|
|
2 - Boot partition 3 (OPR2 in SPS)
|
|
*/
|
|
UINT8 BootPartitionId;
|
|
UINT8 ExecutingSvn; ///< The SVN value of the FW currently running.
|
|
UINT8 MinAllowedSvn; ///< The minimal SVN allowed on platform for given usage.
|
|
} ARB_SVN_INFO_ENTRY;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 NumEntries; ///< Number of ARB SVN Entry
|
|
ARB_SVN_INFO_ENTRY ArbSvnEntry[0];
|
|
} ARB_SVN_GET_INFO_ACK;
|
|
|
|
typedef union {
|
|
ARB_SVN_GET_INFO Request;
|
|
ARB_SVN_GET_INFO_ACK Response;
|
|
} ARB_SVN_GET_INFO_BUFFER;
|
|
|
|
//
|
|
// MKHI_DNX_GROUP_ID Definitions
|
|
//
|
|
|
|
///
|
|
/// DNX Request Set
|
|
///
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} DNX_REQ_SET;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 BiosAction;
|
|
} DNX_REQ_SET_ACK;
|
|
|
|
typedef union {
|
|
DNX_REQ_SET Request;
|
|
DNX_REQ_SET_ACK Response;
|
|
} DNX_REQ_SET_BUFFER;
|
|
|
|
///
|
|
/// DNX Request Clear
|
|
///
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 Flag;
|
|
} DNX_REQ_CLEAR;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} DNX_REQ_CLEAR_ACK;
|
|
|
|
typedef union {
|
|
DNX_REQ_CLEAR Request;
|
|
DNX_REQ_CLEAR_ACK Response;
|
|
} DNX_REQ_CLEAR_BUFFER;
|
|
|
|
//
|
|
// MKHI_GEN_GROUP_ID Definitions
|
|
//
|
|
|
|
///
|
|
/// Get MKHI Version
|
|
///
|
|
#define MKHI_MSG_VERSION_MAJOR 0x1
|
|
#define MKHI_MSG_VERSION_MINOR 0x1
|
|
|
|
typedef union {
|
|
UINT32 Data;
|
|
struct {
|
|
UINT32 Minor : 16;
|
|
UINT32 Major : 16;
|
|
} Fields;
|
|
} MKHI_VERSION;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} GET_MKHI_VERSION;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
MKHI_VERSION MkhiVersion;
|
|
} GET_MKHI_VERSION_ACK;
|
|
|
|
typedef union {
|
|
GET_MKHI_VERSION Request;
|
|
GET_MKHI_VERSION_ACK Response;
|
|
} GET_MKHI_VERSION_BUFFER;
|
|
|
|
///
|
|
/// Get FW Version
|
|
///
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} GET_FW_VER;
|
|
|
|
typedef struct {
|
|
UINT32 CodeMinor : 16;
|
|
UINT32 CodeMajor : 16;
|
|
UINT32 CodeBuildNo : 16;
|
|
UINT32 CodeHotFix : 16;
|
|
UINT32 RcvyMinor : 16;
|
|
UINT32 RcvyMajor : 16;
|
|
UINT32 RcvyBuildNo : 16;
|
|
UINT32 RcvyHotFix : 16;
|
|
UINT32 FitcMinor : 16;
|
|
UINT32 FitcMajor : 16;
|
|
UINT32 FitcBuildNo : 16;
|
|
UINT32 FitcHotFix : 16;
|
|
} GET_FW_VER_ACK_DATA;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
GET_FW_VER_ACK_DATA Data;
|
|
} GET_FW_VER_ACK;
|
|
|
|
///
|
|
/// Send CPU brand class fuse
|
|
///
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT8 CpuBrandClass;
|
|
} GEN_SEND_CPU_BRAND;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} GEN_SEND_CPU_BRAND_ACK;
|
|
|
|
typedef union {
|
|
GEN_SEND_CPU_BRAND Request;
|
|
GEN_SEND_CPU_BRAND_ACK Response;
|
|
} GEN_SEND_CPU_BRAND_BUFFER;
|
|
|
|
//
|
|
// Get CPU Type Change message
|
|
//
|
|
#define MAX_SKU_BITMAP 8 ///< CPU type change response feature masks size in DWORDS
|
|
#define USER_FEEDBACK_REQUESTED 1 ///< User feedback is requested
|
|
|
|
typedef struct {
|
|
UINT8 UserFeedback;
|
|
UINT32 FeaturesDisabled[MAX_SKU_BITMAP];
|
|
UINT32 FeaturesEnabled[MAX_SKU_BITMAP];
|
|
UINT8 GlobalResetRequired;
|
|
} GEN_GET_CPU_TYPE_CHANGE_DATA;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} GEN_GET_CPU_TYPE_CHANGE;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
GEN_GET_CPU_TYPE_CHANGE_DATA Data;
|
|
} GEN_GET_CPU_TYPE_CHANGE_ACK;
|
|
|
|
typedef union {
|
|
GEN_GET_CPU_TYPE_CHANGE Request;
|
|
GEN_GET_CPU_TYPE_CHANGE_ACK Response;
|
|
} GEN_GET_CPU_TYPE_CHANGE_BUFFER;
|
|
|
|
//
|
|
// Set CPU Type Change message
|
|
//
|
|
#define CPU_TYPE_CHANGE_ACCEPTED 1 ///< CPU type change accepted
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT8 UserResponse;
|
|
} GEN_SET_CPU_TYPE_CHANGE;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} GEN_SET_CPU_TYPE_CHANGE_ACK;
|
|
|
|
typedef union {
|
|
GEN_SET_CPU_TYPE_CHANGE Request;
|
|
GEN_SET_CPU_TYPE_CHANGE_ACK Response;
|
|
} GEN_SET_CPU_TYPE_CHANGE_BUFFER;
|
|
|
|
|
|
///
|
|
/// End of Post
|
|
///
|
|
#define EOP_DISABLED 0
|
|
#define EOP_SEND_IN_PEI 1
|
|
#define EOP_SEND_IN_DXE 2
|
|
|
|
#define MAX_EOP_SEND_RETRIES 3
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} END_OF_POST;
|
|
|
|
typedef enum {
|
|
HeciEopStatusSuccess,
|
|
HeciEopPerformGlobalReset
|
|
} EOP_REQUESTED_ACTIONS;
|
|
|
|
typedef struct {
|
|
UINT32 RequestedActions;
|
|
} EOP_ACK_DATA;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
EOP_ACK_DATA Data;
|
|
} END_OF_POST_ACK;
|
|
|
|
typedef union {
|
|
END_OF_POST Request;
|
|
END_OF_POST_ACK Response;
|
|
} END_OF_POST_BUFFER;
|
|
|
|
//
|
|
// Unconfig without password messages
|
|
//
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} UNCONFIG_WO_PASSWORD;
|
|
|
|
///
|
|
/// Get ME Unconfiguration State
|
|
///
|
|
#define ME_UNCONFIG_TIMEOUT 200 ///< Unconfig timeout in seconds
|
|
|
|
#define ME_UNCONFIG_IN_PROGRESS 0x01 ///< Unconfig without password is in progress
|
|
#define ME_UNCONFIG_NOT_IN_PROGRESS 0x02 ///< Normal case, there is no unconfigure w/o password to be processed
|
|
#define ME_UNCONFIG_FINISHED 0x03 ///< CSME finished processing unconfigure w/o password. Bios will perform a global reset
|
|
#define ME_UNCONFIG_ERROR 0x80 ///< CSME encountered error while processing revert back to default. Specific error status defined starting at 0x81
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} GEN_GET_ME_UNCFG_STATE;
|
|
|
|
///
|
|
/// Set Manufacturing ME Reset and Halt messages
|
|
///
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} SET_ME_RESET_HALT;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} SET_ME_RESET_HALT_ACK;
|
|
|
|
///
|
|
/// FW Feature Shipment Time State Override
|
|
///
|
|
typedef struct {
|
|
UINT32 EnableFeature;
|
|
UINT32 DisableFeature;
|
|
} FW_FEATURE_SHIPMENT_TIME_STATE_OVERRIDE_DATA;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
FW_FEATURE_SHIPMENT_TIME_STATE_OVERRIDE_DATA FeatureState;
|
|
} FW_FEATURE_SHIPMENT_TIME_STATE_OVERRIDE;
|
|
|
|
//
|
|
// FW Feature Shipment Time State Override returned Status
|
|
//
|
|
typedef enum {
|
|
SetFeatureStateAccepted,
|
|
SetFeatureStateRejected
|
|
} FW_FEATURE_SHIPMENT_TIME_STATE_OVERRIDE_RESPONSE;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 Status;
|
|
} FW_FEATURE_SHIPMENT_TIME_STATE_OVERRIDE_ACK;
|
|
|
|
typedef union {
|
|
FW_FEATURE_SHIPMENT_TIME_STATE_OVERRIDE Request;
|
|
FW_FEATURE_SHIPMENT_TIME_STATE_OVERRIDE_ACK Response;
|
|
} FW_FEATURE_SHIPMENT_TIME_STATE_OVERRIDE_BUFFER;
|
|
|
|
///
|
|
/// Get Image FW Version
|
|
///
|
|
#define FTP_PARTITION_NAME_PMCP 0x50434D50
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 PartitionId;
|
|
} GET_IMAGE_FW_VER;
|
|
|
|
typedef struct {
|
|
UINT16 Major;
|
|
UINT16 Minor;
|
|
UINT16 Hotfix;
|
|
UINT16 Build;
|
|
} FW_VERSION;
|
|
|
|
typedef struct {
|
|
UINT32 PartitionId; ///< Partition ID
|
|
UINT8 Reserved[8]; ///< Should be 0
|
|
FW_VERSION Version; ///< Module version
|
|
UINT32 VendorId; ///< Module vendor ID(0x8086 for Intel)
|
|
UINT32 TcbSvn; ///< TCB SVN
|
|
UINT32 Reserved1[15]; ///< Reserved bytes for future extension. Should be 0 while reserved
|
|
} FLASH_PARTITION_DATA;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT32 NumOfModules;
|
|
FLASH_PARTITION_DATA ManifestData;
|
|
} GET_IMAGE_FW_VER_ACK;
|
|
|
|
typedef union {
|
|
GET_IMAGE_FW_VER Request;
|
|
GET_IMAGE_FW_VER_ACK Response;
|
|
} GET_IMAGE_FW_VERSION_BUFFER;
|
|
|
|
///
|
|
/// Set FIPS Mode
|
|
///
|
|
#define FIPS_MODE_DISABLED 0
|
|
#define FIPS_MODE_ENABLED 1
|
|
|
|
typedef struct {
|
|
UINT32 FipsMode;
|
|
} SET_FIPS_MODE_DATA;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
SET_FIPS_MODE_DATA Data;
|
|
} SET_FIPS_MODE;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} SET_FIPS_MODE_ACK;
|
|
|
|
typedef union {
|
|
SET_FIPS_MODE Request;
|
|
SET_FIPS_MODE_ACK Response;
|
|
} SET_FIPS_MODE_BUFFER;
|
|
|
|
///
|
|
/// Get FIPS Mode
|
|
///
|
|
typedef struct {
|
|
UINT16 Major;
|
|
UINT16 Minor;
|
|
UINT16 Hotfix;
|
|
UINT16 Build;
|
|
} FIPS_VERSION;
|
|
|
|
typedef struct {
|
|
UINT32 FipsMode;
|
|
FIPS_VERSION CryptoVersion;
|
|
UINT8 Reserved[8];
|
|
} GET_FIPS_MODE_DATA;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} GET_FIPS_MODE;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
GET_FIPS_MODE_DATA Data;
|
|
} GET_FIPS_MODE_ACK;
|
|
|
|
typedef union {
|
|
GET_FIPS_MODE Request;
|
|
GET_FIPS_MODE_ACK Response;
|
|
} GET_FIPS_MODE_BUFFER;
|
|
|
|
///
|
|
/// Set CSME Measured Boot
|
|
///
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT8 Data;
|
|
} SET_MEASURED_BOOT;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} SET_MEASURED_BOOT_ACK;
|
|
|
|
typedef union {
|
|
SET_MEASURED_BOOT Request;
|
|
SET_MEASURED_BOOT_ACK Response;
|
|
} SET_MEASURED_BOOT_BUFFER;
|
|
|
|
///
|
|
/// Get CSME Measured Boot
|
|
///
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
} GET_MEASURED_BOOT;
|
|
|
|
typedef struct {
|
|
MKHI_MESSAGE_HEADER MkhiHeader;
|
|
UINT8 Data;
|
|
} GET_MEASURED_BOOT_ACK;
|
|
|
|
typedef union {
|
|
GET_MEASURED_BOOT Request;
|
|
GET_MEASURED_BOOT_ACK Response;
|
|
} GET_MEASURED_BOOT_BUFFER;
|
|
|
|
#pragma pack()
|
|
|
|
#endif // _MKHI_MSGS_H
|