/** @file
|
Header file for CpuPlatform Lib.
|
|
Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
**/
|
|
#ifndef _CPU_PLATFORM_LIB_H_
|
#define _CPU_PLATFORM_LIB_H_
|
|
#include <CpuRegs.h>
|
#include <CpuDataStruct.h>
|
#include <CpuPowerMgmt.h>
|
|
/**
|
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
|