Date: Thu, 13 Nov 2003 22:33:33 -0800 (PST) From: Juli Mallett <jmallett@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 42309 for review Message-ID: <200311140633.hAE6XX8F098892@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=42309 Change 42309 by jmallett@jmallett_dalek on 2003/11/13 22:32:44 Do some very, very evil things. 1) Use the kernel PTE map for all pmap_pinit'd procs. 2) Use the XKPHYS region for pmap_map + pmap_mapdev. Why is 2 evil, you may ask? Because of the reason why I did it. Some things are apparently mappin the physical address before passing it into pmap_enter to be entered into the TLB, which is bogus with the compatability kseg's, as they'll have extra bits set, XKPHYS will not. This isn't *quite* acceptible, but I want to use XKPHYS, anyway :) So, I need to figure out who's entering things into the TLB, but uh, this makes things run to SI_SUB_CONFIGURE so I won't be bitching. Affected files ... .. //depot/projects/mips/sys/mips/mips/pmap.c#24 edit Differences ... ==== //depot/projects/mips/sys/mips/mips/pmap.c#24 (text+ko) ==== @@ -674,7 +674,7 @@ vm_offset_t pmap_map(vm_offset_t *virt, vm_offset_t start, vm_offset_t end, int prot) { - return MIPS_PHYS_TO_KSEG0(start); + return MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_UC, start); } void @@ -701,7 +701,7 @@ pmap_pinit(pmap) register struct pmap *pmap; { - panic("pmap_pinit %p", pmap); + pmap->pm_lev1 = kptmap; /* XXX */ pmap->pm_ptphint = NULL; pmap->pm_active = 0; pmap->pm_asid = 0; @@ -1594,7 +1594,7 @@ void * pmap_mapdev(vm_offset_t pa, vm_size_t size) { - return (void*) MIPS_PHYS_TO_KSEG1(pa); + return (void *)MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_UC, pa); } void
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200311140633.hAE6XX8F098892>