PERFORCE change 42309 for review
Juli Mallett
jmallett at FreeBSD.org
Thu Nov 13 22:33:35 PST 2003
http://perforce.freebsd.org/chv.cgi?CH=42309
Change 42309 by jmallett at 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
More information about the p4-projects
mailing list