Rev 1813 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1813 | Rev 1816 | ||
---|---|---|---|
Line 37... | Line 37... | ||
37 | #include <arch/types.h> |
37 | #include <arch/types.h> |
38 | #include <typedefs.h> |
38 | #include <typedefs.h> |
39 | 39 | ||
40 | #include <arch/pm.h> |
40 | #include <arch/pm.h> |
41 | 41 | ||
42 | #include <arch/drivers/ega.h> |
- | |
43 | #include <arch/drivers/vesa.h> |
42 | #include <arch/drivers/xconsole.h> |
44 | #include <genarch/i8042/i8042.h> |
- | |
45 | #include <arch/drivers/i8254.h> |
- | |
46 | #include <arch/drivers/i8259.h> |
- | |
47 | 43 | ||
48 | #include <arch/context.h> |
44 | #include <arch/context.h> |
49 | 45 | ||
50 | #include <config.h> |
46 | #include <config.h> |
51 | 47 | ||
Line 65... | Line 61... | ||
65 | 61 | ||
66 | start_info_t start_info; |
62 | start_info_t start_info; |
67 | 63 | ||
68 | void arch_pre_mm_init(void) |
64 | void arch_pre_mm_init(void) |
69 | { |
65 | { |
70 | // pm_init(); |
66 | pm_init(); |
71 | 67 | ||
72 | if (config.cpu_active == 1) { |
68 | if (config.cpu_active == 1) { |
73 | // bios_init(); |
69 | // bios_init(); |
74 | // i8259_init(); /* PIC */ |
- | |
75 | // i8254_init(); /* hard clock */ |
- | |
76 | 70 | ||
77 | // exc_register(VECTOR_SYSCALL, "syscall", (iroutine) syscall); |
71 | // exc_register(VECTOR_SYSCALL, "syscall", (iroutine) syscall); |
78 | 72 | ||
79 | #ifdef CONFIG_SMP |
73 | #ifdef CONFIG_SMP |
80 | // exc_register(VECTOR_TLB_SHOOTDOWN_IPI, "tlb_shootdown", |
74 | // exc_register(VECTOR_TLB_SHOOTDOWN_IPI, "tlb_shootdown", |
Line 84... | Line 78... | ||
84 | } |
78 | } |
85 | 79 | ||
86 | void arch_post_mm_init(void) |
80 | void arch_post_mm_init(void) |
87 | { |
81 | { |
88 | if (config.cpu_active == 1) { |
82 | if (config.cpu_active == 1) { |
89 | - | ||
90 | #ifdef CONFIG_FB |
- | |
91 | if (vesa_present()) |
83 | /* video */ |
92 | vesa_init(); |
84 | xen_console_init(); |
93 | else |
- | |
94 | #endif |
- | |
95 | ega_init(); /* video */ |
- | |
96 | - | ||
97 | - | ||
98 | /* Enable debugger */ |
85 | /* Enable debugger */ |
99 | debugger_init(); |
86 | debugger_init(); |
100 | /* Merge all memory zones to 1 big zone */ |
87 | /* Merge all memory zones to 1 big zone */ |
101 | zone_merge_all(); |
88 | zone_merge_all(); |
102 | } |
89 | } |
Line 113... | Line 100... | ||
113 | } |
100 | } |
114 | } |
101 | } |
115 | 102 | ||
116 | void arch_post_smp_init(void) |
103 | void arch_post_smp_init(void) |
117 | { |
104 | { |
118 | i8042_init(); /* keyboard controller */ |
- | |
119 | } |
105 | } |
120 | 106 | ||
121 | void calibrate_delay_loop(void) |
107 | void calibrate_delay_loop(void) |
122 | { |
108 | { |
123 | i8254_calibrate_delay_loop(); |
109 | // i8254_calibrate_delay_loop(); |
124 | if (config.cpu_active == 1) { |
110 | if (config.cpu_active == 1) { |
125 | /* |
111 | /* |
126 | * This has to be done only on UP. |
112 | * This has to be done only on UP. |
127 | * On SMP, i8254 is not used for time keeping and its interrupt pin remains masked. |
113 | * On SMP, i8254 is not used for time keeping and its interrupt pin remains masked. |
128 | */ |
114 | */ |
129 | i8254_normal_operation(); |
115 | // i8254_normal_operation(); |
130 | } |
116 | } |
131 | } |
117 | } |
132 | 118 | ||
133 | /** Set thread-local-storage pointer |
119 | /** Set thread-local-storage pointer |
134 | * |
120 | * |
Line 146... | Line 132... | ||
146 | /** Acquire console back for kernel |
132 | /** Acquire console back for kernel |
147 | * |
133 | * |
148 | */ |
134 | */ |
149 | void arch_grab_console(void) |
135 | void arch_grab_console(void) |
150 | { |
136 | { |
151 | i8042_grab(); |
- | |
152 | } |
137 | } |
- | 138 | ||
153 | /** Return console to userspace |
139 | /** Return console to userspace |
154 | * |
140 | * |
155 | */ |
141 | */ |
156 | void arch_release_console(void) |
142 | void arch_release_console(void) |
157 | { |
143 | { |
158 | i8042_release(); |
- | |
159 | } |
144 | } |
160 | 145 | ||
161 | /** @} |
146 | /** @} |
162 | */ |
147 | */ |