=================================================================== RCS file: /cvs/funnyos/arch/testarm/config.c,v retrieving revision 1.1 retrieving revision 1.16 diff -u -r1.1 -r1.16 --- funnyos/arch/testarm/config.c 2007/10/16 09:41:04 1.1 +++ funnyos/arch/testarm/config.c 2008/01/11 15:22:09 1.16 @@ -1,9 +1,9 @@ /* - * $Id: config.c,v 1.1 2007/10/16 08:41:04 init Exp $ + * $Id: config.c,v 1.16 2008/01/11 15:22:09 nbrk Exp $ */ #include #include - +#include /* * Configuration file for platform (testarm). */ @@ -11,71 +11,37 @@ /* device drivers */ extern struct driver root_dr; extern struct driver cpu_dr; +extern struct driver obio_dr; +extern struct driver tacons_dr; +extern struct driver fcons_dr; +extern struct driver tartc_dr; +extern struct driver tairqc_dr; +/* putchar & early putchar */ extern void(*putchar)(char); void tacons_early_putc(char ch); +/* tasks */ +extern void hello_enter(void); +extern void hello2_enter(void); + + /* amount of physical memory, in Bytes */ uint32_t physmem = 33554432; -#if 0 /* - * Devices present in this system. - */ -struct device devlist[] = { -/* name, minor, active, attach_subr, *devdata, locator, [*parent] */ -/* 0 */ { "root", 0, 0, root_attach, NULL, 0 }, -/* 1 */ { "cpu", 0, 0, cpu_attach, NULL, 0 }, -/* 2 */ { "obio", 0, 0, obio_attach, NULL, 0 }, -/* 3 */ { "tartc", 0, 0, tartc_attach, NULL, 0x15000000 }, -/* 4 */ { "tacons", 0, 0, tacons_attach, NULL, 0x10000000 }, -/* 5 */ { "fcons", 0, 0, fcons_attach, NULL, 0 }, - { NULL, 0, 0, NULL, NULL, 0, NULL } -}; - -void -devlist_prepare(void) -{ - /* - * Where to attach each device. - * XXX kill this ugly macross. - */ - ATTACH(0) AT PARENT(0); - ATTACH(1) AT PARENT(0); - ATTACH(2) AT PARENT(0); - ATTACH(3) AT PARENT(2); - ATTACH(4) AT PARENT(2); - ATTACH(5) AT PARENT(4); - - /* - * Early console putchar hack; - */ - putchar = tacons_early_putc; - -}; -/* - * How many instances of each device will be present in system. - * We need it to know (at compile-time) how many of struct xxx_dd (devdata) in device drivers - * should we compile. (sadly, we have no dynamic memory allocations subsystem for now) - */ -/* this all is XXX; btw this've been moved in drivervar.h */ -// #define NTACONS 1 - -uint8_t ndevices = sizeof(devlist) / sizeof(struct device); -#endif /* not 0 */ - -/* * Where to attach each device. */ struct attachinfo config_attachinfo[] = { - /* child, parent, pminor, loc, flags */ -// { "obio", "root", 0, 0, 0 }, - { "cpu" , "root", 0, 0, 0 }, -// { "tacons", "obio", 0, 0x10000000, 0 }, -// { "tartc", "obio", 0, 0x15000000, 0x01 }, -// { "fcons", "tacons", 0, 0, 0}, - { NULL, NULL, 0, 0, 0} + /* child, parent, pminor, loc, intrno, flags */ + { "cpu" , "root", 0, 0, -1, 0 }, + { "obio", "root", 0, 0, -1, 0 }, + { "tacons", "obio", 0, 0x10000000, 2, 0 }, + { "tartc", "obio", 0, 0x15000000, 4, 0 }, + { "tairqc", "obio", 0, 0x16000000, -1, 0 }, + { "fcons", "tacons", 0, 0, -1, 0 }, + { NULL, NULL, 0, 0, -1, 0 } }; @@ -83,28 +49,42 @@ * Link device names with their drivers. */ struct driverinfo config_driverinfo[] = { +/* name, driverp, ninstances (should be -1) */ { "root", &root_dr, -1 }, -// { "obio", &obio_dr, -1 }, + { "obio", &obio_dr, -1 }, { "cpu" , &cpu_dr, -1 }, -// { "tacons", &tacons_dr, -1 }, -// { "tartc", &tartc_dr, -1 }, -// { "fcons", &fcons_dr, -1 }, + { "tacons", &tacons_dr, -1 }, + { "tartc", &tartc_dr, -1 }, + { "fcons", &fcons_dr, -1 }, + { "tairqc", &tairqc_dr, -1 }, { NULL, NULL, 0 } }; /* + * Tasks. + */ +struct u_task config_tasklist[] = { +/* name, priority, enter */ + { "hello", 1, hello_enter }, + { "hello2",1, hello2_enter }, + { NULL, 0, NULL } +}; + + +/* * Machine early-stage initialization hooks. */ void -config_consinit(void) +config_machineinit(void) { /* * Configure putchar, so we can printf messages to the console without fcons. */ /* putchar = tauart_early_putc; */ putchar = tacons_early_putc; + }