summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>2000-05-13 18:47:24 +0000
committerdfr <dfr@FreeBSD.org>2000-05-13 18:47:24 +0000
commit5817247b4947996dcc29434c678820b2494fa0de (patch)
tree943677455573b7263ad43e7d21ae507045d605bc
parent0b20ac0f728da53997487c20bcfdfbd85a592297 (diff)
downloadFreeBSD-src-5817247b4947996dcc29434c678820b2494fa0de.zip
FreeBSD-src-5817247b4947996dcc29434c678820b2494fa0de.tar.gz
Use bus_space for all register accesses.
-rw-r--r--sys/dev/de/if_de.c10
-rw-r--r--sys/dev/de/if_devar.h58
-rw-r--r--sys/pci/if_de.c10
-rw-r--r--sys/pci/if_devar.h58
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
OpenPOWER on IntegriCloud