[BACK]Return to kern_main.c CVS log [TXT][DIR] Up to [local] / funnyos / kern

File: [local] / funnyos / kern / kern_main.c (download)

Revision 1.10, Fri Jan 11 10:54:50 2008 UTC (16 years, 3 months ago) by nbrk
Branch: MAIN
CVS Tags: HEAD
Changes since 1.9: +7 -3 lines

add "Autoconfiguration completed\n" after devconfig is done;
enable clocks and scheduler on !ARCH_SAM7S64 again

/*
 * $Id: kern_main.c,v 1.10 2008/01/11 10:54:50 nbrk Exp $
 */
#include <sys/types.h>
#include <sys/kern_devconfig.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>

extern void config_consinit(void);


void
main(void)
{
	uint8_t digit;
	uint32_t i;

	/* set up critical devices */
	config_machineinit();

	printf("Welcome to FunnyOS!\n");

	/* initialize kmalloc */
	kmem_init();

	/* attach all devices described in arch/${ARCH}/config.c */
	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)
			;
}