svn commit: r206062 - in user/jmallett/octeon/sys/mips: include mips

Juli Mallett jmallett at FreeBSD.org
Fri Apr 2 02:17:16 UTC 2010


Author: jmallett
Date: Fri Apr  2 02:17:15 2010
New Revision: 206062
URL: http://svn.freebsd.org/changeset/base/206062

Log:
  Go back to 64-bit PTEs on N64.  Nothing much has been updated for this but some
  format strings.
  
  Ifdef out some code that's only used by the recursive mappings that are used to
  map >=512mb pages in the page table on O32 and N32.

Modified:
  user/jmallett/octeon/sys/mips/include/pte.h
  user/jmallett/octeon/sys/mips/mips/pmap.c
  user/jmallett/octeon/sys/mips/mips/trap.c

Modified: user/jmallett/octeon/sys/mips/include/pte.h
==============================================================================
--- user/jmallett/octeon/sys/mips/include/pte.h	Fri Apr  2 01:53:48 2010	(r206061)
+++ user/jmallett/octeon/sys/mips/include/pte.h	Fri Apr  2 02:17:15 2010	(r206062)
@@ -83,7 +83,7 @@ struct tlb {
 	int	tlb_lo1;
 };
 
-typedef int32_t pt_entry_t;
+typedef unsigned long pt_entry_t;
 typedef pt_entry_t *pd_entry_t;
 
 #define	PDESIZE		sizeof(pd_entry_t)	/* for assembly files */

Modified: user/jmallett/octeon/sys/mips/mips/pmap.c
==============================================================================
--- user/jmallett/octeon/sys/mips/mips/pmap.c	Fri Apr  2 01:53:48 2010	(r206061)
+++ user/jmallett/octeon/sys/mips/mips/pmap.c	Fri Apr  2 02:17:15 2010	(r206062)
@@ -974,11 +974,14 @@ pmap_unmap_fpage(vm_paddr_t pa, struct f
 static int
 _pmap_unwire_pte_hold(pmap_t pmap, vm_page_t m)
 {
+#if !defined(__mips_n64)
 	vm_offset_t pteva;
+#endif
 
 	/*
 	 * unmap the page table page
 	 */
+#if !defined(__mips_n64)
 	pteva = (vm_offset_t)pmap->pm_segtab[m->pindex];
 	if (pteva >= VM_MIN_KERNEL_ADDRESS) {
 		pmap_kremove(pteva);
@@ -988,6 +991,7 @@ _pmap_unwire_pte_hold(pmap_t pmap, vm_pa
 		    ("_pmap_unwire_pte_hold: 0x%0lx is not in kseg0",
 		    (long)pteva));
 	}
+#endif
 
 	pmap->pm_segtab[m->pindex] = 0;
 	--pmap->pm_stats.resident_count;
@@ -1285,6 +1289,7 @@ pmap_release(pmap_t pmap)
 	ptdva = (vm_offset_t)pmap->pm_segtab;
 	ptdpg = PHYS_TO_VM_PAGE(vtophys(ptdva));
 
+#if !defined(__mips_n64)
 	if (ptdva >= VM_MIN_KERNEL_ADDRESS) {
 		pmap_kremove(ptdva);
 		kmem_free(kernel_map, ptdva, PAGE_SIZE);
@@ -1292,6 +1297,7 @@ pmap_release(pmap_t pmap)
 		KASSERT(MIPS_IS_KSEG0_ADDR(ptdva),
 		    ("pmap_release: 0x%0lx is not in kseg0", (long)ptdva));
 	}
+#endif
 
 	ptdpg->wire_count--;
 	atomic_subtract_int(&cnt.v_wire_count, 1);
@@ -2024,7 +2030,7 @@ validate:
 			if (origpte & PTE_M) {
 				KASSERT((origpte & PTE_RW),
 				    ("pmap_enter: modified page not writable:"
-				    " va: %p, pte: 0x%x", (void *)va, origpte));
+				    " va: %p, pte: 0x%lx", (void *)va, origpte));
 				if (page_is_managed(opa))
 					vm_page_dirty(om);
 			}
@@ -2718,7 +2724,7 @@ pmap_remove_pages(pmap_t pmap)
 		m = PHYS_TO_VM_PAGE(mips_tlbpfn_to_paddr(tpte));
 
 		KASSERT(m < &vm_page_array[vm_page_array_size],
-		    ("pmap_remove_pages: bad tpte %x", tpte));
+		    ("pmap_remove_pages: bad tpte %lx", tpte));
 
 		pv->pv_pmap->pm_stats.resident_count--;
 

Modified: user/jmallett/octeon/sys/mips/mips/trap.c
==============================================================================
--- user/jmallett/octeon/sys/mips/mips/trap.c	Fri Apr  2 01:53:48 2010	(r206061)
+++ user/jmallett/octeon/sys/mips/mips/trap.c	Fri Apr  2 02:17:15 2010	(r206062)
@@ -1349,7 +1349,7 @@ log_illegal_instruction(const char *msg,
 	if (!(pc & 3) &&
 	    useracc((caddr_t)(intptr_t)pc, sizeof(int) * 4, VM_PROT_READ)) {
 		/* dump page table entry for faulting instruction */
-		log(LOG_ERR, "Page table info for pc address %#jx: pde = %p, pte = %#x\n",
+		log(LOG_ERR, "Page table info for pc address %#jx: pde = %p, pte = %#lx\n",
 		    (intmax_t)pc, (void *)(intptr_t)*pdep, ptep ? *ptep : 0);
 
 		addr = (unsigned int *)(intptr_t)pc;
@@ -1358,7 +1358,7 @@ log_illegal_instruction(const char *msg,
 		log(LOG_ERR, "%08x %08x %08x %08x\n",
 		    addr[0], addr[1], addr[2], addr[3]);
 	} else {
-		log(LOG_ERR, "pc address %#jx is inaccessible, pde = %p, pte = %#x\n",
+		log(LOG_ERR, "pc address %#jx is inaccessible, pde = %p, pte = %#lx\n",
 		    (intmax_t)pc, (void *)(intptr_t)*pdep, ptep ? *ptep : 0);
 	}
 }
@@ -1413,7 +1413,7 @@ log_bad_page_fault(char *msg, struct tra
 	    (trap_type != T_BUS_ERR_IFETCH) &&
 	    useracc((caddr_t)(intptr_t)pc, sizeof(int) * 4, VM_PROT_READ)) {
 		/* dump page table entry for faulting instruction */
-		log(LOG_ERR, "Page table info for pc address %#jx: pde = %p, pte = %#x\n",
+		log(LOG_ERR, "Page table info for pc address %#jx: pde = %p, pte = %#lx\n",
 		    (intmax_t)pc, (void *)(intptr_t)*pdep, ptep ? *ptep : 0);
 
 		addr = (unsigned int *)(intptr_t)pc;
@@ -1422,7 +1422,7 @@ log_bad_page_fault(char *msg, struct tra
 		log(LOG_ERR, "%08x %08x %08x %08x\n",
 		    addr[0], addr[1], addr[2], addr[3]);
 	} else {
-		log(LOG_ERR, "pc address %#jx is inaccessible, pde = %p, pte = %#x\n",
+		log(LOG_ERR, "pc address %#jx is inaccessible, pde = %p, pte = %#lx\n",
 		    (intmax_t)pc, (void *)(intptr_t)*pdep, ptep ? *ptep : 0);
 	}
 	/*	panic("Bad trap");*/


More information about the svn-src-user mailing list