Changeset 54f3476e in rtems


Ignore:
Timestamp:
07/03/14 09:18:55 (10 years ago)
Author:
Daniel Cederman <cederman@…>
Branches:
4.11, 5, master
Children:
bba83e5
Parents:
aed38189
git-author:
Daniel Cederman <cederman@…> (07/03/14 09:18:55)
git-committer:
Daniel Hellstrom <daniel@…> (08/22/14 11:10:59)
Message:

bsp/sparc: Flush icache before first time enabling interrupts

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.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c

    raed38189 r54f3476e  
    1616#include <bsp.h>
    1717#include <bsp/bootcard.h>
     18#include <cache_.h>
    1819#include <leon.h>
    1920#include <rtems/bspIo.h>
     
    8182  LEON3_IrqCtrl_Regs->force[target_processor_index] = 1 << LEON3_MP_IRQ;
    8283}
     84
     85void _BSP_Start_multitasking(
     86  Context_Control *heir
     87)
     88{
     89  _CPU_cache_invalidate_entire_instruction();
     90  _CPU_Context_Restart_self( heir );
     91}
  • cpukit/score/cpu/sparc/rtems/score/cpu.h

    raed38189 r54f3476e  
    12041204  void _CPU_SMP_Send_interrupt( uint32_t target_processor_index );
    12051205
     1206  void _BSP_Start_multitasking( Context_Control *heir )
     1207    RTEMS_COMPILER_NO_RETURN_ATTRIBUTE;
     1208  #define _CPU_Start_multitasking _BSP_Start_multitasking
     1209
    12061210  static inline void _CPU_SMP_Processor_event_broadcast( void )
    12071211  {
Note: See TracChangeset for help on using the changeset viewer.