REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the UefiCpuPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
		
			
				
	
	
		
			82 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  This library defines some routines that are generic for IA32 family CPU.
 | 
						|
 | 
						|
  The library routines are UEFI specification compliant.
 | 
						|
 | 
						|
  Copyright (c) 2020, AMD Inc. All rights reserved.<BR>
 | 
						|
  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
 | 
						|
  SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#include <Register/Intel/Cpuid.h>
 | 
						|
#include <Register/Amd/Cpuid.h>
 | 
						|
 | 
						|
#include <Library/BaseLib.h>
 | 
						|
#include <Library/UefiCpuLib.h>
 | 
						|
 | 
						|
/**
 | 
						|
  Determine if the standard CPU signature is "AuthenticAMD".
 | 
						|
 | 
						|
  @retval TRUE  The CPU signature matches.
 | 
						|
  @retval FALSE The CPU signature does not match.
 | 
						|
 | 
						|
**/
 | 
						|
BOOLEAN
 | 
						|
EFIAPI
 | 
						|
StandardSignatureIsAuthenticAMD (
 | 
						|
  VOID
 | 
						|
  )
 | 
						|
{
 | 
						|
  UINT32  RegEbx;
 | 
						|
  UINT32  RegEcx;
 | 
						|
  UINT32  RegEdx;
 | 
						|
 | 
						|
  AsmCpuid (CPUID_SIGNATURE, NULL, &RegEbx, &RegEcx, &RegEdx);
 | 
						|
  return (RegEbx == CPUID_SIGNATURE_AUTHENTIC_AMD_EBX &&
 | 
						|
          RegEcx == CPUID_SIGNATURE_AUTHENTIC_AMD_ECX &&
 | 
						|
          RegEdx == CPUID_SIGNATURE_AUTHENTIC_AMD_EDX);
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
  Return the 32bit CPU family and model value.
 | 
						|
 | 
						|
  @return CPUID[01h].EAX with Processor Type and Stepping ID cleared.
 | 
						|
**/
 | 
						|
UINT32
 | 
						|
EFIAPI
 | 
						|
GetCpuFamilyModel (
 | 
						|
  VOID
 | 
						|
  )
 | 
						|
{
 | 
						|
  CPUID_VERSION_INFO_EAX  Eax;
 | 
						|
 | 
						|
  AsmCpuid (CPUID_VERSION_INFO, &Eax.Uint32, NULL, NULL, NULL);
 | 
						|
 | 
						|
  //
 | 
						|
  // Mask other fields than Family and Model.
 | 
						|
  //
 | 
						|
  Eax.Bits.SteppingId    = 0;
 | 
						|
  Eax.Bits.ProcessorType = 0;
 | 
						|
  Eax.Bits.Reserved1     = 0;
 | 
						|
  Eax.Bits.Reserved2     = 0;
 | 
						|
  return Eax.Uint32;
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
  Return the CPU stepping ID.
 | 
						|
  @return CPU stepping ID value in CPUID[01h].EAX.
 | 
						|
**/
 | 
						|
UINT8
 | 
						|
EFIAPI
 | 
						|
GetCpuSteppingId (
 | 
						|
  VOID
 | 
						|
  )
 | 
						|
{
 | 
						|
  CPUID_VERSION_INFO_EAX  Eax;
 | 
						|
 | 
						|
  AsmCpuid (CPUID_VERSION_INFO, &Eax.Uint32, NULL, NULL, NULL);
 | 
						|
 | 
						|
  return (UINT8)Eax.Bits.SteppingId;
 | 
						|
}
 |