MDIO R/W working
[mw/milkymist.git] / software / demo / main.c
1 /*
2  * Milkymist VJ SoC (Software)
3  * Copyright (C) 2007, 2008, 2009, 2010 Sebastien Bourdeauducq
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, version 3 of the License.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16  */
17
18 #include <stdio.h>
19 #include <console.h>
20 #include <uart.h>
21 #include <system.h>
22 #include <irq.h>
23 #include <board.h>
24 #include <version.h>
25
26 #include <hal/brd.h>
27 #include <hal/mem.h>
28 #include <hal/time.h>
29 #include <hal/vga.h>
30 #include <hal/snd.h>
31 #include <hal/pfpu.h>
32 #include <hal/tmu.h>
33 #include <hal/slowout.h>
34 #include <hal/hdlcd.h>
35
36 #include "apipe.h"
37 #include "rpipe.h"
38 #include "renderer.h"
39 #include "ui.h"
40 #include "cpustats.h"
41 #include "shell.h"
42
43 static void banner()
44 {
45         putsnonl("\n\n\e[1m     |\\  /|'||      |\\  /|'   |\n"
46                           "     | \\/ ||||_/\\  /| \\/ ||(~~|~\n"
47                           "     |    |||| \\ \\/ |    ||_) |\n"
48                           "                _/          v"VERSION"\n"
49                           "\e[0m           SoC demo program\n\n\n");
50 }
51
52 int main()
53 {
54         irq_setmask(0);
55         irq_enable(1);
56         uart_async_init();
57         banner();
58         brd_init();
59         cpustats_init();
60         time_init();
61         mem_init();
62         //vga_init();
63         //snd_init();
64         //pfpu_init();
65         //tmu_init();
66         //renderer_init();
67         //apipe_init();
68         //rpipe_init();
69         //slowout_init();
70         //hdlcd_init();
71         //ui_init();
72         shell_init();
73         
74         while(1) {
75                 if(readchar_nonblock())
76                         shell_input(readchar());
77                 //apipe_service();
78                 //rpipe_service();
79         }
80         
81         return 0;
82 }