Rev 4060 | Rev 4114 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4060 | Rev 4103 | ||
|---|---|---|---|
| Line 150... | Line 150... | ||
| 150 | void arch_post_smp_init(void) |
150 | void arch_post_smp_init(void) |
| 151 | { |
151 | { |
| 152 | #ifdef SKI |
152 | #ifdef SKI |
| 153 | srln_init(stdin); |
153 | srln_init(stdin); |
| 154 | ski_console_init(&srlnin); |
154 | ski_console_init(&srlnin); |
| 155 | #endif |
155 | #endif |
| 156 | 156 | ||
| 157 | #ifdef I460GX |
157 | #ifdef I460GX |
| 158 | #ifdef CONFIG_EGA |
158 | #ifdef CONFIG_EGA |
| 159 | ega_init(EGA_BASE, EGA_VIDEORAM); |
159 | ega_init(EGA_BASE, EGA_VIDEORAM); |
| 160 | #endif |
160 | #endif |
| 161 | 161 | ||
| 162 | devno_t devno = device_assign_devno(); |
162 | devno_t devno = device_assign_devno(); |
| 163 | inr_t inr; |
163 | inr_t inr; |
| 164 | 164 | ||
| 165 | #ifdef CONFIG_NS16550 |
165 | #ifdef CONFIG_NS16550 |
| 166 | inr = NS16550_IRQ; |
166 | inr = NS16550_IRQ; |
| 167 | srln_init(stdin); |
167 | |
| 168 | (void) ns16550_init((ns16550_t *)NS16550_BASE, devno, inr, NULL, NULL, |
168 | indev_t *kbrdin = ns16550_init(ns16550_t *) NS16550_BASE, devno, inr, NULL, NULL); |
| 169 | &srlnin); |
169 | if (kbrdin) |
| - | 170 | srln_init(kbrdin); |
|
| - | 171 | ||
| 170 | sysinfo_set_item_val("kbd.type", NULL, KBD_NS16550); |
172 | sysinfo_set_item_val("kbd.type", NULL, KBD_NS16550); |
| 171 | sysinfo_set_item_val("kbd.address.physical", NULL, |
173 | sysinfo_set_item_val("kbd.address.physical", NULL, |
| 172 | (uintptr_t) NS16550_BASE); |
174 | (uintptr_t) NS16550_BASE); |
| 173 | sysinfo_set_item_val("kbd.address.kernel", NULL, |
175 | sysinfo_set_item_val("kbd.address.kernel", NULL, |
| 174 | (uintptr_t) NS16550_BASE); |
176 | (uintptr_t) NS16550_BASE); |
| 175 | #else |
177 | #else |
| 176 | inr = IRQ_KBD; |
178 | inr = IRQ_KBD; |
| - | 179 | /* |
|
| - | 180 | * Initialize the i8042 controller. Then initialize the keyboard |
|
| 177 | kbrd_init(stdin); |
181 | * module and connect it to i8042. Enable keyboard interrupts. |
| - | 182 | */ |
|
| 178 | (void) i8042_init((i8042_t *)I8042_BASE, devno, inr, &kbrdin); |
183 | indev_t *kbrdin = i8042_init((i8042_t *) I8042_BASE, devno, irq); |
| - | 184 | if (kbrdin) { |
|
| - | 185 | kbrd_init(kbrdin); |
|
| 179 | trap_virtual_enable_irqs(1 << inr); |
186 | trap_virtual_enable_irqs(1 << inr); |
| - | 187 | } |
|
| - | 188 | ||
| 180 | sysinfo_set_item_val("kbd.type", NULL, KBD_LEGACY); |
189 | sysinfo_set_item_val("kbd.type", NULL, KBD_LEGACY); |
| 181 | sysinfo_set_item_val("kbd.address.physical", NULL, |
190 | sysinfo_set_item_val("kbd.address.physical", NULL, |
| 182 | (uintptr_t) I8042_BASE); |
191 | (uintptr_t) I8042_BASE); |
| 183 | sysinfo_set_item_val("kbd.address.kernel", NULL, |
192 | sysinfo_set_item_val("kbd.address.kernel", NULL, |
| 184 | (uintptr_t) I8042_BASE); |
193 | (uintptr_t) I8042_BASE); |
| 185 | #endif |
194 | #endif |
| 186 | sysinfo_set_item_val("kbd", NULL, true); |
195 | sysinfo_set_item_val("kbd", NULL, true); |
| 187 | sysinfo_set_item_val("kbd.devno", NULL, devno); |
196 | sysinfo_set_item_val("kbd.devno", NULL, devno); |
| 188 | sysinfo_set_item_val("kbd.inr", NULL, inr); |
197 | sysinfo_set_item_val("kbd.inr", NULL, inr); |
| 189 | #endif |
198 | #endif |
| 190 | 199 | ||
| 191 | sysinfo_set_item_val("ia64_iospace", NULL, true); |
200 | sysinfo_set_item_val("ia64_iospace", NULL, true); |
| 192 | sysinfo_set_item_val("ia64_iospace.address", NULL, true); |
201 | sysinfo_set_item_val("ia64_iospace.address", NULL, true); |
| 193 | sysinfo_set_item_val("ia64_iospace.address.virtual", NULL, IO_OFFSET); |
202 | sysinfo_set_item_val("ia64_iospace.address.virtual", NULL, IO_OFFSET); |
| 194 | } |
203 | } |
| 195 | 204 | ||