Change-Id: I40f8b4c7cbc55e16929b1f40d18bb5a9c19845da Signed-off-by: Elyes HAOUAS <ehaouas@noos.fr> Reviewed-on: https://review.coreboot.org/29289 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Georgi <pgeorgi@google.com>
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * This file is part of the coreboot project.
 | |
|  *
 | |
|  * Copyright (C) 2007-2009 coresystems GmbH
 | |
|  * Copyright (C) 2014 Google Inc.
 | |
|  *
 | |
|  * This program is free software; you can redistribute it and/or modify
 | |
|  * it under the terms of the GNU General Public License as published by
 | |
|  * the Free Software Foundation; version 2 of the License.
 | |
|  *
 | |
|  * This program is distributed in the hope that it will be useful,
 | |
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
|  * GNU General Public License for more details.
 | |
|  */
 | |
| 
 | |
| #include <arch/cpu.h>
 | |
| #include <cpu/x86/msr.h>
 | |
| #include <soc/cpu.h>
 | |
| #include <soc/msr.h>
 | |
| #include <soc/systemagent.h>
 | |
| 
 | |
| u32 cpu_family_model(void)
 | |
| {
 | |
| 	return cpuid_eax(1) & 0x0fff0ff0;
 | |
| }
 | |
| 
 | |
| u32 cpu_stepping(void)
 | |
| {
 | |
| 	return cpuid_eax(1) & 0xf;
 | |
| }
 | |
| 
 | |
| /* Dynamically determine if the part is ULT. */
 | |
| int cpu_is_ult(void)
 | |
| {
 | |
| 	static int ult = -1;
 | |
| 
 | |
| 	if (ult < 0) {
 | |
| 		u32 fm = cpu_family_model();
 | |
| 		if (fm == BROADWELL_FAMILY_ULT || fm == HASWELL_FAMILY_ULT)
 | |
| 			ult = 1;
 | |
| 		else
 | |
| 			ult = 0;
 | |
| 	}
 | |
| 
 | |
| 	return ult;
 | |
| }
 |