Rev 1901 | Rev 1993 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1901 | Rev 1936 | ||
|---|---|---|---|
| Line 52... | Line 52... | ||
| 52 | #include <arch/drivers/arc.h> |
52 | #include <arch/drivers/arc.h> |
| 53 | #include <console/chardev.h> |
53 | #include <console/chardev.h> |
| 54 | #include <arch/debugger.h> |
54 | #include <arch/debugger.h> |
| 55 | #include <genarch/fb/fb.h> |
55 | #include <genarch/fb/fb.h> |
| 56 | #include <macros.h> |
56 | #include <macros.h> |
| - | 57 | #include <ddi/device.h> |
|
| 57 | 58 | ||
| 58 | #include <arch/asm/regname.h> |
59 | #include <arch/asm/regname.h> |
| 59 | 60 | ||
| 60 | /* Size of the code jumping to the exception handler code |
61 | /* Size of the code jumping to the exception handler code |
| 61 | * - J+NOP |
62 | * - J+NOP |
| Line 96... | Line 97... | ||
| 96 | /* Initialize dispatch table */ |
97 | /* Initialize dispatch table */ |
| 97 | exception_init(); |
98 | exception_init(); |
| 98 | arc_init(); |
99 | arc_init(); |
| 99 | 100 | ||
| 100 | /* Copy the exception vectors to the right places */ |
101 | /* Copy the exception vectors to the right places */ |
| 101 | memcpy(TLB_EXC, (char *)tlb_refill_entry, EXCEPTION_JUMP_SIZE); |
102 | memcpy(TLB_EXC, (char *) tlb_refill_entry, EXCEPTION_JUMP_SIZE); |
| 102 | memcpy(NORM_EXC, (char *)exception_entry, EXCEPTION_JUMP_SIZE); |
103 | memcpy(NORM_EXC, (char *) exception_entry, EXCEPTION_JUMP_SIZE); |
| 103 | memcpy(CACHE_EXC, (char *)cache_error_entry, EXCEPTION_JUMP_SIZE); |
104 | memcpy(CACHE_EXC, (char *) cache_error_entry, EXCEPTION_JUMP_SIZE); |
| 104 | 105 | ||
| 105 | interrupt_init(); |
- | |
| 106 | /* |
106 | /* |
| 107 | * Switch to BEV normal level so that exception vectors point to the kernel. |
107 | * Switch to BEV normal level so that exception vectors point to the kernel. |
| 108 | * Clear the error level. |
108 | * Clear the error level. |
| 109 | */ |
109 | */ |
| 110 | cp0_status_write(cp0_status_read() & ~(cp0_status_bev_bootstrap_bit|cp0_status_erl_error_bit)); |
110 | cp0_status_write(cp0_status_read() & ~(cp0_status_bev_bootstrap_bit|cp0_status_erl_error_bit)); |
| 111 | 111 | ||
| 112 | /* |
112 | /* |
| 113 | * Mask all interrupts |
113 | * Mask all interrupts |
| 114 | */ |
114 | */ |
| 115 | cp0_mask_all_int(); |
115 | cp0_mask_all_int(); |
| 116 | - | ||
| 117 | /* |
116 | |
| 118 | * Unmask hardware clock interrupt. |
- | |
| 119 | */ |
- | |
| 120 | cp0_unmask_int(TIMER_IRQ); |
- | |
| 121 | - | ||
| 122 | console_init(); |
- | |
| 123 | debugger_init(); |
117 | debugger_init(); |
| 124 | } |
118 | } |
| 125 | 119 | ||
| 126 | void arch_post_mm_init(void) |
120 | void arch_post_mm_init(void) |
| 127 | { |
121 | { |
| - | 122 | interrupt_init(); |
|
| - | 123 | console_init(device_assign_devno()); |
|
| 128 | #ifdef CONFIG_FB |
124 | #ifdef CONFIG_FB |
| 129 | fb_init(0x12000000, 640, 480, 24, 1920, false); // gxemul framebuffer |
125 | fb_init(0x12000000, 640, 480, 24, 1920, false); // gxemul framebuffer |
| 130 | #endif |
126 | #endif |
| 131 | sysinfo_set_item_val("machine." STRING(MACHINE),NULL,1); |
127 | sysinfo_set_item_val("machine." STRING(MACHINE), NULL, 1); |
| 132 | } |
128 | } |
| 133 | 129 | ||
| 134 | void arch_post_cpu_init(void) |
130 | void arch_post_cpu_init(void) |
| 135 | { |
131 | { |
| 136 | } |
132 | } |