version 1.1, 2007/10/16 09:41:04 |
version 1.10, 2008/01/11 10:54:50 |
|
|
#include <sys/types.h> |
#include <sys/types.h> |
#include <sys/kern_devconfig.h> |
#include <sys/kern_devconfig.h> |
#include <sys/mem.h> |
#include <sys/mem.h> |
|
#include <sys/kern_time.h> |
|
#include <sys/kern_sched.h> |
|
|
|
#ifdef ARCH_SAM7S64 |
|
#include <sys/devctl.h> /* XXX */ |
|
#include <arch/sam7s64/dev/gpio7segvar.h> /* XXX */ |
|
#endif |
|
|
#include <libkern/printf.h> |
#include <libkern/printf.h> |
|
|
extern void config_consinit(void); |
extern void config_consinit(void); |
|
|
void |
void |
main(void) |
main(void) |
{ |
{ |
/* set up boot console */ |
uint8_t digit; |
config_consinit(); |
uint32_t i; |
|
|
|
/* set up critical devices */ |
|
config_machineinit(); |
|
|
|
printf("Welcome to FunnyOS!\n"); |
|
|
/* initialize kmalloc */ |
/* initialize kmalloc */ |
kmem_init(); |
kmem_init(); |
|
|
/* attach all devices described in arch/${ARCH}/config.c */ |
/* attach all devices described in arch/${ARCH}/config.c */ |
devconfig_recurse(); |
devconfig_recurse(); |
|
|
|
#ifndef ARCH_SAM7S64 |
|
/* initialize scheduler before enabling system ticks */ |
|
sched_init(); |
|
|
|
/* initialize system clock; this will start interrupts from timer */ |
|
sysclock_init(); |
|
#endif |
|
|
|
#ifdef ARCH_SAM7S64 |
|
loop: |
|
for(digit = 0; digit < 16; digit++) { |
|
printf("kern_main: LED output: %d\n", digit); |
|
|
|
devctl("gpio7seg", 0, DCGPIO7SEG_SETDIGIT, &digit); |
|
|
|
/* dummy timeout */ |
|
for (i = 0; i < 5000000; i++) |
|
; |
|
} |
|
goto loop; |
|
#endif |
|
|
|
printf("Autoconfiguration completed.\n"); |
|
|
while(1) |
while(1) |
; |
; |