diff options
author | Colin Schmidt <colins@eecs.berkeley.edu> | 2019-08-26 10:40:08 -0700 |
---|---|---|
committer | Colin Schmidt <colins@eecs.berkeley.edu> | 2019-08-26 10:40:08 -0700 |
commit | 191fc4bfab264bc7aa28c1e07f938e534b474d35 (patch) | |
tree | f7e9d3928f5425e92b96498ce2c654d52fba12f6 /pk/pk.c | |
parent | c53de08b9ba719f3e7b02fc1a029d194a190da48 (diff) | |
parent | 3d921d3c76db3af7b9ae0b5df0f0790f26222246 (diff) | |
download | pk-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.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -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) |