From 5817247b4947996dcc29434c678820b2494fa0de Mon Sep 17 00:00:00 2001 From: dfr Date: Sat, 13 May 2000 18:47:24 +0000 Subject: Use bus_space for all register accesses. --- sys/dev/de/if_de.c | 10 ++++----- sys/dev/de/if_devar.h | 58 ++++++++++++++++++--------------------------------- sys/pci/if_de.c | 10 ++++----- sys/pci/if_devar.h | 58 ++++++++++++++++++--------------------------------- 4 files changed, 50 insertions(+), 86 deletions(-) diff --git a/sys/dev/de/if_de.c b/sys/dev/de/if_de.c index 08351b3..8054bd5 100644 --- a/sys/dev/de/if_de.c +++ b/sys/dev/de/if_de.c @@ -5248,17 +5248,17 @@ tulip_pci_attach(device_t dev) rid = PCI_CBIO; res = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid, 0, ~0, 1, RF_ACTIVE); - if (!res) - return ENXIO; - csr_base = rman_get_start(res); #else rid = PCI_CBMA; res = bus_alloc_resource(dev, SYS_RES_MEMORY, &rid, 0, ~0, 1, RF_ACTIVE); +#endif if (!res) return ENXIO; - csr_base = (vm_offset_t) rman_get_virtual(res); -#endif + sc->tulip_csrs_bst = rman_get_bustag(res); + sc->tulip_csrs_bsh = rman_get_bushandle(res); + csr_base = 0; + tulips[unit] = sc; tulip_initcsrs(sc, csr_base + csroffset, csrsize); diff --git a/sys/dev/de/if_devar.h b/sys/dev/de/if_devar.h index cd89c5a..f462e74 100644 --- a/sys/dev/de/if_devar.h +++ b/sys/dev/de/if_devar.h @@ -31,48 +31,28 @@ #if !defined(_DEVAR_H) #define _DEVAR_H -#ifdef TULIP_IOMAPPED -#define TULIP_PCI_CSRSIZE 8 -#define TULIP_PCI_CSROFFSET 0 - -typedef pci_port_t tulip_csrptr_t; - -#define TULIP_CSR_READ(sc, csr) (inl((sc)->tulip_csrs.csr)) -#define TULIP_CSR_WRITE(sc, csr, val) outl((sc)->tulip_csrs.csr, val) - -#define TULIP_CSR_READBYTE(sc, csr) (inb((sc)->tulip_csrs.csr)) -#define TULIP_CSR_WRITEBYTE(sc, csr, val) outb((sc)->tulip_csrs.csr, val) - -#else /* TULIP_IOMAPPED */ +typedef bus_addr_t tulip_csrptr_t; #define TULIP_PCI_CSRSIZE 8 #define TULIP_PCI_CSROFFSET 0 -#if defined(__alpha__) - -typedef u_int32_t tulip_csrptr_t; - -#define TULIP_CSR_READ(sc, csr) (readl((sc)->tulip_csrs.csr)) -#define TULIP_CSR_WRITE(sc, csr, val) writel((sc)->tulip_csrs.csr, val) - -#define TULIP_CSR_READBYTE(sc, csr) (readb((sc)->tulip_csrs.csr)) -#define TULIP_CSR_WRITEBYTE(sc, csr, val) writeb((sc)->tulip_csrs.csr, val) - -#else /* __alpha__ */ - -typedef volatile u_int32_t *tulip_csrptr_t; - -/* - * macros to read and write CSRs. Note that the "0 +" in - * READ_CSR is to prevent the macro from being an lvalue - * and WRITE_CSR shouldn't be assigned from. - */ -#define TULIP_CSR_READ(sc, csr) (0 + *(sc)->tulip_csrs.csr) -#define TULIP_CSR_WRITE(sc, csr, val) ((void)(*(sc)->tulip_csrs.csr = (val))) - -#endif /* __alpha__ */ - -#endif /* TULIP_IOMAPPED */ +#define TULIP_CSR_READ(sc, csr) \ + bus_space_read_4((sc)->tulip_csrs_bst, \ + (sc)->tulip_csrs_bsh, \ + (sc)->tulip_csrs.csr) +#define TULIP_CSR_WRITE(sc, csr, val) \ + bus_space_write_4((sc)->tulip_csrs_bst, \ + (sc)->tulip_csrs_bsh, \ + (sc)->tulip_csrs.csr, val) + +#define TULIP_CSR_READBYTE(sc, csr) \ + bus_space_read_1((sc)->tulip_csrs_bst, \ + (sc)->tulip_csrs_bsh, \ + (sc)->tulip_csrs.csr) +#define TULIP_CSR_WRITEBYTE(sc, csr, val) \ + bus_space_write_1((sc)->tulip_csrs_bst, \ + (sc)->tulip_csrs_bsh, \ + (sc)->tulip_csrs.csr, val) /* * This structure contains "pointers" for the registers on @@ -466,6 +446,8 @@ struct _tulip_softc_t { #endif #endif struct arpcom tulip_ac; + bus_space_tag_t tulip_csrs_bst; + bus_space_handle_t tulip_csrs_bsh; tulip_regfile_t tulip_csrs; u_int32_t tulip_flags; #define TULIP_WANTSETUP 0x00000001 diff --git a/sys/pci/if_de.c b/sys/pci/if_de.c index 08351b3..8054bd5 100644 --- a/sys/pci/if_de.c +++ b/sys/pci/if_de.c @@ -5248,17 +5248,17 @@ tulip_pci_attach(device_t dev) rid = PCI_CBIO; res = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid, 0, ~0, 1, RF_ACTIVE); - if (!res) - return ENXIO; - csr_base = rman_get_start(res); #else rid = PCI_CBMA; res = bus_alloc_resource(dev, SYS_RES_MEMORY, &rid, 0, ~0, 1, RF_ACTIVE); +#endif if (!res) return ENXIO; - csr_base = (vm_offset_t) rman_get_virtual(res); -#endif + sc->tulip_csrs_bst = rman_get_bustag(res); + sc->tulip_csrs_bsh = rman_get_bushandle(res); + csr_base = 0; + tulips[unit] = sc; tulip_initcsrs(sc, csr_base + csroffset, csrsize); diff --git a/sys/pci/if_devar.h b/sys/pci/if_devar.h index cd89c5a..f462e74 100644 --- a/sys/pci/if_devar.h +++ b/sys/pci/if_devar.h @@ -31,48 +31,28 @@ #if !defined(_DEVAR_H) #define _DEVAR_H -#ifdef TULIP_IOMAPPED -#define TULIP_PCI_CSRSIZE 8 -#define TULIP_PCI_CSROFFSET 0 - -typedef pci_port_t tulip_csrptr_t; - -#define TULIP_CSR_READ(sc, csr) (inl((sc)->tulip_csrs.csr)) -#define TULIP_CSR_WRITE(sc, csr, val) outl((sc)->tulip_csrs.csr, val) - -#define TULIP_CSR_READBYTE(sc, csr) (inb((sc)->tulip_csrs.csr)) -#define TULIP_CSR_WRITEBYTE(sc, csr, val) outb((sc)->tulip_csrs.csr, val) - -#else /* TULIP_IOMAPPED */ +typedef bus_addr_t tulip_csrptr_t; #define TULIP_PCI_CSRSIZE 8 #define TULIP_PCI_CSROFFSET 0 -#if defined(__alpha__) - -typedef u_int32_t tulip_csrptr_t; - -#define TULIP_CSR_READ(sc, csr) (readl((sc)->tulip_csrs.csr)) -#define TULIP_CSR_WRITE(sc, csr, val) writel((sc)->tulip_csrs.csr, val) - -#define TULIP_CSR_READBYTE(sc, csr) (readb((sc)->tulip_csrs.csr)) -#define TULIP_CSR_WRITEBYTE(sc, csr, val) writeb((sc)->tulip_csrs.csr, val) - -#else /* __alpha__ */ - -typedef volatile u_int32_t *tulip_csrptr_t; - -/* - * macros to read and write CSRs. Note that the "0 +" in - * READ_CSR is to prevent the macro from being an lvalue - * and WRITE_CSR shouldn't be assigned from. - */ -#define TULIP_CSR_READ(sc, csr) (0 + *(sc)->tulip_csrs.csr) -#define TULIP_CSR_WRITE(sc, csr, val) ((void)(*(sc)->tulip_csrs.csr = (val))) - -#endif /* __alpha__ */ - -#endif /* TULIP_IOMAPPED */ +#define TULIP_CSR_READ(sc, csr) \ + bus_space_read_4((sc)->tulip_csrs_bst, \ + (sc)->tulip_csrs_bsh, \ + (sc)->tulip_csrs.csr) +#define TULIP_CSR_WRITE(sc, csr, val) \ + bus_space_write_4((sc)->tulip_csrs_bst, \ + (sc)->tulip_csrs_bsh, \ + (sc)->tulip_csrs.csr, val) + +#define TULIP_CSR_READBYTE(sc, csr) \ + bus_space_read_1((sc)->tulip_csrs_bst, \ + (sc)->tulip_csrs_bsh, \ + (sc)->tulip_csrs.csr) +#define TULIP_CSR_WRITEBYTE(sc, csr, val) \ + bus_space_write_1((sc)->tulip_csrs_bst, \ + (sc)->tulip_csrs_bsh, \ + (sc)->tulip_csrs.csr, val) /* * This structure contains "pointers" for the registers on @@ -466,6 +446,8 @@ struct _tulip_softc_t { #endif #endif struct arpcom tulip_ac; + bus_space_tag_t tulip_csrs_bst; + bus_space_handle_t tulip_csrs_bsh; tulip_regfile_t tulip_csrs; u_int32_t tulip_flags; #define TULIP_WANTSETUP 0x00000001 -- cgit v1.1