Rev 4060 | Rev 4114 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4060 | Rev 4103 | ||
---|---|---|---|
Line 162... | Line 162... | ||
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); |