44,7 → 44,8 |
#include <genarch/drivers/legacy/ia32/io.h> |
#include <genarch/drivers/ega/ega.h> |
#include <arch/drivers/vesa.h> |
#include <genarch/kbd/i8042.h> |
#include <genarch/drivers/i8042/i8042.h> |
#include <genarch/kbrd/kbrd.h> |
#include <arch/drivers/i8254.h> |
#include <arch/drivers/i8259.h> |
|
116,7 → 117,11 |
vesa_init(); |
else |
#endif |
#ifdef CONFIG_EGA |
ega_init(EGA_BASE, EGA_VIDEORAM); /* video */ |
#else |
{} |
#endif |
|
/* Enable debugger */ |
debugger_init(); |
146,11 → 151,20 |
|
void arch_post_smp_init(void) |
{ |
#ifdef CONFIG_PC_KBD |
devno_t devno = device_assign_devno(); |
/* keyboard controller */ |
(void) i8042_init((i8042_t *) I8042_BASE, devno, IRQ_KBD); |
|
/* |
* Initialize the i8042 controller. Then initialize the keyboard |
* module and connect it to i8042. Enable keyboard interrupts. |
*/ |
indev_t *kbrdin = i8042_init((i8042_t *) I8042_BASE, devno, IRQ_KBD); |
if (kbrdin) { |
kbrd_init(kbrdin); |
trap_virtual_enable_irqs(1 << IRQ_KBD); |
} |
|
/* |
* This is the necessary evil until the userspace driver is entirely |
* self-sufficient. |
*/ |
161,6 → 175,7 |
(uintptr_t) I8042_BASE); |
sysinfo_set_item_val("kbd.address.kernel", NULL, |
(uintptr_t) I8042_BASE); |
#endif |
} |
|
void calibrate_delay_loop(void) |
194,9 → 209,14 |
void arch_grab_console(void) |
{ |
#ifdef CONFIG_FB |
if (vesa_present()) |
vesa_redraw(); |
else |
#endif |
#ifdef CONFIG_EGA |
ega_redraw(); |
#else |
ega_redraw(); |
{} |
#endif |
} |
|