Added mon_cpuinfo and removed an annoying warning
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 26 Mar 2009 21:24:49 +0000 (14:24 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 26 Mar 2009 21:24:49 +0000 (14:24 -0700)
kern/monitor.c
kern/monitor.h
kern/pmap.c

index 365ecf5..7fa7cdf 100644 (file)
@@ -17,6 +17,7 @@
 #include <kern/trap.h>
 #include <kern/kdebug.h>
 #include <kern/pmap.h>
+#include <kern/apic.h>
 
 #define CMDBUF_SIZE    80      // enough for one VGA text line
 
@@ -34,6 +35,7 @@ static command_t commands[] = {
        { "reboot", "Take a ride to the South Bay", mon_reboot },
        { "showmapping", "Shows VA->PA mappings between two virtual addresses (parameters)", mon_showmapping},
        { "setmapperm", "Sets permissions on a VA->PA mapping", mon_setmapperm},
+       { "cpuinfo", "Prints CPU diagnostics", mon_cpuinfo},
 };
 #define NCOMMANDS (sizeof(commands)/sizeof(commands[0]))
 
@@ -205,6 +207,13 @@ int mon_setmapperm(int argc, char **argv, struct Trapframe *tf)
        return 0;
 }
 
+int mon_cpuinfo(int argc, char **argv, struct Trapframe *tf)
+{
+       extern uint8_t num_cpus;
+       cprintf("Number of CPUs detected: %d\n", num_cpus);     
+       cprintf("Current CPU's LAPIC ID: 0x%08x\n", lapic_get_id());
+       return 0;
+}
 
 /***** Kernel monitor command interpreter *****/
 
index e23c457..2a0fbbd 100644 (file)
@@ -16,5 +16,6 @@ int mon_backtrace(int argc, char *NTS *NT COUNT(argc) argv, struct Trapframe *tf
 int mon_reboot(int argc, char *NTS *NT COUNT(argc) argv, struct Trapframe *tf);
 int mon_showmapping(int argc, char *NTS *NT COUNT(argc) argv, struct Trapframe *tf);
 int mon_setmapperm(int argc, char *NTS *NT COUNT(argc) argv, struct Trapframe *tf);
+int mon_cpuinfo(int argc, char *NTS *NT COUNT(argc) argv, struct Trapframe *tf);
 
 #endif // !JOS_KERN_MONITOR_H
index 3bf967f..54d148f 100644 (file)
@@ -223,9 +223,6 @@ boot_map_segment(pde_t *pgdir, uintptr_t la, size_t size, physaddr_t pa, int per
                warn("la not page aligned in boot_map_segment!");
                size += PGOFF(la);
        }
-       // even though our maxpa doesn't go above 64MB yet...
-       if (pa + size > maxpa)
-               warn("Attempting to map to physical memory beyond maxpa!");
        if (perm & PTE_PS) {
                if (JPGOFF(la) || JPGOFF(pa))
                        panic("Tried to map a Jumbo page at an unaligned address!");