summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c')
-rw-r--r--c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c b/c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c
index 567eecc819..9166ad5630 100644
--- a/c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c
+++ b/c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c
@@ -15,6 +15,7 @@
#include <bsp.h>
#include <bsp/bootcard.h>
+#include <cache_.h>
#include <leon.h>
#include <rtems/bspIo.h>
#include <rtems/score/smpimpl.h>
@@ -80,3 +81,11 @@ void _CPU_SMP_Send_interrupt(uint32_t target_processor_index)
/* send interrupt to destination CPU */
LEON3_IrqCtrl_Regs->force[target_processor_index] = 1 << LEON3_MP_IRQ;
}
+
+void _BSP_Start_multitasking(
+ Context_Control *heir
+)
+{
+ _CPU_cache_invalidate_entire_instruction();
+ _CPU_Context_Restart_self( heir );
+}