summaryrefslogtreecommitdiff
path: root/src/cpu/x86
diff options
context:
space:
mode:
authorRaul E Rangel <rrangel@chromium.org>2021-10-08 13:10:38 -0600
committerFelix Held <felix-coreboot@felixheld.de>2021-10-18 12:36:30 +0000
commitc2c38f5fdea0579d1a64ce63c00737bbe3ca5759 (patch)
tree0372610e9b701006bb6c9935b474bd8671f97e17 /src/cpu/x86
parent12ae850dfc10709f8c3bcf92ab7ba1397eb4ae43 (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/x86')
-rw-r--r--src/cpu/x86/cpu_info.S.inc3
-rw-r--r--src/cpu/x86/lapic/lapic_cpu_init.c1
-rw-r--r--src/cpu/x86/mp_init.c1
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();