]> rtime.felk.cvut.cz Git - l4.git/blob - kernel/fiasco/src/kern/uart_console.cpp
update
[l4.git] / kernel / fiasco / src / kern / uart_console.cpp
1 IMPLEMENTATION:
2
3 #include <cstdio>
4 #include <cstring>
5
6 #include "config.h"
7 #include "filter_console.h"
8 #include "kernel_console.h"
9 #include "kernel_uart.h"
10 #include "static_init.h"
11 #include "irq.h"
12
13 STATIC_INITIALIZER  (uart_console_init_stage2);
14
15 static void uart_console_init_stage2()
16 {
17   if ((Kernel_uart::uart()->failed()))
18     return;
19
20   int irq = -1;
21   if (Config::serial_esc == Config::SERIAL_ESC_IRQ
22       && (irq = Kernel_uart::uart()->irq()) == -1)
23     {
24       puts("SERIAL ESC: not supported");
25       Config::serial_esc = Config::SERIAL_ESC_NOIRQ;
26     }
27
28   switch (Config::serial_esc)
29     {
30     case Config::SERIAL_ESC_NOIRQ:
31       puts("SERIAL ESC: No IRQ for specified uart port.");
32       puts("Using serial hack in slow timer handler.");
33       break;
34
35     case Config::SERIAL_ESC_IRQ:
36       Kernel_uart::enable_rcv_irq();
37       printf("SERIAL ESC: allocated IRQ %d for serial uart\n", irq);
38       puts("Not using serial hack in slow timer handler.");
39       break;
40     }
41 }