aboutsummaryrefslogtreecommitdiff
path: root/kernel/main.c
diff options
context:
space:
mode:
authorMiquel Sabaté Solà <mikisabate@gmail.com>2024-12-04 17:23:57 +0100
committerMiquel Sabaté Solà <mikisabate@gmail.com>2024-12-04 17:23:57 +0100
commit22a681a07ab09922435ad0a9f665290a30f6b85b (patch)
tree084fd239e826c8ab03d0d5ade73eac26f05c1e3a /kernel/main.c
parent4c25981400e9d6d7c15df70dac32b6c8819b77a5 (diff)
downloadfbos-22a681a07ab09922435ad0a9f665290a30f6b85b.tar.gz
fbos-22a681a07ab09922435ad0a9f665290a30f6b85b.zip
Pass the hart ID on start_kernel instead
Instead of storing the hard ID as given by the bootloader into a C variable, pass it directly into the 'start_kernel' function since we don't need to tamper the value as originally laid out on the 'a0' register. Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
Diffstat (limited to 'kernel/main.c')
-rw-r--r--kernel/main.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/kernel/main.c b/kernel/main.c
index 41619d6..3ed8551 100644
--- a/kernel/main.c
+++ b/kernel/main.c
@@ -5,11 +5,8 @@
#include <fbos/string.h>
#include <fbos/dt.h>
-/*
- * Data related to harts and set by kernel/head.S. Defined in fbos/init.h.
- */
+// Defined in fbos/init.h.
atomic32_t hart_lottery __section(".sdata");
-uint32_t hart_id;
// Defined in fbos/sched.h.
uint64_t stack[STACK_SIZE / sizeof(uint64_t)];
@@ -30,7 +27,7 @@ struct dt_info info = {
.initrd_end = 0,
};
-__noreturn __kernel void start_kernel(void *dtb)
+__noreturn __kernel void start_kernel(uint64_t hart_id, void *dtb)
{
printk("Welcome to FizzBuzz OS!\n");