Changeset ffbeb6f in rtems for c


Ignore:
Timestamp:
Jan 18, 2013, 8:42:49 AM (8 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
4.11, 5, master
Children:
bd39add
Parents:
bbed1866
git-author:
Sebastian Huber <sebastian.huber@…> (01/18/13 08:42:49)
git-committer:
Sebastian Huber <sebastian.huber@…> (05/31/13 13:20:32)
Message:

smp: Add PowerPC support

Location:
c/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • c/src/aclocal/enable-smp.m4

    rbbed1866 rffbeb6f  
    77[case "${enableval}" in
    88  yes) case "${RTEMS_CPU}" in
    9          sparc|i386) RTEMS_HAS_SMP=yes ;;
     9         powerpc|sparc|i386) RTEMS_HAS_SMP=yes ;;
    1010         *)          RTEMS_HAS_SMP=no ;;
    1111       esac
  • c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_async_normal.S

    rbbed1866 rffbeb6f  
    153153#endif
    154154
     155#ifndef RTEMS_SMP
    155156        /* Increment ISR nest level and thread dispatch disable level */
    156157        cmpwi   ISR_NEST_REGISTER, 0
     
    197198        stw     ISR_NEST_REGISTER, ISR_NEST_LEVEL@l(ISR_NEST_HADDR_REGISTER)
    198199        stw     DISPATCH_LEVEL_REGISTER, _Thread_Dispatch_disable_level@sdarel(r13)
     200#else /* RTEMS_SMP */
     201        /* ISR Enter */
     202        bl      _ISR_SMP_Enter
     203        cmpwi   r3, 0
     204
     205        /* Switch stack if necessary */
     206        mfspr   SCRATCH_0_REGISTER, SPRG1
     207        iselgt  r1, r1, SCRATCH_0_REGISTER
     208
     209        bl      bsp_interrupt_dispatch
     210
     211        /*
     212         * Switch back to original stack (FRAME_REGISTER == r1 if we are still
     213         * on the IRQ stack) and restore FRAME_REGISTER.
     214         */
     215        mr      r1, FRAME_REGISTER
     216        lwz     FRAME_REGISTER, FRAME_OFFSET(r1)
     217
     218        /* ISR Leave */
     219        bl      _ISR_SMP_Exit
     220        cmpwi   r3, 1
     221#endif /* RTEMS_SMP */
    199222
    200223        /* Call thread dispatcher if necessary */
Note: See TracChangeset for help on using the changeset viewer.