summaryrefslogtreecommitdiff
path: root/src/arch/riscv/boot.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/riscv/boot.c')
-rw-r--r--src/arch/riscv/boot.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/arch/riscv/boot.c b/src/arch/riscv/boot.c
index d3ae693376..aaaac485ea 100644
--- a/src/arch/riscv/boot.c
+++ b/src/arch/riscv/boot.c
@@ -36,7 +36,7 @@ struct arch_prog_run_args {
static void do_arch_prog_run(struct arch_prog_run_args *args)
{
- int hart_id;
+ int hart_id = HLS()->hart_id;
struct prog *prog = args->prog;
void *fdt = HLS()->fdt;
@@ -49,11 +49,8 @@ static void do_arch_prog_run(struct arch_prog_run_args *args)
else
run_payload(prog, fdt, RISCV_PAYLOAD_MODE_S);
} else {
- void (*doit)(int hart_id, void *fdt) = prog_entry(prog);
-
- hart_id = HLS()->hart_id;
-
- doit(hart_id, fdt);
+ void (*doit)(int hart_id, void *fdt, void *arg) = prog_entry(prog);
+ doit(hart_id, fdt, prog_entry_arg(prog));
}
die("Failed to run stage");