On 7/3/2014 4:39 AM, Daniel Cederman wrote: > A secondary processor might miss changes done to the trap table > if the instruction cache is not flushed. Once interrupts are enabled > any other required cache flushes can be ordered via the cache > manager. > --- > c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c | 9 +++++++++ > cpukit/score/cpu/sparc/rtems/score/cpu.h | 4 ++++ > 2 files changed, 13 insertions(+) > > diff --git a/c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c > b/c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c > index 567eecc..9166ad5 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 ); > +} > diff --git a/cpukit/score/cpu/sparc/rtems/score/cpu.h > b/cpukit/score/cpu/sparc/rtems/score/cpu.h > index c010005..4a08441 100644 > --- a/cpukit/score/cpu/sparc/rtems/score/cpu.h > +++ b/cpukit/score/cpu/sparc/rtems/score/cpu.h > @@ -1203,6 +1203,10 @@ register struct Per_CPU_Control > *_SPARC_Per_CPU_current __asm__( "g6" ); > > void _CPU_SMP_Send_interrupt( uint32_t target_processor_index ); > > + void _BSP_Start_multitasking( Context_Control *heir ) > + RTEMS_COMPILER_NO_RETURN_ATTRIBUTE; > + #define _CPU_Start_multitasking _BSP_Start_multitasking > + I really don't like adding calls to anything BSP_xxx in score/cpu.
Can this be done in bsp_postdriver_hook() for the LEON3? > static inline void _CPU_SMP_Processor_event_broadcast( void ) > { > __asm__ volatile ( "" : : : "memory" ); -- Joel Sherrill, Ph.D. Director of Research & Development joel.sherr...@oarcorp.com On-Line Applications Research Ask me about RTEMS: a free RTOS Huntsville AL 35805 Support Available (256) 722-9985 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel