Module Name:    src
Committed By:   matt
Date:           Thu Jun 30 00:53:01 UTC 2011

Modified Files:
        src/sys/arch/bebox/bebox: machdep.c
        src/sys/arch/bebox/include: autoconf.h
        src/sys/arch/bebox/pci: pci_machdep.c
        src/sys/arch/evbppc/evbppc: evbppc_machdep.c
        src/sys/arch/evbppc/mpc85xx: machdep.c
        src/sys/arch/evbppc/pmppc/pci: pci_machdep.c
        src/sys/arch/ibmnws/ibmnws: machdep.c
        src/sys/arch/ibmnws/include: autoconf.h
        src/sys/arch/ibmnws/pci: pci_machdep.c
        src/sys/arch/macppc/dev: adb.c esp.c gpio.c if_bm.c if_mc.c mediabay.c
            mesh.c nvram.c zs.c
        src/sys/arch/macppc/include: autoconf.h
        src/sys/arch/macppc/macppc: cpu.c
        src/sys/arch/macppc/pci: bandit.c grackle.c u3.c uninorth.c
        src/sys/arch/mvmeppc/include: autoconf.h
        src/sys/arch/mvmeppc/mvmeppc: machdep.c
        src/sys/arch/mvmeppc/pci: pci_machdep.c
        src/sys/arch/ofppc/ofppc: mainbus.c
        src/sys/arch/powerpc/booke: booke_machdep.c booke_stubs.c e500_tlb.c
        src/sys/arch/powerpc/ibm4xx: pmap.c
        src/sys/arch/powerpc/include: cpu.h
        src/sys/arch/powerpc/include/booke: cpuvar.h pmap.h pte.h
        src/sys/arch/powerpc/include/ibm4xx: pmap.h
        src/sys/arch/powerpc/include/oea: pmap.h
        src/sys/arch/powerpc/oea: oea_machdep.c pmap.c pmap_kernel.c
        src/sys/arch/powerpc/pci: pchb.c
        src/sys/arch/powerpc/powerpc: bus_dma.c bus_space.c
        src/sys/arch/prep/include: autoconf.h
        src/sys/arch/prep/pci: pci_machdep.c
        src/sys/arch/prep/prep: machdep.c
        src/sys/arch/rs6000/include: autoconf.h

Log Message:
Modify mapiodev to take a third argument indicating whether the space
should be prefetchable (true) or not (false).


To generate a diff of this commit:
cvs rdiff -u -r1.100 -r1.101 src/sys/arch/bebox/bebox/machdep.c
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/bebox/include/autoconf.h
cvs rdiff -u -r1.19 -r1.20 src/sys/arch/bebox/pci/pci_machdep.c
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/evbppc/evbppc/evbppc_machdep.c
cvs rdiff -u -r1.14 -r1.15 src/sys/arch/evbppc/mpc85xx/machdep.c
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/evbppc/pmppc/pci/pci_machdep.c
cvs rdiff -u -r1.15 -r1.16 src/sys/arch/ibmnws/ibmnws/machdep.c
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/ibmnws/include/autoconf.h
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/ibmnws/pci/pci_machdep.c
cvs rdiff -u -r1.30 -r1.31 src/sys/arch/macppc/dev/adb.c \
    src/sys/arch/macppc/dev/esp.c
cvs rdiff -u -r1.10 -r1.11 src/sys/arch/macppc/dev/gpio.c
cvs rdiff -u -r1.44 -r1.45 src/sys/arch/macppc/dev/if_bm.c
cvs rdiff -u -r1.19 -r1.20 src/sys/arch/macppc/dev/if_mc.c
cvs rdiff -u -r1.20 -r1.21 src/sys/arch/macppc/dev/mediabay.c
cvs rdiff -u -r1.34 -r1.35 src/sys/arch/macppc/dev/mesh.c
cvs rdiff -u -r1.16 -r1.17 src/sys/arch/macppc/dev/nvram.c
cvs rdiff -u -r1.49 -r1.50 src/sys/arch/macppc/dev/zs.c
cvs rdiff -u -r1.16 -r1.17 src/sys/arch/macppc/include/autoconf.h
cvs rdiff -u -r1.57 -r1.58 src/sys/arch/macppc/macppc/cpu.c
cvs rdiff -u -r1.28 -r1.29 src/sys/arch/macppc/pci/bandit.c
cvs rdiff -u -r1.13 -r1.14 src/sys/arch/macppc/pci/grackle.c
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/macppc/pci/u3.c
cvs rdiff -u -r1.14 -r1.15 src/sys/arch/macppc/pci/uninorth.c
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/mvmeppc/include/autoconf.h
cvs rdiff -u -r1.28 -r1.29 src/sys/arch/mvmeppc/mvmeppc/machdep.c
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/mvmeppc/pci/pci_machdep.c
cvs rdiff -u -r1.27 -r1.28 src/sys/arch/ofppc/ofppc/mainbus.c
cvs rdiff -u -r1.13 -r1.14 src/sys/arch/powerpc/booke/booke_machdep.c
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/powerpc/booke/booke_stubs.c
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/powerpc/booke/e500_tlb.c
cvs rdiff -u -r1.69 -r1.70 src/sys/arch/powerpc/ibm4xx/pmap.c
cvs rdiff -u -r1.87 -r1.88 src/sys/arch/powerpc/include/cpu.h
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/powerpc/include/booke/cpuvar.h
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/powerpc/include/booke/pmap.h
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/powerpc/include/booke/pte.h
cvs rdiff -u -r1.16 -r1.17 src/sys/arch/powerpc/include/ibm4xx/pmap.h
cvs rdiff -u -r1.24 -r1.25 src/sys/arch/powerpc/include/oea/pmap.h
cvs rdiff -u -r1.58 -r1.59 src/sys/arch/powerpc/oea/oea_machdep.c
cvs rdiff -u -r1.80 -r1.81 src/sys/arch/powerpc/oea/pmap.c
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/powerpc/oea/pmap_kernel.c
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/powerpc/pci/pchb.c
cvs rdiff -u -r1.41 -r1.42 src/sys/arch/powerpc/powerpc/bus_dma.c
cvs rdiff -u -r1.27 -r1.28 src/sys/arch/powerpc/powerpc/bus_space.c
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/prep/include/autoconf.h
cvs rdiff -u -r1.35 -r1.36 src/sys/arch/prep/pci/pci_machdep.c
cvs rdiff -u -r1.72 -r1.73 src/sys/arch/prep/prep/machdep.c
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/rs6000/include/autoconf.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/bebox/bebox/machdep.c
diff -u src/sys/arch/bebox/bebox/machdep.c:1.100 src/sys/arch/bebox/bebox/machdep.c:1.101
--- src/sys/arch/bebox/bebox/machdep.c:1.100	Mon Jun 20 07:18:05 2011
+++ src/sys/arch/bebox/bebox/machdep.c	Thu Jun 30 00:52:55 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: machdep.c,v 1.100 2011/06/20 07:18:05 matt Exp $	*/
+/*	$NetBSD: machdep.c,v 1.101 2011/06/30 00:52:55 matt Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.100 2011/06/20 07:18:05 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.101 2011/06/30 00:52:55 matt Exp $");
 
 #include "opt_compat_netbsd.h"
 #include "opt_ddb.h"
@@ -170,7 +170,7 @@
 	/*
 	 * BeBox Mother Board's Register Mapping
 	 */
-	bebox_mb_reg = (vaddr_t) mapiodev(BEBOX_INTR_REG, PAGE_SIZE);
+	bebox_mb_reg = (vaddr_t) mapiodev(BEBOX_INTR_REG, PAGE_SIZE, false);
 	if (!bebox_mb_reg)
 		panic("cpu_startup: no room for interrupt register");
 

Index: src/sys/arch/bebox/include/autoconf.h
diff -u src/sys/arch/bebox/include/autoconf.h:1.3 src/sys/arch/bebox/include/autoconf.h:1.4
--- src/sys/arch/bebox/include/autoconf.h:1.3	Wed Oct 17 19:53:59 2007
+++ src/sys/arch/bebox/include/autoconf.h	Thu Jun 30 00:52:56 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: autoconf.h,v 1.3 2007/10/17 19:53:59 garbled Exp $	*/
+/*	$NetBSD: autoconf.h,v 1.4 2011/06/30 00:52:56 matt Exp $	*/
 
 /*-
  * Copyright (C) 1998	Internet Research Institute, Inc.
@@ -44,5 +44,4 @@
 	/* bus_space_tag_t ca_tag; */
 };
 
-extern void *mapiodev(paddr_t, psize_t);
 extern paddr_t kvtop(void *);

Index: src/sys/arch/bebox/pci/pci_machdep.c
diff -u src/sys/arch/bebox/pci/pci_machdep.c:1.19 src/sys/arch/bebox/pci/pci_machdep.c:1.20
--- src/sys/arch/bebox/pci/pci_machdep.c:1.19	Wed Jun 22 18:06:32 2011
+++ src/sys/arch/bebox/pci/pci_machdep.c	Thu Jun 30 00:52:56 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: pci_machdep.c,v 1.19 2011/06/22 18:06:32 matt Exp $	*/
+/*	$NetBSD: pci_machdep.c,v 1.20 2011/06/30 00:52:56 matt Exp $	*/
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All rights reserved.
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pci_machdep.c,v 1.19 2011/06/22 18:06:32 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pci_machdep.c,v 1.20 2011/06/30 00:52:56 matt Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -92,8 +92,8 @@
 	pc->pc_decompose_tag = genppc_pci_indirect_decompose_tag;
 	pc->pc_conf_hook = genppc_pci_conf_hook;
 
-	pc->pc_addr = mapiodev(PCI_MODE1_ADDRESS_REG, 4);
-	pc->pc_data = mapiodev(PCI_MODE1_DATA_REG, 4);
+	pc->pc_addr = mapiodev(PCI_MODE1_ADDRESS_REG, 4, false);
+	pc->pc_data = mapiodev(PCI_MODE1_DATA_REG, 4, false);
 	pc->pc_bus = 0;
 	pc->pc_node = 0;
 	pc->pc_memt = 0;

Index: src/sys/arch/evbppc/evbppc/evbppc_machdep.c
diff -u src/sys/arch/evbppc/evbppc/evbppc_machdep.c:1.11 src/sys/arch/evbppc/evbppc/evbppc_machdep.c:1.12
--- src/sys/arch/evbppc/evbppc/evbppc_machdep.c:1.11	Sun Jun 12 04:20:18 2011
+++ src/sys/arch/evbppc/evbppc/evbppc_machdep.c	Thu Jun 30 00:52:56 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: evbppc_machdep.c,v 1.11 2011/06/12 04:20:18 mrg Exp $	*/
+/*	$NetBSD: evbppc_machdep.c,v 1.12 2011/06/30 00:52:56 matt Exp $	*/
 
 /*
  * Copyright 2001, 2002 Wasabi Systems, Inc.
@@ -67,7 +67,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: evbppc_machdep.c,v 1.11 2011/06/12 04:20:18 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: evbppc_machdep.c,v 1.12 2011/06/30 00:52:56 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -94,13 +94,15 @@
  * 	mapping if one is found.
  */
 void *
-mapiodev(paddr_t pa, psize_t len)
+mapiodev(paddr_t pa, psize_t len, bool prefetchable)
 {
 	void *p;
 	paddr_t faddr;
 	vaddr_t taddr, va;
 	int off;
 
+	KASSERT(!prefetchable);
+
 	/*
 	 * See if we have reserved TLB entry for the pa. This needs to be
 	 * true for console as we can't use uvm during early bootstrap.
@@ -123,7 +125,7 @@
 
 	for (; len > 0; len -= PAGE_SIZE) {
 		pmap_kenter_pa(taddr, faddr, 
-			VM_PROT_READ|VM_PROT_WRITE|PME_NOCACHE, 0);
+			VM_PROT_READ|VM_PROT_WRITE, PMAP_NOCACHE);
 		faddr += PAGE_SIZE;
 		taddr += PAGE_SIZE;
 	}

Index: src/sys/arch/evbppc/mpc85xx/machdep.c
diff -u src/sys/arch/evbppc/mpc85xx/machdep.c:1.14 src/sys/arch/evbppc/mpc85xx/machdep.c:1.15
--- src/sys/arch/evbppc/mpc85xx/machdep.c:1.14	Wed Jun 29 05:53:05 2011
+++ src/sys/arch/evbppc/mpc85xx/machdep.c	Thu Jun 30 00:52:56 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: machdep.c,v 1.14 2011/06/29 05:53:05 matt Exp $	*/
+/*	$NetBSD: machdep.c,v 1.15 2011/06/30 00:52:56 matt Exp $	*/
 /*-
  * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -398,8 +398,10 @@
 }
 
 static void *
-gur_tlb_mapiodev(paddr_t pa, psize_t len)
+gur_tlb_mapiodev(paddr_t pa, psize_t len, bool prefetchable)
 {
+	if (prefetchable)
+		return NULL;
 	if (pa < gur_bst.pbs_offset)
 		return NULL;
 	if (pa + len > gur_bst.pbs_offset + gur_bst.pbs_limit)
@@ -407,7 +409,7 @@
 	return (void *)pa;
 }
 
-static void *(* const early_tlb_mapiodev)(paddr_t, psize_t) = gur_tlb_mapiodev;
+static void *(* const early_tlb_mapiodev)(paddr_t, psize_t, bool) = gur_tlb_mapiodev;
 
 static void
 e500_cpu_reset(void)

Index: src/sys/arch/evbppc/pmppc/pci/pci_machdep.c
diff -u src/sys/arch/evbppc/pmppc/pci/pci_machdep.c:1.4 src/sys/arch/evbppc/pmppc/pci/pci_machdep.c:1.5
--- src/sys/arch/evbppc/pmppc/pci/pci_machdep.c:1.4	Wed Jun 22 18:06:32 2011
+++ src/sys/arch/evbppc/pmppc/pci/pci_machdep.c	Thu Jun 30 00:52:56 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: pci_machdep.c,v 1.4 2011/06/22 18:06:32 matt Exp $	*/
+/*	$NetBSD: pci_machdep.c,v 1.5 2011/06/30 00:52:56 matt Exp $	*/
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All rights reserved.
@@ -43,7 +43,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pci_machdep.c,v 1.4 2011/06/22 18:06:32 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pci_machdep.c,v 1.5 2011/06/30 00:52:56 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -109,8 +109,8 @@
 	pc->pc_decompose_tag = genppc_pci_indirect_decompose_tag;
 	pc->pc_conf_hook = genppc_pci_conf_hook;
 
-	pc->pc_addr = mapiodev(CPC_PCICFGADR, 4);
-	pc->pc_data = mapiodev(CPC_PCICFGDATA, 4);
+	pc->pc_addr = mapiodev(CPC_PCICFGADR, 4, false);
+	pc->pc_data = mapiodev(CPC_PCICFGDATA, 4, false);
 	pc->pc_bus = 0;
 	pc->pc_node = 0;
 	pc->pc_memt = 0;

Index: src/sys/arch/ibmnws/ibmnws/machdep.c
diff -u src/sys/arch/ibmnws/ibmnws/machdep.c:1.15 src/sys/arch/ibmnws/ibmnws/machdep.c:1.16
--- src/sys/arch/ibmnws/ibmnws/machdep.c:1.15	Mon Jun 20 07:18:06 2011
+++ src/sys/arch/ibmnws/ibmnws/machdep.c	Thu Jun 30 00:52:56 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: machdep.c,v 1.15 2011/06/20 07:18:06 matt Exp $	*/
+/*	$NetBSD: machdep.c,v 1.16 2011/06/30 00:52:56 matt Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.15 2011/06/20 07:18:06 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.16 2011/06/30 00:52:56 matt Exp $");
 
 #include "opt_compat_netbsd.h"
 
@@ -160,7 +160,7 @@
 	/*
 	 * Mapping PReP interrput vector register.
 	 */
-	prep_intr_reg = (vaddr_t) mapiodev(PREP_INTR_REG, PAGE_SIZE);
+	prep_intr_reg = (vaddr_t) mapiodev(PREP_INTR_REG, PAGE_SIZE, false);
 	if (!prep_intr_reg)
 		panic("startup: no room for interrupt register");
 	prep_intr_reg_off = INTR_VECTOR_REG;

Index: src/sys/arch/ibmnws/include/autoconf.h
diff -u src/sys/arch/ibmnws/include/autoconf.h:1.5 src/sys/arch/ibmnws/include/autoconf.h:1.6
--- src/sys/arch/ibmnws/include/autoconf.h:1.5	Sun Mar  4 06:00:03 2007
+++ src/sys/arch/ibmnws/include/autoconf.h	Thu Jun 30 00:52:56 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: autoconf.h,v 1.5 2007/03/04 06:00:03 christos Exp $	*/
+/*	$NetBSD: autoconf.h,v 1.6 2011/06/30 00:52:56 matt Exp $	*/
 
 /*-
  * Copyright (C) 1998	Internet Research Institute, Inc.
@@ -43,6 +43,5 @@
 	/* bus_space_tag_t ca_tag; */
 };
 
-extern void *mapiodev(paddr_t, psize_t);
-extern paddr_t kvtop(void *);
-extern void *intr_establish(int, int, int, int (*)(void *), void *);
+paddr_t kvtop(void *);
+void *intr_establish(int, int, int, int (*)(void *), void *);

Index: src/sys/arch/ibmnws/pci/pci_machdep.c
diff -u src/sys/arch/ibmnws/pci/pci_machdep.c:1.7 src/sys/arch/ibmnws/pci/pci_machdep.c:1.8
--- src/sys/arch/ibmnws/pci/pci_machdep.c:1.7	Wed Jun 22 18:06:33 2011
+++ src/sys/arch/ibmnws/pci/pci_machdep.c	Thu Jun 30 00:52:57 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: pci_machdep.c,v 1.7 2011/06/22 18:06:33 matt Exp $	*/
+/*	$NetBSD: pci_machdep.c,v 1.8 2011/06/30 00:52:57 matt Exp $	*/
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All rights reserved.
@@ -84,8 +84,8 @@
 	pc->pc_decompose_tag = genppc_pci_indirect_decompose_tag;
 	pc->pc_conf_hook = ibmnws_pci_conf_hook;
 
-	pc->pc_addr = mapiodev(PCI_MODE1_ADDRESS_REG, 4);
-	pc->pc_data = mapiodev(PCI_MODE1_DATA_REG, 4);
+	pc->pc_addr = mapiodev(PCI_MODE1_ADDRESS_REG, 4, false);
+	pc->pc_data = mapiodev(PCI_MODE1_DATA_REG, 4, false);
 	pc->pc_bus = 0;
 	pc->pc_node = 0;
 	pc->pc_memt = 0;

Index: src/sys/arch/macppc/dev/adb.c
diff -u src/sys/arch/macppc/dev/adb.c:1.30 src/sys/arch/macppc/dev/adb.c:1.31
--- src/sys/arch/macppc/dev/adb.c:1.30	Sat Jun 18 08:08:28 2011
+++ src/sys/arch/macppc/dev/adb.c	Thu Jun 30 00:52:57 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: adb.c,v 1.30 2011/06/18 08:08:28 matt Exp $	*/
+/*	$NetBSD: adb.c,v 1.31 2011/06/30 00:52:57 matt Exp $	*/
 
 /*-
  * Copyright (C) 1994	Bradley A. Grantham
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: adb.c,v 1.30 2011/06/18 08:08:28 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: adb.c,v 1.31 2011/06/30 00:52:57 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -111,7 +111,7 @@
 
 	ca->ca_reg[0] += ca->ca_baseaddr;
 
-	sc->sc_regbase = mapiodev(ca->ca_reg[0], ca->ca_reg[1]);
+	sc->sc_regbase = mapiodev(ca->ca_reg[0], ca->ca_reg[1], false);
 	Via1Base = sc->sc_regbase;
 
 	if (strcmp(ca->ca_name, "via-cuda") == 0)
Index: src/sys/arch/macppc/dev/esp.c
diff -u src/sys/arch/macppc/dev/esp.c:1.30 src/sys/arch/macppc/dev/esp.c:1.31
--- src/sys/arch/macppc/dev/esp.c:1.30	Mon Dec 20 00:25:37 2010
+++ src/sys/arch/macppc/dev/esp.c	Thu Jun 30 00:52:57 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: esp.c,v 1.30 2010/12/20 00:25:37 matt Exp $	*/
+/*	$NetBSD: esp.c,v 1.31 2011/06/30 00:52:57 matt Exp $	*/
 
 /*-
  * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
@@ -70,7 +70,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: esp.c,v 1.30 2010/12/20 00:25:37 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: esp.c,v 1.31 2011/06/30 00:52:57 matt Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -180,8 +180,8 @@
 	 * Map my registers in.
 	 */
 	reg = ca->ca_reg;
-	esc->sc_reg =    mapiodev(ca->ca_baseaddr + reg[0], reg[1]);
-	esc->sc_dmareg = mapiodev(ca->ca_baseaddr + reg[2], reg[3]);
+	esc->sc_reg =    mapiodev(ca->ca_baseaddr + reg[0], reg[1], false);
+	esc->sc_dmareg = mapiodev(ca->ca_baseaddr + reg[2], reg[3], false);
 
 	/* Allocate 16-byte aligned DMA command space */
 	esc->sc_dmacmd = dbdma_alloc(sizeof(dbdma_command_t) * 20);

Index: src/sys/arch/macppc/dev/gpio.c
diff -u src/sys/arch/macppc/dev/gpio.c:1.10 src/sys/arch/macppc/dev/gpio.c:1.11
--- src/sys/arch/macppc/dev/gpio.c:1.10	Sat Jun 18 08:08:28 2011
+++ src/sys/arch/macppc/dev/gpio.c	Thu Jun 30 00:52:57 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: gpio.c,v 1.10 2011/06/18 08:08:28 matt Exp $	*/
+/*	$NetBSD: gpio.c,v 1.11 2011/06/30 00:52:57 matt Exp $	*/
 
 /*-
  * Copyright (C) 1998	Internet Research Institute, Inc.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gpio.c,v 1.10 2011/06/18 08:08:28 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gpio.c,v 1.11 2011/06/30 00:52:57 matt Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -95,7 +95,8 @@
 
 	printf("\n");
 
-	sc->sc_port = mapiodev(ca->ca_baseaddr + ca->ca_reg[0], ca->ca_reg[1]);
+	sc->sc_port = mapiodev(ca->ca_baseaddr + ca->ca_reg[0], ca->ca_reg[1],
+	    false);
 
 	ca2.ca_baseaddr = ca->ca_baseaddr;
 	for (child = OF_child(ca->ca_node); child; child = OF_peer(child)) {

Index: src/sys/arch/macppc/dev/if_bm.c
diff -u src/sys/arch/macppc/dev/if_bm.c:1.44 src/sys/arch/macppc/dev/if_bm.c:1.45
--- src/sys/arch/macppc/dev/if_bm.c:1.44	Sat Jun 18 08:08:28 2011
+++ src/sys/arch/macppc/dev/if_bm.c	Thu Jun 30 00:52:57 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_bm.c,v 1.44 2011/06/18 08:08:28 matt Exp $	*/
+/*	$NetBSD: if_bm.c,v 1.45 2011/06/30 00:52:57 matt Exp $	*/
 
 /*-
  * Copyright (C) 1998, 1999, 2000 Tsubai Masanari.  All rights reserved.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_bm.c,v 1.44 2011/06/18 08:08:28 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_bm.c,v 1.45 2011/06/30 00:52:57 matt Exp $");
 
 #include "opt_inet.h"
 
@@ -212,8 +212,8 @@
 	}
 	memcpy(sc->sc_enaddr, laddr, 6);
 
-	sc->sc_txdma = mapiodev(ca->ca_reg[2], PAGE_SIZE);
-	sc->sc_rxdma = mapiodev(ca->ca_reg[4], PAGE_SIZE);
+	sc->sc_txdma = mapiodev(ca->ca_reg[2], PAGE_SIZE, false);
+	sc->sc_rxdma = mapiodev(ca->ca_reg[4], PAGE_SIZE, false);
 	sc->sc_txcmd = dbdma_alloc(BMAC_TXBUFS * sizeof(dbdma_command_t));
 	sc->sc_rxcmd = dbdma_alloc((BMAC_RXBUFS + 1) * sizeof(dbdma_command_t));
 	sc->sc_txbuf = malloc(BMAC_BUFLEN * BMAC_TXBUFS, M_DEVBUF, M_NOWAIT);

Index: src/sys/arch/macppc/dev/if_mc.c
diff -u src/sys/arch/macppc/dev/if_mc.c:1.19 src/sys/arch/macppc/dev/if_mc.c:1.20
--- src/sys/arch/macppc/dev/if_mc.c:1.19	Sat Jun 18 08:08:28 2011
+++ src/sys/arch/macppc/dev/if_mc.c	Thu Jun 30 00:52:57 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_mc.c,v 1.19 2011/06/18 08:08:28 matt Exp $	*/
+/*	$NetBSD: if_mc.c,v 1.20 2011/06/30 00:52:57 matt Exp $	*/
 
 /*-
  * Copyright (c) 1997 David Huang <k...@bga.com>
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_mc.c,v 1.19 2011/06/18 08:08:28 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_mc.c,v 1.20 2011/06/30 00:52:57 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -117,8 +117,8 @@
 	reg[2] += ca->ca_baseaddr;
 	reg[4] += ca->ca_baseaddr;
 
-	sc->sc_txdma = mapiodev(reg[2], reg[3]);
-	sc->sc_rxdma = mapiodev(reg[4], reg[5]);
+	sc->sc_txdma = mapiodev(reg[2], reg[3], false);
+	sc->sc_rxdma = mapiodev(reg[4], reg[5], false);
 	bus_space_map(sc->sc_regt, reg[0], reg[1], 0, &sc->sc_regh);
 
 	sc->sc_tail = 0;

Index: src/sys/arch/macppc/dev/mediabay.c
diff -u src/sys/arch/macppc/dev/mediabay.c:1.20 src/sys/arch/macppc/dev/mediabay.c:1.21
--- src/sys/arch/macppc/dev/mediabay.c:1.20	Sat Jun 18 08:08:28 2011
+++ src/sys/arch/macppc/dev/mediabay.c	Thu Jun 30 00:52:57 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: mediabay.c,v 1.20 2011/06/18 08:08:28 matt Exp $	*/
+/*	$NetBSD: mediabay.c,v 1.21 2011/06/30 00:52:57 matt Exp $	*/
 
 /*-
  * Copyright (C) 1999 Tsubai Masanari.  All rights reserved.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mediabay.c,v 1.20 2011/06/18 08:08:28 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mediabay.c,v 1.21 2011/06/30 00:52:57 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -124,7 +124,7 @@
 
 	ca->ca_reg[0] += ca->ca_baseaddr;
 
-	sc->sc_addr = mapiodev(ca->ca_reg[0], PAGE_SIZE);
+	sc->sc_addr = mapiodev(ca->ca_reg[0], PAGE_SIZE, false);
 	sc->sc_node = ca->ca_node;
 	sc->sc_baseaddr = ca->ca_baseaddr;
 	sc->sc_tag = ca->ca_tag;

Index: src/sys/arch/macppc/dev/mesh.c
diff -u src/sys/arch/macppc/dev/mesh.c:1.34 src/sys/arch/macppc/dev/mesh.c:1.35
--- src/sys/arch/macppc/dev/mesh.c:1.34	Sat Sep 26 15:49:45 2009
+++ src/sys/arch/macppc/dev/mesh.c	Thu Jun 30 00:52:57 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: mesh.c,v 1.34 2009/09/26 15:49:45 tsutsui Exp $	*/
+/*	$NetBSD: mesh.c,v 1.35 2011/06/30 00:52:57 matt Exp $	*/
 
 /*-
  * Copyright (c) 2000	Tsubai Masanari.
@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mesh.c,v 1.34 2009/09/26 15:49:45 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mesh.c,v 1.35 2011/06/30 00:52:57 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/buf.h>
@@ -211,9 +211,9 @@
 	reg = ca->ca_reg;
 	reg[0] += ca->ca_baseaddr;
 	reg[2] += ca->ca_baseaddr;
-	sc->sc_reg = mapiodev(reg[0], reg[1]);
+	sc->sc_reg = mapiodev(reg[0], reg[1], false);
 	sc->sc_irq = ca->ca_intr[0];
-	sc->sc_dmareg = mapiodev(reg[2], reg[3]);
+	sc->sc_dmareg = mapiodev(reg[2], reg[3], false);
 
 	sc->sc_cfflags = device_cfdata(self)->cf_flags;
 	sc->sc_meshid = mesh_read_reg(sc, MESH_MESH_ID) & 0x1f;

Index: src/sys/arch/macppc/dev/nvram.c
diff -u src/sys/arch/macppc/dev/nvram.c:1.16 src/sys/arch/macppc/dev/nvram.c:1.17
--- src/sys/arch/macppc/dev/nvram.c:1.16	Sat Jun 18 08:08:28 2011
+++ src/sys/arch/macppc/dev/nvram.c	Thu Jun 30 00:52:57 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: nvram.c,v 1.16 2011/06/18 08:08:28 matt Exp $	*/
+/*	$NetBSD: nvram.c,v 1.17 2011/06/30 00:52:57 matt Exp $	*/
 
 /*-
  * Copyright (C) 1998	Internet Research Institute, Inc.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nvram.c,v 1.16 2011/06/18 08:08:28 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nvram.c,v 1.17 2011/06/30 00:52:57 matt Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -103,13 +103,13 @@
 
 	case 8:						/* untested */
 		sc->nv_type = NVRAM_IOMEM;
-		sc->nv_data = mapiodev(ca->ca_baseaddr + reg[0], reg[1]);
+		sc->nv_data = mapiodev(ca->ca_baseaddr + reg[0], reg[1], false);
 		break;
 
 	case 16:
 		sc->nv_type = NVRAM_PORT;
-		sc->nv_port = mapiodev(ca->ca_baseaddr + reg[0], reg[1]);
-		sc->nv_data = mapiodev(ca->ca_baseaddr + reg[2], reg[3]);
+		sc->nv_port = mapiodev(ca->ca_baseaddr + reg[0], reg[1], false);
+		sc->nv_data = mapiodev(ca->ca_baseaddr + reg[2], reg[3], false);
 		break;
 
 	case 0:

Index: src/sys/arch/macppc/dev/zs.c
diff -u src/sys/arch/macppc/dev/zs.c:1.49 src/sys/arch/macppc/dev/zs.c:1.50
--- src/sys/arch/macppc/dev/zs.c:1.49	Tue Oct 27 03:45:32 2009
+++ src/sys/arch/macppc/dev/zs.c	Thu Jun 30 00:52:57 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: zs.c,v 1.49 2009/10/27 03:45:32 snj Exp $	*/
+/*	$NetBSD: zs.c,v 1.50 2011/06/30 00:52:57 matt Exp $	*/
 
 /*
  * Copyright (c) 1996, 1998 Bill Studenmund
@@ -49,7 +49,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: zs.c,v 1.49 2009/10/27 03:45:32 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: zs.c,v 1.50 2011/06/30 00:52:57 matt Exp $");
 
 #include "opt_ddb.h"
 #include "opt_kgdb.h"
@@ -218,7 +218,7 @@
 
 	chip = 0;
 	ca->ca_reg[0] += ca->ca_baseaddr;
-	zsd = mapiodev(ca->ca_reg[0], ca->ca_reg[1]);
+	zsd = mapiodev(ca->ca_reg[0], ca->ca_reg[1], false);
 
 	node = OF_child(ca->ca_node);	/* ch-a */
 
@@ -238,7 +238,7 @@
 		regs[2] += ca->ca_baseaddr;
 		regs[4] += ca->ca_baseaddr;
 #ifdef ZS_TXDMA
-		zsc->zsc_txdmareg[channel] = mapiodev(regs[2], regs[3]);
+		zsc->zsc_txdmareg[channel] = mapiodev(regs[2], regs[3], false);
 		zsc->zsc_txdmacmd[channel] =
 			dbdma_alloc(sizeof(dbdma_command_t) * 3);
 		memset(zsc->zsc_txdmacmd[channel], 0,

Index: src/sys/arch/macppc/include/autoconf.h
diff -u src/sys/arch/macppc/include/autoconf.h:1.16 src/sys/arch/macppc/include/autoconf.h:1.17
--- src/sys/arch/macppc/include/autoconf.h:1.16	Sat Jun 18 08:08:28 2011
+++ src/sys/arch/macppc/include/autoconf.h	Thu Jun 30 00:52:57 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: autoconf.h,v 1.16 2011/06/18 08:08:28 matt Exp $	*/
+/*	$NetBSD: autoconf.h,v 1.17 2011/06/30 00:52:57 matt Exp $	*/
 
 /*-
  * Copyright (C) 1998	Internet Research Institute, Inc.
@@ -62,7 +62,6 @@
 /* these are in machdep.c */
 void initppc(u_int, u_int, char *);
 void model_init(void);
-void *mapiodev(paddr_t, psize_t);
 paddr_t kvtop(void *);
 void dumpsys(void);
 void copy_disp_props(device_t, int, prop_dictionary_t);

Index: src/sys/arch/macppc/macppc/cpu.c
diff -u src/sys/arch/macppc/macppc/cpu.c:1.57 src/sys/arch/macppc/macppc/cpu.c:1.58
--- src/sys/arch/macppc/macppc/cpu.c:1.57	Wed Jun 29 06:13:08 2011
+++ src/sys/arch/macppc/macppc/cpu.c	Thu Jun 30 00:52:57 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpu.c,v 1.57 2011/06/29 06:13:08 matt Exp $	*/
+/*	$NetBSD: cpu.c,v 1.58 2011/06/30 00:52:57 matt Exp $	*/
 
 /*-
  * Copyright (c) 2001 Tsubai Masanari.
@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.57 2011/06/29 06:13:08 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.58 2011/06/30 00:52:57 matt Exp $");
 
 #include "opt_ppcparam.h"
 #include "opt_multiprocessor.h"
@@ -189,7 +189,7 @@
 	volatile uint32_t *cache_reg, x;
 
 	/* enable L2 cache */
-	cache_reg = mapiodev(CACHE_REG, PAGE_SIZE);
+	cache_reg = mapiodev(CACHE_REG, PAGE_SIZE, false);
 	if (((cache_reg[2] >> 24) & 0x0f) >= 3) {
 		x = cache_reg[4];
 		if ((x & 0x10) == 0)

Index: src/sys/arch/macppc/pci/bandit.c
diff -u src/sys/arch/macppc/pci/bandit.c:1.28 src/sys/arch/macppc/pci/bandit.c:1.29
--- src/sys/arch/macppc/pci/bandit.c:1.28	Sat Jun 18 08:08:28 2011
+++ src/sys/arch/macppc/pci/bandit.c	Thu Jun 30 00:52:58 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: bandit.c,v 1.28 2011/06/18 08:08:28 matt Exp $	*/
+/*	$NetBSD: bandit.c,v 1.29 2011/06/30 00:52:58 matt Exp $	*/
 
 /*-
  * Copyright (c) 2000 Tsubai Masanari.  All rights reserved.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bandit.c,v 1.28 2011/06/18 08:08:28 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bandit.c,v 1.29 2011/06/30 00:52:58 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -126,8 +126,8 @@
 	pc->pc_node = node;
 	pc->pc_iot = &sc->sc_iot;
 	pc->pc_memt = &sc->sc_memt;
-	pc->pc_addr = mapiodev(reg[0] + 0x800000, 4);
-	pc->pc_data = mapiodev(reg[0] + 0xc00000, 8);
+	pc->pc_addr = mapiodev(reg[0] + 0x800000, 4, false);
+	pc->pc_data = mapiodev(reg[0] + 0xc00000, 8, false);
 	pc->pc_bus = busrange[0];
 	pc->pc_conf_read = bandit_conf_read;
 	pc->pc_conf_write = bandit_conf_write;

Index: src/sys/arch/macppc/pci/grackle.c
diff -u src/sys/arch/macppc/pci/grackle.c:1.13 src/sys/arch/macppc/pci/grackle.c:1.14
--- src/sys/arch/macppc/pci/grackle.c:1.13	Sat Jun 18 08:08:28 2011
+++ src/sys/arch/macppc/pci/grackle.c	Thu Jun 30 00:52:58 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: grackle.c,v 1.13 2011/06/18 08:08:28 matt Exp $	*/
+/*	$NetBSD: grackle.c,v 1.14 2011/06/30 00:52:58 matt Exp $	*/
 
 /*-
  * Copyright (c) 2000 Tsubai Masanari.  All rights reserved.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: grackle.c,v 1.13 2011/06/18 08:08:28 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: grackle.c,v 1.14 2011/06/30 00:52:58 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -126,8 +126,8 @@
 
 	macppc_pci_get_chipset_tag(pc);
 	pc->pc_node = node;
-	pc->pc_addr = mapiodev(GRACKLE_ADDR, 4);
-	pc->pc_data = mapiodev(GRACKLE_DATA, 4);
+	pc->pc_addr = mapiodev(GRACKLE_ADDR, 4, false);
+	pc->pc_data = mapiodev(GRACKLE_DATA, 4, false);
 	pc->pc_bus = busrange[0];
 	pc->pc_conf_read = grackle_conf_read;
 	pc->pc_conf_write = grackle_conf_write;

Index: src/sys/arch/macppc/pci/u3.c
diff -u src/sys/arch/macppc/pci/u3.c:1.4 src/sys/arch/macppc/pci/u3.c:1.5
--- src/sys/arch/macppc/pci/u3.c:1.4	Sat Jun 18 08:08:28 2011
+++ src/sys/arch/macppc/pci/u3.c	Thu Jun 30 00:52:58 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: u3.c,v 1.4 2011/06/18 08:08:28 matt Exp $ */
+/* $NetBSD: u3.c,v 1.5 2011/06/30 00:52:58 matt Exp $ */
 
 /*
  * Copyright 2006 Kyma Systems LLC.
@@ -104,7 +104,7 @@
 	}
 	aprint_normal("Mapping in config space @ pa 0x%08x, size: 0x%08x\n",
 	    reg[1], reg[2]);
-	pc_data = mapiodev(reg[1], reg[2]);
+	pc_data = mapiodev(reg[1], reg[2], false);
 
 	for (child = OF_child(OF_finddevice("/ht")), i = 1; child;
 	    child = OF_peer(child), i++) {

Index: src/sys/arch/macppc/pci/uninorth.c
diff -u src/sys/arch/macppc/pci/uninorth.c:1.14 src/sys/arch/macppc/pci/uninorth.c:1.15
--- src/sys/arch/macppc/pci/uninorth.c:1.14	Sat Jun 18 08:08:28 2011
+++ src/sys/arch/macppc/pci/uninorth.c	Thu Jun 30 00:52:58 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: uninorth.c,v 1.14 2011/06/18 08:08:28 matt Exp $	*/
+/*	$NetBSD: uninorth.c,v 1.15 2011/06/30 00:52:58 matt Exp $	*/
 
 /*-
  * Copyright (c) 2000 Tsubai Masanari.  All rights reserved.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uninorth.c,v 1.14 2011/06/18 08:08:28 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uninorth.c,v 1.15 2011/06/30 00:52:58 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -138,8 +138,8 @@
 
 	macppc_pci_get_chipset_tag(pc);
 	pc->pc_node = node;
-	pc->pc_addr = mapiodev(reg[0] + 0x800000, 4);
-	pc->pc_data = mapiodev(reg[0] + 0xc00000, 8);
+	pc->pc_addr = mapiodev(reg[0] + 0x800000, 4, false);
+	pc->pc_data = mapiodev(reg[0] + 0xc00000, 8, false);
 	pc->pc_bus = busrange[0];
 	pc->pc_conf_read = uninorth_conf_read;
 	pc->pc_conf_write = uninorth_conf_write;

Index: src/sys/arch/mvmeppc/include/autoconf.h
diff -u src/sys/arch/mvmeppc/include/autoconf.h:1.4 src/sys/arch/mvmeppc/include/autoconf.h:1.5
--- src/sys/arch/mvmeppc/include/autoconf.h:1.4	Sat Mar 14 14:46:03 2009
+++ src/sys/arch/mvmeppc/include/autoconf.h	Thu Jun 30 00:52:58 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: autoconf.h,v 1.4 2009/03/14 14:46:03 dsl Exp $	*/
+/*	$NetBSD: autoconf.h,v 1.5 2011/06/30 00:52:58 matt Exp $	*/
 
 /*-
  * Copyright (C) 1998	Internet Research Institute, Inc.
@@ -43,6 +43,5 @@
 	/* bus_space_tag_t ca_tag; */
 };
 
-void *mapiodev(paddr_t, psize_t);
 paddr_t kvtop(void *);
 void *intr_establish(int, int, int, int (*)(void *), void *);

Index: src/sys/arch/mvmeppc/mvmeppc/machdep.c
diff -u src/sys/arch/mvmeppc/mvmeppc/machdep.c:1.28 src/sys/arch/mvmeppc/mvmeppc/machdep.c:1.29
--- src/sys/arch/mvmeppc/mvmeppc/machdep.c:1.28	Mon Jun 20 07:18:07 2011
+++ src/sys/arch/mvmeppc/mvmeppc/machdep.c	Thu Jun 30 00:52:58 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: machdep.c,v 1.28 2011/06/20 07:18:07 matt Exp $	*/
+/*	$NetBSD: machdep.c,v 1.29 2011/06/30 00:52:58 matt Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.28 2011/06/20 07:18:07 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.29 2011/06/30 00:52:58 matt Exp $");
 
 #include "opt_compat_netbsd.h"
 #include "opt_mvmetype.h"
@@ -164,7 +164,7 @@
 	/*
 	 * Mapping PReP-compatible interrput vector register.
 	 */
-	prep_intr_reg = (vaddr_t) mapiodev(MVMEPPC_INTR_REG, PAGE_SIZE);
+	prep_intr_reg = (vaddr_t) mapiodev(MVMEPPC_INTR_REG, PAGE_SIZE, false);
 	if (!prep_intr_reg)
 		panic("startup: no room for interrupt register");
 

Index: src/sys/arch/mvmeppc/pci/pci_machdep.c
diff -u src/sys/arch/mvmeppc/pci/pci_machdep.c:1.8 src/sys/arch/mvmeppc/pci/pci_machdep.c:1.9
--- src/sys/arch/mvmeppc/pci/pci_machdep.c:1.8	Wed Jun 22 18:06:33 2011
+++ src/sys/arch/mvmeppc/pci/pci_machdep.c	Thu Jun 30 00:52:58 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: pci_machdep.c,v 1.8 2011/06/22 18:06:33 matt Exp $	*/
+/*	$NetBSD: pci_machdep.c,v 1.9 2011/06/30 00:52:58 matt Exp $	*/
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All rights reserved.
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pci_machdep.c,v 1.8 2011/06/22 18:06:33 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pci_machdep.c,v 1.9 2011/06/30 00:52:58 matt Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -93,8 +93,8 @@
 	pc->pc_decompose_tag = genppc_pci_indirect_decompose_tag;
 	pc->pc_conf_hook = genppc_pci_conf_hook;
 
-	pc->pc_addr = mapiodev(PCI_MODE1_ADDRESS_REG, 4);
-	pc->pc_data = mapiodev(PCI_MODE1_DATA_REG, 4);
+	pc->pc_addr = mapiodev(PCI_MODE1_ADDRESS_REG, 4, false);
+	pc->pc_data = mapiodev(PCI_MODE1_DATA_REG, 4, false);
 	pc->pc_bus = 0;
 	pc->pc_node = 0;
 	pc->pc_memt = 0;

Index: src/sys/arch/ofppc/ofppc/mainbus.c
diff -u src/sys/arch/ofppc/ofppc/mainbus.c:1.27 src/sys/arch/ofppc/ofppc/mainbus.c:1.28
--- src/sys/arch/ofppc/ofppc/mainbus.c:1.27	Sun Jun  5 17:03:16 2011
+++ src/sys/arch/ofppc/ofppc/mainbus.c	Thu Jun 30 00:52:58 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: mainbus.c,v 1.27 2011/06/05 17:03:16 matt Exp $	*/
+/*	$NetBSD: mainbus.c,v 1.28 2011/06/30 00:52:58 matt Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mainbus.c,v 1.27 2011/06/05 17:03:16 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mainbus.c,v 1.28 2011/06/30 00:52:58 matt Exp $");
 
 #include "opt_interrupt.h"
 #include "opt_multiprocessor.h"
@@ -83,7 +83,7 @@
 		aprint_error("Incorrectly identified i8259 as prepivr\n");
 		return setup_i8259();
 	}
-	prep_intr_reg = (vaddr_t)mapiodev(ivr, sizeof(uint32_t));
+	prep_intr_reg = (vaddr_t)mapiodev(ivr, sizeof(uint32_t), false);
 	prep_intr_reg_off = 0; /* hack */
 	if (!prep_intr_reg)
 		panic("startup: no room for interrupt register");
@@ -125,7 +125,7 @@
 		    (aadr.phys_hi & OFW_PCI_PHYS_HI_SPACEMASK) &&
 		    (aadr.size_lo + aadr.phys_lo <= (rp->size_lo+rp->host))) {
 			baseaddr = (unsigned char *)mapiodev(
-			    rp->host | aadr.phys_lo, aadr.size_lo);
+			    rp->host | aadr.phys_lo, aadr.size_lo, false);
 			aprint_normal("Found openpic at %08x\n",
 			    rp->host | aadr.phys_lo);
 			setup_openpic(baseaddr, 0);
@@ -153,7 +153,7 @@
 		return FALSE;
 
 	if (len == sizeof(int)*2) {
-		baseaddr = (unsigned char *)mapiodev(reg[0], reg[1]);
+		baseaddr = (unsigned char *)mapiodev(reg[0], reg[1], false);
 		aprint_verbose("Found openpic at %08x\n", reg[0]);
 #ifdef PIC_OPENPIC
 		(void)setup_openpic(baseaddr, 0);
@@ -180,12 +180,12 @@
 	if (i > OPENPIC_MAX_ISUS)
 		aprint_error("Increase OPENPIC_MAX_ISUS to %d\n", i);
 
-	baseaddr = (unsigned char *)mapiodev(reg[0], 0x40000);
+	baseaddr = (unsigned char *)mapiodev(reg[0], 0x40000, false);
 	aprint_verbose("Found openpic at %08x\n", reg[0]);
 
 	for (j=0; j < i; j++) {
 		isu[j] = (unsigned char *)mapiodev(reg[(j+1)*2],
-		    reg[(j+1)*2+1]);
+		    reg[(j+1)*2+1], false);
 		isumap[j] = reg[(j+1)*2+1];
 	}
 	(void)setup_distributed_openpic(baseaddr, i, (void **)isu, isumap);

Index: src/sys/arch/powerpc/booke/booke_machdep.c
diff -u src/sys/arch/powerpc/booke/booke_machdep.c:1.13 src/sys/arch/powerpc/booke/booke_machdep.c:1.14
--- src/sys/arch/powerpc/booke/booke_machdep.c:1.13	Wed Jun 29 21:53:10 2011
+++ src/sys/arch/powerpc/booke/booke_machdep.c	Thu Jun 30 00:52:58 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: booke_machdep.c,v 1.13 2011/06/29 21:53:10 dholland Exp $	*/
+/*	$NetBSD: booke_machdep.c,v 1.14 2011/06/30 00:52:58 matt Exp $	*/
 /*-
  * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -38,7 +38,7 @@
 #define	_POWERPC_BUS_DMA_PRIVATE
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: booke_machdep.c,v 1.13 2011/06/29 21:53:10 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: booke_machdep.c,v 1.14 2011/06/30 00:52:58 matt Exp $");
 
 #include "opt_modular.h"
 
@@ -313,7 +313,7 @@
  * 	mapping if one is found.
  */
 void *
-mapiodev(paddr_t pa, psize_t len)
+mapiodev(paddr_t pa, psize_t len, bool prefetchable)
 {
 	const vsize_t off = pa & PAGE_MASK;
 
@@ -321,7 +321,7 @@
 	 * See if we have reserved TLB entry for the pa. This needs to be
 	 * true for console as we can't use uvm during early bootstrap.
 	 */
-	void * const p = tlb_mapiodev(pa, len);
+	void * const p = tlb_mapiodev(pa, len, prefetchable);
 	if (p != NULL)
 		return p;
 
@@ -340,7 +340,7 @@
 		va -= PAGE_SIZE;
 		pa -= PAGE_SIZE;
 		pmap_kenter_pa(va, pa, VM_PROT_READ|VM_PROT_WRITE,
-		    PMAP_NOCACHE);
+		    prefetchable ? 0 : PMAP_NOCACHE);
 	}
 	pmap_update(pmap_kernel());
 	return (void *)(va + off);

Index: src/sys/arch/powerpc/booke/booke_stubs.c
diff -u src/sys/arch/powerpc/booke/booke_stubs.c:1.8 src/sys/arch/powerpc/booke/booke_stubs.c:1.9
--- src/sys/arch/powerpc/booke/booke_stubs.c:1.8	Wed Jun 29 21:53:11 2011
+++ src/sys/arch/powerpc/booke/booke_stubs.c	Thu Jun 30 00:52:58 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: booke_stubs.c,v 1.8 2011/06/29 21:53:11 dholland Exp $	*/
+/*	$NetBSD: booke_stubs.c,v 1.9 2011/06/30 00:52:58 matt Exp $	*/
 /*-
  * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -36,7 +36,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(0, "$NetBSD: booke_stubs.c,v 1.8 2011/06/29 21:53:11 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: booke_stubs.c,v 1.9 2011/06/30 00:52:58 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/cpu.h>
@@ -143,12 +143,12 @@
 	(*cpu_md_ops.md_tlb_ops->md_tlb_walk)(ctx, func);
 }
 
-void *tlb_mapiodev(paddr_t, psize_t) __stub;
+void *tlb_mapiodev(paddr_t, psize_t, bool) __stub;
 
 void *
-tlb_mapiodev(paddr_t pa, psize_t len)
+tlb_mapiodev(paddr_t pa, psize_t len, bool prefetchable)
 {
-	return (*cpu_md_ops.md_tlb_io_ops->md_tlb_mapiodev)(pa, len);
+	return (*cpu_md_ops.md_tlb_io_ops->md_tlb_mapiodev)(pa, len, prefetchable);
 }
 
 void tlb_unmapiodev(vaddr_t, vsize_t) __stub;

Index: src/sys/arch/powerpc/booke/e500_tlb.c
diff -u src/sys/arch/powerpc/booke/e500_tlb.c:1.6 src/sys/arch/powerpc/booke/e500_tlb.c:1.7
--- src/sys/arch/powerpc/booke/e500_tlb.c:1.6	Wed Jun 29 23:15:55 2011
+++ src/sys/arch/powerpc/booke/e500_tlb.c	Thu Jun 30 00:52:58 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: e500_tlb.c,v 1.6 2011/06/29 23:15:55 matt Exp $	*/
+/*	$NetBSD: e500_tlb.c,v 1.7 2011/06/30 00:52:58 matt Exp $	*/
 /*-
  * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -36,7 +36,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(0, "$NetBSD: e500_tlb.c,v 1.6 2011/06/29 23:15:55 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: e500_tlb.c,v 1.7 2011/06/30 00:52:58 matt Exp $");
 
 #include <sys/param.h>
 
@@ -683,7 +683,7 @@
 }
 
 static void *
-e500_tlb_mapiodev(paddr_t pa, psize_t len)
+e500_tlb_mapiodev(paddr_t pa, psize_t len, bool prefetchable)
 {
 	struct e500_xtlb * const xtlb = e500_tlb_lookup_xtlb(pa, NULL);
 
@@ -694,8 +694,8 @@
 	 */
 	if (xtlb
 	    && pa + len <= xtlb->e_tlb.tlb_va + xtlb->e_tlb.tlb_size
-	    && ((xtlb->e_tlb.tlb_pte & PTE_W) == 0
-		|| (xtlb->e_tlb.tlb_pte & PTE_I) == PTE_I)) {
+	    && (prefetchable
+		|| (xtlb->e_tlb.tlb_pte & PTE_WIG) == (PTE_I|PTE_G))) {
 		xtlb->e_refcnt++;
 		return (void *) pa;
 	}

Index: src/sys/arch/powerpc/ibm4xx/pmap.c
diff -u src/sys/arch/powerpc/ibm4xx/pmap.c:1.69 src/sys/arch/powerpc/ibm4xx/pmap.c:1.70
--- src/sys/arch/powerpc/ibm4xx/pmap.c:1.69	Tue Jun 21 04:21:44 2011
+++ src/sys/arch/powerpc/ibm4xx/pmap.c	Thu Jun 30 00:52:58 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.c,v 1.69 2011/06/21 04:21:44 matt Exp $	*/
+/*	$NetBSD: pmap.c,v 1.70 2011/06/30 00:52:58 matt Exp $	*/
 
 /*
  * Copyright 2001 Wasabi Systems, Inc.
@@ -67,7 +67,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.69 2011/06/21 04:21:44 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.70 2011/06/30 00:52:58 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/cpu.h>
@@ -820,11 +820,11 @@
 	/* XXXX -- need to support multiple page sizes. */
 	tte |= TTE_SZ_16K;
 #ifdef	DIAGNOSTIC
-	if ((flags & (PME_NOCACHE | PME_WRITETHROUG)) ==
-		(PME_NOCACHE | PME_WRITETHROUG))
+	if ((flags & (PMAP_NOCACHE | PME_WRITETHROUG)) ==
+		(PMAP_NOCACHE | PME_WRITETHROUG))
 		panic("pmap_enter: uncached & writethrough");
 #endif
-	if (flags & PME_NOCACHE)
+	if (flags & PMAP_NOCACHE)
 		/* Must be I/O mapping */
 		tte |= TTE_I | TTE_G;
 #ifdef PPC_4XX_NOCACHE
@@ -941,11 +941,11 @@
 		/* XXXX -- need to support multiple page sizes. */
 		tte |= TTE_SZ_16K;
 #ifdef DIAGNOSTIC
-		if ((prot & (PME_NOCACHE | PME_WRITETHROUG)) ==
-			(PME_NOCACHE | PME_WRITETHROUG))
+		if ((flags & (PMAP_NOCACHE | PME_WRITETHROUG)) ==
+			(PMAP_NOCACHE | PME_WRITETHROUG))
 			panic("pmap_kenter_pa: uncached & writethrough");
 #endif
-		if (prot & PME_NOCACHE)
+		if (flags & PMAP_NOCACHE)
 			/* Must be I/O mapping */
 			tte |= TTE_I | TTE_G;
 #ifdef PPC_4XX_NOCACHE

Index: src/sys/arch/powerpc/include/cpu.h
diff -u src/sys/arch/powerpc/include/cpu.h:1.87 src/sys/arch/powerpc/include/cpu.h:1.88
--- src/sys/arch/powerpc/include/cpu.h:1.87	Wed Jun 29 06:00:17 2011
+++ src/sys/arch/powerpc/include/cpu.h	Thu Jun 30 00:52:59 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpu.h,v 1.87 2011/06/29 06:00:17 matt Exp $	*/
+/*	$NetBSD: cpu.h,v 1.88 2011/06/30 00:52:59 matt Exp $	*/
 
 /*
  * Copyright (C) 1999 Wolfgang Solfrank.
@@ -352,7 +352,7 @@
 void	dcache_inv(vaddr_t, vsize_t);
 void	icache_inv(vaddr_t, vsize_t);
 
-void *	mapiodev(paddr_t, psize_t);
+void *	mapiodev(paddr_t, psize_t, bool);
 void	unmapiodev(vaddr_t, vsize_t);
 
 #ifdef MULTIPROCESSOR

Index: src/sys/arch/powerpc/include/booke/cpuvar.h
diff -u src/sys/arch/powerpc/include/booke/cpuvar.h:1.11 src/sys/arch/powerpc/include/booke/cpuvar.h:1.12
--- src/sys/arch/powerpc/include/booke/cpuvar.h:1.11	Wed Jun 29 06:00:56 2011
+++ src/sys/arch/powerpc/include/booke/cpuvar.h	Thu Jun 30 00:52:59 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpuvar.h,v 1.11 2011/06/29 06:00:56 matt Exp $	*/
+/*	$NetBSD: cpuvar.h,v 1.12 2011/06/30 00:52:59 matt Exp $	*/
 /*-
  * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -115,7 +115,7 @@
 	 * early boot by doing cpu_md_ops.tlb_md_ops = (const struct
 	 * tlb_md_ops *) &<variable containing mapiodev pointer>.
 	 */
-	void *(*md_tlb_mapiodev)(paddr_t, psize_t);
+	void *(*md_tlb_mapiodev)(paddr_t, psize_t, bool);
 	void (*md_tlb_unmapiodev)(vaddr_t, vsize_t);
 	int (*md_tlb_ioreserve)(vaddr_t, vsize_t, uint32_t);
 	int (*md_tlb_iorelease)(vaddr_t);
@@ -175,7 +175,7 @@
 struct intrsw;
 void	exception_init(const struct intrsw *);
 
-void	*tlb_mapiodev(paddr_t, psize_t);
+void	*tlb_mapiodev(paddr_t, psize_t, bool);
 void	tlb_unmapiodev(vaddr_t, vsize_t);
 int	tlb_ioreserve(vaddr_t, vsize_t, pt_entry_t);
 int	tlb_iorelease(vaddr_t);

