summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKinsey Moore <kinsey.moore@oarcorp.com>2024-02-12 08:30:58 -0600
committerJoel Sherrill <joel@rtems.org>2024-02-14 08:22:48 -0600
commit8d22b57969b9ade59e31d59fb39ad06f95934e5d (patch)
treec36a8579bded6c6d540663b3fabee76166914310
parentbsp/tms570: Fix console receive interrupts (diff)
downloadrtems-8d22b57969b9ade59e31d59fb39ad06f95934e5d.tar.bz2
i386: Restore SMP functionality
When the switch to waf occurred, the SMP support in i386 was left out causing it to accumulate a minor amount of cruft. This enables SMP for the i386 BSPs that support it and updates them for the API drift that has occurred since the change.
-rw-r--r--cpukit/score/cpu/i386/cpu_asm.S2
-rw-r--r--cpukit/score/cpu/i386/include/rtems/score/cpu.h5
-rw-r--r--spec/build/cpukit/optsmp.yml4
3 files changed, 11 insertions, 0 deletions
diff --git a/cpukit/score/cpu/i386/cpu_asm.S b/cpukit/score/cpu/i386/cpu_asm.S
index 6b114e94e1..bb5c096e72 100644
--- a/cpukit/score/cpu/i386/cpu_asm.S
+++ b/cpukit/score/cpu/i386/cpu_asm.S
@@ -67,11 +67,13 @@
.p2align 1
PUBLIC (_CPU_Context_switch)
+ PUBLIC (_CPU_Context_switch_no_return)
.set RUNCONTEXT_ARG, 4 /* save context argument */
.set HEIRCONTEXT_ARG, 8 /* restore context argument */
SYM (_CPU_Context_switch):
+SYM (_CPU_Context_switch_no_return):
movl RUNCONTEXT_ARG(esp),eax /* eax = running threads context */
GET_SELF_CPU_CONTROL edx /* edx has address for per_CPU information */
movl PER_CPU_ISR_DISPATCH_DISABLE(edx),ecx
diff --git a/cpukit/score/cpu/i386/include/rtems/score/cpu.h b/cpukit/score/cpu/i386/include/rtems/score/cpu.h
index 76ee238b6e..a12b0f2b92 100644
--- a/cpukit/score/cpu/i386/include/rtems/score/cpu.h
+++ b/cpukit/score/cpu/i386/include/rtems/score/cpu.h
@@ -572,6 +572,11 @@ void _CPU_Context_switch(
Context_Control *heir
);
+RTEMS_NO_RETURN void _CPU_Context_switch_no_return(
+ Context_Control *executing,
+ Context_Control *heir
+);
+
/*
* _CPU_Context_restore
*
diff --git a/spec/build/cpukit/optsmp.yml b/spec/build/cpukit/optsmp.yml
index 6e4ec30802..45d41299da 100644
--- a/spec/build/cpukit/optsmp.yml
+++ b/spec/build/cpukit/optsmp.yml
@@ -33,6 +33,10 @@ enabled-by:
- arm/xilinx_zynq_picozed
- arm/xilinx_zynq_pynq
- arm/xilinx_zynq_microzed
+- i386/pc386
+- i386/pc486
+- i386/pc586
+- i386/pc686
- powerpc/qoriq_e500
- powerpc/qoriq_e6500_32
- powerpc/qoriq_e6500_64