alder_lake_bios/Intel/AlderLake/ClientOneSiliconPkg/Include/Library/DxeMebxWrapperLib.h

770 lines
29 KiB
C

/** @file
Header file for MEBx Wrapper Library.
@copyright
INTEL CONFIDENTIAL
Copyright 2019 - 2020 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 _DXE_MEBX_WRAPPER_LIB_H_
#define _DXE_MEBX_WRAPPER_LIB_H_
#include <AmthiMsgs.h>
#include <Protocol/GraphicsOutput.h>
/**
Check if BIOS supports the currently used AMTHI Interface version.
@retval TRUE AMTHI Interface version supported
@retval FALSE AMTHI Interface version not supported
**/
BOOLEAN
MebxIsAmthiInterfaceVersionSupported (
VOID
);
/**
Retrieve current IPV4 TCPIP Parameters.
@param[in] Interface Interface type:
0 - WIRED
1 - WIRELESS
@param[in] GetDynamicIpAddress If TRUE, then the function will return
IPV4 Address obtained from DHCP if DHCP
is enabled
@param[out] IsLanlessPlatform Indicates if Interface LAN is available
@param[out] Ipv4Cfg IPV4 TCPIP Parameters. Returned only
if Interface LAN Interface is available
@retval EFI_SUCCESS Command succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxGetIpv4Params (
IN UINT32 Interface,
IN BOOLEAN GetDynamicIpAddress,
OUT UINT8 *IsLanlessPlatform,
OUT IMB_TCPIP_PARAMS *Ipv4Cfg
);
/**
Update current IPV4 TCPIP Parameters.
@param[in] NewIpv4Cfg IPV4 TCPIP Parameters
@retval EFI_SUCCESS Command succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxSetIpv4Params (
IN IMB_TCPIP_PARAMS *NewIpv4Cfg
);
typedef enum {
UnprovisionTypePartial,
UnprovisionTypeFull
} UNPROVISION_TYPE;
/**
Performs Intel(R) AMT full and partial unprovisioning flows.
Performs unprovisiong, re-initializes AMTHI, and if full unprovision, resets the
MEBx password to AMT.
@param[in] UnprovisionType Specifies Unprovisioning Type:
0 - partial unprovision
1 - full unprovision
@retval EFI_SUCCESS Unprovisioning successful
@retval EFI_TIMEOUT Timeout has occured
@retval Others Other error has occured
**/
EFI_STATUS
MebxPerformUnprovisioning (
IN UINT8 UnprovisionType
);
/**
Retrieve current provisioning state.
@param[out] ProvisioningState Current provisioning state:
@see PT_PROVISIONING_STATE
@retval EFI_SUCCESS Command succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxGetProvisioningState (
OUT UINT32 *ProvisioningState
);
/**
Update current SOL and Storage Redirection state.
@param[in] NewSolStatus New SOL state
@param[in] NewStorageRedirStatus New Storage Redirection state
@retval EFI_SUCCESS Command succeeded
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxSetSolStorageRedir (
IN UINT16 NewSolStatus,
IN UINT16 NewStorageRedirStatus
);
/**
Retrieve current EoP state.
@param[out] State Current End of Post State:
@see CFG_EOP_STATE
@retval EFI_SUCCESS Command succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxGetEndOfPostState (
OUT CFG_EOP_STATE *State
);
/**
Retrieve available Hashed Certificates.
@param[out] CertQuantity Number of available Hashed Certificates entries
@param[out] CertHandle Array with available Hashed Certificates list
@param[out] CertHashEntry Pointer to the structure containing info regarding
all the available Hashed Certificates
@see CERT_HASH_ENTRY
@retval EFI_SUCCESS Command succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxGetHashedCertificates (
OUT UINT32 *CertQuantity,
OUT UINT32 *CertHandle,
OUT CERT_HASH_ENTRY *CertHashEntry
);
/**
Update current PKI FQDN DNS Suffix.
@attention Fuction is not allowed in POST_PROVISION State
@param[in] NewPkiDns New Fqdn Pki Dns suffix
@retval EFI_SUCCESS Command succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxSetPkiFqdnSuffix (
IN FQDN_SUFFIX_ANSI_STRING *NewPkiDns
);
/**
Retrieve ZTC State.
@param[out] ZtcEnabledStatus Current ZTC Enabled Status
@retval EFI_SUCCESS Command succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxGetZtcEnabledStatus (
OUT UINT32 *ZtcEnabledStatus
);
/**
Retrieve current AMT Idle Timeout.
@param[out] AmtIdleTimeout Current AMT Idle Timeout
@retval EFI_SUCCESS Command succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxGetIdleTimeout (
OUT UINT16 *AmtIdleTimeout
);
/**
Update current AMT Idle Timeout.
@param[in] AmtIdleTimeout New AMT Idle Timeout
@retval EFI_SUCCESS Command succeeded
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxSetIdleTimeout (
IN UINT16 AmtIdleTimeout
);
/**
Retrieve current PKI DNS Data.
@param[out] CurrentPkiDns Current PKI DNS Data
@retval EFI_SUCCESS Command succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxGetPkiFqdnSuffix (
OUT FQDN_SUFFIX_ANSI_STRING *CurrentPkiDns
);
/**
Update Certificate Hash State.
@param[in] Handle Handle to Hash to Update State for
@param[in] IsActive New User Defined State for Certificate Hash State
(Active/Not Active)
@retval EFI_SUCCESS Command succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxSetCertificateHashState (
IN UINT32 *Handle,
IN UINT32 IsActive
);
/**
Update Zero Touch Enabled State.
@param[in] NewZtcStatus New ZTC Enabled Status
@retval EFI_SUCCESS Command succeeded
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxSetZeroTouchEnabled (
IN UINT32 NewZtcStatus
);
/**
Request a User Connection for CIRA.
@param[out] AmtStatus Amt Error Status
@retval EFI_SUCCESS Command succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxOpenUserInitiatedConnection (
OUT UINT32 *AmtStatus
);
/**
Close a User Connection for CIRA.
@retval EFI_SUCCESS Command succeeded
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxCloseUserInitiatedConnection (
VOID
);
/**
Query the status of CIRA Connection.
@param[out] ConnectionData Connection Data
@retval EFI_SUCCESS Command succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge or Fqdn too long
**/
EFI_STATUS
MebxGetConnectionStatus (
OUT REMOTE_ACCESS_CONNECTION_STRUCT *ConnectionData
);
/**
Update current MEBx password change policy.
@param[in] PwdPolicy New MEBx password change policy:
@see CFG_MEBX_PWD_CHANGE_POLICY
@retval EFI_SUCCESS Command succeeded
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxSetMebxPwdPolicy (
IN UINT32 PwdPolicy
);
/**
Retrieve current MEBx password change policy.
@param[out] PwdPolicy Current MEBx password change policy:
@see CFG_MEBX_PWD_CHANGE_POLICY
@retval EFI_SUCCESS Command succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxGetMebxPwdPolicy (
OUT UINT32 *PwdPolicy
);
/**
Retrieve current AMT Config Server data.
@param[out] ServerPort Current Configuration Server Port
@param[out] ServerAddr Current Configuration Server Address
@param[out] Fqdn Current Fqdn Value
@retval EFI_SUCCESS Command succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxGetConfigServerData (
OUT UINT16 *ServerPort,
OUT UINT8 *ServerAddr,
OUT FQDN_ANSI_STRING *Fqdn
);
/**
This message is sent by the BIOS to update current AMT Config Server data.
@param[in] ServerPort New Configuration Server Port Value
@param[in] ServerAddr New Configuration Server Address
@param[in] Fqdn New Fqdn Value
@retval EFI_SUCCESS Command succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxSetConfigServerData (
IN UINT16 ServerPort,
IN UINT8 *ServerAddr,
IN FQDN_ANSI_STRING *Fqdn
);
/**
Retrieve current AMT FW Audit Record which Holds Info about Last Provisioning Attempt.
@param[out] Audit AMT's Current Audit Record
@retval EFI_SUCCESS Command succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxGetMeSetupAuditRecord (
OUT ME_ADMIN_AUDIT_RECORD *Audit
);
/**
This message is sent by the BIOS to retrieve current AMT IPV6 LAN Settings.
@param[in] ConnectionType Interface type:
0 - WIRED
1 - WIRELESS
@param[out] Ipv6LanIntfStrc Current LAN Settings Structure
@retval EFI_SUCCESS Command succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
or too many IPV6 addresses
**/
EFI_STATUS
MebxCfgGetIPv6LanIntStatus (
IN UINT32 ConnectionType,
OUT IPV6_LAN_INTERACE_STRUC *Ipv6LanIntfStrc
);
/**
Retrieve current FQDN Data.
@param[out] FqdnData Current FQDN data
@retval EFI_SUCCESS Command succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxGetFqdn (
OUT FQDN_DATA *FqdnData
);
/**
Update current FQDN Data.
@param[in] FqdnData New FQDN data
@retval EFI_SUCCESS Command succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxSetFqdn (
IN FQDN_DATA *FqdnData
);
/**
Retrieve current Redirection features state.
@param[out] FeaturesState Current Redirection features state
@retval EFI_SUCCESS Command succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxGetRedirectionState (
OUT REDIRECTION_FEATURES_STATE *FeaturesState
);
/**
Complete configuration and transition to the post provisioning state.
@param[out] AmtStatus Amt Error Status
@retval EFI_SUCCESS Command succeeded
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxCompleteConfigurationRequest (
OUT UINT32 *AmtStatus
);
/**
Stop the remote configuration process.
@param[out] ProvisioningState Platform provisioning state
@retval EFI_SUCCESS Remote Configuration stopped
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxStopRemoteConfiguration (
OUT UINT32 *ProvisioningState
);
/**
Start the remote configuration process.
@param[out] AmtStatus Amt Error Status
@retval EFI_SUCCESS Remote Configuration Activated
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
@retval EFI_NOT_READY Certificate not ready yet
**/
EFI_STATUS
MebxActivateRemoteConfiguration (
OUT UINT32 *ProvisioningState
);
/**
Set MEBx state and verify if KVM session is not active during MEBx UI.
@param[in] MebxState New MEBx state
@retval EFI_SUCCESS Command succeeded
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxSetMebxState (
IN AMT_MEBX_STATE MebxState
);
/**
This function retrieves platform settings regarding Opt-in policies.
@param[out] OptInConfigExposure Determines if user should be able to change
User Opt-In configuration
@param[out] RemoteItOptInConfigExpoure Determines if user should be able to change
Remote IT Opt-In configuration
@param[out] UserOptIn Determines list of features that require User Consent
@param[out] RemoteItOptInConfig Determines whether user consent policy can be modified from remote
@retval EFI_SUCCESS Function succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxGetPlatformOptInPolicy (
OUT UINT32 *OptInConfigExposure,
OUT UINT32 *RemoteItOptInConfigExposure,
OUT UINT32 *UserOptIn,
OUT UINT32 *RemoteItOptInConfig
);
/**
This message is sent by the BIOS to update current state of User Consent for AMT Features:
KVM / USB-R and Boot Parameters.
@param[in] OptInState Current OptInState
0 - None
1 - KVM
0xFFFFFFFF - All
@param[in] RemoteOptInState Enable / Disable Remote OptIn:
0 - Enabled
1 - Disabled
@retval EFI_SUCCESS Command succeeded
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxSetOptInState (
IN UINT32 OptInState,
IN UINT32 RemoteOptInState
);
/**
Update current state of KVM Feature.
@param[in] KvmState New KVM State
@retval EFI_SUCCESS Command succeeded
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxSetKvmEnabled (
IN UINT32 KvmState
);
/**
Retrieve current state of KVM Feature.
@param[out] KvmState Current KVM State
@retval EFI_SUCCESS Command succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxGetKvmEnabled (
OUT UINT8 *KvmState
);
/**
This message is sent by the BIOS to retrieve current AMT Privacy Level.
@param[out] PrivacyLevel Current Privacy Level
1 - Default
2 - Enhanced
3 - Extreme
@retval EFI_SUCCESS Command succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxGetAmtPrivacyLevel (
OUT UINT8 *PrivacyLevel
);
/**
Retrieve ME Power Policy configuration.
This function retrieves the maximum number of available power packages for the given platform.
Power packages are described by a list of GUIDs and each GUID has it's own text description.
@param[out] NumberOfPowerPkgs Number of available power packages GUIDs
@param[out] CurrentMeOnHostSlpState Index of the currently used power package GUID
@param[out] PackageDescription Array with the text decriptions for available GUIDs
@retval EFI_SUCCESS Function succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxGetPowerControlSettings (
OUT UINT8 *NumberOfPowerPkgs,
OUT UINT8 *CurrentMeOnHostSlpState,
OUT IMB_ANSI_STRING *PackageDescription
);
/**
Update ME Power Policy.
@param[in] MeOnHostSlpStates Index of the GUID previously retrieved by XXX function
to be set
@retval EFI_SUCCESS Function succeeded
@retval EFI_INVALID_PARAMETER NULL parameter
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxUpdatePowerPolicy (
IN UINT8 MeOnHostSlpStates
);
typedef enum {
AmtDisabled,
AmtPartiallyDisabled,
AmtEnabled
} AMT_STATE;
/**
Update Amt State.
@param[in] AmtState New AMT State
@retval EFI_SUCCESS Function succeeded
@retval EFI_UNSUPPORTED Current ME mode doesn't support this function
@retval EFI_DEVICE_ERROR HECI Device error, command aborts abnormally
@retval EFI_TIMEOUT HECI does not return the buffer before timeout
@retval EFI_BUFFER_TOO_SMALL Message Buffer is too small for the Acknowledge
**/
EFI_STATUS
MebxSetAmtState (
IN UINT8 AmtState
);
#endif