aboutsummaryrefslogtreecommitdiff
path: root/src/proc.c
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2024-10-30 14:23:07 +0200
committerKimplul <kimi.h.kuparinen@gmail.com>2024-11-01 10:27:45 +0200
commitdc71f4f38f49ed3a3b67098b7926a0731e9ce225 (patch)
tree92c3bdd34504d86c19a7dbd8f1059018799add68 /src/proc.c
parentf139fff6ae7063c1965fa3085bb2585d7d838d72 (diff)
downloadkmi-dc71f4f38f49ed3a3b67098b7926a0731e9ce225.tar.gz
kmi-dc71f4f38f49ed3a3b67098b7926a0731e9ce225.zip
remember to set regs to some valid address
+ Worked in qemu, failed in visionfive2, fixed.
Diffstat (limited to 'src/proc.c')
-rw-r--r--src/proc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/proc.c b/src/proc.c
index 62b3e42..b1682bf 100644
--- a/src/proc.c
+++ b/src/proc.c
@@ -56,6 +56,8 @@ stat_t init_proc(void *fdt, vm_t *proc_fdt, vm_t *proc_initrd)
* save them here before we switch */
use_tcb(t);
+ set_stack(t, t->rpc_stack - BASE_PAGE_SIZE);
+
/* allocate stacks etc after ELF file to make sure nothing of importance
* clashes */
stat_t ret = prepare_proc(t, get_init_base(fdt), 0);
@@ -72,7 +74,6 @@ stat_t init_proc(void *fdt, vm_t *proc_fdt, vm_t *proc_initrd)
*proc_initrd = map_shared_fixed_uvmem(t,
initrd, get_initrdsize(fdt),
VM_V | VM_R | VM_U);
-
info("mapped fdt at %lx\n", *proc_fdt);
info("mapped initrd at %lx\n", *proc_initrd);
return OK;