Module Name:    src
Committed By:   uebayasi
Date:           Sat Aug 14 02:09:58 UTC 2010

Modified Files:
        src/sys/arch/evbppc/obs405 [uebayasi-xip]: obs266_machdep.c
        src/sys/arch/powerpc/ibm4xx [uebayasi-xip]: pmap.c
        src/sys/arch/powerpc/include/ibm4xx [uebayasi-xip]: vmparam.h

Log Message:
Teach TLB miss handler (pmap_tlbmiss()) to map "Expansion ROM" area as
PA == VA.  Now we don't need to reserve a TLB entry for it.


To generate a diff of this commit:
cvs rdiff -u -r1.10.2.2 -r1.10.2.3 \
    src/sys/arch/evbppc/obs405/obs266_machdep.c
cvs rdiff -u -r1.60.2.4 -r1.60.2.5 src/sys/arch/powerpc/ibm4xx/pmap.c
cvs rdiff -u -r1.6.2.2 -r1.6.2.3 \
    src/sys/arch/powerpc/include/ibm4xx/vmparam.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/evbppc/obs405/obs266_machdep.c
diff -u src/sys/arch/evbppc/obs405/obs266_machdep.c:1.10.2.2 src/sys/arch/evbppc/obs405/obs266_machdep.c:1.10.2.3
--- src/sys/arch/evbppc/obs405/obs266_machdep.c:1.10.2.2	Wed Aug 11 14:02:45 2010
+++ src/sys/arch/evbppc/obs405/obs266_machdep.c	Sat Aug 14 02:09:57 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: obs266_machdep.c,v 1.10.2.2 2010/08/11 14:02:45 uebayasi Exp $	*/
+/*	$NetBSD: obs266_machdep.c,v 1.10.2.3 2010/08/14 02:09:57 uebayasi Exp $	*/
 /*	Original: md_machdep.c,v 1.3 2005/01/24 18:47:37 shige Exp $	*/
 
 /*
@@ -68,7 +68,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: obs266_machdep.c,v 1.10.2.2 2010/08/11 14:02:45 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: obs266_machdep.c,v 1.10.2.3 2010/08/14 02:09:57 uebayasi Exp $");
 
 #include "opt_compat_netbsd.h"
 #include "opt_ddb.h"
@@ -150,11 +150,6 @@
 	for (va = 0; va < endkernel; va += TLB_PG_SIZE)
 		ppc4xx_tlb_reserve(va, va, TLB_PG_SIZE, TLB_EX);
 
-#ifdef XIP
-	/* Map NOR FlashROM as managed. */
-	ppc4xx_tlb_reserve(0xff000000, 0xff000000, TLB_PG_SIZE, TLB_I);
-#endif
-
 	/* Map console after RAM (see pmap_tlbmiss()) */
 	ppc4xx_tlb_reserve(CONADDR, roundup(memsize, TLB_PG_SIZE), TLB_PG_SIZE,
 	    TLB_I | TLB_G);

Index: src/sys/arch/powerpc/ibm4xx/pmap.c
diff -u src/sys/arch/powerpc/ibm4xx/pmap.c:1.60.2.4 src/sys/arch/powerpc/ibm4xx/pmap.c:1.60.2.5
--- src/sys/arch/powerpc/ibm4xx/pmap.c:1.60.2.4	Wed Aug 11 13:46:28 2010
+++ src/sys/arch/powerpc/ibm4xx/pmap.c	Sat Aug 14 02:09:57 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.c,v 1.60.2.4 2010/08/11 13:46:28 uebayasi Exp $	*/
+/*	$NetBSD: pmap.c,v 1.60.2.5 2010/08/14 02:09:57 uebayasi Exp $	*/
 
 /*
  * Copyright 2001 Wasabi Systems, Inc.
@@ -67,7 +67,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.60.2.4 2010/08/11 13:46:28 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.60.2.5 2010/08/14 02:09:57 uebayasi Exp $");
 
 #include "opt_xip.h"
 
@@ -1517,7 +1517,8 @@
 	 * to not clobber 0 upto ${physmem} with device mappings in machdep
 	 * code.
 	 */
-	if (ctx != KERNEL_PID || va >= VM_MIN_KERNEL_ADDRESS) {
+	if (ctx != KERNEL_PID ||
+	    (va >= VM_MIN_KERNEL_ADDRESS && va < VM_MAX_KERNEL_ADDRESS)) {
 		pte = pte_find((struct pmap *)__UNVOLATILE(ctxbusy[ctx]), va);
 		if (pte == NULL) {
 			/* Map unmanaged addresses directly for kernel access */

Index: src/sys/arch/powerpc/include/ibm4xx/vmparam.h
diff -u src/sys/arch/powerpc/include/ibm4xx/vmparam.h:1.6.2.2 src/sys/arch/powerpc/include/ibm4xx/vmparam.h:1.6.2.3
--- src/sys/arch/powerpc/include/ibm4xx/vmparam.h:1.6.2.2	Wed Aug 11 13:50:05 2010
+++ src/sys/arch/powerpc/include/ibm4xx/vmparam.h	Sat Aug 14 02:09:57 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: vmparam.h,v 1.6.2.2 2010/08/11 13:50:05 uebayasi Exp $	*/
+/*	$NetBSD: vmparam.h,v 1.6.2.3 2010/08/14 02:09:57 uebayasi Exp $	*/
 
 /*-
  * Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -78,7 +78,7 @@
 #define	VM_MAXUSER_ADDRESS	((vaddr_t)0xffff0000-PAGE_SIZE)
 #define	VM_MAX_ADDRESS		VM_MAXUSER_ADDRESS
 #define	VM_MIN_KERNEL_ADDRESS	((vaddr_t)0x80000000)
-#define	VM_MAX_KERNEL_ADDRESS	((vaddr_t)0xff000000)
+#define	VM_MAX_KERNEL_ADDRESS	((vaddr_t)0xef000000)	/* before I/O periphs */
 #else
 /*
  * Would like to have MAX addresses = 0, but this doesn't (currently) work

Reply via email to