cpu/intel: Move is_tme_supported() from soc/intel to cpu/intel
It makes the detection of this feature accessible without the CONFIG_SOC_INTEL_COMMON_BLOCK_CPU dependency. BUG=288978352 TEST=compilation Change-Id: I005c4953648ac9a90af23818b251efbfd2c04043 Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/77697 Reviewed-by: Bora Guvendik <bora.guvendik@intel.com> Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com> Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com> Reviewed-by: Subrata Banik <subratabanik@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
		
				
					committed by
					
						 Subrata Banik
						Subrata Banik
					
				
			
			
				
	
			
			
			
						parent
						
							e099176412
						
					
				
				
					commit
					a6a5b25ce4
				
			| @@ -1,5 +1,6 @@ | ||||
| ## SPDX-License-Identifier: GPL-2.0-only | ||||
|  | ||||
| romstage-$(CONFIG_CPU_INTEL_COMMON) += common_init.c | ||||
| ramstage-$(CONFIG_CPU_INTEL_COMMON) += common_init.c | ||||
| ramstage-$(CONFIG_CPU_INTEL_COMMON) += hyperthreading.c | ||||
| ramstage-$(CONFIG_CPU_INTEL_COMMON_VOLTAGE) += voltage.c | ||||
|   | ||||
| @@ -66,4 +66,12 @@ void set_energy_perf_pref(u8 pref); | ||||
|  */ | ||||
| void enable_energy_perf_pref(void); | ||||
|  | ||||
| /* | ||||
|  * Check if Total Memory Encryption (TME) is supported by the CPU | ||||
|  * | ||||
|  * coreboot shall detect the existence of TME feature by running CPUID instruction: | ||||
|  * CPUID leaf 7/sub-leaf 0: Return Value in ECX [bit 13] = 1 | ||||
|  */ | ||||
| bool is_tme_supported(void); | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -14,6 +14,9 @@ | ||||
| #define  CPUID_6_ENGERY_PERF_PREF	(1 << 10) | ||||
| #define  CPUID_6_HWP			(1 << 7) | ||||
|  | ||||
| /* Structured Extended Feature Flags */ | ||||
| #define CPUID_EXT_FEATURE_TME_SUPPORTED (1 << 13) | ||||
|  | ||||
| void set_vmx_and_lock(void) | ||||
| { | ||||
| 	set_feature_ctrl_vmx(); | ||||
| @@ -227,3 +230,11 @@ void set_energy_perf_pref(u8 pref) | ||||
| 	msr_unset_and_set(IA32_HWP_REQUEST, IA32_HWP_REQUEST_EPP_MASK, | ||||
| 		(uint64_t)pref << IA32_HWP_REQUEST_EPP_SHIFT); | ||||
| } | ||||
|  | ||||
| bool is_tme_supported(void) | ||||
| { | ||||
| 	struct cpuid_result cpuid_regs; | ||||
|  | ||||
| 	cpuid_regs = cpuid_ext(CPUID_STRUCT_EXTENDED_FEATURE_FLAGS, 0x0); | ||||
| 	return (cpuid_regs.ecx & CPUID_EXT_FEATURE_TME_SUPPORTED); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user