/** @file
Header file for CpuPlatform Lib.
Copyright (c) 2019 Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _CPU_PLATFORM_LIB_H_
#define _CPU_PLATFORM_LIB_H_
#include
#include
#include
/**
Check CPU Type of the platform
@retval CPU_FAMILY CPU type
**/
CPU_FAMILY
EFIAPI
GetCpuFamily (
VOID
);
/**
Return Cpu stepping type
@retval CPU_STEPPING Cpu stepping type
**/
CPU_STEPPING
EFIAPI
GetCpuStepping (
VOID
);
/**
Return CPU Sku
@retval UINT8 CPU Sku
**/
UINT8
EFIAPI
GetCpuSku (
VOID
);
/**
Returns the processor microcode revision of the processor installed in the system.
@retval Processor Microcode Revision
**/
UINT32
GetCpuUcodeRevision (
VOID
);
/**
Check if this microcode is correct one for processor
@param[in] Cpuid - processor CPUID
@param[in] MicrocodeEntryPoint - entry point of microcode
@param[in] Revision - revision of microcode
@retval CorrectMicrocode if this microcode is correct
**/
BOOLEAN
CheckMicrocode (
IN UINT32 Cpuid,
IN CPU_MICROCODE_HEADER *MicrocodeEntryPoint,
IN UINT32 *Revision
);
/**
Check on the processor if SGX is supported.
@retval True if SGX supported or FALSE if not
**/
BOOLEAN
IsSgxSupported (
VOID
);
/**
Get processor generation
@retval CPU_GENERATION Returns the executing thread's processor generation.
**/
CPU_GENERATION
GetCpuGeneration (
VOID
);
/**
Check if Disable CPU Debug (DCD) bit is set from FIT CPU Debugging [Disabled].
If it is set, CPU probe mode is disabled.
@retval TRUE DCD is set
@retval FALSE DCD is clear
**/
BOOLEAN
IsCpuDebugDisabled (
VOID
);
/**
Is Whiskey Lake CPU.
@retval TRUE The CPUID corresponds with a Whiskey Lake CPU
@retval FALSE The CPUID does not correspond with a Whiskey Lake CPU
**/
BOOLEAN
IsWhlCpu (
VOID
);
#endif