Skip site navigation (1)Skip section navigation (2)
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>