diff options
author | Andrew Waterman <waterman@s144.Millennium.Berkeley.EDU> | 2011-04-15 15:52:00 -0700 |
---|---|---|
committer | Andrew Waterman <waterman@s144.Millennium.Berkeley.EDU> | 2011-04-15 15:52:00 -0700 |
commit | 0d603acb91f455adb879ea45fdb84313067f4293 (patch) | |
tree | c74a7524a52e898237446e0c2da55ac9be06f51c /pk/riscv-pk.c | |
parent | ba0cf0546686acac7e891d9740009bcc4ada73ee (diff) | |
download | pk-0d603acb91f455adb879ea45fdb84313067f4293.zip pk-0d603acb91f455adb879ea45fdb84313067f4293.tar.gz pk-0d603acb91f455adb879ea45fdb84313067f4293.tar.bz2 |
[pk] load pk at addr 0; user stack top = MEMSIZE
Diffstat (limited to 'pk/riscv-pk.c')
-rw-r--r-- | pk/riscv-pk.c | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/pk/riscv-pk.c b/pk/riscv-pk.c deleted file mode 100644 index 0af487d..0000000 --- a/pk/riscv-pk.c +++ /dev/null @@ -1,32 +0,0 @@ -#include "pcr.h" -#include "pk.h" - -void __attribute__((section(".boottext"))) __start() -{ - extern char stack_top; - asm volatile("move $sp,%0" : : "r"(&stack_top-64) : "memory"); - - extern char trap_entry; - register void* te = &trap_entry; - mtpcr(te,PCR_EVEC); - - mtpcr(0,PCR_COUNT); - mtpcr(0,PCR_COMPARE); - - register long sr0 = SR_S | SR_PS | SR_ET | SR_IM | SR_EC; - if(sizeof(void*) == 8) - sr0 |= SR_SX; - - mtpcr(sr0 | SR_EF, PCR_SR); - have_fp = mfpcr(PCR_SR) & SR_EF; - mtpcr(sr0, PCR_SR); - - mtpcr(sr0 | SR_EV, PCR_SR); - have_vector = mfpcr(PCR_SR) & SR_EV; - mtpcr(sr0, PCR_SR); - - extern void boot(); - register void (*boot_p)() = &boot; - asm("" : "=r"(boot_p) : "0"(boot_p)); - boot_p(); -} |