Index: arch/m68knommu/config.in =================================================================== RCS file: /var/cvs/uClinux-2.4.x/arch/m68knommu/config.in,v retrieving revision 1.23 diff -a -c -r1.23 config.in *** arch/m68knommu/config.in 2002/03/07 14:18:44 1.23 --- arch/m68knommu/config.in 2002/03/19 20:12:31 *************** *** 85,90 **** --- 85,96 ---- comment 'Platform' + if [ "$CONFIG_M68328" = "y" -o \ + "$CONFIG_M68EZ328" = "y" -o \ + "$CONFIG_M68VZ328" = "y" ]; then + bool 'Simulate vectorized exceptions (debugging user apps on 68000)' CONFIG_PSEUDO_EXCEPTION_VECTOR + fi + if [ "$CONFIG_M68328" = "y" ]; then bool 'Pilot 1000/5000, PalmPilot Personal/Pro, or PalmIII support' CONFIG_PILOT3 if [ "$CONFIG_PILOT3" = "y" ]; then Index: arch/m68knommu/platform/68328/entry.S =================================================================== RCS file: /var/cvs/uClinux-2.4.x/arch/m68knommu/platform/68328/entry.S,v retrieving revision 1.3 diff -a -c -r1.3 entry.S *** arch/m68knommu/platform/68328/entry.S 2001/07/07 17:03:51 1.3 --- arch/m68knommu/platform/68328/entry.S 2002/03/19 20:12:31 *************** *** 45,50 **** --- 45,55 ---- moveb IMMED '\n',0xfffff907 .globl SYMBOL_NAME(system_call), SYMBOL_NAME(buserr), SYMBOL_NAME(trap) + .globl SYMBOL_NAME(exception3), SYMBOL_NAME(exception4), SYMBOL_NAME(exception5) + .globl SYMBOL_NAME(exception6), SYMBOL_NAME(exception7), SYMBOL_NAME(exception8) + .globl SYMBOL_NAME(exception9), SYMBOL_NAME(exception10), SYMBOL_NAME(exception12) + .globl SYMBOL_NAME(exception14), SYMBOL_NAME(exception15) + .globl SYMBOL_NAME(trap1), SYMBOL_NAME(trap15) .globl SYMBOL_NAME(resume), SYMBOL_NAME(ret_from_exception) .globl SYMBOL_NAME(ret_from_signal) .globl SYMBOL_NAME(sys_call_table) *************** *** 56,70 **** .text ENTRY(buserr) ! SAVE_ALL_INT GET_CURRENT(%d0) movel %sp,%sp@- /* stack frame pointer argument*/ bsrw SYMBOL_NAME(buserr_c) addql #4,%sp jra SYMBOL_NAME(ret_from_exception) ! ENTRY(trap) ! SAVE_ALL_INT GET_CURRENT(%d0) movel %sp,%sp@- /* stack frame pointer argument*/ bsrw SYMBOL_NAME(trap_c) --- 61,171 ---- .text ENTRY(buserr) ! SAVE_ALL_INT 8 GET_CURRENT(%d0) movel %sp,%sp@- /* stack frame pointer argument*/ bsrw SYMBOL_NAME(buserr_c) addql #4,%sp jra SYMBOL_NAME(ret_from_exception) ! ENTRY(exception3) ! SAVE_ALL_INT 12 ! GET_CURRENT(%d0) ! movel %sp,%sp@- /* stack frame pointer argument*/ ! bsrw SYMBOL_NAME(trap_c) ! addql #4,%sp ! jra SYMBOL_NAME(ret_from_exception) ! ! ENTRY(exception4) ! SAVE_ALL_INT 16 ! GET_CURRENT(%d0) ! movel %sp,%sp@- /* stack frame pointer argument*/ ! bsrw SYMBOL_NAME(trap_c) ! addql #4,%sp ! jra SYMBOL_NAME(ret_from_exception) ! ! ENTRY(exception5) ! SAVE_ALL_INT 20 ! GET_CURRENT(%d0) ! movel %sp,%sp@- /* stack frame pointer argument*/ ! bsrw SYMBOL_NAME(trap_c) ! addql #4,%sp ! jra SYMBOL_NAME(ret_from_exception) ! ! ENTRY(exception6) ! SAVE_ALL_INT 24 ! GET_CURRENT(%d0) ! movel %sp,%sp@- /* stack frame pointer argument*/ ! bsrw SYMBOL_NAME(trap_c) ! addql #4,%sp ! jra SYMBOL_NAME(ret_from_exception) ! ! ENTRY(exception7) ! SAVE_ALL_INT 28 ! GET_CURRENT(%d0) ! movel %sp,%sp@- /* stack frame pointer argument*/ ! bsrw SYMBOL_NAME(trap_c) ! addql #4,%sp ! jra SYMBOL_NAME(ret_from_exception) ! ! ENTRY(exception8) ! SAVE_ALL_INT 32 ! GET_CURRENT(%d0) ! movel %sp,%sp@- /* stack frame pointer argument*/ ! bsrw SYMBOL_NAME(trap_c) ! addql #4,%sp ! jra SYMBOL_NAME(ret_from_exception) ! ! ENTRY(exception9) ! SAVE_ALL_INT 36 ! GET_CURRENT(%d0) ! movel %sp,%sp@- /* stack frame pointer argument*/ ! bsrw SYMBOL_NAME(trap_c) ! addql #4,%sp ! jra SYMBOL_NAME(ret_from_exception) ! ! ENTRY(exception10) ! SAVE_ALL_INT 40 ! GET_CURRENT(%d0) ! movel %sp,%sp@- /* stack frame pointer argument*/ ! bsrw SYMBOL_NAME(trap_c) ! addql #4,%sp ! jra SYMBOL_NAME(ret_from_exception) ! ! ENTRY(exception11) ! SAVE_ALL_INT 44 ! GET_CURRENT(%d0) ! movel %sp,%sp@- /* stack frame pointer argument*/ ! bsrw SYMBOL_NAME(trap_c) ! addql #4,%sp ! jra SYMBOL_NAME(ret_from_exception) ! ! ENTRY(exception14) ! SAVE_ALL_INT 56 ! GET_CURRENT(%d0) ! movel %sp,%sp@- /* stack frame pointer argument*/ ! bsrw SYMBOL_NAME(trap_c) ! addql #4,%sp ! jra SYMBOL_NAME(ret_from_exception) ! ! ENTRY(exception15) ! SAVE_ALL_INT 60 ! GET_CURRENT(%d0) ! movel %sp,%sp@- /* stack frame pointer argument*/ ! bsrw SYMBOL_NAME(trap_c) ! addql #4,%sp ! jra SYMBOL_NAME(ret_from_exception) ! ! ENTRY(trap1) ! SAVE_ALL_INT 132 ! GET_CURRENT(%d0) ! movel %sp,%sp@- /* stack frame pointer argument*/ ! bsrw SYMBOL_NAME(trap_c) ! addql #4,%sp ! jra SYMBOL_NAME(ret_from_exception) ! ! ENTRY(trap15) ! SAVE_ALL_INT 188 GET_CURRENT(%d0) movel %sp,%sp@- /* stack frame pointer argument*/ bsrw SYMBOL_NAME(trap_c) *************** *** 124,130 **** jra SYMBOL_NAME(ret_from_exception) ENTRY(system_call) ! SAVE_ALL_SYS GET_CURRENT(%d1) /* save top of frame*/ --- 225,231 ---- jra SYMBOL_NAME(ret_from_exception) ENTRY(system_call) ! SAVE_ALL_SYS 128 GET_CURRENT(%d1) /* save top of frame*/ *************** *** 195,208 **** ** This is the main interrupt handler, responsible for calling process_int() */ SYMBOL_NAME_LABEL(inthandler1) ! SAVE_ALL_INT GET_CURRENT(%d0) addql #1,SYMBOL_NAME(irq_stat)+CPUSTAT_LOCAL_IRQ_COUNT - /* put exception # in d0*/ - /* bfextu %sp@(PT_VECTOR){#4,#10},%d0 */ - movew %sp@(PT_VECTOR), %d0 - and #0x3ff, %d0 - movel %sp,%sp@- movel #65,%sp@- /* put vector # on stack*/ jbsr SYMBOL_NAME(process_int)/* process the IRQ*/ --- 296,304 ---- ** This is the main interrupt handler, responsible for calling process_int() */ SYMBOL_NAME_LABEL(inthandler1) ! SAVE_ALL_INT 260 GET_CURRENT(%d0) addql #1,SYMBOL_NAME(irq_stat)+CPUSTAT_LOCAL_IRQ_COUNT movel %sp,%sp@- movel #65,%sp@- /* put vector # on stack*/ jbsr SYMBOL_NAME(process_int)/* process the IRQ*/ *************** *** 210,223 **** bra ret_from_interrupt SYMBOL_NAME_LABEL(inthandler2) ! SAVE_ALL_INT GET_CURRENT(%d0) addql #1,SYMBOL_NAME(irq_stat)+CPUSTAT_LOCAL_IRQ_COUNT - /* put exception # in d0*/ - /* bfextu %sp@(PT_VECTOR){#4,#10},%d0 */ - movew %sp@(PT_VECTOR), %d0 - and #0x3ff, %d0 - movel %sp,%sp@- movel #66,%sp@- /* put vector # on stack*/ jbsr SYMBOL_NAME(process_int)/* process the IRQ*/ --- 306,314 ---- bra ret_from_interrupt SYMBOL_NAME_LABEL(inthandler2) ! SAVE_ALL_INT 264 GET_CURRENT(%d0) addql #1,SYMBOL_NAME(irq_stat)+CPUSTAT_LOCAL_IRQ_COUNT movel %sp,%sp@- movel #66,%sp@- /* put vector # on stack*/ jbsr SYMBOL_NAME(process_int)/* process the IRQ*/ *************** *** 225,238 **** bra ret_from_interrupt SYMBOL_NAME_LABEL(inthandler3) ! SAVE_ALL_INT GET_CURRENT(%d0) addql #1,SYMBOL_NAME(irq_stat)+CPUSTAT_LOCAL_IRQ_COUNT - /* put exception # in d0*/ - /* bfextu %sp@(PT_VECTOR){#4,#10},%d0 */ - movew %sp@(PT_VECTOR), %d0 - and #0x3ff, %d0 - movel %sp,%sp@- movel #67,%sp@- /* put vector # on stack*/ jbsr SYMBOL_NAME(process_int)/* process the IRQ*/ --- 316,324 ---- bra ret_from_interrupt SYMBOL_NAME_LABEL(inthandler3) ! SAVE_ALL_INT 268 GET_CURRENT(%d0) addql #1,SYMBOL_NAME(irq_stat)+CPUSTAT_LOCAL_IRQ_COUNT movel %sp,%sp@- movel #67,%sp@- /* put vector # on stack*/ jbsr SYMBOL_NAME(process_int)/* process the IRQ*/ *************** *** 240,253 **** bra ret_from_interrupt SYMBOL_NAME_LABEL(inthandler4) ! SAVE_ALL_INT GET_CURRENT(%d0) addql #1,SYMBOL_NAME(irq_stat)+CPUSTAT_LOCAL_IRQ_COUNT - /* put exception # in d0*/ - /* bfextu %sp@(PT_VECTOR){#4,#10},%d0 */ - movew %sp@(PT_VECTOR), %d0 - and #0x3ff, %d0 - movel %sp,%sp@- movel #68,%sp@- /* put vector # on stack*/ jbsr SYMBOL_NAME(process_int)/* process the IRQ*/ --- 326,334 ---- bra ret_from_interrupt SYMBOL_NAME_LABEL(inthandler4) ! SAVE_ALL_INT 272 GET_CURRENT(%d0) addql #1,SYMBOL_NAME(irq_stat)+CPUSTAT_LOCAL_IRQ_COUNT movel %sp,%sp@- movel #68,%sp@- /* put vector # on stack*/ jbsr SYMBOL_NAME(process_int)/* process the IRQ*/ *************** *** 255,268 **** bra ret_from_interrupt SYMBOL_NAME_LABEL(inthandler5) ! SAVE_ALL_INT GET_CURRENT(%d0) addql #1,SYMBOL_NAME(irq_stat)+CPUSTAT_LOCAL_IRQ_COUNT - /* put exception # in d0*/ - /* bfextu %sp@(PT_VECTOR){#4,#10},%d0 */ - movew %sp@(PT_VECTOR), %d0 - and #0x3ff, %d0 - movel %sp,%sp@- movel #69,%sp@- /* put vector # on stack*/ jbsr SYMBOL_NAME(process_int)/* process the IRQ*/ --- 336,344 ---- bra ret_from_interrupt SYMBOL_NAME_LABEL(inthandler5) ! SAVE_ALL_INT 276 GET_CURRENT(%d0) addql #1,SYMBOL_NAME(irq_stat)+CPUSTAT_LOCAL_IRQ_COUNT movel %sp,%sp@- movel #69,%sp@- /* put vector # on stack*/ jbsr SYMBOL_NAME(process_int)/* process the IRQ*/ *************** *** 270,283 **** bra ret_from_interrupt SYMBOL_NAME_LABEL(inthandler6) ! SAVE_ALL_INT GET_CURRENT(%d0) addql #1,SYMBOL_NAME(irq_stat)+CPUSTAT_LOCAL_IRQ_COUNT - /* put exception # in d0*/ - /* bfextu %sp@(PT_VECTOR){#4,#10},%d0 */ - movew %sp@(PT_VECTOR), %d0 - and #0x3ff, %d0 - movel %sp,%sp@- movel #70,%sp@- /* put vector # on stack*/ jbsr SYMBOL_NAME(process_int)/* process the IRQ*/ --- 346,354 ---- bra ret_from_interrupt SYMBOL_NAME_LABEL(inthandler6) ! SAVE_ALL_INT 280 GET_CURRENT(%d0) addql #1,SYMBOL_NAME(irq_stat)+CPUSTAT_LOCAL_IRQ_COUNT movel %sp,%sp@- movel #70,%sp@- /* put vector # on stack*/ jbsr SYMBOL_NAME(process_int)/* process the IRQ*/ *************** *** 285,304 **** bra ret_from_interrupt SYMBOL_NAME_LABEL(inthandler7) ! SAVE_ALL_INT GET_CURRENT(%d0) addql #1,SYMBOL_NAME(irq_stat)+CPUSTAT_LOCAL_IRQ_COUNT - /* put exception # in d0*/ - /* bfextu %sp@(PT_VECTOR){#4,#10},%d0 */ - movew %sp@(PT_VECTOR), %d0 - and #0x3ff, %d0 - movel %sp,%sp@- movel #71,%sp@- /* put vector # on stack*/ jbsr SYMBOL_NAME(process_int)/* process the IRQ*/ 3: addql #8,%sp /* pop parameters off stack*/ bra ret_from_interrupt SYMBOL_NAME_LABEL(inthandler8) SAVE_ALL_INT GET_CURRENT(%d0) --- 356,371 ---- bra ret_from_interrupt SYMBOL_NAME_LABEL(inthandler7) ! SAVE_ALL_INT 284 GET_CURRENT(%d0) addql #1,SYMBOL_NAME(irq_stat)+CPUSTAT_LOCAL_IRQ_COUNT movel %sp,%sp@- movel #71,%sp@- /* put vector # on stack*/ jbsr SYMBOL_NAME(process_int)/* process the IRQ*/ 3: addql #8,%sp /* pop parameters off stack*/ bra ret_from_interrupt + #if 0 SYMBOL_NAME_LABEL(inthandler8) SAVE_ALL_INT GET_CURRENT(%d0) *************** *** 373,378 **** --- 440,446 ---- jbsr SYMBOL_NAME(process_int)/* process the IRQ*/ 3: addql #8,%sp /* pop parameters off stack*/ bra ret_from_interrupt + #endif SYMBOL_NAME_LABEL(ret_from_interrupt) subql #1,SYMBOL_NAME(irq_stat)+CPUSTAT_LOCAL_IRQ_COUNT *************** *** 401,406 **** --- 469,475 ---- /* Handler for uninitialized and spurious interrupts */ + SYMBOL_NAME_LABEL(trap) SYMBOL_NAME_LABEL(bad_interrupt) addql #1,SYMBOL_NAME(num_spurious) rte Index: arch/m68knommu/platform/68328/ints.c =================================================================== RCS file: /var/cvs/uClinux-2.4.x/arch/m68knommu/platform/68328/ints.c,v retrieving revision 1.3 diff -a -c -r1.3 ints.c *** arch/m68knommu/platform/68328/ints.c 2001/05/23 06:49:05 1.3 --- arch/m68knommu/platform/68328/ints.c 2002/03/19 20:12:32 *************** *** 27,65 **** #define INTERNAL_IRQS (32) /* assembler routines */ - asmlinkage void system_call(void); asmlinkage void buserr(void); ! asmlinkage void trap(void); ! asmlinkage void trap3(void); ! asmlinkage void trap4(void); ! asmlinkage void trap5(void); ! asmlinkage void trap6(void); ! asmlinkage void trap7(void); ! asmlinkage void trap8(void); ! asmlinkage void trap9(void); ! asmlinkage void trap10(void); ! asmlinkage void trap11(void); ! asmlinkage void trap12(void); ! asmlinkage void trap13(void); ! asmlinkage void trap14(void); ! asmlinkage void trap15(void); ! asmlinkage void trap33(void); ! asmlinkage void trap34(void); ! asmlinkage void trap35(void); ! asmlinkage void trap36(void); ! asmlinkage void trap37(void); ! asmlinkage void trap38(void); ! asmlinkage void trap39(void); ! asmlinkage void trap40(void); ! asmlinkage void trap41(void); ! asmlinkage void trap42(void); ! asmlinkage void trap43(void); ! asmlinkage void trap44(void); ! asmlinkage void trap45(void); ! asmlinkage void trap46(void); ! asmlinkage void trap47(void); asmlinkage void bad_interrupt(void); - asmlinkage void inthandler(void); asmlinkage void inthandler1(void); asmlinkage void inthandler2(void); asmlinkage void inthandler3(void); --- 27,45 ---- #define INTERNAL_IRQS (32) /* assembler routines */ asmlinkage void buserr(void); ! asmlinkage void exception3(void); ! asmlinkage void exception4(void); ! asmlinkage void exception5(void); ! asmlinkage void exception6(void); ! asmlinkage void exception7(void); ! asmlinkage void exception8(void); ! asmlinkage void exception9(void); ! asmlinkage void exception10(void); ! asmlinkage void exception11(void); ! asmlinkage void exception14(void); ! asmlinkage void exception15(void); asmlinkage void bad_interrupt(void); asmlinkage void inthandler1(void); asmlinkage void inthandler2(void); asmlinkage void inthandler3(void); *************** *** 67,72 **** --- 47,55 ---- asmlinkage void inthandler5(void); asmlinkage void inthandler6(void); asmlinkage void inthandler7(void); + asmlinkage void system_call(void); + asmlinkage void trap1(void); + asmlinkage void trap15(void); extern e_vector *_ramvec; *************** *** 90,122 **** { int i; ! /* set up the vectors */ ! #if 0 ! _ramvec[2] = buserr; ! _ramvec[3] = trap3; ! _ramvec[4] = trap4; ! _ramvec[5] = trap5; ! _ramvec[6] = trap6; ! _ramvec[7] = trap7; ! _ramvec[8] = trap8; ! _ramvec[9] = trap9; ! _ramvec[10] = trap10; ! _ramvec[11] = trap11; ! _ramvec[12] = trap12; ! _ramvec[13] = trap13; ! _ramvec[14] = trap14; ! _ramvec[15] = trap15; ! #endif ! _ramvec[32] = system_call; ! ! _ramvec[64] = bad_interrupt; ! _ramvec[65] = inthandler1; ! _ramvec[66] = inthandler2; ! _ramvec[67] = inthandler3; ! _ramvec[68] = inthandler4; ! _ramvec[69] = inthandler5; ! _ramvec[70] = inthandler6; ! _ramvec[71] = inthandler7; IVR = 0x40; /* Set DragonBall IVR (interrupt base) to 64 */ --- 73,106 ---- { int i; ! /* set up the vectors */ ! for (i=2; i < 32; ++i) ! _ramvec[i] = bad_interrupt; ! ! _ramvec[2] = buserr; ! _ramvec[3] = exception3; ! _ramvec[4] = exception4; ! _ramvec[5] = exception5; ! _ramvec[6] = exception6; ! _ramvec[7] = exception7; ! _ramvec[8] = exception8; ! _ramvec[9] = exception9; ! _ramvec[10] = exception10; ! _ramvec[11] = exception11; ! _ramvec[14] = exception14; ! _ramvec[15] = exception15; ! _ramvec[32] = system_call; ! _ramvec[33] = trap1; ! _ramvec[47] = trap15; ! ! _ramvec[64] = bad_interrupt; ! _ramvec[65] = inthandler1; ! _ramvec[66] = inthandler2; ! _ramvec[67] = inthandler3; ! _ramvec[68] = inthandler4; ! _ramvec[69] = inthandler5; ! _ramvec[70] = inthandler6; ! _ramvec[71] = inthandler7; IVR = 0x40; /* Set DragonBall IVR (interrupt base) to 64 */ Index: arch/m68knommu/platform/68EZ328/ints.c =================================================================== RCS file: /var/cvs/uClinux-2.4.x/arch/m68knommu/platform/68EZ328/ints.c,v retrieving revision 1.2 diff -a -c -r1.2 ints.c *** arch/m68knommu/platform/68EZ328/ints.c 2001/06/21 02:03:01 1.2 --- arch/m68knommu/platform/68EZ328/ints.c 2002/03/19 20:12:32 *************** *** 26,64 **** #define INTERNAL_IRQS (32) /* assembler routines */ - asmlinkage void system_call(void); asmlinkage void buserr(void); ! asmlinkage void trap(void); ! asmlinkage void trap3(void); ! asmlinkage void trap4(void); ! asmlinkage void trap5(void); ! asmlinkage void trap6(void); ! asmlinkage void trap7(void); ! asmlinkage void trap8(void); ! asmlinkage void trap9(void); ! asmlinkage void trap10(void); ! asmlinkage void trap11(void); ! asmlinkage void trap12(void); ! asmlinkage void trap13(void); ! asmlinkage void trap14(void); ! asmlinkage void trap15(void); ! asmlinkage void trap33(void); ! asmlinkage void trap34(void); ! asmlinkage void trap35(void); ! asmlinkage void trap36(void); ! asmlinkage void trap37(void); ! asmlinkage void trap38(void); ! asmlinkage void trap39(void); ! asmlinkage void trap40(void); ! asmlinkage void trap41(void); ! asmlinkage void trap42(void); ! asmlinkage void trap43(void); ! asmlinkage void trap44(void); ! asmlinkage void trap45(void); ! asmlinkage void trap46(void); ! asmlinkage void trap47(void); asmlinkage void bad_interrupt(void); - asmlinkage void inthandler(void); asmlinkage void inthandler1(void); asmlinkage void inthandler2(void); asmlinkage void inthandler3(void); --- 26,44 ---- #define INTERNAL_IRQS (32) /* assembler routines */ asmlinkage void buserr(void); ! asmlinkage void exception3(void); ! asmlinkage void exception4(void); ! asmlinkage void exception5(void); ! asmlinkage void exception6(void); ! asmlinkage void exception7(void); ! asmlinkage void exception8(void); ! asmlinkage void exception9(void); ! asmlinkage void exception10(void); ! asmlinkage void exception11(void); ! asmlinkage void exception14(void); ! asmlinkage void exception15(void); asmlinkage void bad_interrupt(void); asmlinkage void inthandler1(void); asmlinkage void inthandler2(void); asmlinkage void inthandler3(void); *************** *** 66,71 **** --- 46,54 ---- asmlinkage void inthandler5(void); asmlinkage void inthandler6(void); asmlinkage void inthandler7(void); + asmlinkage void system_call(void); + asmlinkage void trap1(void); + asmlinkage void trap15(void); // extern void *_ramvec[]; extern e_vector *_ramvec; *************** *** 90,122 **** { int i; ! /* set up the vectors */ ! #if 0 ! _ramvec[2] = buserr; ! _ramvec[3] = trap3; ! _ramvec[4] = trap4; ! _ramvec[5] = trap5; ! _ramvec[6] = trap6; ! _ramvec[7] = trap7; ! _ramvec[8] = trap8; ! _ramvec[9] = trap9; ! _ramvec[10] = trap10; ! _ramvec[11] = trap11; ! _ramvec[12] = trap12; ! _ramvec[13] = trap13; ! _ramvec[14] = trap14; ! _ramvec[15] = trap15; ! #endif ! _ramvec[32] = system_call; ! ! _ramvec[64] = bad_interrupt; ! _ramvec[65] = inthandler1; ! _ramvec[66] = inthandler2; ! _ramvec[67] = inthandler3; ! _ramvec[68] = inthandler4; ! _ramvec[69] = inthandler5; ! _ramvec[70] = inthandler6; ! _ramvec[71] = inthandler7; IVR = 0x40; /* Set DragonBall IVR (interrupt base) to 64 */ --- 73,106 ---- { int i; ! /* set up the vectors */ ! for (i=2; i < 32; ++i) ! _ramvec[i] = bad_interrupt; ! ! _ramvec[2] = buserr; ! _ramvec[3] = exception3; ! _ramvec[4] = exception4; ! _ramvec[5] = exception5; ! _ramvec[6] = exception6; ! _ramvec[7] = exception7; ! _ramvec[8] = exception8; ! _ramvec[9] = exception9; ! _ramvec[10] = exception10; ! _ramvec[11] = exception11; ! _ramvec[14] = exception14; ! _ramvec[15] = exception15; ! _ramvec[32] = system_call; ! _ramvec[33] = trap1; ! _ramvec[47] = trap15; ! ! _ramvec[64] = bad_interrupt; ! _ramvec[65] = inthandler1; ! _ramvec[66] = inthandler2; ! _ramvec[67] = inthandler3; ! _ramvec[68] = inthandler4; ! _ramvec[69] = inthandler5; ! _ramvec[70] = inthandler6; ! _ramvec[71] = inthandler7; IVR = 0x40; /* Set DragonBall IVR (interrupt base) to 64 */ Index: arch/m68knommu/platform/68VZ328/de2/ints.c =================================================================== RCS file: /var/cvs/uClinux-2.4.x/arch/m68knommu/platform/68VZ328/de2/ints.c,v retrieving revision 1.1 diff -a -c -r1.1 ints.c *** arch/m68knommu/platform/68VZ328/de2/ints.c 2001/12/13 01:00:11 1.1 --- arch/m68knommu/platform/68VZ328/de2/ints.c 2002/03/19 20:12:32 *************** *** 26,64 **** #define INTERNAL_IRQS (32) /* assembler routines */ - asmlinkage void system_call(void); asmlinkage void buserr(void); ! asmlinkage void trap(void); ! asmlinkage void trap3(void); ! asmlinkage void trap4(void); ! asmlinkage void trap5(void); ! asmlinkage void trap6(void); ! asmlinkage void trap7(void); ! asmlinkage void trap8(void); ! asmlinkage void trap9(void); ! asmlinkage void trap10(void); ! asmlinkage void trap11(void); ! asmlinkage void trap12(void); ! asmlinkage void trap13(void); ! asmlinkage void trap14(void); ! asmlinkage void trap15(void); ! asmlinkage void trap33(void); ! asmlinkage void trap34(void); ! asmlinkage void trap35(void); ! asmlinkage void trap36(void); ! asmlinkage void trap37(void); ! asmlinkage void trap38(void); ! asmlinkage void trap39(void); ! asmlinkage void trap40(void); ! asmlinkage void trap41(void); ! asmlinkage void trap42(void); ! asmlinkage void trap43(void); ! asmlinkage void trap44(void); ! asmlinkage void trap45(void); ! asmlinkage void trap46(void); ! asmlinkage void trap47(void); asmlinkage void bad_interrupt(void); - asmlinkage void inthandler(void); asmlinkage void inthandler1(void); asmlinkage void inthandler2(void); asmlinkage void inthandler3(void); --- 26,44 ---- #define INTERNAL_IRQS (32) /* assembler routines */ asmlinkage void buserr(void); ! asmlinkage void exception3(void); ! asmlinkage void exception4(void); ! asmlinkage void exception5(void); ! asmlinkage void exception6(void); ! asmlinkage void exception7(void); ! asmlinkage void exception8(void); ! asmlinkage void exception9(void); ! asmlinkage void exception10(void); ! asmlinkage void exception11(void); ! asmlinkage void exception14(void); ! asmlinkage void exception15(void); asmlinkage void bad_interrupt(void); asmlinkage void inthandler1(void); asmlinkage void inthandler2(void); asmlinkage void inthandler3(void); *************** *** 66,71 **** --- 46,54 ---- asmlinkage void inthandler5(void); asmlinkage void inthandler6(void); asmlinkage void inthandler7(void); + asmlinkage void system_call(void); + asmlinkage void trap1(void); + asmlinkage void trap15(void); // extern void *_ramvec[]; extern e_vector *_ramvec; *************** *** 90,122 **** { int i; ! /* set up the vectors */ ! #if 0 ! _ramvec[2] = buserr; ! _ramvec[3] = trap3; ! _ramvec[4] = trap4; ! _ramvec[5] = trap5; ! _ramvec[6] = trap6; ! _ramvec[7] = trap7; ! _ramvec[8] = trap8; ! _ramvec[9] = trap9; ! _ramvec[10] = trap10; ! _ramvec[11] = trap11; ! _ramvec[12] = trap12; ! _ramvec[13] = trap13; ! _ramvec[14] = trap14; ! _ramvec[15] = trap15; ! #endif ! _ramvec[32] = system_call; ! ! _ramvec[64] = bad_interrupt; ! _ramvec[65] = inthandler1; ! _ramvec[66] = inthandler2; ! _ramvec[67] = inthandler3; ! _ramvec[68] = inthandler4; ! _ramvec[69] = inthandler5; ! _ramvec[70] = inthandler6; ! _ramvec[71] = inthandler7; IVR = 0x40; /* Set DragonBall IVR (interrupt base) to 64 */ --- 73,106 ---- { int i; ! /* set up the vectors */ ! for (i=2; i < 32; ++i) ! _ramvec[i] = bad_interrupt; ! ! _ramvec[2] = buserr; ! _ramvec[3] = exception3; ! _ramvec[4] = exception4; ! _ramvec[5] = exception5; ! _ramvec[6] = exception6; ! _ramvec[7] = exception7; ! _ramvec[8] = exception8; ! _ramvec[9] = exception9; ! _ramvec[10] = exception10; ! _ramvec[11] = exception11; ! _ramvec[14] = exception14; ! _ramvec[15] = exception15; ! _ramvec[32] = system_call; ! _ramvec[33] = trap1; ! _ramvec[47] = trap15; ! ! _ramvec[64] = bad_interrupt; ! _ramvec[65] = inthandler1; ! _ramvec[66] = inthandler2; ! _ramvec[67] = inthandler3; ! _ramvec[68] = inthandler4; ! _ramvec[69] = inthandler5; ! _ramvec[70] = inthandler6; ! _ramvec[71] = inthandler7; IVR = 0x40; /* Set DragonBall IVR (interrupt base) to 64 */ Index: arch/m68knommu/platform/68VZ328/ucdimm/ints.c =================================================================== RCS file: /var/cvs/uClinux-2.4.x/arch/m68knommu/platform/68VZ328/ucdimm/ints.c,v retrieving revision 1.1 diff -a -c -r1.1 ints.c *** arch/m68knommu/platform/68VZ328/ucdimm/ints.c 2001/12/13 01:00:11 1.1 --- arch/m68knommu/platform/68VZ328/ucdimm/ints.c 2002/03/19 20:12:32 *************** *** 26,64 **** #define INTERNAL_IRQS (32) /* assembler routines */ - asmlinkage void system_call(void); asmlinkage void buserr(void); ! asmlinkage void trap(void); ! asmlinkage void trap3(void); ! asmlinkage void trap4(void); ! asmlinkage void trap5(void); ! asmlinkage void trap6(void); ! asmlinkage void trap7(void); ! asmlinkage void trap8(void); ! asmlinkage void trap9(void); ! asmlinkage void trap10(void); ! asmlinkage void trap11(void); ! asmlinkage void trap12(void); ! asmlinkage void trap13(void); ! asmlinkage void trap14(void); ! asmlinkage void trap15(void); ! asmlinkage void trap33(void); ! asmlinkage void trap34(void); ! asmlinkage void trap35(void); ! asmlinkage void trap36(void); ! asmlinkage void trap37(void); ! asmlinkage void trap38(void); ! asmlinkage void trap39(void); ! asmlinkage void trap40(void); ! asmlinkage void trap41(void); ! asmlinkage void trap42(void); ! asmlinkage void trap43(void); ! asmlinkage void trap44(void); ! asmlinkage void trap45(void); ! asmlinkage void trap46(void); ! asmlinkage void trap47(void); asmlinkage void bad_interrupt(void); - asmlinkage void inthandler(void); asmlinkage void inthandler1(void); asmlinkage void inthandler2(void); asmlinkage void inthandler3(void); --- 26,44 ---- #define INTERNAL_IRQS (32) /* assembler routines */ asmlinkage void buserr(void); ! asmlinkage void exception3(void); ! asmlinkage void exception4(void); ! asmlinkage void exception5(void); ! asmlinkage void exception6(void); ! asmlinkage void exception7(void); ! asmlinkage void exception8(void); ! asmlinkage void exception9(void); ! asmlinkage void exception10(void); ! asmlinkage void exception11(void); ! asmlinkage void exception14(void); ! asmlinkage void exception15(void); asmlinkage void bad_interrupt(void); asmlinkage void inthandler1(void); asmlinkage void inthandler2(void); asmlinkage void inthandler3(void); *************** *** 66,71 **** --- 46,54 ---- asmlinkage void inthandler5(void); asmlinkage void inthandler6(void); asmlinkage void inthandler7(void); + asmlinkage void system_call(void); + asmlinkage void trap1(void); + asmlinkage void trap15(void); // extern void *_ramvec[]; extern e_vector *_ramvec; *************** *** 90,122 **** { int i; ! /* set up the vectors */ ! #if 0 ! _ramvec[2] = buserr; ! _ramvec[3] = trap3; ! _ramvec[4] = trap4; ! _ramvec[5] = trap5; ! _ramvec[6] = trap6; ! _ramvec[7] = trap7; ! _ramvec[8] = trap8; ! _ramvec[9] = trap9; ! _ramvec[10] = trap10; ! _ramvec[11] = trap11; ! _ramvec[12] = trap12; ! _ramvec[13] = trap13; ! _ramvec[14] = trap14; ! _ramvec[15] = trap15; ! #endif ! _ramvec[32] = system_call; ! ! _ramvec[64] = bad_interrupt; ! _ramvec[65] = inthandler1; ! _ramvec[66] = inthandler2; ! _ramvec[67] = inthandler3; ! _ramvec[68] = inthandler4; ! _ramvec[69] = inthandler5; ! _ramvec[70] = inthandler6; ! _ramvec[71] = inthandler7; IVR = 0x40; /* Set DragonBall IVR (interrupt base) to 64 */ --- 73,106 ---- { int i; ! /* set up the vectors */ ! for (i=2; i < 32; ++i) ! _ramvec[i] = bad_interrupt; ! ! _ramvec[2] = buserr; ! _ramvec[3] = exception3; ! _ramvec[4] = exception4; ! _ramvec[5] = exception5; ! _ramvec[6] = exception6; ! _ramvec[7] = exception7; ! _ramvec[8] = exception8; ! _ramvec[9] = exception9; ! _ramvec[10] = exception10; ! _ramvec[11] = exception11; ! _ramvec[14] = exception14; ! _ramvec[15] = exception15; ! _ramvec[32] = system_call; ! _ramvec[33] = trap1; ! _ramvec[47] = trap15; ! ! _ramvec[64] = bad_interrupt; ! _ramvec[65] = inthandler1; ! _ramvec[66] = inthandler2; ! _ramvec[67] = inthandler3; ! _ramvec[68] = inthandler4; ! _ramvec[69] = inthandler5; ! _ramvec[70] = inthandler6; ! _ramvec[71] = inthandler7; IVR = 0x40; /* Set DragonBall IVR (interrupt base) to 64 */ Index: include/asm-m68knommu/entry.h =================================================================== RCS file: /var/cvs/uClinux-2.4.x/include/asm-m68knommu/entry.h,v retrieving revision 1.3 diff -a -c -r1.3 entry.h *** include/asm-m68knommu/entry.h 2001/07/12 05:47:28 1.3 --- include/asm-m68knommu/entry.h 2002/03/19 20:12:37 *************** *** 72,78 **** * a -1 in the orig_d0 field signifies * that the stack frame is NOT for syscall */ ! .macro save_all_int oriw #0x0700,%sr /* disable interrupts */ clrl %sp@- /* stk_adj */ pea -1:w /* orig d0 */ --- 72,84 ---- * a -1 in the orig_d0 field signifies * that the stack frame is NOT for syscall */ ! .macro save_all_int VEC=0 ! #if defined(CONFIG_PSEUDO_EXCEPTION_VECTOR) ! movew %sp@(0),%sp@- /* add the pseudo vector on the stack */ ! movew %sp@(4),%sp@(2) ! movew %sp@(6),%sp@(4) ! movew #\VEC,%sp@(6) /* pseudo-vector number */ ! #endif oriw #0x0700,%sr /* disable interrupts */ clrl %sp@- /* stk_adj */ pea -1:w /* orig d0 */ *************** *** 80,86 **** moveml %d1-%d5/%a0-%a1/%curptr,%sp@- .endm ! .macro save_all_sys clrl %sp@- /* stk_adj */ movel %d0,%sp@- /* orig d0 */ movel %d0,%sp@- /* d0 */ --- 86,98 ---- moveml %d1-%d5/%a0-%a1/%curptr,%sp@- .endm ! .macro save_all_sys VEC=0 ! #if defined(CONFIG_PSEUDO_EXCEPTION_VECTOR) ! movew %sp@(0),%sp@- /* add the pseudo vector on the stack */ ! movew %sp@(4),%sp@(2) ! movew %sp@(6),%sp@(4) ! movew #\VEC,%sp@(6) /* pseudo-vector number */ ! #endif clrl %sp@- /* stk_adj */ movel %d0,%sp@- /* orig d0 */ movel %d0,%sp@- /* d0 */ *************** *** 92,97 **** --- 104,115 ---- movel %sp@+,%d0 addql #4,%sp /* orig d0 */ addl %sp@+,%sp /* stk adj */ + #if defined(CONFIG_PSEUDO_EXCEPTION_VECTOR) + movew %sp@(4),%sp@(6) /* adjust stack to remove pseudo vector */ + movew %sp@(2),%sp@(4) + movew %sp@(0),%sp@(2) + addql #2,%sp + #endif rte .endm *************** *** 129,141 **** #define PT_OFF_ORIG_D0 0x24 #define PT_OFF_FORMATVEC 0x32 #define PT_OFF_SR 0x2C #define SAVE_ALL_INT \ "clrl %%sp@-;" /* stk_adj */ \ "pea -1:w;" /* orig d0 = -1 */ \ "movel %%d0,%%sp@-;" /* d0 */ \ "moveml %%d1-%%d5/%%a0-%%a2,%%sp@-" - #if 0 // DAVIDM #define GET_CURRENT(tmp) \ "movel %%sp,"#tmp"\n\t" \ "andw #-"STR(KTHREAD_SIZE)","#tmp"\n\t" \ --- 147,159 ---- #define PT_OFF_ORIG_D0 0x24 #define PT_OFF_FORMATVEC 0x32 #define PT_OFF_SR 0x2C + #if 0 // DAVIDM #define SAVE_ALL_INT \ "clrl %%sp@-;" /* stk_adj */ \ "pea -1:w;" /* orig d0 = -1 */ \ "movel %%d0,%%sp@-;" /* d0 */ \ "moveml %%d1-%%d5/%%a0-%%a2,%%sp@-" #define GET_CURRENT(tmp) \ "movel %%sp,"#tmp"\n\t" \ "andw #-"STR(KTHREAD_SIZE)","#tmp"\n\t" \