cpu/x86: Drop Kconfig PARALLEL_CPU_INIT

Change-Id: Ibe2c24228045cbf1ed2a6b0cb0a67848cbf03019
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/55203
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Kyösti Mälkki 2021-05-29 22:06:06 +03:00
parent 7d8bf58581
commit 75363a93f1
3 changed files with 9 additions and 14 deletions

View File

@ -6,9 +6,7 @@
#include <option.h> #include <option.h>
#include <smp/spinlock.h> #include <smp/spinlock.h>
#if CONFIG(PARALLEL_CPU_INIT) /* Intel hyper-threading requires serialized CPU init. */
#error Intel hyper-threading requires serialized CPU init
#endif
static int first_time = 1; static int first_time = 1;
static int disable_siblings = !CONFIG(LOGICAL_CPUS); static int disable_siblings = !CONFIG(LOGICAL_CPUS);

View File

@ -1,8 +1,3 @@
# TODO These two options look too similar
config PARALLEL_CPU_INIT
bool
default n
config PARALLEL_MP config PARALLEL_MP
def_bool y def_bool y
depends on !LEGACY_SMP_INIT depends on !LEGACY_SMP_INIT

View File

@ -21,6 +21,8 @@
#include <stdlib.h> #include <stdlib.h>
#include <thread.h> #include <thread.h>
const int parallel_cpu_init = false;
/* This is a lot more paranoid now, since Linux can NOT handle /* This is a lot more paranoid now, since Linux can NOT handle
* being told there is a CPU when none exists. So any errors * being told there is a CPU when none exists. So any errors
* will return 0, meaning no CPU. * will return 0, meaning no CPU.
@ -390,7 +392,7 @@ asmlinkage void secondary_cpu_init(unsigned int index)
{ {
atomic_inc(&active_cpus); atomic_inc(&active_cpus);
if (!CONFIG(PARALLEL_CPU_INIT)) if (!parallel_cpu_init)
spin_lock(&start_cpu_lock); spin_lock(&start_cpu_lock);
#ifdef __SSE3__ #ifdef __SSE3__
@ -405,7 +407,7 @@ asmlinkage void secondary_cpu_init(unsigned int index)
#endif #endif
cpu_initialize(index); cpu_initialize(index);
if (!CONFIG(PARALLEL_CPU_INIT)) if (!parallel_cpu_init)
spin_unlock(&start_cpu_lock); spin_unlock(&start_cpu_lock);
atomic_dec(&active_cpus); atomic_dec(&active_cpus);
@ -422,7 +424,7 @@ static void start_other_cpus(struct bus *cpu_bus, struct device *bsp_cpu)
if (cpu->path.type != DEVICE_PATH_APIC) if (cpu->path.type != DEVICE_PATH_APIC)
continue; continue;
if (CONFIG(PARALLEL_CPU_INIT) && (cpu == bsp_cpu)) if (parallel_cpu_init && (cpu == bsp_cpu))
continue; continue;
if (!cpu->enabled) if (!cpu->enabled)
@ -436,7 +438,7 @@ static void start_other_cpus(struct bus *cpu_bus, struct device *bsp_cpu)
printk(BIOS_ERR, "CPU 0x%02x would not start!\n", printk(BIOS_ERR, "CPU 0x%02x would not start!\n",
cpu->path.apic.apic_id); cpu->path.apic.apic_id);
if (!CONFIG(PARALLEL_CPU_INIT)) if (!parallel_cpu_init)
udelay(10); udelay(10);
} }
@ -541,13 +543,13 @@ void initialize_cpus(struct bus *cpu_bus)
smm_init(); smm_init();
/* start all aps at first, so we can init ECC all together */ /* start all aps at first, so we can init ECC all together */
if (is_smp_boot() && CONFIG(PARALLEL_CPU_INIT)) if (is_smp_boot() && parallel_cpu_init)
start_other_cpus(cpu_bus, info->cpu); start_other_cpus(cpu_bus, info->cpu);
/* Initialize the bootstrap processor */ /* Initialize the bootstrap processor */
cpu_initialize(0); cpu_initialize(0);
if (is_smp_boot() && !CONFIG(PARALLEL_CPU_INIT)) if (is_smp_boot() && !parallel_cpu_init)
start_other_cpus(cpu_bus, info->cpu); start_other_cpus(cpu_bus, info->cpu);
/* Now wait the rest of the cpus stop*/ /* Now wait the rest of the cpus stop*/