diff options
Diffstat (limited to 'src/soc')
-rw-r--r-- | src/soc/intel/baytrail/cpu.c | 7 | ||||
-rw-r--r-- | src/soc/intel/baytrail/smm.c | 8 | ||||
-rw-r--r-- | src/soc/intel/braswell/cpu.c | 7 | ||||
-rw-r--r-- | src/soc/intel/braswell/smm.c | 8 | ||||
-rw-r--r-- | src/soc/intel/broadwell/cpu.c | 2 | ||||
-rw-r--r-- | src/soc/intel/broadwell/smi.c | 9 | ||||
-rw-r--r-- | src/soc/intel/denverton_ns/cpu.c | 2 | ||||
-rw-r--r-- | src/soc/intel/denverton_ns/smm.c | 9 | ||||
-rw-r--r-- | src/soc/intel/xeon_sp/cpx/cpu.c | 6 | ||||
-rw-r--r-- | src/soc/intel/xeon_sp/skx/cpu.c | 1 |
10 files changed, 47 insertions, 12 deletions
diff --git a/src/soc/intel/baytrail/cpu.c b/src/soc/intel/baytrail/cpu.c index fbbd84ac1b..59002619df 100644 --- a/src/soc/intel/baytrail/cpu.c +++ b/src/soc/intel/baytrail/cpu.c @@ -178,6 +178,11 @@ static void relocation_handler(int cpu, uintptr_t curr_smbase, smm_state->smbase = staggered_smbase; } +static void post_mp_init(void) +{ + global_smi_enable(); +} + static const struct mp_ops mp_ops = { .pre_mp_init = pre_mp_init, .get_cpu_count = get_cpu_count, @@ -186,7 +191,7 @@ static const struct mp_ops mp_ops = { .pre_mp_smm_init = smm_southbridge_clear_state, .per_cpu_smm_trigger = per_cpu_smm_trigger, .relocation_handler = relocation_handler, - .post_mp_init = smm_southbridge_enable_smi, + .post_mp_init = post_mp_init, }; void baytrail_init_cpus(struct device *dev) diff --git a/src/soc/intel/baytrail/smm.c b/src/soc/intel/baytrail/smm.c index 38efe2ba39..58238db627 100644 --- a/src/soc/intel/baytrail/smm.c +++ b/src/soc/intel/baytrail/smm.c @@ -70,9 +70,8 @@ static void smm_southcluster_route_gpios(void) outl(alt_gpio_reg, alt_gpio_smi); } -void smm_southbridge_enable_smi(void) +static void smm_southbridge_enable(uint16_t pm1_events) { - uint16_t pm1_events = PWRBTN_EN | GBL_EN; printk(BIOS_DEBUG, "Enabling SMIs.\n"); if (!smm_save_params[SMM_SAVE_PARAM_PCIE_WAKE_ENABLE]) @@ -94,6 +93,11 @@ void smm_southbridge_enable_smi(void) enable_smi(APMC_EN | SLP_SMI_EN | GBL_SMI_EN | EOS); } +void global_smi_enable(void) +{ + smm_southbridge_enable(PWRBTN_EN | GBL_EN); +} + void smm_setup_structures(void *gnvs, void *tcg, void *smi1) { /* diff --git a/src/soc/intel/braswell/cpu.c b/src/soc/intel/braswell/cpu.c index 19cc546239..861f160eb8 100644 --- a/src/soc/intel/braswell/cpu.c +++ b/src/soc/intel/braswell/cpu.c @@ -188,6 +188,11 @@ static void relocation_handler(int cpu, uintptr_t curr_smbase, uintptr_t stagger smm_state->smbase = staggered_smbase; } +static void post_mp_init(void) +{ + global_smi_enable(); +} + static const struct mp_ops mp_ops = { .pre_mp_init = pre_mp_init, .get_cpu_count = get_cpu_count, @@ -196,7 +201,7 @@ static const struct mp_ops mp_ops = { .pre_mp_smm_init = smm_southbridge_clear_state, .per_cpu_smm_trigger = per_cpu_smm_trigger, .relocation_handler = relocation_handler, - .post_mp_init = smm_southbridge_enable_smi, + .post_mp_init = post_mp_init, }; void soc_init_cpus(struct device *dev) diff --git a/src/soc/intel/braswell/smm.c b/src/soc/intel/braswell/smm.c index 5be4346661..e3ebc32304 100644 --- a/src/soc/intel/braswell/smm.c +++ b/src/soc/intel/braswell/smm.c @@ -70,9 +70,8 @@ static void smm_southcluster_route_gpios(void) outl(alt_gpio_reg, alt_gpio_smi); } -void smm_southbridge_enable_smi(void) +static void smm_southbridge_enable(uint16_t pm1_events) { - uint16_t pm1_events = PWRBTN_EN | GBL_EN; printk(BIOS_DEBUG, "Enabling SMIs.\n"); if (!smm_save_params[SMM_SAVE_PARAM_PCIE_WAKE_ENABLE]) @@ -96,6 +95,11 @@ void smm_southbridge_enable_smi(void) enable_smi(APMC_EN | SLP_SMI_EN | GBL_SMI_EN | EOS); } +void global_smi_enable(void) +{ + smm_southbridge_enable(PWRBTN_EN | GBL_EN); +} + void smm_setup_structures(void *gnvs, void *tcg, void *smi1) { /* diff --git a/src/soc/intel/broadwell/cpu.c b/src/soc/intel/broadwell/cpu.c index 859db7f1ec..4bfa15d354 100644 --- a/src/soc/intel/broadwell/cpu.c +++ b/src/soc/intel/broadwell/cpu.c @@ -494,7 +494,7 @@ static void post_mp_init(void) /* Now that all APs have been relocated as well as the BSP let SMIs * start flowing. */ - smm_southbridge_enable_smi(); + global_smi_enable(); /* Lock down the SMRAM space. */ smm_lock(); diff --git a/src/soc/intel/broadwell/smi.c b/src/soc/intel/broadwell/smi.c index 1d3860a982..939815a998 100644 --- a/src/soc/intel/broadwell/smi.c +++ b/src/soc/intel/broadwell/smi.c @@ -32,11 +32,11 @@ void smm_southbridge_clear_state(void) clear_gpe_status(); } -void smm_southbridge_enable_smi(void) +static void smm_southbridge_enable(uint16_t pm1_events) { printk(BIOS_DEBUG, "Enabling SMIs.\n"); /* Configure events */ - enable_pm1(PWRBTN_EN | GBL_EN); + enable_pm1(pm1_events); disable_gpe(PME_B0_EN); /* Enable SMI generation: @@ -50,6 +50,11 @@ void smm_southbridge_enable_smi(void) enable_smi(APMC_EN | SLP_SMI_EN | GBL_SMI_EN | EOS); } +void global_smi_enable(void) +{ + smm_southbridge_enable(PWRBTN_EN | GBL_EN); +} + static void __unused southbridge_trigger_smi(void) { /** diff --git a/src/soc/intel/denverton_ns/cpu.c b/src/soc/intel/denverton_ns/cpu.c index 325a4a75e6..9764a3edbb 100644 --- a/src/soc/intel/denverton_ns/cpu.c +++ b/src/soc/intel/denverton_ns/cpu.c @@ -246,7 +246,7 @@ static void post_mp_init(void) * Now that all APs have been relocated as well as the BSP let SMIs * start flowing. */ - smm_southbridge_enable_smi(); + global_smi_enable(); } /* diff --git a/src/soc/intel/denverton_ns/smm.c b/src/soc/intel/denverton_ns/smm.c index 6ef06d483a..b4970adf9d 100644 --- a/src/soc/intel/denverton_ns/smm.c +++ b/src/soc/intel/denverton_ns/smm.c @@ -33,12 +33,12 @@ void smm_southbridge_clear_state(void) clear_pmc_status(); } -void smm_southbridge_enable_smi(void) +static void smm_southbridge_enable(uint16_t pm1_events) { printk(BIOS_DEBUG, "Enabling SMIs.\n"); /* Configure events Disable PCIe wake. */ - enable_pm1(PWRBTN_EN | GBL_EN | PCIEXPWAK_DIS); + enable_pm1(pm1_events | PCIEXPWAK_DIS); disable_gpe(PME_B0_EN); /* Enable SMI generation: @@ -52,6 +52,11 @@ void smm_southbridge_enable_smi(void) enable_smi(APMC_EN | SLP_SMI_EN | GBL_SMI_EN | EOS); } +void global_smi_enable(void) +{ + smm_southbridge_enable(PWRBTN_EN | GBL_EN); +} + void smm_setup_structures(void *gnvs, void *tcg, void *smi1) { /* diff --git a/src/soc/intel/xeon_sp/cpx/cpu.c b/src/soc/intel/xeon_sp/cpx/cpu.c index e2724cef90..386401f7e3 100644 --- a/src/soc/intel/xeon_sp/cpx/cpu.c +++ b/src/soc/intel/xeon_sp/cpx/cpu.c @@ -152,6 +152,12 @@ static void post_mp_init(void) { /* Set Max Ratio */ set_max_turbo_freq(); + + /* + * TODO: Now that all APs have been relocated as well as the BSP let SMIs + * start flowing. + */ + if (0) global_smi_enable(); } static const struct mp_ops mp_ops = { diff --git a/src/soc/intel/xeon_sp/skx/cpu.c b/src/soc/intel/xeon_sp/skx/cpu.c index a931094669..f97c37da08 100644 --- a/src/soc/intel/xeon_sp/skx/cpu.c +++ b/src/soc/intel/xeon_sp/skx/cpu.c @@ -199,6 +199,7 @@ static void post_mp_init(void) * TODO: Now that all APs have been relocated as well as the BSP let SMIs * start flowing. */ + if (0) global_smi_enable(); } /* |