/** @file
Copyright (c) 2019 - 2020 Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _DXE_ME_POLICY_UPDATE_H_
#define _DXE_ME_POLICY_UPDATE_H_
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define PLATFORM_BOOT_TABLE_PTR_TYPE 0x1001
#define PLATFORM_BOOT_RECORD_TYPE 0x1022
//
// Timeout values based on HPET
//
#define HECI_MSG_DELAY 2000000 ///< show warning msg and stay for 2 seconds.
#define CONVERSION_MULTIPLIER 1000000 ///< msec to nanosec multiplier
#define PLATFORM_BOOT_TABLE_SIGNATURE SIGNATURE_32 ('P', 'B', 'P', 'T')
//
// Platform Boot Performance Table Record
//
typedef struct {
UINT16 Type;
UINT8 Length;
UINT8 Revision;
UINT32 Reserved;
UINT64 TimestampDelta1;
UINT64 TimestampDelta2;
UINT64 TimestampDelta3;
} PLATFORM_BOOT_TABLE_RECORD;
//
// Platform boot Performance Table
//
typedef struct {
EFI_ACPI_COMMON_HEADER Header;
PLATFORM_BOOT_TABLE_RECORD PlatformBoot;
} PLATFORM_BOOT_PERFORMANCE_TABLE;
/**
Update ME Policy while MePlatformProtocol is installed.
@param[in] MePolicyInstance Instance of ME Policy Protocol
**/
VOID
UpdateMePolicyFromMeSetup (
IN ME_POLICY_PROTOCOL *MePolicyInstance
);
/**
Update ME Policy if Setup variable exists.
@param[in, out] MePolicyInstance Instance of ME Policy Protocol
**/
VOID
UpdateMePolicyFromSetup (
IN OUT ME_POLICY_PROTOCOL *MePolicyInstance
);
/**
Functions performs HECI exchange with FW to update MePolicy settings.
@param[in] Event A pointer to the Event that triggered the callback.
@param[in] Context A pointer to private data registered with the callback function.
**/
VOID
EFIAPI
UpdateMeSetupCallback (
IN EFI_EVENT Event,
IN VOID *Context
);
#endif