Changeset 3ce66aa in rtems


Ignore:
Timestamp:
Nov 19, 2012, 8:02:12 AM (7 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
4.11, master
Children:
2e80662
Parents:
1c479be4
git-author:
Sebastian Huber <sebastian.huber@…> (11/19/12 08:02:12)
git-committer:
Sebastian Huber <sebastian.huber@…> (12/03/12 12:17:11)
Message:

bsp/mpc55xx: Set PPC_EXC_CONFIG_USE_FIXED_HANDLER

Location:
c/src/lib
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/powerpc/mpc55xxevb/Makefile.am

    r1c479be4 r3ce66aa  
    7070libbsp_a_SOURCES += ../shared/src/memcpy.c
    7171libbsp_a_SOURCES += ../shared/src/tictac.c
     72libbsp_a_SOURCES += ../shared/src/ppc-exc-handler-table.c
    7273libbsp_a_SOURCES += startup/bspstart.c
    7374libbsp_a_SOURCES += startup/bspworkareainit.c
  • c/src/lib/libbsp/powerpc/mpc55xxevb/configure.ac

    r1c479be4 r3ce66aa  
    3232RTEMS_BSPOPTS_SET_INSTRUCTION_CACHE_ENABLED([*],[1])
    3333RTEMS_BSPOPTS_HELP_INSTRUCTION_CACHE_ENABLED
     34
     35RTEMS_BSPOPTS_SET([PPC_EXC_CONFIG_USE_FIXED_HANDLER],[*],[1])
     36RTEMS_BSPOPTS_HELP([PPC_EXC_CONFIG_USE_FIXED_HANDLER],
     37[use fixed high-level exception handler])
    3438
    3539RTEMS_BSPOPTS_SET([BSP_INTERRUPT_HANDLER_TABLE_SIZE],[mpc5643l*],[127])
  • c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c

    r1c479be4 r3ce66aa  
    109109                rtems_configuration_get_interrupt_stack_size()
    110110        );
    111         ppc_exc_set_handler(ASM_ALIGN_VECTOR, ppc_exc_alignment_handler);
     111        #ifndef PPC_EXC_CONFIG_USE_FIXED_HANDLER
     112                ppc_exc_set_handler(ASM_ALIGN_VECTOR, ppc_exc_alignment_handler);
     113        #endif
    112114
    113115        /* Initialize interrupts */
  • c/src/lib/libbsp/powerpc/mpc55xxevb/startup/exc-vector-base.S

    r1c479be4 r3ce66aa  
    6060        b       ppc_exc_wrap_nopush_std
    6161        stwu    r1, -PPC_EXC_MINIMAL_FRAME_SIZE(r1)
     62#ifndef PPC_EXC_CONFIG_USE_FIXED_HANDLER
    6263        stw     r4, PPC_EXC_VECTOR_PROLOGUE_OFFSET(r1)
    6364        li      r4, -32763
     65#endif
    6466        b       ppc_exc_wrap_async_normal
     67#ifdef PPC_EXC_CONFIG_USE_FIXED_HANDLER
     68        nop
     69        nop
     70#endif
    6571        stwu    r1, -EXC_GENERIC_SIZE(r1)
    6672        stw     r4, GPR4_OFFSET(r1)
     
    8490        b       ppc_exc_wrap_nopush_std
    8591        stwu    r1, -PPC_EXC_MINIMAL_FRAME_SIZE(r1)
     92#ifndef PPC_EXC_CONFIG_USE_FIXED_HANDLER
    8693        stw     r4, PPC_EXC_VECTOR_PROLOGUE_OFFSET(r1)
    8794        li      r4, -32752
     95#endif
    8896        b       ppc_exc_wrap_async_normal
     97#ifdef PPC_EXC_CONFIG_USE_FIXED_HANDLER
     98        nop
     99        nop
     100#endif
    89101        stwu    r1, -PPC_EXC_MINIMAL_FRAME_SIZE(r1)
     102#ifndef PPC_EXC_CONFIG_USE_FIXED_HANDLER
    90103        stw     r4, PPC_EXC_VECTOR_PROLOGUE_OFFSET(r1)
    91104        li      r4, -32749
     105#endif
    92106        b       ppc_exc_wrap_async_normal
     107#ifdef PPC_EXC_CONFIG_USE_FIXED_HANDLER
     108        nop
     109        nop
     110#endif
    93111        stw     r1, ppc_exc_lock_crit@sdarel(r13)
    94112        stw     r4, ppc_exc_vector_register_crit@sdarel(r13)
  • c/src/lib/libcpu/powerpc/mpc55xx/irq/irq.c

    r1c479be4 r3ce66aa  
    88
    99/*
    10  * Copyright (c) 2008
    11  * Embedded Brains GmbH
    12  * Obere Lagerstr. 30
    13  * D-82178 Puchheim
    14  * Germany
    15  * rtems@embedded-brains.de
     10 * Copyright (c) 2008-2012 embedded brains GmbH.  All rights reserved.
     11 *
     12 *  embedded brains GmbH
     13 *  Obere Lagerstr. 30
     14 *  82178 Puchheim
     15 *  Germany
     16 *  <rtems@embedded-brains.de>
    1617 *
    1718 * The license and distribution terms for this file may be
     
    113114}
    114115
    115 /**
    116  * @brief External exception handler.
    117  */
    118 static int mpc55xx_external_exception_handler( BSP_Exception_frame *frame, unsigned exception_number)
     116static void mpc55xx_interrupt_dispatch(void)
    119117{
    120118        /* Acknowlege interrupt request */
     
    132130        /* End of interrupt */
    133131        INTC.EOIR.R = 1;
     132}
     133
     134#ifndef PPC_EXC_CONFIG_USE_FIXED_HANDLER
     135
     136/**
     137 * @brief External exception handler.
     138 */
     139static int mpc55xx_external_exception_handler( BSP_Exception_frame *frame, unsigned exception_number)
     140{
     141        mpc55xx_interrupt_dispatch();
    134142
    135143        return 0;
    136144}
     145
     146#else /* PPC_EXC_CONFIG_USE_FIXED_HANDLER */
     147
     148void bsp_interrupt_dispatch(void)
     149{
     150        mpc55xx_interrupt_dispatch();
     151}
     152
     153#endif /* PPC_EXC_CONFIG_USE_FIXED_HANDLER */
    137154
    138155rtems_status_code bsp_interrupt_facility_initialize(void)
     
    140157        rtems_vector_number vector;
    141158
     159#ifndef PPC_EXC_CONFIG_USE_FIXED_HANDLER
    142160        /* Install exception handler */
    143161        if (ppc_exc_set_handler( ASM_EXT_VECTOR, mpc55xx_external_exception_handler)) {
    144162                return RTEMS_IO_ERROR;
    145163        }
     164#endif
    146165
    147166        /* Initialize interrupt controller */
Note: See TracChangeset for help on using the changeset viewer.