From 1aac36f788834699b6891aea7a83eb950bd5e8f6 Mon Sep 17 00:00:00 2001 From: stefan Date: Sat, 8 Apr 2023 20:42:18 -0400 Subject: no idea whot i changed lol --- sys/kern/init.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'sys/kern/init.c') diff --git a/sys/kern/init.c b/sys/kern/init.c index 18feaa3..208df6d 100644 --- a/sys/kern/init.c +++ b/sys/kern/init.c @@ -1,20 +1,35 @@ #include +#include #include #include -#include +#include extern uint64_t HEAP_START; void init(unsigned long hartid, struct fdt_header *fdt) { + printf("booting from hart #%d\n", hartid); + asm volatile ("mv tp, %0" : : "r"(hartid)); if (fdt_uint32(fdt->magic) == FDT_HEADER_MAGIC) printf("found flattened device tree at %p!\n", (uint64_t)fdt); + printf("parsing device tree!\n"); + fdt_walk(fdt); + printf("setting up the heap at %p\n", HEAP_START); kalloc_init(); printf("done!\n"); - printf("printing free pages:\n"); - walkfree(); + // printf("printing free pages:\n"); + //walkfree(); +} + +/* non boot harts enter here */ +void +mpinit(unsigned long hartid, struct fdt_header *fdt) +{ + unsigned char *uart = (unsigned char*)0x10000000; + *uart = hartid + '0'; + *(uart + 1) = '\n'; } -- cgit v1.2.3