Return to kern_main.c CVS log | Up to [local] / funnyos / kern |
1.1 init 1: /* 1.10 ! nbrk 2: * $Id: kern_main.c,v 1.9 2008/01/02 02:38:44 nbrk Exp $ 1.1 init 3: */ 4: #include <sys/types.h> 5: #include <sys/kern_devconfig.h> 6: #include <sys/mem.h> 1.3 init 7: #include <sys/kern_time.h> 1.5 nbrk 8: #include <sys/kern_sched.h> 1.1 init 9: 1.10 ! nbrk 10: #ifdef ARCH_SAM7S64 1.9 nbrk 11: #include <sys/devctl.h> /* XXX */ 12: #include <arch/sam7s64/dev/gpio7segvar.h> /* XXX */ 1.10 ! nbrk 13: #endif 1.9 nbrk 14: 1.1 init 15: #include <libkern/printf.h> 16: 17: extern void config_consinit(void); 18: 19: 20: void 21: main(void) 22: { 1.9 nbrk 23: uint8_t digit; 24: uint32_t i; 25: 1.4 nbrk 26: /* set up critical devices */ 27: config_machineinit(); 1.1 init 28: 1.6 nbrk 29: printf("Welcome to FunnyOS!\n"); 30: 1.1 init 31: /* initialize kmalloc */ 32: kmem_init(); 33: 34: /* attach all devices described in arch/${ARCH}/config.c */ 35: devconfig_recurse(); 1.2 init 36: 1.6 nbrk 37: #ifndef ARCH_SAM7S64 1.5 nbrk 38: /* initialize scheduler before enabling system ticks */ 1.10 ! nbrk 39: sched_init(); 1.5 nbrk 40: 41: /* initialize system clock; this will start interrupts from timer */ 1.10 ! nbrk 42: sysclock_init(); 1.9 nbrk 43: #endif 44: 45: #ifdef ARCH_SAM7S64 46: loop: 47: for(digit = 0; digit < 16; digit++) { 48: printf("kern_main: LED output: %d\n", digit); 49: 50: devctl("gpio7seg", 0, DCGPIO7SEG_SETDIGIT, &digit); 51: 52: /* dummy timeout */ 53: for (i = 0; i < 5000000; i++) 54: ; 55: } 56: goto loop; 1.7 nbrk 57: #endif 1.10 ! nbrk 58: ! 59: printf("Autoconfiguration completed.\n"); 1.1 init 60: 61: while(1) 62: ; 63: } 64: 65: