Modify mapiodev to take a third argument indicating whether the space

should be prefetchable (true) or not (false).
This commit is contained in:
matt 2011-06-30 00:52:55 +00:00
parent ebc746ad25
commit 4a40b01453
48 changed files with 171 additions and 179 deletions

View File

@ -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 @@ cpu_startup(void)
/*
* 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");

View File

@ -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 @@ struct confargs {
/* bus_space_tag_t ca_tag; */
};
extern void *mapiodev(paddr_t, psize_t);
extern paddr_t kvtop(void *);

View File

@ -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 @@ bebox_pci_get_chipset_tag(pci_chipset_tag_t pc)
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;

View File

@ -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 @@ int fake_mapiodev = 1;
* 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 @@ mapiodev(paddr_t pa, psize_t len)
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;
}

View File

@ -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 @@ e500_cnputc(dev_t dv, int c)
}
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 @@ gur_tlb_mapiodev(paddr_t pa, psize_t len)
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)

View File

@ -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 @@ pmppc_pci_get_chipset_tag(pci_chipset_tag_t pc)
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;

View File

@ -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 @@ cpu_startup(void)
/*
* 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;

View File

@ -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 @@ struct confargs {
/* 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 *);

View File

@ -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 @@ ibmnws_pci_get_chipset_tag_indirect(pci_chipset_tag_t pc)
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;

View File

@ -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 @@ adbattach(device_t parent, device_t self, void *aux)
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)

View File

@ -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 @@ espattach(device_t parent, device_t self, void *aux)
* 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);

View File

@ -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 @@ gpio_obio_attach(device_t parent, device_t self, void *aux)
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)) {

View File

@ -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 @@ bmac_attach(device_t parent, device_t self, void *aux)
}
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);

View File

@ -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 <khym@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 @@ mc_attach(device_t parent, device_t self, void *aux)
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;

View File

@ -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 @@ mediabay_attach(device_t parent, device_t self, void *aux)
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;

View File

@ -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 @@ mesh_attach(device_t parent, device_t self, void *aux)
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;

View File

@ -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 @@ nvram_attach(device_t parent, device_t self, void *aux)
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:

View File

@ -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 @@ zsc_attach(device_t parent, device_t self, void *aux)
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 @@ zsc_attach(device_t parent, device_t self, void *aux)
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,

View File

@ -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 @@ void identifycpu(char *);
/* 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);

View File

@ -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 @@ ohare_init(void)
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)

View File

@ -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 @@ bandit_attach(device_t parent, device_t self, void *aux)
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;

View File

@ -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 @@ grackle_attach(device_t parent, device_t self, void *aux)
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;

View File

@ -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 @@ ibmcpc_attach(device_t parent, device_t self, void *aux)
}
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++) {

View File

@ -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 @@ uninorth_attach(device_t parent, device_t self, void *aux)
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;

View File

@ -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 @@ struct confargs {
/* 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 *);

View File

@ -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 @@ cpu_startup(void)
/*
* 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");

View File

@ -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 @@ mvmeppc_pci_get_chipset_tag(pci_chipset_tag_t pc)
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;

View File

@ -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 @@ init_prepivr(int node)
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 @@ init_openpic(int node)
(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 @@ init_openpic(int node)
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 @@ init_openpic(int node)
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);

View File

@ -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 @@ cpu_reboot(int howto, char *what)
* 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 @@ mapiodev(paddr_t pa, psize_t len)
* 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 @@ mapiodev(paddr_t pa, psize_t len)
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);

View File

@ -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 @@ tlb_walk(void *ctx, bool (*func)(void *, vaddr_t, uint32_t, uint32_t))
(*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;

View File

@ -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 @@ e500_tlb_lookup_xtlb2(vaddr_t va, vsize_t len)
}
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 @@ e500_tlb_mapiodev(paddr_t pa, psize_t len)
*/
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;
}

View File

@ -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 @@ pmap_enter(struct pmap *pm, vaddr_t va, paddr_t pa, vm_prot_t prot, u_int flags)
/* 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 @@ pmap_kenter_pa(vaddr_t va, paddr_t pa, vm_prot_t prot, u_int flags)
/* 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

View File

@ -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 @@ struct tlb_md_io_ops {
* 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 @@ void calc_delayconst(void);
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);

View File

@ -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>

View File

@ -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.
@ -125,16 +125,10 @@ pte_to_paddr(pt_entry_t pt_entry)
return (paddr_t)(pt_entry & PTE_RPN_MASK);
}
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 @@ pte_prot_bits(struct vm_page_md *mdpg, vm_prot_t prot)
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 {

View File

@ -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_wbinv(vaddr_t, vsize_t);
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

View File

@ -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

View File

@ -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 @@ vaddr_t pmap_unsetusr (void);
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

View File

@ -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 @@ kvtop(void *addr)
* 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 @@ mapiodev(paddr_t pa, psize_t len)
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;
}

View File

@ -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 @@ pmap_enter(pmap_t pm, vaddr_t va, paddr_t pa, vm_prot_t prot, u_int flags)
} 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 @@ pmap_kenter_pa(vaddr_t va, paddr_t pa, vm_prot_t prot, u_int flags)
* 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;

View File

@ -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 @@ struct pmap *const kernel_pmap_ptr = &kernel_pmap_;
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;
}

View File

@ -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 @@ pchbattach(device_t parent, device_t self, void *aux)
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);

View File

@ -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 @@ _bus_dmamem_map(bus_dma_tag_t t, bus_dma_segment_t *segs, int nsegs, size_t size
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));
}
}

View File

@ -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 @@ memio_map(bus_space_tag_t t, bus_addr_t bpa, bus_size_t size, int flags,
/*
* 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 @@ memio_alloc(bus_space_tag_t t, bus_addr_t rstart, bus_addr_t rend,
}
}
#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);

View File

@ -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 @@ struct confargs {
/* bus_space_tag_t ca_tag; */
};
extern void *mapiodev(paddr_t, psize_t);
extern paddr_t kvtop(void *);

View File

@ -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 @@ prep_pci_get_chipset_tag_indirect(pci_chipset_tag_t pc)
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;

View File

@ -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 @@ prep_setup_openpic(PPC_DEVICE *dev)
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 @@ setup_ivr(PPC_DEVICE *dev)
/* 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 @@ prep_init(void)
* 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;

View File

@ -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 @@ struct confargs {
};
#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);