From 4f4d9fdc89c27aa3346467a24b621954f4564d3b Mon Sep 17 00:00:00 2001 From: Kimplul Date: Wed, 29 Dec 2021 23:23:36 +0200 Subject: Refactoring + Mainly just moving stuff out or arch/riscv/ that should be handled in common/ + Prepared separate process stack/call stack for server callbacks, rest to be implemeted soon ish --- common/main.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 common/main.c (limited to 'common/main.c') diff --git a/common/main.c b/common/main.c new file mode 100644 index 0000000..f91fc22 --- /dev/null +++ b/common/main.c @@ -0,0 +1,52 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef DEBUG +static struct dbg_info dbg_info = (struct dbg_info){0}; + +static void init_dbg(void *fdt) +{ + dbg_info = dbg_from_fdt(fdt); +} + +static void setup_dmap_dbg() +{ + setup_dbg(dbg_info.dbg_ptr, dbg_info.dev); +} + +static void setup_io_dbg(struct vm_branch *b) +{ + vm_t io_ptr = setup_kernel_io(b, dbg_info.dbg_ptr); + setup_dbg(io_ptr, dbg_info.dev); +} +#else +#define init_dbg(...) +#define setup_dmap_dbg(...) +#define setup_io_dbg(...) +#endif + +void __main main(void *fdt) +{ + /* dbg uses direct mapping at this point */ + init_dbg(fdt); + setup_dmap_dbg(); + dbg_fdt(fdt); + + arch_setup(fdt); + + init_pmem(fdt); + init_mem_blocks(); + struct vm_branch *b = init_vmem(fdt); + + /* start up debugging in kernel IO */ + setup_io_dbg(b); + + init_irq(fdt); + init_proc(fdt, b); +} -- cgit v1.3