From owner-p4-projects@FreeBSD.ORG Thu Nov 13 22:33:34 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7F36816A4D0; Thu, 13 Nov 2003 22:33:34 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 577EE16A4CE for ; Thu, 13 Nov 2003 22:33:34 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C6CA043FDF for ; Thu, 13 Nov 2003 22:33:33 -0800 (PST) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id hAE6XXXJ098895 for ; Thu, 13 Nov 2003 22:33:33 -0800 (PST) (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id hAE6XX8F098892 for perforce@freebsd.org; Thu, 13 Nov 2003 22:33:33 -0800 (PST) (envelope-from jmallett@freebsd.org) Date: Thu, 13 Nov 2003 22:33:33 -0800 (PST) Message-Id: <200311140633.hAE6XX8F098892@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jmallett@freebsd.org using -f From: Juli Mallett To: Perforce Change Reviews Subject: PERFORCE change 42309 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Nov 2003 06:33:35 -0000 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