aboutsummaryrefslogtreecommitdiff
path: root/pk/pk.c
diff options
context:
space:
mode:
authorColin Schmidt <colins@eecs.berkeley.edu>2019-08-26 10:40:08 -0700
committerColin Schmidt <colins@eecs.berkeley.edu>2019-08-26 10:40:08 -0700
commit191fc4bfab264bc7aa28c1e07f938e534b474d35 (patch)
treef7e9d3928f5425e92b96498ce2c654d52fba12f6 /pk/pk.c
parentc53de08b9ba719f3e7b02fc1a029d194a190da48 (diff)
parent3d921d3c76db3af7b9ae0b5df0f0790f26222246 (diff)
downloadpk-rocc-enable.zip
pk-rocc-enable.tar.gz
pk-rocc-enable.tar.bz2
Merge commit '3d921d3c76db3af7b9ae0b5df0f0790f26222246' into rocc-enablerocc-enable
Diffstat (limited to 'pk/pk.c')
-rw-r--r--pk/pk.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/pk/pk.c b/pk/pk.c
index 25cd5a5..e7cfc3a 100644
--- a/pk/pk.c
+++ b/pk/pk.c
@@ -7,6 +7,7 @@
#include <stdbool.h>
elf_info current;
+long disabled_hart_mask;
static void handle_option(const char* s)
{
@@ -154,18 +155,19 @@ static void rest_of_boot_loader(uintptr_t kstack_top)
run_loaded_program(argc, args.argv, kstack_top);
}
-void boot_loader()
+void boot_loader(uintptr_t dtb)
{
extern char trap_entry;
write_csr(stvec, &trap_entry);
write_csr(sscratch, 0);
write_csr(sie, 0);
+ set_csr(sstatus, SSTATUS_SUM);
file_init();
- enter_supervisor_mode(rest_of_boot_loader, pk_vm_init());
+ enter_supervisor_mode(rest_of_boot_loader, pk_vm_init(), 0);
}
-void boot_other_hart()
+void boot_other_hart(uintptr_t dtb)
{
// stall all harts besides hart 0
while (1)