aboutsummaryrefslogtreecommitdiff
path: root/arch/riscv64
diff options
context:
space:
mode:
Diffstat (limited to 'arch/riscv64')
-rwxr-xr-xarch/riscv64/conf/initbin3960 -> 3960 bytes
-rw-r--r--arch/riscv64/conf/init.c16
-rw-r--r--arch/riscv64/conf/initrdbin4608 -> 4608 bytes
-rw-r--r--arch/riscv64/kernel/proc.c9
4 files changed, 8 insertions, 17 deletions
diff --git a/arch/riscv64/conf/init b/arch/riscv64/conf/init
index 5b06586..5248f8f 100755
--- a/arch/riscv64/conf/init
+++ b/arch/riscv64/conf/init
Binary files differ
diff --git a/arch/riscv64/conf/init.c b/arch/riscv64/conf/init.c
index c61848e..c3e8334 100644
--- a/arch/riscv64/conf/init.c
+++ b/arch/riscv64/conf/init.c
@@ -178,14 +178,6 @@ static uint64_t sys_swap(long tid)
return 0;
}
-static void sys_ipc_server(void *f)
-{
- struct sys_ret r = ecall2(SYS_IPC_SERVER, (long)f);
-
- if (r.s != 0)
- print_value("ipc_server() failed with error ", r.s);
-}
-
static inline struct sys_ret sys_ipc_req(sys_arg_t pid,
sys_arg_t d0, sys_arg_t d1,
sys_arg_t d2,
@@ -381,14 +373,12 @@ static void handle_kernel(long a0, long a1, long d0, long d1, long d2, long d3)
sys_poweroff(0);
}
-void _start(long a0, long a1, long d0, long d1, long d2, long d3)
+void _start(long pid, long tid, long d0, long d1, long d2, long d3)
{
- if (a0 == 0)
- handle_kernel(a0, a1, d0, d1, d2, d3);
+ if (pid == 0)
+ handle_kernel(pid, tid, d0, d1, d2, d3);
/* otherwise, implement test functionality */
- long pid = a0;
- long tid = a1;
if (d0 == 1) {
void *cbuf = 0;
rw_buf = sys_req_sharedmem(pid, rw_buf_size, &cbuf);
diff --git a/arch/riscv64/conf/initrd b/arch/riscv64/conf/initrd
index a792456..bc0858e 100644
--- a/arch/riscv64/conf/initrd
+++ b/arch/riscv64/conf/initrd
Binary files differ
diff --git a/arch/riscv64/kernel/proc.c b/arch/riscv64/kernel/proc.c
index 4310378..413c078 100644
--- a/arch/riscv64/kernel/proc.c
+++ b/arch/riscv64/kernel/proc.c
@@ -31,15 +31,16 @@ void run_init(struct tcb *t, vm_t fdt, vm_t initrd)
bkl_unlock();
__asm__ volatile ("mv sp, %0\n"
"li a0, %1\n"
- "li a1, %2\n"
- "mv a2, %3\n"
+ "mv a1, %2\n"
+ "li a2, %3\n"
"mv a3, %4\n"
"mv a4, %5\n"
+ "li a5, %6\n"
"sret\n"
:
: "r" (stack_top),
- "K" (0), "K" (SYS_USER_BOOTED),
- "r" (t->tid), "r" (fdt), "r" (initrd)
+ "K" (0), "r" (t->tid), "K" (SYS_USER_BOOTED),
+ "r" (fdt), "r" (initrd), "K" (1)
: "memory");
/* we should never reach this */
unreachable();