improve risc-v console
[akaros.git] / kern / arch / riscv / boot.S
index 14af7f1..c7c265a 100644 (file)
@@ -16,7 +16,7 @@
 // entry point
 ///////////////////////////////////////////////////////////////////
 
 // entry point
 ///////////////////////////////////////////////////////////////////
 
-#define PCR0 (SR_S | SR_ET | SR_SX)
+#define PCR0 (SR_S | SR_ET | SR_S64 | (1 << (IRQ_IPI + SR_IM_SHIFT)))
 .text
 
 .global _start
 .text
 
 .global _start
@@ -40,7 +40,7 @@ _start:
 
   // terminate frame pointer for backtracing and set up stack
   li     s9, 0
 
   // terminate frame pointer for backtracing and set up stack
   li     s9, 0
-  la     sp, bootstacktop
+  la     sp, percore_stacks + KSTKSIZE
   li     t1, KERN_LOAD_ADDR
   sub    sp, sp, t1
 
   li     t1, KERN_LOAD_ADDR
   sub    sp, sp, t1
 
@@ -64,7 +64,7 @@ _start:
   // relocate stack and call into C code using absolute jump, not pc-relative
   move   a0, s0
   move   a1, s1
   // relocate stack and call into C code using absolute jump, not pc-relative
   move   a0, s0
   move   a1, s1
-  la     sp, bootstacktop
+  la     sp, percore_stacks + KSTKSIZE
   la     t0, cmain
   jr     t0
 
   la     t0, cmain
   jr     t0
 
@@ -113,12 +113,6 @@ l1pt:
 l2pt:
   .space  PGSIZE
 
 l2pt:
   .space  PGSIZE
 
-  .space  KSTKSIZE
-  .global bootstacktop
-bootstacktop:
-
-.bss
-  .align  PGSHIFT
   .global percore_stacks
 percore_stacks:
   .space  KSTKSIZE*MAX_NUM_CPUS
   .global percore_stacks
 percore_stacks:
   .space  KSTKSIZE*MAX_NUM_CPUS