New bus.h implementation/interface:

- No more distinction between i/o-mapped and memory-mapped
	  devices.  It's all "bus space" now, and space tags
	  differentiate the space with finer grain than the
	  bus chipset tag.
	- Add memory barrier methods.
	- Implement space alloc/free methods.
	- Implement region read/write methods (like memcpy to/from
	  bus space).
This interface provides a better abstraction for dealing with
machine-independent chipset drivers.
This commit is contained in:
thorpej 1996-10-21 22:56:24 +00:00
parent 769a499800
commit 546c8abcee
13 changed files with 198 additions and 188 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: ahc_pci.c,v 1.8 1996/10/13 01:38:16 christos Exp $ */ /* $NetBSD: ahc_pci.c,v 1.9 1996/10/21 22:56:24 thorpej Exp $ */
/* /*
* Product specific probe and attach routines for: * Product specific probe and attach routines for:
@ -306,9 +306,9 @@ ahc_pci_attach(parent, self, aux)
#elif defined(__NetBSD__) #elif defined(__NetBSD__)
struct pci_attach_args *pa = aux; struct pci_attach_args *pa = aux;
struct ahc_data *ahc = (void *)self; struct ahc_data *ahc = (void *)self;
bus_io_addr_t iobase; bus_addr_t iobase;
bus_io_size_t iosize; bus_size_t iosize;
bus_io_handle_t ioh; bus_space_handle_t ioh;
pci_intr_handle_t ih; pci_intr_handle_t ih;
const char *intrstr; const char *intrstr;
#endif #endif
@ -333,7 +333,7 @@ ahc_pci_attach(parent, self, aux)
#elif defined(__NetBSD__) #elif defined(__NetBSD__)
if (pci_io_find(pa->pa_pc, pa->pa_tag, PCI_BASEADR0, &iobase, &iosize)) if (pci_io_find(pa->pa_pc, pa->pa_tag, PCI_BASEADR0, &iobase, &iosize))
return; return;
if (bus_io_map(pa->pa_bc, iobase, iosize, &ioh)) if (bus_space_map(pa->pa_iot, iobase, iosize, 0, &ioh))
return; return;
#endif #endif
@ -390,16 +390,17 @@ ahc_pci_attach(parent, self, aux)
if(ahc_t & AHC_ULTRA) if(ahc_t & AHC_ULTRA)
ultra_enb = inb(SXFRCTL0 + io_port) & ULTRAEN; ultra_enb = inb(SXFRCTL0 + io_port) & ULTRAEN;
#else #else
our_id = bus_io_read_1(pa->pa_bc, ioh, SCSIID) & OID; our_id = bus_space_read_1(pa->pa_iot, ioh, SCSIID) & OID;
if(ahc_t & AHC_ULTRA) if(ahc_t & AHC_ULTRA)
ultra_enb = bus_io_read_1(pa->pa_bc, ioh, SXFRCTL0) & ULTRAEN; ultra_enb = bus_space_read_1(pa->pa_iot, ioh,
SXFRCTL0) & ULTRAEN;
#endif #endif
#if defined(__FreeBSD__) #if defined(__FreeBSD__)
ahc_reset(io_port); ahc_reset(io_port);
#elif defined(__NetBSD__) #elif defined(__NetBSD__)
printf("\n"); printf("\n");
ahc_reset(ahc->sc_dev.dv_xname, pa->pa_bc, ioh); ahc_reset(ahc->sc_dev.dv_xname, pa->pa_iot, ioh);
#endif #endif
if(ahc_t & AHC_AIC7870){ if(ahc_t & AHC_AIC7870){
@ -449,7 +450,7 @@ ahc_pci_attach(parent, self, aux)
return; return;
} }
#elif defined(__NetBSD__) #elif defined(__NetBSD__)
ahc_construct(ahc, pa->pa_bc, ioh, ahc_t, ahc_f); ahc_construct(ahc, pa->pa_iot, ioh, ahc_t, ahc_f);
if (pci_intr_map(pa->pa_pc, pa->pa_intrtag, pa->pa_intrpin, if (pci_intr_map(pa->pa_pc, pa->pa_intrtag, pa->pa_intrpin,
pa->pa_intrline, &ih)) { pa->pa_intrline, &ih)) {
@ -620,7 +621,7 @@ load_seeprom(ahc)
#if defined(__FreeBSD__) #if defined(__FreeBSD__)
sd.sd_iobase = ahc->baseport + SEECTL; sd.sd_iobase = ahc->baseport + SEECTL;
#elif defined(__NetBSD__) #elif defined(__NetBSD__)
sd.sd_bc = ahc->sc_bc; sd.sd_iot = ahc->sc_iot;
sd.sd_ioh = ahc->sc_ioh; sd.sd_ioh = ahc->sc_ioh;
sd.sd_offset = SEECTL; sd.sd_offset = SEECTL;
#endif #endif

View File

@ -1,4 +1,4 @@
/* $NetBSD: bha_pci.c,v 1.4 1996/10/13 01:38:17 christos Exp $ */ /* $NetBSD: bha_pci.c,v 1.5 1996/10/21 22:56:27 thorpej Exp $ */
/* /*
* Copyright (c) 1994, 1996 Charles M. Hannum. All rights reserved. * Copyright (c) 1994, 1996 Charles M. Hannum. All rights reserved.
@ -66,10 +66,10 @@ bha_pci_match(parent, match, aux)
void *match, *aux; void *match, *aux;
{ {
struct pci_attach_args *pa = aux; struct pci_attach_args *pa = aux;
bus_chipset_tag_t bc = pa->pa_bc; bus_space_tag_t iot = pa->pa_iot;
bus_io_addr_t iobase; bus_addr_t iobase;
bus_io_size_t iosize; bus_size_t iosize;
bus_io_handle_t ioh; bus_space_handle_t ioh;
pci_chipset_tag_t pc = pa->pa_pc; pci_chipset_tag_t pc = pa->pa_pc;
int rv; int rv;
@ -82,12 +82,12 @@ bha_pci_match(parent, match, aux)
if (pci_io_find(pc, pa->pa_tag, PCI_CBIO, &iobase, &iosize)) if (pci_io_find(pc, pa->pa_tag, PCI_CBIO, &iobase, &iosize))
return (0); return (0);
if (bus_io_map(bc, iobase, iosize, &ioh)) if (bus_space_map(iot, iobase, iosize, 0, &ioh))
return (0); return (0);
rv = bha_find(bc, ioh, NULL); rv = bha_find(iot, ioh, NULL);
bus_io_unmap(bc, ioh, iosize); bus_space_unmap(iot, ioh, iosize);
return (rv); return (rv);
} }
@ -102,10 +102,10 @@ bha_pci_attach(parent, self, aux)
{ {
struct pci_attach_args *pa = aux; struct pci_attach_args *pa = aux;
struct bha_softc *sc = (void *)self; struct bha_softc *sc = (void *)self;
bus_chipset_tag_t bc = pa->pa_bc; bus_space_tag_t iot = pa->pa_iot;
bus_io_addr_t iobase; bus_addr_t iobase;
bus_io_size_t iosize; bus_size_t iosize;
bus_io_handle_t ioh; bus_space_handle_t ioh;
pci_chipset_tag_t pc = pa->pa_pc; pci_chipset_tag_t pc = pa->pa_pc;
pci_intr_handle_t ih; pci_intr_handle_t ih;
pcireg_t csr; pcireg_t csr;
@ -121,12 +121,12 @@ bha_pci_attach(parent, self, aux)
if (pci_io_find(pc, pa->pa_tag, PCI_CBIO, &iobase, &iosize)) if (pci_io_find(pc, pa->pa_tag, PCI_CBIO, &iobase, &iosize))
panic("bha_attach: pci_io_find failed!"); panic("bha_attach: pci_io_find failed!");
if (bus_io_map(bc, iobase, iosize, &ioh)) if (bus_space_map(iot, iobase, iosize, 0, &ioh))
panic("bha_attach: bus_io_map failed!"); panic("bha_attach: bus_space_map failed!");
sc->sc_bc = bc; sc->sc_iot = iot;
sc->sc_ioh = ioh; sc->sc_ioh = ioh;
if (!bha_find(bc, ioh, sc)) if (!bha_find(iot, ioh, sc))
panic("bha_attach: bha_find failed!"); panic("bha_attach: bha_find failed!");
csr = pci_conf_read(pc, pa->pa_tag, PCI_COMMAND_STATUS_REG); csr = pci_conf_read(pc, pa->pa_tag, PCI_COMMAND_STATUS_REG);

View File

@ -1,4 +1,4 @@
/* $NetBSD: cy_pci.c,v 1.3 1996/10/13 01:38:18 christos Exp $ */ /* $NetBSD: cy_pci.c,v 1.4 1996/10/21 22:56:29 thorpej Exp $ */
/* /*
* cy_pci.c * cy_pci.c
@ -27,9 +27,9 @@
static int cy_probe_pci __P((struct device *, void *, void *)); static int cy_probe_pci __P((struct device *, void *, void *));
static void cy_attach_pci __P((struct device *, struct device *, void *)); static void cy_attach_pci __P((struct device *, struct device *, void *));
static int cy_map_pci __P((struct pci_attach_args *, struct cy_softc *, static int cy_map_pci __P((struct pci_attach_args *, struct cy_softc *,
bus_io_handle_t *, bus_mem_size_t *, bus_io_size_t *)); bus_space_handle_t *, bus_size_t *, bus_size_t *));
static void cy_unmap_pci __P((struct cy_softc *, bus_io_handle_t, static void cy_unmap_pci __P((struct cy_softc *, bus_space_handle_t,
bus_mem_size_t, bus_io_size_t)); bus_size_t, bus_size_t));
struct cfattach cy_pci_ca = { struct cfattach cy_pci_ca = {
sizeof(struct cy_softc), cy_probe_pci, cy_attach_pci sizeof(struct cy_softc), cy_probe_pci, cy_attach_pci
@ -39,12 +39,12 @@ static int
cy_map_pci(pa, sc, ioh, iosize, memsize) cy_map_pci(pa, sc, ioh, iosize, memsize)
struct pci_attach_args *pa; struct pci_attach_args *pa;
struct cy_softc *sc; struct cy_softc *sc;
bus_io_handle_t *ioh; bus_space_handle_t *ioh;
bus_mem_size_t *memsize; bus_size_t *memsize;
bus_io_size_t *iosize; bus_size_t *iosize;
{ {
bus_io_addr_t iobase; bus_addr_t iobase;
bus_mem_addr_t memaddr; bus_addr_t memaddr;
int cacheable; int cacheable;
if (pci_mem_find(pa->pa_pc, pa->pa_tag, 0x18, &memaddr, memsize, if (pci_mem_find(pa->pa_pc, pa->pa_tag, 0x18, &memaddr, memsize,
@ -53,7 +53,8 @@ cy_map_pci(pa, sc, ioh, iosize, memsize)
return 0; return 0;
} }
/* map the memory (non-cacheable) */ /* map the memory (non-cacheable) */
if (bus_mem_map(sc->sc_bc, memaddr, *memsize, 0, &sc->sc_memh) != 0) { if (bus_space_map(sc->sc_memt, memaddr, *memsize, 0,
&sc->sc_bsh) != 0) {
printf("%s: couldn't map PCI memory region\n", printf("%s: couldn't map PCI memory region\n",
sc->sc_dev.dv_xname); sc->sc_dev.dv_xname);
return 0; return 0;
@ -64,29 +65,29 @@ cy_map_pci(pa, sc, ioh, iosize, memsize)
sc->sc_dev.dv_xname); sc->sc_dev.dv_xname);
goto unmapmem; goto unmapmem;
} }
if (bus_io_map(sc->sc_bc, iobase, *iosize, ioh) != 0) { if (bus_space_map(sc->sc_iot, iobase, *iosize, 0, ioh) != 0) {
printf("%s: couldn't map PCI io region\n", sc->sc_dev.dv_xname); printf("%s: couldn't map PCI io region\n", sc->sc_dev.dv_xname);
goto unmapio; goto unmapio;
} }
return 1; return 1;
unmapio: unmapio:
bus_io_unmap(sc->sc_bc, *ioh, *iosize); bus_space_unmap(sc->sc_iot, *ioh, *iosize);
unmapmem: unmapmem:
bus_mem_unmap(sc->sc_bc, sc->sc_memh, *memsize); bus_space_unmap(sc->sc_memt, sc->sc_bsh, *memsize);
return 0; return 0;
} }
static void static void
cy_unmap_pci(sc, ioh, iosize, memsize) cy_unmap_pci(sc, ioh, iosize, memsize)
struct cy_softc *sc; struct cy_softc *sc;
bus_io_handle_t ioh; bus_space_handle_t ioh;
bus_io_size_t iosize; bus_size_t iosize;
bus_mem_size_t memsize; bus_size_t memsize;
{ {
bus_io_unmap(sc->sc_bc, ioh, iosize); bus_space_unmap(sc->sc_iot, ioh, iosize);
bus_mem_unmap(sc->sc_bc, sc->sc_memh, memsize); bus_space_unmap(sc->sc_memt, sc->sc_bsh, memsize);
} }
static int static int
@ -95,9 +96,9 @@ cy_probe_pci(parent, match, aux)
void *match, *aux; void *match, *aux;
{ {
struct pci_attach_args *pa = aux; struct pci_attach_args *pa = aux;
bus_io_handle_t ioh; bus_space_handle_t ioh;
bus_mem_size_t memsize; bus_size_t memsize;
bus_io_size_t iosize; bus_size_t iosize;
int rv = 0; int rv = 0;
struct cy_softc sc; struct cy_softc sc;
@ -116,9 +117,11 @@ cy_probe_pci(parent, match, aux)
#ifdef CY_DEBUG #ifdef CY_DEBUG
printf("cy: Found Cyclades PCI device, id = 0x%x\n", pa->pa_id); printf("cy: Found Cyclades PCI device, id = 0x%x\n", pa->pa_id);
#endif #endif
/* XXX THIS IS TOTALLY WRONG! XXX */
memcpy(&sc.sc_dev, match, sizeof(struct device)); memcpy(&sc.sc_dev, match, sizeof(struct device));
sc.sc_bc = pa->pa_bc; sc.sc_iot = pa->pa_iot;
sc.sc_memt = pa->pa_memt;
sc.sc_bustype = CY_BUSTYPE_PCI; sc.sc_bustype = CY_BUSTYPE_PCI;
if (cy_map_pci(pa, &sc, &ioh, &iosize, &memsize) == 0) if (cy_map_pci(pa, &sc, &ioh, &iosize, &memsize) == 0)
@ -145,12 +148,13 @@ cy_attach_pci(parent, self, aux)
{ {
struct cy_softc *sc = (void *) self; struct cy_softc *sc = (void *) self;
pci_intr_handle_t intrhandle; pci_intr_handle_t intrhandle;
bus_io_handle_t ioh; bus_space_handle_t ioh;
bus_mem_size_t memsize; bus_size_t memsize;
bus_io_size_t iosize; bus_size_t iosize;
struct pci_attach_args *pa = aux; struct pci_attach_args *pa = aux;
sc->sc_bc = pa->pa_bc; sc->sc_iot = pa->pa_iot;
sc->sc_memt = pa->pa_memt;
sc->sc_bustype = CY_BUSTYPE_PCI; sc->sc_bustype = CY_BUSTYPE_PCI;
if (cy_map_pci(pa, sc, &ioh, &iosize, &memsize) == 0) if (cy_map_pci(pa, sc, &ioh, &iosize, &memsize) == 0)
@ -162,8 +166,8 @@ cy_attach_pci(parent, self, aux)
cy_attach(parent, self, aux); cy_attach(parent, self, aux);
/* Enable PCI card interrupts */ /* Enable PCI card interrupts */
bus_io_write_2(sc->sc_bc, ioh, CY_PCI_INTENA, bus_space_write_2(sc->sc_iot, ioh, CY_PCI_INTENA,
bus_io_read_2(sc->sc_bc, ioh, CY_PCI_INTENA) | 0x900); bus_space_read_2(sc->sc_iot, ioh, CY_PCI_INTENA) | 0x900);
if (pci_intr_map(pa->pa_pc, pa->pa_intrtag, pa->pa_intrpin, if (pci_intr_map(pa->pa_pc, pa->pa_intrtag, pa->pa_intrpin,
pa->pa_intrline, &intrhandle) != 0) pa->pa_intrline, &intrhandle) != 0)

View File

@ -1,4 +1,4 @@
/* $NetBSD: if_de.c,v 1.26 1996/10/13 01:38:19 christos Exp $ */ /* $NetBSD: if_de.c,v 1.27 1996/10/21 22:56:32 thorpej Exp $ */
/*- /*-
* Copyright (c) 1994, 1995 Matt Thomas (matt@lkg.dec.com) * Copyright (c) 1994, 1995 Matt Thomas (matt@lkg.dec.com)
@ -138,6 +138,25 @@ typedef struct {
int ri_free; int ri_free;
} tulip_ringinfo_t; } tulip_ringinfo_t;
#ifdef __NetBSD__
/*
* These macros are the same for NetBSD regardless of TULIP_IOMAPPED.
*/
typedef bus_size_t tulip_csrptr_t;
#define TULIP_READ_CSR(sc, csr) \
bus_space_read_4((sc)->tulip_bst, (sc)->tulip_bsh, (sc)->tulip_csrs.csr)
#define TULIP_WRITE_CSR(sc, csr, val) \
bus_space_write_4((sc)->tulip_bst, (sc)->tulip_bsh, (sc)->tulip_csrs.csr, \
(val))
#define TULIP_READ_CSRBYTE(sc, csr) \
bus_space_read_1((sc)->tulip_bst, (sc)->tulip_bsh, (sc)->tulip_csrs.csr)
#define TULIP_WRITE_CSRBYTE(sc, csr, val) \
bus_space_write_1((sc)->tulip_bst, (sc)->tulip_bsh, (sc)->tulip_csrs.csr, \
(val))
#endif /* __NetBSD__ */
#ifdef TULIP_IOMAPPED #ifdef TULIP_IOMAPPED
#define TULIP_EISA_CSRSIZE 16 #define TULIP_EISA_CSRSIZE 16
@ -151,19 +170,7 @@ typedef tulip_uint16_t tulip_csrptr_t;
#define TULIP_READ_CSRBYTE(sc, csr) (inb((sc)->tulip_csrs.csr)) #define TULIP_READ_CSRBYTE(sc, csr) (inb((sc)->tulip_csrs.csr))
#define TULIP_WRITE_CSRBYTE(sc, csr, val) outb((sc)->tulip_csrs.csr, val) #define TULIP_WRITE_CSRBYTE(sc, csr, val) outb((sc)->tulip_csrs.csr, val)
#else #endif /* ! __NetBSD__ */
typedef bus_io_size_t tulip_csrptr_t;
#define TULIP_READ_CSR(sc, csr) \
bus_io_read_4((sc)->tulip_bc, (sc)->tulip_ioh, (sc)->tulip_csrs.csr)
#define TULIP_WRITE_CSR(sc, csr, val) \
bus_io_write_4((sc)->tulip_bc, (sc)->tulip_ioh, (sc)->tulip_csrs.csr, (val))
#define TULIP_READ_CSRBYTE(sc, csr) \
bus_io_read_1((sc)->tulip_bc, (sc)->tulip_ioh, (sc)->tulip_csrs.csr)
#define TULIP_WRITE_CSRBYTE(sc, csr, val) \
bus_io_write_1((sc)->tulip_bc, (sc)->tulip_ioh, (sc)->tulip_csrs.csr, (val))
#endif
#else /* TULIP_IOMAPPED */ #else /* TULIP_IOMAPPED */
@ -180,15 +187,8 @@ typedef volatile tulip_uint32_t *tulip_csrptr_t;
#define TULIP_READ_CSR(sc, csr) (0 + *(sc)->tulip_csrs.csr) #define TULIP_READ_CSR(sc, csr) (0 + *(sc)->tulip_csrs.csr)
#define TULIP_WRITE_CSR(sc, csr, val) \ #define TULIP_WRITE_CSR(sc, csr, val) \
((void)(*(sc)->tulip_csrs.csr = (val))) ((void)(*(sc)->tulip_csrs.csr = (val)))
#else #endif /* ! __NetBSD__ */
typedef bus_mem_size_t tulip_csrptr_t;
#define TULIP_READ_CSR(sc, csr) \
bus_mem_read_4((sc)->tulip_bc, (sc)->tulip_memh, (sc)->tulip_csrs.csr)
#define TULIP_WRITE_CSR(sc, csr, val) \
bus_mem_write_4((sc)->tulip_bc, (sc)->tulip_memh, (sc)->tulip_csrs.csr, \
(val))
#endif
#endif /* TULIP_IOMAPPED */ #endif /* TULIP_IOMAPPED */
typedef struct { typedef struct {
@ -312,13 +312,9 @@ struct _tulip_softc_t {
struct device tulip_dev; /* base device */ struct device tulip_dev; /* base device */
void *tulip_ih; /* intrrupt vectoring */ void *tulip_ih; /* intrrupt vectoring */
void *tulip_ats; /* shutdown hook */ void *tulip_ats; /* shutdown hook */
bus_chipset_tag_t tulip_bc; pci_chipset_tag_t tulip_pc; /* PCI chipset cookie */
pci_chipset_tag_t tulip_pc; bus_space_tag_t tulip_bst; /* bus space tag */
#ifdef TULIP_IOMAPPED bus_space_handle_t tulip_bsh; /* bus space handle */
bus_io_handle_t tulip_ioh; /* I/O region handle */
#else
bus_io_handle_t tulip_memh; /* memory region handle */
#endif
#endif #endif
char tulip_xname[IFNAMSIZ]; /* name + unit number */ char tulip_xname[IFNAMSIZ]; /* name + unit number */
struct arpcom tulip_ac; struct arpcom tulip_ac;
@ -425,7 +421,7 @@ static void tulip_addr_filter(tulip_softc_t *sc);
#if defined(__NetBSD__) && defined(__alpha__) #if defined(__NetBSD__) && defined(__alpha__)
/* XXX XXX NEED REAL DMA MAPPING SUPPORT XXX XXX */ /* XXX XXX NEED REAL DMA MAPPING SUPPORT XXX XXX */
#undef vtophys #undef vtophys
#define vtophys(va) __alpha_bus_XXX_dmamap(sc->tulip_bc, (void *)(va)) #define vtophys(va) __alpha_bus_XXX_dmamap(sc->tulip_bst, (void *)(va))
#endif #endif
@ -2438,15 +2434,9 @@ tulip_pci_attach(
#if defined(__NetBSD__) #if defined(__NetBSD__)
tulip_softc_t * const sc = (tulip_softc_t *) self; tulip_softc_t * const sc = (tulip_softc_t *) self;
struct pci_attach_args * const pa = (struct pci_attach_args *) aux; struct pci_attach_args * const pa = (struct pci_attach_args *) aux;
bus_chipset_tag_t bc = pa->pa_bc;
pci_chipset_tag_t pc = pa->pa_pc; pci_chipset_tag_t pc = pa->pa_pc;
#if defined(TULIP_IOMAPPED) bus_addr_t tulipbase;
bus_io_addr_t iobase; bus_size_t tulipsize;
bus_io_size_t iosize;
#else
bus_mem_addr_t membase;
bus_mem_size_t memsize;
#endif
#if defined(__FreeBSD__) #if defined(__FreeBSD__)
int unit = sc->tulip_dev.dv_unit; int unit = sc->tulip_dev.dv_unit;
#endif #endif
@ -2578,17 +2568,20 @@ tulip_pci_attach(
#endif /* __bsdi__ */ #endif /* __bsdi__ */
#if defined(__NetBSD__) #if defined(__NetBSD__)
sc->tulip_bc = bc;
sc->tulip_pc = pc; sc->tulip_pc = pc;
#if defined(TULIP_IOMAPPED) #if defined(TULIP_IOMAPPED)
retval = pci_io_find(pc, pa->pa_tag, PCI_CBIO, &iobase, &iosize); sc->tulip_bst = pa->pa_iot;
retval = pci_io_find(pc, pa->pa_tag, PCI_CBIO, &tulipbase, &tulipsize);
if (!retval) if (!retval)
retval = bus_io_map(bc, iobase, iosize, &sc->tulip_ioh); retval = bus_space_map(pa->pa_iot, tulipbase, tulipsize, 0,
&sc->tulip_bsh);
#else #else
retval = pci_mem_find(pc, pa->pa_tag, PCI_CBMA, &membase, &memsize, sc->tulip_bst = pa->pa_memt;
NULL); retval = pci_mem_find(pc, pa->pa_tag, PCI_CBMA, &tulipbase, &tulipsize,
NULL);
if (!retval) if (!retval)
retval = bus_mem_map(bc, membase, memsize, 0, &sc->tulip_memh); retval = bus_space_map(pa->pa_memt, tulipbase, tulipsize, 0,
&sc->tulip_bsh);
#endif #endif
csr_base = 0; csr_base = 0;
if (retval) { if (retval) {

View File

@ -1,4 +1,4 @@
/* $NetBSD: if_en_pci.c,v 1.4 1996/10/13 01:38:21 christos Exp $ */ /* $NetBSD: if_en_pci.c,v 1.5 1996/10/21 22:56:35 thorpej Exp $ */
/* /*
* *
@ -143,14 +143,14 @@ void *aux;
struct en_softc *sc = (void *)self; struct en_softc *sc = (void *)self;
struct en_pci_softc *scp = (void *)self; struct en_pci_softc *scp = (void *)self;
struct pci_attach_args *pa = aux; struct pci_attach_args *pa = aux;
bus_mem_addr_t membase; bus_addr_t membase;
pci_intr_handle_t ih; pci_intr_handle_t ih;
const char *intrstr; const char *intrstr;
int retval; int retval;
printf("\n"); printf("\n");
sc->en_bc = pa->pa_bc; sc->en_memt = pa->pa_memt;
scp->en_pc = pa->pa_pc; scp->en_pc = pa->pa_pc;
/* /*
@ -181,7 +181,8 @@ void *aux;
retval = pci_mem_find(scp->en_pc, pa->pa_tag, PCI_CBMA, retval = pci_mem_find(scp->en_pc, pa->pa_tag, PCI_CBMA,
&membase, &sc->en_obmemsz, NULL); &membase, &sc->en_obmemsz, NULL);
if (retval == 0) if (retval == 0)
retval = bus_mem_map(sc->en_bc, membase, sc->en_obmemsz, 0, &sc->en_base); retval = bus_space_map(sc->en_memt, membase, sc->en_obmemsz, 0,
&sc->en_base);
if (retval) { if (retval) {
printf("%s: couldn't map memory\n", sc->sc_dev.dv_xname); printf("%s: couldn't map memory\n", sc->sc_dev.dv_xname);

View File

@ -1,4 +1,4 @@
/* $NetBSD: if_ep_pci.c,v 1.12 1996/10/15 23:41:56 christos Exp $ */ /* $NetBSD: if_ep_pci.c,v 1.13 1996/10/21 22:56:38 thorpej Exp $ */
/* /*
* Copyright (c) 1994 Herb Peyerl <hpeyerl@beer.org> * Copyright (c) 1994 Herb Peyerl <hpeyerl@beer.org>
@ -120,9 +120,9 @@ ep_pci_attach(parent, self, aux)
struct ep_softc *sc = (void *)self; struct ep_softc *sc = (void *)self;
struct pci_attach_args *pa = aux; struct pci_attach_args *pa = aux;
pci_chipset_tag_t pc = pa->pa_pc; pci_chipset_tag_t pc = pa->pa_pc;
bus_chipset_tag_t bc = pa->pa_bc; bus_space_tag_t iot = pa->pa_iot;
bus_io_addr_t iobase; bus_addr_t iobase;
bus_io_size_t iosize; bus_size_t iosize;
pci_intr_handle_t ih; pci_intr_handle_t ih;
u_short conn = 0; u_short conn = 0;
pcireg_t i; pcireg_t i;
@ -134,12 +134,12 @@ ep_pci_attach(parent, self, aux)
return; return;
} }
if (bus_io_map(bc, iobase, iosize, &sc->sc_ioh)) { if (bus_space_map(iot, iobase, iosize, 0, &sc->sc_ioh)) {
printf(": can't map i/o space\n"); printf(": can't map i/o space\n");
return; return;
} }
sc->sc_bc = bc; sc->sc_iot = iot;
sc->bustype = EP_BUS_PCI; sc->bustype = EP_BUS_PCI;
i = pci_conf_read(pc, pa->pa_tag, PCI_CONN); i = pci_conf_read(pc, pa->pa_tag, PCI_CONN);

View File

@ -1,4 +1,4 @@
/* $NetBSD: if_fpa.c,v 1.14 1996/10/13 01:38:22 christos Exp $ */ /* $NetBSD: if_fpa.c,v 1.15 1996/10/21 22:56:40 thorpej Exp $ */
/*- /*-
* Copyright (c) 1995, 1996 Matt Thomas <matt@3am-software.com> * Copyright (c) 1995, 1996 Matt Thomas <matt@3am-software.com>
@ -386,13 +386,9 @@ pdq_pci_attach(
pdq_uint32_t data; pdq_uint32_t data;
pci_intr_handle_t intrhandle; pci_intr_handle_t intrhandle;
const char *intrstr; const char *intrstr;
#ifdef PDQ_IOMAPPED bus_addr_t csrbase;
bus_io_addr_t iobase; bus_size_t csrsize;
bus_io_size_t iosize; int cacheable = 0;
#else
bus_mem_addr_t membase;
bus_mem_size_t memsize;
#endif
data = pci_conf_read(pa->pa_pc, pa->pa_tag, PCI_CFLT); data = pci_conf_read(pa->pa_pc, pa->pa_tag, PCI_CFLT);
if ((data & 0xFF00) < (DEFPA_LATENCY << 8)) { if ((data & 0xFF00) < (DEFPA_LATENCY << 8)) {
@ -401,26 +397,36 @@ pdq_pci_attach(
pci_conf_write(pa->pa_pc, pa->pa_tag, PCI_CFLT, data); pci_conf_write(pa->pa_pc, pa->pa_tag, PCI_CFLT, data);
} }
sc->sc_bc = pa->pa_bc;
bcopy(sc->sc_dev.dv_xname, sc->sc_if.if_xname, IFNAMSIZ); bcopy(sc->sc_dev.dv_xname, sc->sc_if.if_xname, IFNAMSIZ);
sc->sc_if.if_flags = 0; sc->sc_if.if_flags = 0;
sc->sc_if.if_softc = sc; sc->sc_if.if_softc = sc;
/*
* NOTE: sc_bc is an alias for sc_csrtag and sc_membase is an
* alias for sc_csrhandle. sc_iobase is not used in this front-end.
*/
#ifdef PDQ_IOMAPPED #ifdef PDQ_IOMAPPED
if (pci_io_find(pa->pa_pc, pa->pa_tag, PCI_CBIO, &iobase, &iosize) sc->sc_csrtag = pa->pa_iot;
|| bus_io_map(pa->pa_bc, iobase, iosize, &sc->sc_iobase)){ if (pci_io_find(pa->pa_pc, pa->pa_tag, PCI_CBIO, &csrbase, &csrsize)) {
printf("\n%s: can't map I/O space!\n", sc->sc_dev.dv_xname); printf("\n%s: can't find I/O space!\n", sc->sc_dev.dv_xname);
return; return;
} }
#else #else
if (pci_mem_find(pa->pa_pc, pa->pa_tag, PCI_CBMA, &membase, &memsize, NULL) sc->sc_csrtag = pa->pa_memt;
|| bus_mem_map(pa->pa_bc, membase, memsize, 0, &sc->sc_membase)) { if (pci_mem_find(pa->pa_pc, pa->pa_tag, PCI_CBMA, &csrbase, &csrsize,
printf("\n%s: can't map memory space!\n", sc->sc_dev.dv_xname); &cacheable)) {
printf("\n%s: can't find memory space!\n", sc->sc_dev.dv_xname);
return; return;
} }
#endif #endif
sc->sc_pdq = pdq_initialize(sc->sc_bc, sc->sc_membase, if (bus_space_map(sc->sc_csrtag, csrbase, csrsize, cacheable,
&sc->sc_csrhandle)) {
printf("\n%s: can't map CSRs!\n", sc->sc_dev.dv_xname);
return;
}
sc->sc_pdq = pdq_initialize(sc->sc_csrtag, sc->sc_csrhandle,
sc->sc_if.if_xname, 0, sc->sc_if.if_xname, 0,
(void *) sc, PDQ_DEFPA); (void *) sc, PDQ_DEFPA);
if (sc->sc_pdq == NULL) { if (sc->sc_pdq == NULL) {

View File

@ -1,4 +1,4 @@
/* $NetBSD: if_le_pci.c,v 1.10 1996/10/13 01:38:23 christos Exp $ */ /* $NetBSD: if_le_pci.c,v 1.11 1996/10/21 22:56:43 thorpej Exp $ */
/*- /*-
* Copyright (c) 1995 Charles M. Hannum. All rights reserved. * Copyright (c) 1995 Charles M. Hannum. All rights reserved.
@ -77,7 +77,7 @@
#ifdef __alpha__ /* XXX */ #ifdef __alpha__ /* XXX */
/* XXX XXX NEED REAL DMA MAPPING SUPPORT XXX XXX */ /* XXX XXX NEED REAL DMA MAPPING SUPPORT XXX XXX */
#undef vtophys #undef vtophys
#define vtophys(va) __alpha_bus_XXX_dmamap(lesc->sc_bc, (void *)(va)) #define vtophys(va) __alpha_bus_XXX_dmamap(lesc->sc_iot, (void *)(va))
#endif #endif
int le_pci_match __P((struct device *, void *, void *)); int le_pci_match __P((struct device *, void *, void *));
@ -102,11 +102,11 @@ le_pci_wrcsr(sc, port, val)
u_int16_t port, val; u_int16_t port, val;
{ {
struct le_softc *lesc = (struct le_softc *)sc; struct le_softc *lesc = (struct le_softc *)sc;
bus_chipset_tag_t bc = lesc->sc_bc; bus_space_tag_t iot = lesc->sc_iot;
bus_io_handle_t ioh = lesc->sc_ioh; bus_space_handle_t ioh = lesc->sc_ioh;
bus_io_write_2(bc, ioh, lesc->sc_rap, port); bus_space_write_2(iot, ioh, lesc->sc_rap, port);
bus_io_write_2(bc, ioh, lesc->sc_rdp, val); bus_space_write_2(iot, ioh, lesc->sc_rdp, val);
} }
hide u_int16_t hide u_int16_t
@ -115,12 +115,12 @@ le_pci_rdcsr(sc, port)
u_int16_t port; u_int16_t port;
{ {
struct le_softc *lesc = (struct le_softc *)sc; struct le_softc *lesc = (struct le_softc *)sc;
bus_chipset_tag_t bc = lesc->sc_bc; bus_space_tag_t iot = lesc->sc_iot;
bus_io_handle_t ioh = lesc->sc_ioh; bus_space_handle_t ioh = lesc->sc_ioh;
u_int16_t val; u_int16_t val;
bus_io_write_2(bc, ioh, lesc->sc_rap, port); bus_space_write_2(iot, ioh, lesc->sc_rap, port);
val = bus_io_read_2(bc, ioh, lesc->sc_rdp); val = bus_space_read_2(iot, ioh, lesc->sc_rdp);
return (val); return (val);
} }
@ -151,10 +151,10 @@ le_pci_attach(parent, self, aux)
struct am7990_softc *sc = &lesc->sc_am7990; struct am7990_softc *sc = &lesc->sc_am7990;
struct pci_attach_args *pa = aux; struct pci_attach_args *pa = aux;
pci_intr_handle_t ih; pci_intr_handle_t ih;
bus_io_addr_t iobase; bus_addr_t iobase;
bus_io_size_t iosize; bus_size_t iosize;
bus_io_handle_t ioh; bus_space_handle_t ioh;
bus_chipset_tag_t bc = pa->pa_bc; bus_space_tag_t iot = pa->pa_iot;
pci_chipset_tag_t pc = pa->pa_pc; pci_chipset_tag_t pc = pa->pa_pc;
pcireg_t csr; pcireg_t csr;
int i; int i;
@ -177,7 +177,7 @@ le_pci_attach(parent, self, aux)
printf("%s: can't find I/O base\n", sc->sc_dev.dv_xname); printf("%s: can't find I/O base\n", sc->sc_dev.dv_xname);
return; return;
} }
if (bus_io_map(bc, iobase, iosize, &ioh)) { if (bus_space_map(iot, iobase, iosize, 0, &ioh)) {
printf("%s: can't map I/O space\n", sc->sc_dev.dv_xname); printf("%s: can't map I/O space\n", sc->sc_dev.dv_xname);
return; return;
} }
@ -186,7 +186,7 @@ le_pci_attach(parent, self, aux)
* Extract the physical MAC address from the ROM. * Extract the physical MAC address from the ROM.
*/ */
for (i = 0; i < sizeof(sc->sc_arpcom.ac_enaddr); i++) for (i = 0; i < sizeof(sc->sc_arpcom.ac_enaddr); i++)
sc->sc_arpcom.ac_enaddr[i] = bus_io_read_1(bc, ioh, i); sc->sc_arpcom.ac_enaddr[i] = bus_space_read_1(iot, ioh, i);
sc->sc_mem = malloc(16384, M_DEVBUF, M_NOWAIT); sc->sc_mem = malloc(16384, M_DEVBUF, M_NOWAIT);
if (sc->sc_mem == 0) { if (sc->sc_mem == 0) {
@ -195,7 +195,7 @@ le_pci_attach(parent, self, aux)
return; return;
} }
lesc->sc_bc = bc; lesc->sc_iot = iot;
lesc->sc_ioh = ioh; lesc->sc_ioh = ioh;
sc->sc_conf3 = 0; sc->sc_conf3 = 0;

View File

@ -1,4 +1,4 @@
/* $NetBSD: if_levar.h,v 1.2 1996/05/12 02:30:05 thorpej Exp $ */ /* $NetBSD: if_levar.h,v 1.3 1996/10/21 22:56:46 thorpej Exp $ */
/* /*
* LANCE Ethernet driver header file * LANCE Ethernet driver header file
@ -27,7 +27,7 @@ struct le_softc {
struct am7990_softc sc_am7990; /* glue to MI code */ struct am7990_softc sc_am7990; /* glue to MI code */
void *sc_ih; void *sc_ih;
bus_chipset_tag_t sc_bc; /* chipset cookie */ bus_space_tag_t sc_iot; /* space cookie */
bus_io_handle_t sc_ioh; /* bus i/o handle */ bus_space_handle_t sc_ioh; /* bus space handle */
int sc_rap, sc_rdp; /* offsets to LANCE registers */ int sc_rap, sc_rdp; /* offsets to LANCE registers */
}; };

View File

@ -1,4 +1,4 @@
/* $NetBSD: ncr.c,v 1.44 1996/10/13 01:38:25 christos Exp $ */ /* $NetBSD: ncr.c,v 1.45 1996/10/21 22:56:51 thorpej Exp $ */
/************************************************************************** /**************************************************************************
** **
@ -213,7 +213,7 @@ extern PRINT_ADDR();
#if defined(__NetBSD__) && defined(__alpha__) #if defined(__NetBSD__) && defined(__alpha__)
/* XXX XXX NEED REAL DMA MAPPING SUPPORT XXX XXX */ /* XXX XXX NEED REAL DMA MAPPING SUPPORT XXX XXX */
#undef vtophys #undef vtophys
#define vtophys(va) __alpha_bus_XXX_dmamap(np->sc_bc, (void *)(va)) #define vtophys(va) __alpha_bus_XXX_dmamap(np->sc_memt, (void *)(va))
#endif #endif
/*========================================================== /*==========================================================
@ -286,44 +286,44 @@ extern PRINT_ADDR();
#define INB(r) \ #define INB(r) \
INB_OFF(offsetof(struct ncr_reg, r)) INB_OFF(offsetof(struct ncr_reg, r))
#define INB_OFF(o) \ #define INB_OFF(o) \
bus_io_read_1 (np->sc_bc, np->sc_ioh, (o)) bus_space_read_1 (np->sc_memt, np->sc_bah, (o))
#define INW(r) \ #define INW(r) \
bus_io_read_2 (np->sc_bc, np->sc_ioh, offsetof(struct ncr_reg, r)) bus_space_read_2 (np->sc_memt, np->sc_bah, offsetof(struct ncr_reg, r))
#define INL(r) \ #define INL(r) \
INL_OFF(offsetof(struct ncr_reg, r)) INL_OFF(offsetof(struct ncr_reg, r))
#define INL_OFF(o) \ #define INL_OFF(o) \
bus_io_read_4 (np->sc_bc, np->sc_ioh, (o)) bus_space_read_4 (np->sc_memt, np->sc_bah, (o))
#define OUTB(r, val) \ #define OUTB(r, val) \
bus_io_write_1 (np->sc_bc, np->sc_ioh, offsetof(struct ncr_reg, r), (val)) bus_space_write_1 (np->sc_memt, np->sc_bah, offsetof(struct ncr_reg, r), (val))
#define OUTW(r, val) \ #define OUTW(r, val) \
bus_io_write_2 (np->sc_bc, np->sc_ioh, offsetof(struct ncr_reg, r), (val)) bus_space_write_2 (np->sc_memt, np->sc_bah, offsetof(struct ncr_reg, r), (val))
#define OUTL(r, val) \ #define OUTL(r, val) \
OUTL_OFF(offsetof(struct ncr_reg, r), (val)) OUTL_OFF(offsetof(struct ncr_reg, r), (val))
#define OUTL_OFF(o, val) \ #define OUTL_OFF(o, val) \
bus_io_write_4 (np->sc_bc, np->sc_ioh, (o), (val)) bus_space_write_4 (np->sc_memt, np->sc_bah, (o), (val))
#else #else
#define INB(r) \ #define INB(r) \
INB_OFF(offsetof(struct ncr_reg, r)) INB_OFF(offsetof(struct ncr_reg, r))
#define INB_OFF(o) \ #define INB_OFF(o) \
bus_mem_read_1 (np->sc_bc, np->sc_memh, (o)) bus_space_read_1 (np->sc_memt, np->sc_bah, (o))
#define INW(r) \ #define INW(r) \
bus_mem_read_2 (np->sc_bc, np->sc_memh, offsetof(struct ncr_reg, r)) bus_space_read_2 (np->sc_memt, np->sc_bah, offsetof(struct ncr_reg, r))
#define INL(r) \ #define INL(r) \
INL_OFF(offsetof(struct ncr_reg, r)) INL_OFF(offsetof(struct ncr_reg, r))
#define INL_OFF(o) \ #define INL_OFF(o) \
bus_mem_read_4 (np->sc_bc, np->sc_memh, (o)) bus_space_read_4 (np->sc_memt, np->sc_bah, (o))
#define OUTB(r, val) \ #define OUTB(r, val) \
bus_mem_write_1 (np->sc_bc, np->sc_memh, offsetof(struct ncr_reg, r), (val)) bus_space_write_1 (np->sc_memt, np->sc_bah, offsetof(struct ncr_reg, r), (val))
#define OUTW(r, val) \ #define OUTW(r, val) \
bus_mem_write_2 (np->sc_bc, np->sc_memh, offsetof(struct ncr_reg, r), (val)) bus_space_write_2 (np->sc_memt, np->sc_bah, offsetof(struct ncr_reg, r), (val))
#define OUTL(r, val) \ #define OUTL(r, val) \
OUTL_OFF(offsetof(struct ncr_reg, r), (val)) OUTL_OFF(offsetof(struct ncr_reg, r), (val))
#define OUTL_OFF(o, val) \ #define OUTL_OFF(o, val) \
bus_mem_write_4 (np->sc_bc, np->sc_memh, (o), (val)) bus_space_write_4 (np->sc_memt, np->sc_bah, (o), (val))
#endif #endif
@ -999,13 +999,9 @@ struct ncb {
#ifdef __NetBSD__ #ifdef __NetBSD__
struct device sc_dev; struct device sc_dev;
void *sc_ih; void *sc_ih;
bus_chipset_tag_t sc_bc; bus_space_tag_t sc_memt;
pci_chipset_tag_t sc_pc; pci_chipset_tag_t sc_pc;
#ifdef NCR_IOMAPPED bus_space_handle_t sc_bah;
bus_io_handle_t sc_ioh;
#else /* !NCR_IOMAPPED */
bus_mem_handle_t sc_memh;
#endif /* NCR_IOMAPPED */
#else /* !__NetBSD__ */ #else /* !__NetBSD__ */
int unit; int unit;
#endif /* __NetBSD__ */ #endif /* __NetBSD__ */
@ -1035,7 +1031,7 @@ struct ncb {
vm_offset_t vaddr; vm_offset_t vaddr;
vm_offset_t paddr; vm_offset_t paddr;
#else #else
bus_mem_addr_t paddr; bus_addr_t paddr;
#endif #endif
#ifndef __NetBSD__ #ifndef __NetBSD__
@ -1332,7 +1328,7 @@ static void ncr_attach (pcici_t tag, int unit);
#if 0 #if 0
static char ident[] = static char ident[] =
"\n$NetBSD: ncr.c,v 1.44 1996/10/13 01:38:25 christos Exp $\n"; "\n$NetBSD: ncr.c,v 1.45 1996/10/21 22:56:51 thorpej Exp $\n";
#endif #endif
u_long ncr_version = NCR_VERSION * 11 u_long ncr_version = NCR_VERSION * 11
@ -3349,13 +3345,14 @@ ncr_attach(parent, self, aux)
void *aux; void *aux;
{ {
struct pci_attach_args *pa = aux; struct pci_attach_args *pa = aux;
bus_chipset_tag_t bc = pa->pa_bc; bus_space_tag_t memt = pa->pa_memt;
pci_chipset_tag_t pc = pa->pa_pc; pci_chipset_tag_t pc = pa->pa_pc;
bus_mem_size_t memsize; bus_size_t memsize;
int retval, cacheable; int retval, cacheable;
pci_intr_handle_t intrhandle; pci_intr_handle_t intrhandle;
const char *intrstr; const char *intrstr;
ncb_p np = (void *)self; ncb_p np = (void *)self;
int wide = 0;
printf(": NCR "); printf(": NCR ");
switch (pa->pa_id) { switch (pa->pa_id) {
@ -3370,17 +3367,19 @@ ncr_attach(parent, self, aux)
break; break;
case NCR_825_ID: case NCR_825_ID:
printf("53c825 Wide"); printf("53c825 Wide");
wide = 1;
break; break;
case NCR_860_ID: case NCR_860_ID:
printf("53c860"); printf("53c860");
break; break;
case NCR_875_ID: case NCR_875_ID:
printf("53c875 Wide"); printf("53c875 Wide");
wide = 1;
break; break;
} }
printf(" SCSI\n"); printf(" SCSI\n");
np->sc_bc = bc; np->sc_memt = memt;
np->sc_pc = pc; np->sc_pc = pc;
/* /*
@ -3396,7 +3395,8 @@ ncr_attach(parent, self, aux)
} }
/* Map the memory. Note that we never want it to be cacheable. */ /* Map the memory. Note that we never want it to be cacheable. */
retval = bus_mem_map(pa->pa_bc, np->paddr, memsize, 0, &np->sc_memh); retval = bus_space_map(pa->pa_memt, np->paddr, memsize, 0,
&np->sc_bah);
if (retval) { if (retval) {
printf("%s: couldn't map memory region\n", self->dv_xname); printf("%s: couldn't map memory region\n", self->dv_xname);
return; return;

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci.c,v 1.23 1996/10/13 01:38:28 christos Exp $ */ /* $NetBSD: pci.c,v 1.24 1996/10/21 22:56:55 thorpej Exp $ */
/* /*
* Copyright (c) 1995, 1996 Christopher G. Demetriou. All rights reserved. * Copyright (c) 1995, 1996 Christopher G. Demetriou. All rights reserved.
@ -88,14 +88,15 @@ pciattach(parent, self, aux)
void *aux; void *aux;
{ {
struct pcibus_attach_args *pba = aux; struct pcibus_attach_args *pba = aux;
bus_chipset_tag_t bc; bus_space_tag_t iot, memt;
pci_chipset_tag_t pc; pci_chipset_tag_t pc;
int bus, device, maxndevs, function, nfunctions; int bus, device, maxndevs, function, nfunctions;
pci_attach_hook(parent, self, pba); pci_attach_hook(parent, self, pba);
printf("\n"); printf("\n");
bc = pba->pba_bc; iot = pba->pba_iot;
memt = pba->pba_memt;
pc = pba->pba_pc; pc = pba->pba_pc;
bus = pba->pba_bus; bus = pba->pba_bus;
maxndevs = pci_bus_maxdevs(pc, bus); maxndevs = pci_bus_maxdevs(pc, bus);
@ -122,7 +123,8 @@ pciattach(parent, self, aux)
class = pci_conf_read(pc, tag, PCI_CLASS_REG); class = pci_conf_read(pc, tag, PCI_CLASS_REG);
intr = pci_conf_read(pc, tag, PCI_INTERRUPT_REG); intr = pci_conf_read(pc, tag, PCI_INTERRUPT_REG);
pa.pa_bc = bc; pa.pa_iot = iot;
pa.pa_memt = memt;
pa.pa_pc = pc; pa.pa_pc = pc;
pa.pa_device = device; pa.pa_device = device;
pa.pa_function = function; pa.pa_function = function;
@ -195,8 +197,8 @@ pci_io_find(pc, pcitag, reg, iobasep, iosizep)
pci_chipset_tag_t pc; pci_chipset_tag_t pc;
pcitag_t pcitag; pcitag_t pcitag;
int reg; int reg;
bus_io_addr_t *iobasep; bus_addr_t *iobasep;
bus_io_size_t *iosizep; bus_size_t *iosizep;
{ {
pcireg_t addrdata, sizedata; pcireg_t addrdata, sizedata;
int s; int s;
@ -238,8 +240,8 @@ pci_mem_find(pc, pcitag, reg, membasep, memsizep, cacheablep)
pci_chipset_tag_t pc; pci_chipset_tag_t pc;
pcitag_t pcitag; pcitag_t pcitag;
int reg; int reg;
bus_mem_addr_t *membasep; bus_addr_t *membasep;
bus_mem_size_t *memsizep; bus_size_t *memsizep;
int *cacheablep; int *cacheablep;
{ {
pcireg_t addrdata, sizedata; pcireg_t addrdata, sizedata;

View File

@ -1,4 +1,4 @@
/* $NetBSD: pcivar.h,v 1.15 1996/03/28 02:16:23 cgd Exp $ */ /* $NetBSD: pcivar.h,v 1.16 1996/10/21 22:56:57 thorpej Exp $ */
/* /*
* Copyright (c) 1996 Christopher G. Demetriou. All rights reserved. * Copyright (c) 1996 Christopher G. Demetriou. All rights reserved.
@ -67,8 +67,9 @@ ERROR: COMPILING FOR UNSUPPORTED MACHINE, OR MORE THAN ONE.
* PCI bus attach arguments. * PCI bus attach arguments.
*/ */
struct pcibus_attach_args { struct pcibus_attach_args {
char *pba_busname; /* XXX should be common */ char *pba_busname; /* XXX should be common */
bus_chipset_tag_t pba_bc; /* XXX should be common */ bus_space_tag_t pba_iot; /* pci i/o space tag */
bus_space_tag_t pba_memt; /* pci mem space tag */
pci_chipset_tag_t pba_pc; pci_chipset_tag_t pba_pc;
int pba_bus; /* PCI bus number */ int pba_bus; /* PCI bus number */
@ -85,7 +86,8 @@ struct pcibus_attach_args {
* PCI device attach arguments. * PCI device attach arguments.
*/ */
struct pci_attach_args { struct pci_attach_args {
bus_chipset_tag_t pa_bc; bus_space_tag_t pa_iot; /* pci i/o space tag */
bus_space_tag_t pa_memt; /* pci mem space tag */
pci_chipset_tag_t pa_pc; pci_chipset_tag_t pa_pc;
u_int pa_device; u_int pa_device;
@ -126,10 +128,10 @@ struct pci_attach_args {
* Configuration space access and utility functions. (Note that most, * Configuration space access and utility functions. (Note that most,
* e.g. make_tag, conf_read, conf_write are declared by pci_machdep.h.) * e.g. make_tag, conf_read, conf_write are declared by pci_machdep.h.)
*/ */
int pci_io_find __P((pci_chipset_tag_t, pcitag_t, int, bus_io_addr_t *, int pci_io_find __P((pci_chipset_tag_t, pcitag_t, int, bus_addr_t *,
bus_io_size_t *)); bus_size_t *));
int pci_mem_find __P((pci_chipset_tag_t, pcitag_t, int, bus_mem_addr_t *, int pci_mem_find __P((pci_chipset_tag_t, pcitag_t, int, bus_addr_t *,
bus_mem_size_t *, int *)); bus_size_t *, int *));
/* /*
* Helper functions for autoconfiguration. * Helper functions for autoconfiguration.

View File

@ -1,4 +1,4 @@
/* $NetBSD: ppb.c,v 1.11 1996/10/13 01:38:30 christos Exp $ */ /* $NetBSD: ppb.c,v 1.12 1996/10/21 22:57:00 thorpej Exp $ */
/* /*
* Copyright (c) 1996 Christopher G. Demetriou. All rights reserved. * Copyright (c) 1996 Christopher G. Demetriou. All rights reserved.
@ -119,7 +119,8 @@ ppbattach(parent, self, aux)
* Attach the PCI bus than hangs off of it. * Attach the PCI bus than hangs off of it.
*/ */
pba.pba_busname = "pci"; pba.pba_busname = "pci";
pba.pba_bc = pa->pa_bc; pba.pba_iot = pa->pa_iot;
pba.pba_memt = pa->pa_memt;
pba.pba_pc = pc; pba.pba_pc = pc;
pba.pba_bus = PPB_BUSINFO_SECONDARY(busdata); pba.pba_bus = PPB_BUSINFO_SECONDARY(busdata);
pba.pba_intrswiz = pa->pa_intrswiz; pba.pba_intrswiz = pa->pa_intrswiz;