/** @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