Rev 3343 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3343 | Rev 3665 | ||
---|---|---|---|
Line 44... | Line 44... | ||
44 | #include <memstr.h> |
44 | #include <memstr.h> |
45 | #include <console/chardev.h> |
45 | #include <console/chardev.h> |
46 | #include <console/console.h> |
46 | #include <console/console.h> |
47 | #include <sysinfo/sysinfo.h> |
47 | #include <sysinfo/sysinfo.h> |
48 | #include <arch/drivers/ega.h> |
48 | #include <arch/drivers/ega.h> |
- | 49 | #include <ddi/ddi.h> |
|
- | 50 | ||
49 | 51 | ||
50 | /* |
52 | /* |
51 | * The EGA driver. |
53 | * The EGA driver. |
52 | * Simple and short. Function for displaying characters and "scrolling". |
54 | * Simple and short. Function for displaying characters and "scrolling". |
53 | */ |
55 | */ |
54 | 56 | ||
- | 57 | ||
- | 58 | static parea_t ega_parea; /**< Physical memory area for EGA video RAM. */ |
|
- | 59 | ||
- | 60 | ||
55 | SPINLOCK_INITIALIZE(egalock); |
61 | SPINLOCK_INITIALIZE(egalock); |
56 | static uint32_t ega_cursor; |
62 | static uint32_t ega_cursor; |
57 | static uint8_t *videoram; |
63 | static uint8_t *videoram; |
58 | 64 | ||
59 | static void ega_putchar(chardev_t *d, const char ch); |
65 | static void ega_putchar(chardev_t *d, const char ch); |
Line 73... | Line 79... | ||
73 | */ |
79 | */ |
74 | _memsetw(videoram, SCREEN, 0x0720); |
80 | _memsetw(videoram, SCREEN, 0x0720); |
75 | 81 | ||
76 | chardev_initialize("ega_out", &ega_console, &ega_ops); |
82 | chardev_initialize("ega_out", &ega_console, &ega_ops); |
77 | stdout = &ega_console; |
83 | stdout = &ega_console; |
- | 84 | ||
- | 85 | ||
- | 86 | ega_parea.pbase = VIDEORAM & 0xffffffff; |
|
- | 87 | ega_parea.vbase = (uintptr_t) videoram; |
|
- | 88 | ega_parea.frames = 1; |
|
- | 89 | ega_parea.cacheable = false; |
|
- | 90 | ddi_parea_register(&ega_parea); |
|
- | 91 | ||
78 | 92 | ||
79 | sysinfo_set_item_val("fb", NULL, true); |
93 | sysinfo_set_item_val("fb", NULL, true); |
80 | sysinfo_set_item_val("fb.kind", NULL, 2); |
94 | sysinfo_set_item_val("fb.kind", NULL, 2); |
81 | sysinfo_set_item_val("fb.width", NULL, ROW); |
95 | sysinfo_set_item_val("fb.width", NULL, ROW); |
82 | sysinfo_set_item_val("fb.height", NULL, ROWS); |
96 | sysinfo_set_item_val("fb.height", NULL, ROWS); |
- | 97 | sysinfo_set_item_val("fb.blinking", NULL, true); |
|
83 | sysinfo_set_item_val("fb.address.physical", NULL, VIDEORAM); |
98 | sysinfo_set_item_val("fb.address.physical", NULL, VIDEORAM & 0xffffffff); |
84 | 99 | ||
85 | #ifndef CONFIG_FB |
100 | #ifndef CONFIG_FB |
86 | putchar('\n'); |
101 | putchar('\n'); |
87 | #endif |
102 | #endif |
88 | } |
103 | } |