diff options
author | Raul E Rangel <rrangel@chromium.org> | 2021-10-08 13:10:38 -0600 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2021-10-18 12:36:30 +0000 |
commit | c2c38f5fdea0579d1a64ce63c00737bbe3ca5759 (patch) | |
tree | 0372610e9b701006bb6c9935b474bd8671f97e17 /src/cpu | |
parent | 12ae850dfc10709f8c3bcf92ab7ba1397eb4ae43 (diff) |
arch/x86,cpu/x86,lib/thread: Remove usage of cpu_info from lib/thread
We only ever start and execute threads on the BSP. By explicitly
checking to see if the CPU is the BSP we can remove the dependency on
cpu_info. With this change we can in theory enable threads in all
stages.
BUG=b:194391185, b:179699789
TEST=Boot guybrush to OS and verify coop multithreading still works
Suggested-by: Julius Werner <jwerner@chromium.org>
Signed-off-by: Raul E Rangel <rrangel@chromium.org>
Change-Id: Iea4622d52c36d529e100b7ea55f32c334acfdf3e
Reviewed-on: https://review.coreboot.org/c/coreboot/+/58199
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/cpu')
-rw-r--r-- | src/cpu/x86/cpu_info.S.inc | 3 | ||||
-rw-r--r-- | src/cpu/x86/lapic/lapic_cpu_init.c | 1 | ||||
-rw-r--r-- | src/cpu/x86/mp_init.c | 1 |
3 files changed, 0 insertions, 5 deletions
diff --git a/src/cpu/x86/cpu_info.S.inc b/src/cpu/x86/cpu_info.S.inc index dffd1bc346..fc3e26d178 100644 --- a/src/cpu/x86/cpu_info.S.inc +++ b/src/cpu/x86/cpu_info.S.inc @@ -2,9 +2,6 @@ /* Push struct cpu_info */ .macro push_cpu_info index=$0 -#if CONFIG(COOP_MULTITASKING) - push $0 /* *thread */ -#endif push \index /* index */ push $0 /* *cpu */ .endm diff --git a/src/cpu/x86/lapic/lapic_cpu_init.c b/src/cpu/x86/lapic/lapic_cpu_init.c index bc0f44fd90..c35888a7fd 100644 --- a/src/cpu/x86/lapic/lapic_cpu_init.c +++ b/src/cpu/x86/lapic/lapic_cpu_init.c @@ -253,7 +253,6 @@ static int start_cpu(struct device *cpu) info->index = index; info->cpu = cpu; cpu_add_map_entry(info->index); - thread_init_cpu_info_non_bsp(info); /* Advertise the new stack and index to start_cpu */ secondary_stack = stack_top; diff --git a/src/cpu/x86/mp_init.c b/src/cpu/x86/mp_init.c index 123b2b5eb5..497ed3cfc5 100644 --- a/src/cpu/x86/mp_init.c +++ b/src/cpu/x86/mp_init.c @@ -193,7 +193,6 @@ static void asmlinkage ap_init(unsigned int cpu) info->cpu = cpus_dev[cpu]; cpu_add_map_entry(info->index); - thread_init_cpu_info_non_bsp(info); /* Fix up APIC id with reality. */ info->cpu->path.apic.apic_id = lapicid(); |