X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/8c06c883e7b13c115d5ff207f79d4b68fccd5ad6..64e5fa9a495e388c922157b9a616204c299f5e05:/lunaix-os/kernel/kinit.c?ds=sidebyside diff --git a/lunaix-os/kernel/kinit.c b/lunaix-os/kernel/kinit.c index 0510c0c..b21a759 100644 --- a/lunaix-os/kernel/kinit.c +++ b/lunaix-os/kernel/kinit.c @@ -49,6 +49,8 @@ kernel_bootstrap(struct boot_handoff* bhctx) /* Setup kernel memory layout and services */ kmem_init(bhctx); + boot_parse_cmdline(bhctx); + /* Prepare stack trace environment */ trace_modksyms_init(bhctx); @@ -59,12 +61,14 @@ kernel_bootstrap(struct boot_handoff* bhctx) tty_set_theme(VGA_COLOR_WHITE, VGA_COLOR_BLACK); lxconsole_init(); - /* Get platform configuration */ - acpi_init(); + device_sysconf_load(); /* Get intc online, this is the cornerstone when initing devices */ intc_init(); + clock_init(); + timer_init(); + /* TODO autoload these init function that do not have dependency between them @@ -77,18 +81,7 @@ kernel_bootstrap(struct boot_handoff* bhctx) block_init(); sched_init(); - device_earlystage(); - - /* System timing and clock support */ - /* - FIXME we must get timer as earlier as possible - - A decoupling between rtc and general device sub-sys is needed. - Otherwise we timer can only be loaded after device_earlystage. - - We need a dedicated timer&clock subsystem - */ - timer_init(); + device_onbooot_load(); /* the bare metal are now happy, let's get software over with */ @@ -97,11 +90,6 @@ kernel_bootstrap(struct boot_handoff* bhctx) panickf("Fail to mount root. (errno=%d)", errno); } - /* Mount these system-wide pseudo-fs */ - vfs_mount("/dev", "devfs", NULL, 0); - vfs_mount("/sys", "twifs", NULL, MNT_RO); - vfs_mount("/task", "taskfs", NULL, MNT_RO); - /* Finish up bootstrapping sequence, we are ready to spawn the root process * and start geting into uspace */