1 | #include <rtems.h> |
---|
2 | #include <rtems/mips/idtcpu.h> |
---|
3 | #include <stdlib.h> |
---|
4 | #include <string.h> |
---|
5 | |
---|
6 | #include <libcpu/isr_entries.h> |
---|
7 | |
---|
8 | void mips_install_isr_entries( void ) |
---|
9 | { |
---|
10 | #if __mips == 1 |
---|
11 | memcpy( (void *)UT_VEC, exc_utlb_code, 40 ); /* utlbmiss vector */ |
---|
12 | memcpy( (void *)DB_VEC, exc_dbg_code, 40 ); |
---|
13 | memcpy( (void *)E_VEC, exc_norm_code, 40 ); /* exception vevtor */ |
---|
14 | |
---|
15 | #elif __mips == 32 |
---|
16 | memcpy( (void *)T_VEC, exc_tlb_code, 40 ); /* tlbmiss vector */ |
---|
17 | memcpy( (void *)X_VEC, exc_xtlb_code, 40 ); /* xtlbmiss vector */ |
---|
18 | memcpy( (void *)C_VEC, exc_cache_code, 40 ); /* cache error vector */ |
---|
19 | memcpy( (void *)E_VEC, exc_norm_code, 40 ); /* exception vector */ |
---|
20 | |
---|
21 | #elif __mips == 3 |
---|
22 | memcpy( (void *)T_VEC, exc_tlb_code, 40 ); /* tlbmiss vector */ |
---|
23 | memcpy( (void *)X_VEC, exc_xtlb_code, 40 ); /* xtlbmiss vector */ |
---|
24 | memcpy( (void *)C_VEC, exc_cache_code, 40 ); /* cache error vector */ |
---|
25 | memcpy( (void *)E_VEC, exc_norm_code, 40 ); /* exception vector */ |
---|
26 | #endif |
---|
27 | |
---|
28 | rtems_cache_flush_entire_data(); |
---|
29 | } |
---|