Changeset 5018894e in rtems


Ignore:
Timestamp:
Nov 20, 2017, 6:45:15 AM (4 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
5, master
Children:
c597fb1
Parents:
3d374d9
git-author:
Sebastian Huber <sebastian.huber@…> (11/20/17 06:45:15)
git-committer:
Sebastian Huber <sebastian.huber@…> (11/20/17 06:53:09)
Message:

bsps/powerpc: Fix PPC_EXC_CONFIG_USE_FIXED_HANDLER

For the SPE support we must store the upper half of r3 as well.

Update #3085.

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/powerpc/qoriq/start/start.S

    r3d374d9 r5018894e  
    380380        /* External input */
    381381        PPC_REG_STORE_UPDATE    r1, -PPC_EXC_INTERRUPT_FRAME_SIZE(r1)
    382         PPC_REG_STORE   r3, GPR3_OFFSET(r1)
     382        PPC_REG_STORE   r3, PPC_EXC_GPR3_PROLOGUE_OFFSET(r1)
    383383        li      r3, 4
    384384        b       ppc_exc_interrupt
     
    421421#ifdef QORIQ_IS_HYPERVISOR_GUEST
    422422        PPC_REG_STORE_UPDATE    r1, -PPC_EXC_INTERRUPT_FRAME_SIZE(r1)
    423 #else
    424         PPC_REG_STORE_UPDATE    r1, -EXC_GENERIC_SIZE(r1)
    425 #endif
    426         PPC_REG_STORE   r3, GPR3_OFFSET(r1)
     423        PPC_REG_STORE   r3, PPC_EXC_GPR3_PROLOGUE_OFFSET(r1)
    427424        li      r3, 10
    428 #ifdef QORIQ_IS_HYPERVISOR_GUEST
    429425        b       ppc_exc_interrupt
    430426#else
     427        PPC_REG_STORE_UPDATE    r1, -EXC_GENERIC_SIZE(r1)
     428        PPC_REG_STORE   r3, GPR3_OFFSET(r1)
     429        li      r3, 10
    431430        b       ppc_exc_fatal_normal
    432431#endif
     
    492491#if defined(QORIQ_IS_HYPERVISOR_GUEST) && defined(RTEMS_SMP)
    493492        PPC_REG_STORE_UPDATE    r1, -PPC_EXC_INTERRUPT_FRAME_SIZE(r1)
    494 #else
    495         PPC_REG_STORE_UPDATE    r1, -EXC_GENERIC_SIZE(r1)
    496 #endif
    497         PPC_REG_STORE   r3, GPR3_OFFSET(r1)
     493        PPC_REG_STORE   r3, PPC_EXC_GPR3_PROLOGUE_OFFSET(r1)
    498494        li      r3, 36
    499 #if defined(QORIQ_IS_HYPERVISOR_GUEST) && defined(RTEMS_SMP)
    500495        b       ppc_exc_interrupt
    501496#else
     497        PPC_REG_STORE_UPDATE    r1, -EXC_GENERIC_SIZE(r1)
     498        PPC_REG_STORE   r3, GPR3_OFFSET(r1)
     499        li      r3, 36
    502500        b       ppc_exc_fatal_normal
    503501#endif
  • c/src/lib/libbsp/powerpc/t32mppc/start/start.S

    r3d374d9 r5018894e  
    148148        /* Decrementer */
    149149        PPC_REG_STORE_UPDATE    r1, -PPC_EXC_INTERRUPT_FRAME_SIZE(r1)
    150         PPC_REG_STORE   r3, GPR3_OFFSET(r1)
     150        PPC_REG_STORE   r3, PPC_EXC_GPR3_PROLOGUE_OFFSET(r1)
    151151        li      r3, 10
    152152        b       ppc_exc_interrupt
  • c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_async_normal.S

    r3d374d9 r5018894e  
    8989        mtmsr   FRAME_REGISTER
    9090        isync
     91
     92        /*
     93         * Save high order part of SCRATCH_1_REGISTER here.  The low order part
     94         * was saved in the minimal prologue.
     95         */
     96        evmergehi       SCRATCH_1_REGISTER, SCRATCH_1_REGISTER, FRAME_REGISTER
     97        PPC_REG_STORE   FRAME_REGISTER, GPR3_OFFSET(r1)
    9198#endif
    9299
  • cpukit/score/cpu/powerpc/rtems/score/cpuimpl.h

    r3d374d9 r5018894e  
    4343  #define PPC_EXC_GPR_OFFSET(gpr) \
    4444    ((gpr) * PPC_GPR_SIZE + PPC_EXC_INTERRUPT_FRAME_OFFSET + PPC_REG_SIZE)
    45   #define PPC_EXC_VECTOR_PROLOGUE_OFFSET PPC_EXC_GPR_OFFSET(4)
     45  #define PPC_EXC_GPR3_PROLOGUE_OFFSET PPC_EXC_GPR_OFFSET(3)
    4646  #if defined(PPC_MULTILIB_ALTIVEC) && defined(PPC_MULTILIB_FPU)
    4747    #define PPC_EXC_VRSAVE_OFFSET PPC_EXC_GPR_OFFSET(33)
     
    8383  #define PPC_EXC_ACC_OFFSET 48
    8484  #define PPC_EXC_GPR_OFFSET(gpr) ((gpr) * PPC_GPR_SIZE + 56)
    85   #define PPC_EXC_VECTOR_PROLOGUE_OFFSET (PPC_EXC_GPR_OFFSET(4) + 4)
     85  #define PPC_EXC_GPR3_PROLOGUE_OFFSET (PPC_EXC_GPR_OFFSET(3) + 4)
    8686  #define CPU_INTERRUPT_FRAME_SIZE (160 + PPC_STACK_RED_ZONE_SIZE)
    8787  #define PPC_EXC_FRAME_SIZE 320
Note: See TracChangeset for help on using the changeset viewer.