Date: Mon, 12 May 2003 17:43:19 -0700 (PDT) From: Juli Mallett <jmallett@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 31040 for review Message-ID: <200305130043.h4D0hJJn047653@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=31040 Change 31040 by jmallett@jmallett_dalek on 2003/05/12 17:42:23 Cheatingly do things in KSEG0. Instead of fooling with physmem in sgimips_machdep, fool with physsz, and convert and print it as physmem in pmap_bootstrap, as a placeholder for using this variable. Cheat and run with what we've got to work with from ARCS. Affected files ... .. //depot/projects/mips/sys/mips/include/pmap.h#8 edit .. //depot/projects/mips/sys/mips/mips/pmap.c#12 edit .. //depot/projects/mips/sys/mips/sgimips/machdep_sgimips.c#15 edit Differences ... ==== //depot/projects/mips/sys/mips/include/pmap.h#8 (text+ko) ==== @@ -52,6 +52,7 @@ extern vm_offset_t avail_start; extern vm_offset_t avail_end; extern vm_offset_t phys_avail[]; +extern vm_size_t physsz; extern vm_offset_t virtual_avail; extern vm_offset_t virtual_end; extern struct segtab *segbase; ==== //depot/projects/mips/sys/mips/mips/pmap.c#12 (text+ko) ==== @@ -55,6 +55,7 @@ vm_offset_t avail_start; vm_offset_t avail_end; vm_offset_t phys_avail[10]; /* XXX this is wrong */ +vm_size_t physsz; vm_offset_t virtual_avail; vm_offset_t virtual_end; @@ -177,7 +178,7 @@ vm_offset_t pmap_map(vm_offset_t *va, vm_offset_t start, vm_offset_t end, int prot) { - return (MIPS_PHYS_TO_KSEG1(start)); + return (MIPS_PHYS_TO_KSEG0(start)); } int @@ -344,6 +345,9 @@ { int i; + printf("Bootstrapping with %lu bytes of physical memory\n", physsz); + physmem = btoc(physsz); + kptemapsize = PAGE_SIZE; /* XXX placeholder */ kptemap = pmap_steal_memory(sizeof *kptemap * kptemapsize); @@ -364,8 +368,9 @@ /* * Set the start and end of kva. */ - virtual_avail = VM_MIN_KERNEL_ADDRESS; - virtual_end = VM_MAX_KERNEL_ADDRESS; + virtual_avail = avail_start; + virtual_end = avail_end; + kernel_vm_end = virtual_end; } /* ==== //depot/projects/mips/sys/mips/sgimips/machdep_sgimips.c#15 (text+ko) ==== @@ -29,18 +29,19 @@ #include <sys/param.h> #include <sys/systm.h> +#include <vm/vm.h> +#include <vm/vm_page.h> + #include <machine/cpufunc.h> #include <machine/cpuregs.h> #include <machine/hwfunc.h> #include <machine/md_var.h> +#include <machine/pmap.h> #include <platform/intr.h> #include <platform/models.h> #include <platform/sysconf.h> -#include <vm/vm.h> -#include <vm/vm_page.h> - #include <dev/arcbios/arcbios.h> #include <dev/arcbios/arcbiosvar.h> @@ -143,10 +144,8 @@ first, last, mem->Type); break; } - physmem += btoc(size); + physsz += size; } - printf("total memory = %ld (%ld MB)\n", ctob(physmem), - ctob(physmem) / (1024 * 1024)); printf("ARCS memory = %d (%d KB)\n", ctob(arcsmem), ctob(arcsmem) / 1024); printf("avail memory = %d (%d MB)\n", ctob(availmem),
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200305130043.h4D0hJJn047653>