Index: src/sys/arch/powerpc/include/booke/pmap.h
diff -u src/sys/arch/powerpc/include/booke/pmap.h:1.7 src/sys/arch/powerpc/include/booke/pmap.h:1.8
--- src/sys/arch/powerpc/include/booke/pmap.h:1.7	Thu Jun 23 02:33:44 2011
+++ src/sys/arch/powerpc/include/booke/pmap.h	Thu Jun 30 00:52:59 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.h,v 1.7 2011/06/23 02:33:44 matt Exp $	*/
+/*	$NetBSD: pmap.h,v 1.8 2011/06/30 00:52:59 matt Exp $	*/
 /*-
  * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -52,7 +52,6 @@
 #include <powerpc/cpuset.h>
 #endif
 
-#define	PMAP_MD_NOCACHE		0x01000000
 #define	PMAP_NEED_PROCWR
 
 #include <common/pmap/tlb/vmpagemd.h>

Index: src/sys/arch/powerpc/include/booke/pte.h
diff -u src/sys/arch/powerpc/include/booke/pte.h:1.5 src/sys/arch/powerpc/include/booke/pte.h:1.6
--- src/sys/arch/powerpc/include/booke/pte.h:1.5	Thu Jun 23 20:46:15 2011
+++ src/sys/arch/powerpc/include/booke/pte.h	Thu Jun 30 00:52:59 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: pte.h,v 1.5 2011/06/23 20:46:15 matt Exp $	*/
+/*	$NetBSD: pte.h,v 1.6 2011/06/30 00:52:59 matt Exp $	*/
 /*-
  * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -126,15 +126,9 @@
 }
 
 static inline pt_entry_t
-pte_iouncached_bits(void)
-{
-	return PTE_W|PTE_I|PTE_G;
-}
-
-static inline pt_entry_t
 pte_ionocached_bits(void)
 {
-	return PTE_WIG;
+	return PTE_I|PTE_G;
 }
 
 static inline pt_entry_t
@@ -218,7 +212,7 @@
 static inline pt_entry_t
 pte_flag_bits(struct vm_page_md *mdpg, int flags)
 {
-	if (__predict_false(flags & PMAP_MD_NOCACHE)) {
+	if (__predict_false(flags & PMAP_NOCACHE)) {
 		if (__predict_true(mdpg != NULL)) {
 			return pte_nocached_bits();
 		} else {

Index: src/sys/arch/powerpc/include/ibm4xx/pmap.h
diff -u src/sys/arch/powerpc/include/ibm4xx/pmap.h:1.16 src/sys/arch/powerpc/include/ibm4xx/pmap.h:1.17
--- src/sys/arch/powerpc/include/ibm4xx/pmap.h:1.16	Mon Jun 20 20:24:28 2011
+++ src/sys/arch/powerpc/include/ibm4xx/pmap.h	Thu Jun 30 00:52:59 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.h,v 1.16 2011/06/20 20:24:28 matt Exp $	*/
+/*	$NetBSD: pmap.h,v 1.17 2011/06/30 00:52:59 matt Exp $	*/
 
 /*
  * Copyright 2001 Wasabi Systems, Inc.
@@ -138,7 +138,6 @@
  */
 #define	PME_NOCACHE	0x1000000
 #define	PME_WRITETHROUG	0x2000000
-#define	PMAP_MD_NOCACHE	PME_NOCACHE	/* XXX: OEA pmap compat. for bus_dma */
 
 /*
  * Pmap stuff

Index: src/sys/arch/powerpc/include/oea/pmap.h
diff -u src/sys/arch/powerpc/include/oea/pmap.h:1.24 src/sys/arch/powerpc/include/oea/pmap.h:1.25
--- src/sys/arch/powerpc/include/oea/pmap.h:1.24	Mon Jun 20 20:24:29 2011
+++ src/sys/arch/powerpc/include/oea/pmap.h	Thu Jun 30 00:52:59 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.h,v 1.24 2011/06/20 20:24:29 matt Exp $	*/
+/*	$NetBSD: pmap.h,v 1.25 2011/06/30 00:52:59 matt Exp $	*/
 
 /*-
  * Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -218,7 +218,6 @@
 int pmap_setup_segment0_map(int use_large_pages, ...);
 #endif
 
-#define PMAP_MD_NOCACHE			0x1000000
 #define PMAP_MD_PREFETCHABLE		0x2000000
 #define PMAP_STEAL_MEMORY
 #define PMAP_NEED_PROCWR

Index: src/sys/arch/powerpc/oea/oea_machdep.c
diff -u src/sys/arch/powerpc/oea/oea_machdep.c:1.58 src/sys/arch/powerpc/oea/oea_machdep.c:1.59
--- src/sys/arch/powerpc/oea/oea_machdep.c:1.58	Mon Jun 20 07:18:07 2011
+++ src/sys/arch/powerpc/oea/oea_machdep.c	Thu Jun 30 00:52:59 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: oea_machdep.c,v 1.58 2011/06/20 07:18:07 matt Exp $	*/
+/*	$NetBSD: oea_machdep.c,v 1.59 2011/06/30 00:52:59 matt Exp $	*/
 
 /*
  * Copyright (C) 2002 Matt Thomas
@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: oea_machdep.c,v 1.58 2011/06/20 07:18:07 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: oea_machdep.c,v 1.59 2011/06/30 00:52:59 matt Exp $");
 
 #include "opt_ppcarch.h"
 #include "opt_compat_netbsd.h"
@@ -835,7 +835,7 @@
  * Allocate vm space and mapin the I/O address
  */
 void *
-mapiodev(paddr_t pa, psize_t len)
+mapiodev(paddr_t pa, psize_t len, bool prefetchable)
 {
 	paddr_t faddr;
 	vaddr_t taddr, va;
@@ -850,7 +850,8 @@
 		return NULL;
 
 	for (; len > 0; len -= PAGE_SIZE) {
-		pmap_kenter_pa(taddr, faddr, VM_PROT_READ | VM_PROT_WRITE, 0);
+		pmap_kenter_pa(taddr, faddr, VM_PROT_READ | VM_PROT_WRITE,
+		    (prefetchable ? PMAP_MD_PREFETCHABLE : PMAP_NOCACHE));
 		faddr += PAGE_SIZE;
 		taddr += PAGE_SIZE;
 	}

Index: src/sys/arch/powerpc/oea/pmap.c
diff -u src/sys/arch/powerpc/oea/pmap.c:1.80 src/sys/arch/powerpc/oea/pmap.c:1.81
--- src/sys/arch/powerpc/oea/pmap.c:1.80	Sun Jun 19 07:59:47 2011
+++ src/sys/arch/powerpc/oea/pmap.c	Thu Jun 30 00:52:59 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.c,v 1.80 2011/06/19 07:59:47 matt Exp $	*/
+/*	$NetBSD: pmap.c,v 1.81 2011/06/30 00:52:59 matt Exp $	*/
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -63,7 +63,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.80 2011/06/19 07:59:47 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.81 2011/06/30 00:52:59 matt Exp $");
 
 #define	PMAP_NOOPNAMES
 
@@ -1931,7 +1931,7 @@
 	} else
 		pte_lo = PTE_G;
 
