10
10
#include <sys/resource.h>
11
11
#include <sys/device.h>
12
12
13
- // x86 VGA
13
+ // x86 VGA
14
14
static resource_t vga_resource = {
15
- .name = "vga" ,
16
- .flags = RESOURCE_META ,
17
- .start = 0xA0000 ,
18
- .end = 0xBFFFF
19
- };
20
-
21
- static resource_t framebuffer = {
22
- .name = "framebuffer" ,
23
- .flags = RESOURCE_MEM
24
- };
25
-
26
- static resource_t attribute_control = {
27
- .name = "attribute_control" ,
28
- .start = 0x3C0 ,
29
- .end = 0x3C1 ,
30
- .flags = RESOURCE_IO | RESOURCE_IO_INDEXED | RESOURCE_WIDTH_8
31
- };
32
-
33
- static resource_t sequencer = {
34
- .name = "sequencer" ,
35
- .start = 0x3C4 ,
36
- .end = 0x3C5 ,
37
- .flags = RESOURCE_IO | RESOURCE_IO_INDEXED | RESOURCE_WIDTH_8
15
+ .name = "vga" ,
16
+ .start = 0xA0000 ,
17
+ .end = 0xBFFFF ,
18
+ .flags = RESOURCE_META
38
19
};
39
20
40
- static resource_t graphics = {
41
- .name = "graphics " ,
42
- .start = 0x3CE ,
43
- .end = 0x3CF ,
44
- .flags = RESOURCE_IO | RESOURCE_IO_INDEXED | RESOURCE_WIDTH_8
21
+ static resource_t vga_control = {
22
+ .name = "control_base " ,
23
+ .start = 0x3C0 ,
24
+ .end = 0x3DF ,
25
+ .flags = RESOURCE_IO | RESOURCE_WIDTH_8 | RESOURCE_IO_INDEXED
45
26
};
46
27
47
- static resource_t crtc = {
48
- .name = "crtc" ,
49
- .start = 0x3D4 ,
50
- .end = 0x3D5 ,
51
- .flags = RESOURCE_IO | RESOURCE_IO_INDEXED | RESOURCE_WIDTH_8
28
+ static resource_t vga_framebuffer = {
29
+ .name = "framebuffer" ,
30
+ .flags = RESOURCE_MEM
52
31
};
53
32
54
33
static device_t vga_device = {
@@ -58,15 +37,15 @@ static device_t vga_device = {
58
37
59
38
static device_t vga_console_device = {
60
39
.name = "vga_console" ,
61
- .access = & framebuffer
40
+ .access = & vga_framebuffer
62
41
};
63
42
64
43
// x86 COM1
65
44
static resource_t com1 = {
66
- .name = "COM1" ,
67
- .start = 0x3F8 ,
68
- .end = 0x3FF ,
69
- .flags = RESOURCE_IO | RESOURCE_WIDTH_8
45
+ .name = "COM1" ,
46
+ .start = 0x3F8 ,
47
+ .end = 0x3FF ,
48
+ .flags = RESOURCE_IO | RESOURCE_WIDTH_8
70
49
};
71
50
72
51
static device_t serial_console_device = {
@@ -79,27 +58,25 @@ static int console_init()
79
58
int vgaRet , serialRet ;
80
59
// Serial Baudrate
81
60
uint32_t baudrate = 115200 ;
82
- // Bios video mode 3h, 8 tall font, 80 lines of text.
83
- uint32_t vga_config [] = {0x3 , 8 , 80 };
61
+ // Bios video mode 3h, 8 tall font, 50 lines, 80 columns of text.
62
+ uint32_t vga_config [] = {0x3 , 8 , 50 , 80 };
84
63
85
64
// VGA Console First
86
65
resource_register (& vga_resource , NULL );
87
- resource_register (& framebuffer , & vga_resource );
88
- resource_register (& attribute_control , & vga_resource );
89
- resource_register (& sequencer , & vga_resource );
90
- resource_register (& graphics , & vga_resource );
91
- resource_register (& crtc , & vga_resource );
66
+ resource_register (& vga_control , & vga_resource );
67
+ resource_register (& vga_framebuffer , & vga_resource );
68
+
92
69
vgaRet = device_register (& vga_device , base_device (), "display/vga" );
93
70
vgaRet |= device_register (& vga_console_device , & vga_device , "console/vga" );
94
71
vgaRet |= device_init (& vga_device , & vga_config );
95
72
vgaRet |= device_init (& vga_console_device , & vga_config [2 ]);
96
73
97
74
// Serial Console Next
98
75
resource_register (& com1 , NULL );
99
- serialRet = device_register (& serial_console_device , base_device (),
76
+ serialRet = device_register (& serial_console_device , base_device (),
100
77
"console/serial/16550" );
101
78
serialRet |= device_init (& serial_console_device , & baudrate );
102
-
79
+
103
80
// If either console succeeds, we succeed
104
81
return (vgaRet && serialRet );
105
82
}
0 commit comments