Rev 3963 | Rev 4017 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3963 | Rev 3982 | ||
---|---|---|---|
Line 61... | Line 61... | ||
61 | #include <arch/debugger.h> |
61 | #include <arch/debugger.h> |
62 | #include <syscall/syscall.h> |
62 | #include <syscall/syscall.h> |
63 | #include <console/console.h> |
63 | #include <console/console.h> |
64 | #include <ddi/irq.h> |
64 | #include <ddi/irq.h> |
65 | #include <ddi/device.h> |
65 | #include <ddi/device.h> |
- | 66 | #include <sysinfo/sysinfo.h> |
|
66 | 67 | ||
67 | 68 | ||
68 | /** Disable I/O on non-privileged levels |
69 | /** Disable I/O on non-privileged levels |
69 | * |
70 | * |
70 | * Clean IOPL(12,13) and NT(14) flags in EFLAGS register |
71 | * Clean IOPL(12,13) and NT(14) flags in EFLAGS register |
Line 171... | Line 172... | ||
171 | } |
172 | } |
172 | } |
173 | } |
173 | 174 | ||
174 | void arch_post_smp_init(void) |
175 | void arch_post_smp_init(void) |
175 | { |
176 | { |
- | 177 | devno_t devno = device_assign_devno(); |
|
176 | /* keyboard controller */ |
178 | /* keyboard controller */ |
177 | (void) i8042_init((i8042_t *) I8042_BASE, device_assign_devno(), |
179 | (void) i8042_init((i8042_t *) I8042_BASE, devno, IRQ_KBD); |
- | 180 | ||
- | 181 | /* |
|
- | 182 | * This is the necessary evil until the userspace driver is entirely |
|
178 | IRQ_KBD); |
183 | * self-sufficient. |
- | 184 | */ |
|
- | 185 | sysinfo_set_item_val("kbd", NULL, true); |
|
- | 186 | sysinfo_set_item_val("kbd.devno", NULL, devno); |
|
- | 187 | sysinfo_set_item_val("kbd.inr", NULL, IRQ_KBD); |
|
179 | } |
188 | } |
180 | 189 | ||
181 | void calibrate_delay_loop(void) |
190 | void calibrate_delay_loop(void) |
182 | { |
191 | { |
183 | i8254_calibrate_delay_loop(); |
192 | i8254_calibrate_delay_loop(); |