diff options
author | Andrew Waterman <waterman@s141.Millennium.Berkeley.EDU> | 2010-08-24 02:22:20 -0700 |
---|---|---|
committer | Andrew Waterman <waterman@s141.Millennium.Berkeley.EDU> | 2010-08-24 02:22:20 -0700 |
commit | dd84f5743dd5527f08df7cebb1423149926eacdc (patch) | |
tree | 75f46a739d8f10d5864669bde6b7403a15adace3 /pk/riscv-pk.c | |
parent | 049091755596801479538bcc4722bc2810471aa0 (diff) | |
download | pk-dd84f5743dd5527f08df7cebb1423149926eacdc.zip pk-dd84f5743dd5527f08df7cebb1423149926eacdc.tar.gz pk-dd84f5743dd5527f08df7cebb1423149926eacdc.tar.bz2 |
[pk] proxy kernel support for mixed 32b/64b operation
Diffstat (limited to 'pk/riscv-pk.c')
-rw-r--r-- | pk/riscv-pk.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/pk/riscv-pk.c b/pk/riscv-pk.c index dfcc71d..8168b33 100644 --- a/pk/riscv-pk.c +++ b/pk/riscv-pk.c @@ -5,7 +5,13 @@ 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 | SR_UX | SR_KX; + register long sr0 = SR_S | SR_PS | SR_ET; + #ifdef PK_ENABLE_KERNEL_64BIT + sr0 |= SR_KX; + #ifdef PK_ENABLE_USER_64BIT + sr0 |= SR_UX; + #endif + #endif mtpcr(sr0,PCR_SR); extern char trap_table; |