some RISC-V fixes
authorAndrew Waterman <waterman@s141.Millennium.Berkeley.EDU>
Tue, 12 Jul 2011 19:34:03 +0000 (12:34 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Thu, 3 Nov 2011 00:36:04 +0000 (17:36 -0700)
kern/arch/riscv/boot.S
kern/arch/riscv/kernel.ld
kern/arch/riscv/ros/mmu.h
kern/arch/riscv/trap.c

index b67af71..f45a9f1 100644 (file)
 // entry point
 ///////////////////////////////////////////////////////////////////
 
-.section ".boottext"
+.text
 
 .global _start
+.ent _start
 _start:
   // This is the first kernel code that executes; it is run only by core 0.
 
@@ -86,6 +87,7 @@ notcore0:
   lui    $t0, %hi(smp_init)
   jalr.j $t0, %lo(smp_init)
 
+.end _start
 ///////////////////////////////////////////////////////////////////
 // boot stack and regular stacks.
 // (boot stack cannot be in .bss, as .bss is later zereoed by the kernel.)
index 32a10fa..7f1ef92 100644 (file)
@@ -9,7 +9,6 @@ SECTIONS
        /* Link the kernel for 0xC01000C0, but load it at 0x001000C0) */
 
        .text 0xFFFFFFFF80000000 : AT(0) {
-         *(.boottext)
                *(.text .stub .text.* .gnu.linkonce.t.*)
        }
 
index 56c97a2..7d467f1 100644 (file)
@@ -3,8 +3,8 @@
 
 // All physical memory mapped at this address
 #ifdef __riscv64
-# define KERNBASE       0xFFFF800000000000
-# define ULIM           0x0000800000000000
+# define KERNBASE       0xFFFFFF0000000000
+# define ULIM           0x0000010000000000
 # define KERN_LOAD_ADDR 0xFFFFFFFF80000000
 # define KERN_VMAP_TOP         KERN_LOAD_ADDR // upper 2GB reserved (see mmu_init)
 # define NPTLEVELS                       4
index 9110e42..b2f9506 100644 (file)
@@ -337,11 +337,11 @@ handle_fault_fetch(trapframe_t* state)
        if(in_kernel(state))
        {
                print_trapframe(state);
-               panic("Load Page Fault in the Kernel at %p!", state->badvaddr);
+               panic("Instruction Page Fault in the Kernel at %p!", state->badvaddr);
        }
        
        if(handle_page_fault(current, state->badvaddr, PROT_READ))
-               unhandled_trap(state, "Load Page Fault");
+               unhandled_trap(state, "Instruction Page Fault");
 }
 
 static void