diff options
author | Subrata Banik <subrata.banik@intel.com> | 2018-04-24 13:45:30 +0530 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2018-05-14 08:39:42 +0000 |
commit | 3337497d2a1995614afd4a554747d86e4bcd8d31 (patch) | |
tree | d633ef07da222f54c90057d0e9b179c785f2a948 /src/soc/intel/common | |
parent | 223fb436fe89a265f4ddbe7f8fe38a35b47a8253 (diff) |
cpu/x86: Add support to run function with argument over APs
This patch ensures that user can pass a function with given argument
list to execute over APs.
BUG=b:74436746
BRANCH=none
TEST=Able to run functions over APs with argument.
Change-Id: I668b36752f6b21cb99cd1416c385d53e96117213
Signed-off-by: Subrata Banik <subrata.banik@intel.com>
Reviewed-on: https://review.coreboot.org/25725
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
Diffstat (limited to 'src/soc/intel/common')
-rw-r--r-- | src/soc/intel/common/block/cpu/cpulib.c | 2 | ||||
-rw-r--r-- | src/soc/intel/common/block/cpu/mp_init.c | 7 | ||||
-rw-r--r-- | src/soc/intel/common/block/include/intelblocks/cpulib.h | 2 | ||||
-rw-r--r-- | src/soc/intel/common/block/include/intelblocks/sgx.h | 2 | ||||
-rw-r--r-- | src/soc/intel/common/block/include/intelblocks/vmx.h | 2 | ||||
-rw-r--r-- | src/soc/intel/common/block/sgx/sgx.c | 2 | ||||
-rw-r--r-- | src/soc/intel/common/block/vmx/vmx.c | 2 |
7 files changed, 12 insertions, 7 deletions
diff --git a/src/soc/intel/common/block/cpu/cpulib.c b/src/soc/intel/common/block/cpu/cpulib.c index e768f8c5a4..c67904f198 100644 --- a/src/soc/intel/common/block/cpu/cpulib.c +++ b/src/soc/intel/common/block/cpu/cpulib.c @@ -219,7 +219,7 @@ void cpu_disable_eist(void) * Set Bit 6 (ENABLE_IA_UNTRUSTED_MODE) of MSR 0x120 * UCODE_PCR_POWER_MISC MSR to enter IA Untrusted Mode. */ -void cpu_enable_untrusted_mode(void) +void cpu_enable_untrusted_mode(void *unused) { msr_t msr; diff --git a/src/soc/intel/common/block/cpu/mp_init.c b/src/soc/intel/common/block/cpu/mp_init.c index 23f2fb0d47..97ad176a20 100644 --- a/src/soc/intel/common/block/cpu/mp_init.c +++ b/src/soc/intel/common/block/cpu/mp_init.c @@ -130,10 +130,15 @@ static void init_cpus(void *unused) soc_init_cpus(dev->link_list); } +static void wrapper_x86_setup_mtrrs(void *unused) +{ + x86_setup_mtrrs_with_detect(); +} + /* Ensure to re-program all MTRRs based on DRAM resource settings */ static void post_cpus_init(void *unused) { - if (mp_run_on_all_cpus(&x86_setup_mtrrs_with_detect, 1000) < 0) + if (mp_run_on_all_cpus(&wrapper_x86_setup_mtrrs, NULL, 1000) < 0) printk(BIOS_ERR, "MTRR programming failure\n"); x86_mtrr_check(); diff --git a/src/soc/intel/common/block/include/intelblocks/cpulib.h b/src/soc/intel/common/block/include/intelblocks/cpulib.h index 34caf4c252..191459be5f 100644 --- a/src/soc/intel/common/block/include/intelblocks/cpulib.h +++ b/src/soc/intel/common/block/include/intelblocks/cpulib.h @@ -112,7 +112,7 @@ void cpu_disable_eist(void); * Set Bit 6 (ENABLE_IA_UNTRUSTED_MODE) of MSR 0x120 * UCODE_PCR_POWER_MISC MSR to enter IA Untrusted Mode. */ -void cpu_enable_untrusted_mode(void); +void cpu_enable_untrusted_mode(void *unused); /* * This function fills in the number of Cores(physical) and Threads(virtual) diff --git a/src/soc/intel/common/block/include/intelblocks/sgx.h b/src/soc/intel/common/block/include/intelblocks/sgx.h index 3c87b434c2..502483f7e9 100644 --- a/src/soc/intel/common/block/include/intelblocks/sgx.h +++ b/src/soc/intel/common/block/include/intelblocks/sgx.h @@ -38,7 +38,7 @@ void prmrr_core_configure(void); /* * Configure SGX. */ -void sgx_configure(void); +void sgx_configure(void *unused); /* SOC specific API to get SGX params. * returns 0, if able to get SGX params; otherwise returns -1 */ diff --git a/src/soc/intel/common/block/include/intelblocks/vmx.h b/src/soc/intel/common/block/include/intelblocks/vmx.h index 1f6d33656e..7f65b599b4 100644 --- a/src/soc/intel/common/block/include/intelblocks/vmx.h +++ b/src/soc/intel/common/block/include/intelblocks/vmx.h @@ -21,7 +21,7 @@ struct vmx_param { /* * Configure VMX. */ -void vmx_configure(void); +void vmx_configure(void *unused); /* SOC specific API to get VMX params. * returns 0, if able to get VMX params; otherwise returns -1 */ diff --git a/src/soc/intel/common/block/sgx/sgx.c b/src/soc/intel/common/block/sgx/sgx.c index d3be15c81e..daedcfcf5d 100644 --- a/src/soc/intel/common/block/sgx/sgx.c +++ b/src/soc/intel/common/block/sgx/sgx.c @@ -201,7 +201,7 @@ static int is_prmrr_approved(void) return 0; } -void sgx_configure(void) +void sgx_configure(void *unused) { const void *microcode_patch = intel_mp_current_microcode(); diff --git a/src/soc/intel/common/block/vmx/vmx.c b/src/soc/intel/common/block/vmx/vmx.c index 307ffd9ddb..591ffbc6df 100644 --- a/src/soc/intel/common/block/vmx/vmx.c +++ b/src/soc/intel/common/block/vmx/vmx.c @@ -43,7 +43,7 @@ static int soc_vmx_enabled(void) return vmx_param ? vmx_param->enable : 0; } -void vmx_configure(void) +void vmx_configure(void *unused) { msr_t msr; struct cpuid_result regs; |