Rev 1432 | Rev 1458 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1432 | Rev 1434 | ||
|---|---|---|---|
| Line 78... | Line 78... | ||
| 78 | /* It is not assumed by default */ |
78 | /* It is not assumed by default */ |
| 79 | interrupts_disable(); |
79 | interrupts_disable(); |
| 80 | 80 | ||
| 81 | /* Initialize dispatch table */ |
81 | /* Initialize dispatch table */ |
| 82 | exception_init(); |
82 | exception_init(); |
| 83 | interrupt_init(); |
- | |
| 84 | - | ||
| 85 | arc_init(); |
83 | arc_init(); |
| 86 | 84 | ||
| 87 | /* Copy the exception vectors to the right places */ |
85 | /* Copy the exception vectors to the right places */ |
| 88 | memcpy(TLB_EXC, (char *)tlb_refill_entry, EXCEPTION_JUMP_SIZE); |
86 | memcpy(TLB_EXC, (char *)tlb_refill_entry, EXCEPTION_JUMP_SIZE); |
| 89 | memcpy(NORM_EXC, (char *)exception_entry, EXCEPTION_JUMP_SIZE); |
87 | memcpy(NORM_EXC, (char *)exception_entry, EXCEPTION_JUMP_SIZE); |
| 90 | memcpy(CACHE_EXC, (char *)cache_error_entry, EXCEPTION_JUMP_SIZE); |
88 | memcpy(CACHE_EXC, (char *)cache_error_entry, EXCEPTION_JUMP_SIZE); |
| 91 | 89 | ||
| - | 90 | interrupt_init(); |
|
| 92 | /* |
91 | /* |
| 93 | * Switch to BEV normal level so that exception vectors point to the kernel. |
92 | * Switch to BEV normal level so that exception vectors point to the kernel. |
| 94 | * Clear the error level. |
93 | * Clear the error level. |
| 95 | */ |
94 | */ |
| 96 | cp0_status_write(cp0_status_read() & ~(cp0_status_bev_bootstrap_bit|cp0_status_erl_error_bit)); |
95 | cp0_status_write(cp0_status_read() & ~(cp0_status_bev_bootstrap_bit|cp0_status_erl_error_bit)); |
| 97 | 96 | ||
| 98 | /* |
97 | /* |
| 99 | * Mask all interrupts |
98 | * Mask all interrupts |
| 100 | */ |
99 | */ |
| 101 | cp0_mask_all_int(); |
100 | cp0_mask_all_int(); |
| - | 101 | ||
| 102 | /* |
102 | /* |
| 103 | * Unmask hardware clock interrupt. |
103 | * Unmask hardware clock interrupt. |
| 104 | */ |
104 | */ |
| 105 | cp0_unmask_int(TIMER_IRQ); |
105 | cp0_unmask_int(TIMER_IRQ); |
| 106 | 106 | ||
| 107 | /* |
- | |
| 108 | * Start hardware clock. |
- | |
| 109 | */ |
- | |
| 110 | cp0_compare_write(cp0_compare_value + cp0_count_read()); |
- | |
| 111 | - | ||
| 112 | console_init(); |
107 | console_init(); |
| 113 | debugger_init(); |
108 | debugger_init(); |
| 114 | } |
109 | } |
| 115 | 110 | ||
| 116 | void arch_post_mm_init(void) |
111 | void arch_post_mm_init(void) |