Subversion Repositories HelenOS

Rev

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
}