X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/f044ca812256b421e793c4335ce1ffed74710a70..8c06c883e7b13c115d5ff207f79d4b68fccd5ad6:/lunaix-os/kernel/kinit.c diff --git a/lunaix-os/kernel/kinit.c b/lunaix-os/kernel/kinit.c index f5944b5..0510c0c 100644 --- a/lunaix-os/kernel/kinit.c +++ b/lunaix-os/kernel/kinit.c @@ -25,7 +25,7 @@ #include #include -#include +#include #include extern void @@ -52,7 +52,7 @@ kernel_bootstrap(struct boot_handoff* bhctx) /* Prepare stack trace environment */ trace_modksyms_init(bhctx); - device_register_all(); + device_scan_drivers(); // crt tty_init(ioremap(0xB8000, PG_SIZE)); @@ -62,26 +62,35 @@ kernel_bootstrap(struct boot_handoff* bhctx) /* Get platform configuration */ acpi_init(); - /* Let's get fs online as soon as possible, as things rely on them */ - vfs_init(); - fsm_init(); - /* Get intc online, this is the cornerstone when initing devices */ intc_init(); + /* + TODO autoload these init function that do not have dependency between + them + */ + + /* Let's get fs online as soon as possible, as things rely on them */ + vfs_init(); + fsm_init(); input_init(); + block_init(); + sched_init(); + device_earlystage(); /* System timing and clock support */ - clock_init(); - timer_init(); + /* + FIXME we must get timer as earlier as possible - device_timerstage(); + A decoupling between rtc and general device sub-sys is needed. + Otherwise we timer can only be loaded after device_earlystage. - block_init(); + We need a dedicated timer&clock subsystem + */ + timer_init(); /* the bare metal are now happy, let's get software over with */ - sched_init(); int errno = 0; if ((errno = vfs_mount_root("ramfs", NULL))) {