X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=rpikern;a=blobdiff_plain;f=src%2Fmain.c;h=29c0f14bab61b03159d84bb5a6f4bc0adb5bb069;hp=0c8bdf5515794b78e08626321ddf5236b2f37758;hb=6da291dc416a718164b5596aa16b1901f2770732;hpb=203b43a75a028e9238307bd6e73768eb8e942071 diff --git a/src/main.c b/src/main.c index 0c8bdf5..29c0f14 100644 --- a/src/main.c +++ b/src/main.c @@ -1,14 +1,18 @@ #include "config.h" +#include #include #include #include #include "asm.h" +#include "rpi.h" +#include "contty.h" #include "serial.h" #include "video.h" void dbgled(int x); -void exit(int x); + +void reboot(void); static void cmdrun(char *cmd); @@ -18,14 +22,17 @@ int main(void) static char cmdbuf[256]; static int cmdend; + rpi_init(); init_serial(115200); - ser_printstr("Starting rpikern\n"); + con_init(); + + printf("Detected raspberry pi %d, I/O base: %x\n", rpi_model, rpi_iobase); video_init(); - ser_printstr("Going interactive\n"); + printf("Going interactive\n"); for(;;) { - int c = ser_getchar(); + int c = getchar(); switch(c) { case '\r': @@ -41,7 +48,7 @@ int main(void) case -1: lastnl = 0; - ser_printstr("error!\n"); + printf("error!\n"); break; default: @@ -56,10 +63,10 @@ int main(void) return 0; } -void panic(void) +void reboot(void) { - ser_printstr("PANIC!\n"); - exit(0); + printf("Rebooting ...\n"); + rpi_reboot(); } static void cmdrun(char *cmd) @@ -72,13 +79,13 @@ static void cmdrun(char *cmd) *ptr = 0; args = ptr + 1; - if(strcmp(cmd, "help") == 0) { - ser_printstr("help not implemented yet\n"); + if(strcmp(cmd, "reboot") == 0) { + reboot(); + } else if(strcmp(cmd, "help") == 0) { + printf("help not implemented yet\n"); } else if(strcmp(cmd, "ver") == 0) { - ser_printstr("rpikern version 0.0\n"); + printf("rpikern version 0.0\n"); } else { - ser_printstr("Unknown command: "); - ser_printstr(cmd); - ser_printstr("\n"); + printf("Unknown command: %s\n", cmd); } }