X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/0f73e6cc9945f9b4a074bb62b9708d1751fa3723..8c06c883e7b13c115d5ff207f79d4b68fccd5ad6:/lunaix-os/kernel/kinit.c diff --git a/lunaix-os/kernel/kinit.c b/lunaix-os/kernel/kinit.c index cb31ca1..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 @@ -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))) {