diff options
author | Barnali Sarkar <barnali.sarkar@intel.com> | 2017-06-13 19:17:35 +0530 |
---|---|---|
committer | Aaron Durbin <adurbin@chromium.org> | 2017-06-23 15:48:30 +0000 |
commit | 91d38a5b0e070e75f32b30cb7297a801e31282f6 (patch) | |
tree | 5f784d79ac6220ed86b0a04994b60827ab103b0b /src/soc/intel/common/block/cpu/cpulib.c | |
parent | 71dacacb748a73e44ea86ec571cc4ec9ff667d9d (diff) | |
download | coreboot-91d38a5b0e070e75f32b30cb7297a801e31282f6.tar.xz |
soc/intel/common/block: Add common MP Init code
This patch contains State Machine callbacks init_cpus()
and post_cpu_init().
Also, it has the SOC call for CPU feature programming.
Change-Id: I5b20d413c85bf7ec6ed89b4cdf1770c33507236b
Signed-off-by: Barnali Sarkar <barnali.sarkar@intel.com>
Reviewed-on: https://review.coreboot.org/20189
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/soc/intel/common/block/cpu/cpulib.c')
-rw-r--r-- | src/soc/intel/common/block/cpu/cpulib.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/soc/intel/common/block/cpu/cpulib.c b/src/soc/intel/common/block/cpu/cpulib.c index 325e1bb857..5920512cd4 100644 --- a/src/soc/intel/common/block/cpu/cpulib.c +++ b/src/soc/intel/common/block/cpu/cpulib.c @@ -226,3 +226,17 @@ void cpu_enable_untrusted_mode(void) msr.lo |= ENABLE_IA_UNTRUSTED; wrmsr(MSR_POWER_MISC, msr); } + +/* + * This function fills in the number of Cores(physical) and Threads(virtual) + * of the CPU in the function arguments. It also returns if the number of cores + * and number of threads are equal. + */ +int cpu_read_topology(unsigned int *num_phys, unsigned int *num_virt) +{ + msr_t msr; + msr = rdmsr(MSR_CORE_THREAD_COUNT); + *num_virt = (msr.lo >> 0) & 0xffff; + *num_phys = (msr.lo >> 16) & 0xffff; + return (*num_virt == *num_phys); +} |