git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
feat: kprintf now goes into dedicated pseudo-dev rather than flooding the framebuffer
[lunaix-os.git]
/
lunaix-os
/
kernel
/
kinit.c
diff --git
a/lunaix-os/kernel/kinit.c
b/lunaix-os/kernel/kinit.c
index cb31ca1af1ea60ef4324b1c6f0d06ebfd70d8095..0510c0c53de0d7be781c04374eb4b0baa3ba3159 100644
(file)
--- a/
lunaix-os/kernel/kinit.c
+++ b/
lunaix-os/kernel/kinit.c
@@
-25,7
+25,7
@@
#include <sys/interrupts.h>
#include <sys/mm/mempart.h>
#include <sys/interrupts.h>
#include <sys/mm/mempart.h>
-#include <klibc/st
dio
.h>
+#include <klibc/st
rfmt
.h>
#include <klibc/string.h>
extern void
#include <klibc/string.h>
extern void
@@
-62,26
+62,35
@@
kernel_bootstrap(struct boot_handoff* bhctx)
/* Get platform configuration */
acpi_init();
/* 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();
/* 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();
input_init();
+ block_init();
+ sched_init();
+
device_earlystage();
/* System timing and clock support */
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 */
/* the bare metal are now happy, let's get software over with */
- sched_init();
int errno = 0;
if ((errno = vfs_mount_root("ramfs", NULL))) {
int errno = 0;
if ((errno = vfs_mount_root("ramfs", NULL))) {