summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/mips/shared
diff options
context:
space:
mode:
authorJay Monkman <jtm@smoothsmoothie.com>2005-02-25 05:18:49 +0000
committerJay Monkman <jtm@smoothsmoothie.com>2005-02-25 05:18:49 +0000
commit74fb4e1f1d66b129bb144a1b90590bcb1c11332c (patch)
treee3fb1cd3233360bd91cdc9184bd219358f9c4d3f /c/src/lib/libcpu/mips/shared
parent2005-02-24 Jay Monkman <jtm@lopingdog.com> (diff)
downloadrtems-74fb4e1f1d66b129bb144a1b90590bcb1c11332c.tar.bz2
2005-02-24 Jay Monkman <jtm@lopingdog.com>
* Makefile.am, configure.ac: New CPU. * shared/interrupts/installisrentries.c, shared/interrupts/isr_entries.S: Added CPU32 support. * au1x00/Makefile.am, au1x00/include/au1x00.h, au1x00/vectorisrs/maxvectors.c, au1x00/vectorisrs/vectorisrs.c: New CPU.
Diffstat (limited to 'c/src/lib/libcpu/mips/shared')
-rw-r--r--c/src/lib/libcpu/mips/shared/interrupts/installisrentries.c11
-rw-r--r--c/src/lib/libcpu/mips/shared/interrupts/isr_entries.S30
2 files changed, 41 insertions, 0 deletions
diff --git a/c/src/lib/libcpu/mips/shared/interrupts/installisrentries.c b/c/src/lib/libcpu/mips/shared/interrupts/installisrentries.c
index 5c2fb62abc..1be985a8b4 100644
--- a/c/src/lib/libcpu/mips/shared/interrupts/installisrentries.c
+++ b/c/src/lib/libcpu/mips/shared/interrupts/installisrentries.c
@@ -18,6 +18,17 @@ void mips_install_isr_entries( void )
memcpy( (void *)DB_VEC, exc_dbg_code, 40 );
memcpy( (void *)E_VEC, exc_norm_code, 40 ); /* exception vevtor */
+#elif __mips == 32
+ void exc_tlb_code(void);
+ void exc_xtlb_code(void);
+ void exc_cache_code(void);
+ void exc_norm_code(void);
+
+ memcpy( (void *)T_VEC, exc_tlb_code, 40 ); /* tlbmiss vector */
+ memcpy( (void *)X_VEC, exc_xtlb_code, 40 ); /* xtlbmiss vector */
+ memcpy( (void *)C_VEC, exc_cache_code, 40 ); /* cache error vector */
+ memcpy( (void *)E_VEC, exc_norm_code, 40 ); /* exception vector */
+
#elif __mips == 3
void exc_tlb_code(void);
void exc_xtlb_code(void);
diff --git a/c/src/lib/libcpu/mips/shared/interrupts/isr_entries.S b/c/src/lib/libcpu/mips/shared/interrupts/isr_entries.S
index 43351dd1d4..89fc538e49 100644
--- a/c/src/lib/libcpu/mips/shared/interrupts/isr_entries.S
+++ b/c/src/lib/libcpu/mips/shared/interrupts/isr_entries.S
@@ -41,6 +41,36 @@ FRAME(exc_utlb_code,sp,0,ra)
ENDFRAME(exc_utlb_code)
/*
+ * MIPS ISA Level 32
+ * XXX Again, reliance on SIM. Not good.??????????
+ */
+#elif __mips == 32
+FRAME(exc_tlb_code,sp,0,ra)
+ la k0, _ISR_Handler
+ j k0
+ nop
+ENDFRAME(exc_tlb_code)
+
+FRAME(exc_xtlb_code,sp,0,ra)
+ la k0, _ISR_Handler
+ j k0
+ nop
+
+ENDFRAME(exc_xtlb_code)
+
+FRAME(exc_cache_code,sp,0,ra)
+ la k0, _ISR_Handler
+ j k0
+ nop
+ENDFRAME(exc_cache_code)
+
+FRAME(exc_norm_code,sp,0,ra)
+ la k0, _ISR_Handler /* generic external int hndlr */
+ j k0
+ nop
+ENDFRAME(exc_norm_code)
+
+/*
* MIPS ISA Level 3
* XXX Again, reliance on SIM. Not good.
*/