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