diff options
author | Andrew Waterman <waterman@s141.Millennium.Berkeley.EDU> | 2010-09-09 15:39:40 -0700 |
---|---|---|
committer | Andrew Waterman <waterman@s141.Millennium.Berkeley.EDU> | 2010-09-09 15:39:40 -0700 |
commit | 03e016c3d7909ffd2c162ec21dff61076442fa05 (patch) | |
tree | ceb534368a4dceea4b85928b8d7942f33695cac8 /pk/riscv-pk.c | |
parent | 7fc9ae774bd8c64e53cb35fd88d467c7a18db55f (diff) | |
download | pk-03e016c3d7909ffd2c162ec21dff61076442fa05.zip pk-03e016c3d7909ffd2c162ec21dff61076442fa05.tar.gz pk-03e016c3d7909ffd2c162ec21dff61076442fa05.tar.bz2 |
[pk, sim] added interrupt support to sim; added timer interrupt
Diffstat (limited to 'pk/riscv-pk.c')
-rw-r--r-- | pk/riscv-pk.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/pk/riscv-pk.c b/pk/riscv-pk.c index 8168b33..2c955e4 100644 --- a/pk/riscv-pk.c +++ b/pk/riscv-pk.c @@ -5,19 +5,19 @@ void __attribute__((section(".boottext"))) __start() extern char stack_top; asm("move $sp,%0" : : "r"(&stack_top-64)); - register long sr0 = SR_S | SR_PS | SR_ET; + extern char trap_table; + register void* tt = &trap_table; + mtpcr(tt,PCR_TBR); + + register long sr0 = SR_S | SR_PS | SR_ET | SR_IM; #ifdef PK_ENABLE_KERNEL_64BIT - sr0 |= SR_KX; + sr0 |= SR_SX; #ifdef PK_ENABLE_USER_64BIT sr0 |= SR_UX; #endif #endif mtpcr(sr0,PCR_SR); - extern char trap_table; - register void* tt = &trap_table; - mtpcr(tt,PCR_TBR); - extern void boot(); register void (*boot_p)() = &boot; asm("" : "=r"(boot_p) : "0"(boot_p)); |