-	if ((flags & PMAP_MD_NOCACHE) == 0) {
+	if ((flags & PMAP_NOCACHE) == 0) {
 		for (mp = mem; mp->size; mp++) {
 			if (pa >= mp->start && pa < mp->start + mp->size) {
 				pte_lo = PTE_M;
@@ -2024,7 +2024,7 @@
 	 * asssume it's in memory coherent memory.
 	 */
 	pte_lo = PTE_IG;
-	if ((flags & PMAP_MD_NOCACHE) == 0) {
+	if ((flags & PMAP_NOCACHE) == 0) {
 		for (mp = mem; mp->size; mp++) {
 			if (pa >= mp->start && pa < mp->start + mp->size) {
 				pte_lo = PTE_M;

Index: src/sys/arch/powerpc/oea/pmap_kernel.c
diff -u src/sys/arch/powerpc/oea/pmap_kernel.c:1.8 src/sys/arch/powerpc/oea/pmap_kernel.c:1.9
--- src/sys/arch/powerpc/oea/pmap_kernel.c:1.8	Mon Jun 20 08:07:03 2011
+++ src/sys/arch/powerpc/oea/pmap_kernel.c	Thu Jun 30 00:52:59 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap_kernel.c,v 1.8 2011/06/20 08:07:03 matt Exp $	*/
+/*	$NetBSD: pmap_kernel.c,v 1.9 2011/06/30 00:52:59 matt Exp $	*/
 /*-
  * Copyright (c) 2011 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -30,7 +30,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(1, "$NetBSD: pmap_kernel.c,v 1.8 2011/06/20 08:07:03 matt Exp $");
+__KERNEL_RCSID(1, "$NetBSD: pmap_kernel.c,v 1.9 2011/06/30 00:52:59 matt Exp $");
 
 #include "opt_ddb.h"
 #include "opt_pmap.h"
@@ -44,12 +44,12 @@
 u_int
 powerpc_mmap_flags(paddr_t pa)
 {
-	u_int flags = PMAP_MD_NOCACHE;
+	u_int flags = PMAP_NOCACHE;
 
 	if (pa & POWERPC_MMAP_FLAG_PREFETCHABLE)
 		flags |= PMAP_MD_PREFETCHABLE;
 	if (pa & POWERPC_MMAP_FLAG_CACHEABLE)
-		flags &= ~PMAP_MD_NOCACHE;
+		flags &= ~PMAP_NOCACHE;
 	return flags;
 }
 

Index: src/sys/arch/powerpc/pci/pchb.c
diff -u src/sys/arch/powerpc/pci/pchb.c:1.6 src/sys/arch/powerpc/pci/pchb.c:1.7
--- src/sys/arch/powerpc/pci/pchb.c:1.6	Fri Jun 17 19:03:00 2011
+++ src/sys/arch/powerpc/pci/pchb.c	Thu Jun 30 00:52:59 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: pchb.c,v 1.6 2011/06/17 19:03:00 matt Exp $	*/
+/*	$NetBSD: pchb.c,v 1.7 2011/06/30 00:52:59 matt Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pchb.c,v 1.6 2011/06/17 19:03:00 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pchb.c,v 1.7 2011/06/30 00:52:59 matt Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -260,7 +260,7 @@
 			ibm82660_print(pa, self);
 			break;
 		case PCI_PRODUCT_IBM_PYTHON:
-			python = mapiodev(0xfeff6000, 0x60);
+			python = mapiodev(0xfeff6000, 0x60, false);
 			v = 0x88b78e01; /* taken from linux */
 			out32rb(python+0x30, v);
 			v = in32rb(python+0x30);

Index: src/sys/arch/powerpc/powerpc/bus_dma.c
diff -u src/sys/arch/powerpc/powerpc/bus_dma.c:1.41 src/sys/arch/powerpc/powerpc/bus_dma.c:1.42
--- src/sys/arch/powerpc/powerpc/bus_dma.c:1.41	Sat Jun 18 06:41:44 2011
+++ src/sys/arch/powerpc/powerpc/bus_dma.c	Thu Jun 30 00:53:00 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: bus_dma.c,v 1.41 2011/06/18 06:41:44 matt Exp $	*/
+/*	$NetBSD: bus_dma.c,v 1.42 2011/06/30 00:53:00 matt Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@@ -32,7 +32,7 @@
 
 #define _POWERPC_BUS_DMA_PRIVATE
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bus_dma.c,v 1.41 2011/06/18 06:41:44 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bus_dma.c,v 1.42 2011/06/30 00:53:00 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -637,7 +637,7 @@
 			pmap_kenter_pa(va, addr,
 			    VM_PROT_READ | VM_PROT_WRITE,
 			    PMAP_WIRED |
-			    ((flags & BUS_DMA_NOCACHE) ? PMAP_MD_NOCACHE : 0));
+			    ((flags & BUS_DMA_NOCACHE) ? PMAP_NOCACHE : 0));
 		}
 	}
 

Index: src/sys/arch/powerpc/powerpc/bus_space.c
diff -u src/sys/arch/powerpc/powerpc/bus_space.c:1.27 src/sys/arch/powerpc/powerpc/bus_space.c:1.28
--- src/sys/arch/powerpc/powerpc/bus_space.c:1.27	Mon Jun 20 05:39:43 2011
+++ src/sys/arch/powerpc/powerpc/bus_space.c	Thu Jun 30 00:53:00 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: bus_space.c,v 1.27 2011/06/20 05:39:43 matt Exp $	*/
+/*	$NetBSD: bus_space.c,v 1.28 2011/06/30 00:53:00 matt Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bus_space.c,v 1.27 2011/06/20 05:39:43 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bus_space.c,v 1.28 2011/06/30 00:53:00 matt Exp $");
 
 #define _POWERPC_BUS_SPACE_PRIVATE
 
@@ -614,7 +614,8 @@
 	/*
 	 * Map this into the kernel pmap.
 	 */
-	*bshp = (bus_space_handle_t) mapiodev(pa, size);
+	*bshp = (bus_space_handle_t) mapiodev(pa, size,
+	    (flags & BUS_SPACE_MAP_PREFETCHABLE) != 0);
 	if (*bshp == 0) {
 		extent_free(t->pbs_extent, bpa, size, EX_NOWAIT | extent_flags);
 #ifdef DEBUG
@@ -747,7 +748,7 @@
 		}
 	}
 #endif /* defined (PPC_OEA) || defined(PPC_OEA601) */
-	*bshp = (bus_space_handle_t) mapiodev(pa, size);
+	*bshp = (bus_space_handle_t) mapiodev(pa, size, false);
 	if (*bshp == 0) {
 		extent_free(t->pbs_extent, bpa, size, EX_NOWAIT | extent_flags);
 		return (ENOMEM);

Index: src/sys/arch/prep/include/autoconf.h
diff -u src/sys/arch/prep/include/autoconf.h:1.8 src/sys/arch/prep/include/autoconf.h:1.9
--- src/sys/arch/prep/include/autoconf.h:1.8	Wed Oct 17 19:56:49 2007
+++ src/sys/arch/prep/include/autoconf.h	Thu Jun 30 00:53:00 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: autoconf.h,v 1.8 2007/10/17 19:56:49 garbled Exp $	*/
+/*	$NetBSD: autoconf.h,v 1.9 2011/06/30 00:53:00 matt Exp $	*/
 
 /*-
  * Copyright (C) 1998	Internet Research Institute, Inc.
@@ -43,5 +43,4 @@
 	/* bus_space_tag_t ca_tag; */
 };
 
-extern void *mapiodev(paddr_t, psize_t);
 extern paddr_t kvtop(void *);

Index: src/sys/arch/prep/pci/pci_machdep.c
diff -u src/sys/arch/prep/pci/pci_machdep.c:1.35 src/sys/arch/prep/pci/pci_machdep.c:1.36
--- src/sys/arch/prep/pci/pci_machdep.c:1.35	Wed Jun 22 18:06:35 2011
+++ src/sys/arch/prep/pci/pci_machdep.c	Thu Jun 30 00:53:00 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: pci_machdep.c,v 1.35 2011/06/22 18:06:35 matt Exp $	*/
+/*	$NetBSD: pci_machdep.c,v 1.36 2011/06/30 00:53:00 matt Exp $	*/
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All rights reserved.
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pci_machdep.c,v 1.35 2011/06/22 18:06:35 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pci_machdep.c,v 1.36 2011/06/30 00:53:00 matt Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -96,8 +96,8 @@
 	pc->pc_decompose_tag = genppc_pci_indirect_decompose_tag;
 	pc->pc_conf_hook = prep_pci_conf_hook;
 
-	pc->pc_addr = mapiodev(prep_pci_baseaddr, 4);
-	pc->pc_data = mapiodev(prep_pci_basedata, 4);
+	pc->pc_addr = mapiodev(prep_pci_baseaddr, 4, false);
+	pc->pc_data = mapiodev(prep_pci_basedata, 4, false);
 	pc->pc_bus = 0;
 	pc->pc_node = 0;
 	pc->pc_memt = 0;

Index: src/sys/arch/prep/prep/machdep.c
diff -u src/sys/arch/prep/prep/machdep.c:1.72 src/sys/arch/prep/prep/machdep.c:1.73
--- src/sys/arch/prep/prep/machdep.c:1.72	Mon Jun 20 07:18:07 2011
+++ src/sys/arch/prep/prep/machdep.c	Thu Jun 30 00:53:00 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: machdep.c,v 1.72 2011/06/20 07:18:07 matt Exp $	*/
+/*	$NetBSD: machdep.c,v 1.73 2011/06/30 00:53:00 matt Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.72 2011/06/20 07:18:07 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.73 2011/06/30 00:53:00 matt Exp $");
 
 #include "opt_compat_netbsd.h"
 #include "opt_openpic.h"
@@ -342,11 +342,11 @@
 		if (pa->PPCData[0] == 1)
 			baseaddr = (unsigned char *)mapiodev(
 			    le64dec(&pa->PPCData[4]) | PREP_BUS_SPACE_IO,
-			    le64dec(&pa->PPCData[12]));
+			    le64dec(&pa->PPCData[12]), false);
 		else if (pa->PPCData[0] == 2)
 			baseaddr = (unsigned char *)mapiodev(
 			    le64dec(&pa->PPCData[4]) | PREP_BUS_SPACE_MEM,
-			    le64dec(&pa->PPCData[12]));
+			    le64dec(&pa->PPCData[12]), false);
 		if (baseaddr == NULL)
 			return 0;
 		pic_init();
@@ -407,7 +407,7 @@
 		/* otherwise we have a memory packet */
 		addr = le64dec(&pa->PPCData[4]) & ~(PAGE_SIZE-1);
 		prep_intr_reg_off = le64dec(&pa->PPCData[4]) & (PAGE_SIZE-1); 
-		prep_intr_reg = (vaddr_t)mapiodev(addr, PAGE_SIZE);
+		prep_intr_reg = (vaddr_t)mapiodev(addr, PAGE_SIZE, false);
 		if (!prep_intr_reg)
 			panic("startup: no room for interrupt register");
 		return;
@@ -450,7 +450,7 @@
 		 * occur on certain motorola VME boards.  Instead we need
 		 * to just hardcode it.
 		 */
-		prep_intr_reg = (vaddr_t) mapiodev(PREP_INTR_REG, PAGE_SIZE);
+		prep_intr_reg = (vaddr_t) mapiodev(PREP_INTR_REG, PAGE_SIZE, false);
 		if (!prep_intr_reg)
 			panic("startup: no room for interrupt register");
 		prep_intr_reg_off = INTR_VECTOR_REG;

Index: src/sys/arch/rs6000/include/autoconf.h
diff -u src/sys/arch/rs6000/include/autoconf.h:1.1 src/sys/arch/rs6000/include/autoconf.h:1.2
--- src/sys/arch/rs6000/include/autoconf.h:1.1	Mon Dec 17 19:09:08 2007
+++ src/sys/arch/rs6000/include/autoconf.h	Thu Jun 30 00:53:00 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: autoconf.h,v 1.1 2007/12/17 19:09:08 garbled Exp $	*/
+/*	$NetBSD: autoconf.h,v 1.2 2011/06/30 00:53:00 matt Exp $	*/
 
 /*-
  * Copyright (C) 1998	Internet Research Institute, Inc.
@@ -44,8 +44,7 @@
 };
 
 #ifdef _KERNEL
-extern void *mapiodev(paddr_t, psize_t);
-extern paddr_t kvtop(void *);
+paddr_t kvtop(void *);
 
 void inittodr(time_t);
 void resettodr(void);

Reply via email to