diff options
author | mjacob <mjacob@cvs.openbsd.org> | 2001-10-06 22:42:55 +0000 |
---|---|---|
committer | mjacob <mjacob@cvs.openbsd.org> | 2001-10-06 22:42:55 +0000 |
commit | 7ac4bbf6993cea1e87d6167034efdc0b16adaac9 (patch) | |
tree | f1703d56e255a58e39f45f4d2c951686b7d80741 /sys/dev/pci/if_wxvar.h | |
parent | 5f5898459ce824152e5e474918fb55430b7651b0 (diff) |
Completely strip away all non-OpenBSD code to clean things up. Fix the
setting of cacheline to something that the chip wants. Apply several
bug fixes from Sitara networks with respect to transmit descriptor
wraparound. Don't do tx descriptor garbage collection in the interrupt
service routine. Increase the number of rx descriptors to 256.
Diffstat (limited to 'sys/dev/pci/if_wxvar.h')
-rw-r--r-- | sys/dev/pci/if_wxvar.h | 210 |
1 files changed, 4 insertions, 206 deletions
diff --git a/sys/dev/pci/if_wxvar.h b/sys/dev/pci/if_wxvar.h index b73861466ee..a90b34d8a00 100644 --- a/sys/dev/pci/if_wxvar.h +++ b/sys/dev/pci/if_wxvar.h @@ -41,207 +41,6 @@ * Look further below for more generic structures. */ -#if defined(__NetBSD__) -#include <sys/param.h> -#include <sys/systm.h> -#include <sys/mbuf.h> -#include <sys/protosw.h> -#include <sys/socket.h> -#include <sys/ioctl.h> -#include <sys/errno.h> -#include <sys/malloc.h> -#include <sys/kernel.h> -#include <sys/proc.h> -#include <sys/device.h> -#include <net/if.h> -#if defined(SIOCSIFMEDIA) -#include <net/if_media.h> -#endif -#include <net/if_types.h> -#include <net/if_dl.h> -#include <net/route.h> -#include <net/netisr.h> - -#include "bpfilter.h" -#if NBPFILTER > 0 -#include <net/bpf.h> -#include <net/bpfdesc.h> -#endif - -#ifdef INET -#include <netinet/in.h> -#include <netinet/in_systm.h> -#include <netinet/in_var.h> -#include <netinet/ip.h> -#endif -#ifdef NS -#include <netns/ns.h> -#include <netns/ns_if.h> -#endif -#include <vm/vm.h> -#include <vm/vm_param.h> -#include <net/if_ether.h> -#if defined(INET) -#include <netinet/if_inarp.h> -#endif -#include <machine/bus.h> -#include <machine/intr.h> -#include <dev/pci/pcireg.h> -#include <dev/pci/pcivar.h> -#include <dev/pci/pcidevs.h> -#include <dev/pci/if_wxreg.h> -#include <dev/mii/mii.h> -#include <dev/mii/miivar.h> - -struct wxmdvar { - struct device dev; /* generic device structures */ - void * ih; /* interrupt handler cookie */ - struct ethercom ethercom; /* ethernet common part */ - pci_chipset_tag_t pci_pc; - pcitag_t pci_tag; - u_int8_t enaddr[6]; /* our mac address */ - u_int32_t cmdw; - bus_space_tag_t st; /* bus space tag */ - bus_space_handle_t sh; /* bus space handle */ - struct ifmedia ifm; - struct mii_data mii_data; - int spl; -}; -#define wx_dev w.dev -#define wx_enaddr w.enaddr -#define wx_cmdw w.cmdw -#define wx_media w.ifm - -#define wx_if w.ethercom.ec_if -#define wx_name w.dev.dv_xname - -#define IOCTL_CMD_TYPE u_long -#define WXMALLOC(len) malloc(len, M_DEVBUF, M_NOWAIT) -#define WXFREE(ptr) free(ptr, M_DEVBUF) -#define SOFTC_IFP(ifp) ifp->if_softc -#define WX_BPFTAP_ARG(ifp) (ifp)->if_bpf -#define TIMEOUT(sc, func, arg, time) timeout(func, arg, time) -#define VTIMEOUT(sc, func, arg, time) timeout(func, arg, time) -#define UNTIMEOUT(f, arg, sc) untimeout(f, arg) -#define INLINE inline -#define WX_LOCK(_sc) _sc->w.spl = splimp() -#define WX_UNLOCK(_sc) splx(_sc->w.spl) -#define WX_ILOCK(_sc) -#define WX_IUNLK(_sc) -#define WX_SOFTC_FROM_MII_ARG(x) (wx_softc_t *) x - -#define vm_offset_t vaddr_t -#ifndef IFM_1000_SX -#define IFM_1000_SX IFM_1000_FX -#endif -#define READ_CSR _read_csr -#define WRITE_CSR _write_csr - -typedef unsigned long intptr_t; - -#elif defined(__FreeBSD__) -/* - * Enable for FreeBSD 5.0 SMP code - */ -/* #define SMPNG 1 */ - -#include <sys/param.h> -#include <sys/systm.h> -#include <sys/mbuf.h> -#include <sys/protosw.h> -#include <sys/socket.h> -#include <sys/malloc.h> -#include <sys/kernel.h> -#include <net/if.h> -#include <net/if_dl.h> -#include <net/if_media.h> -#ifdef NS -#include <netns/ns.h> -#include <netns/ns_if.h> -#endif -#include <net/bpf.h> -#include <sys/sockio.h> -#include <sys/bus.h> -#include <machine/bus.h> -#include <sys/rman.h> -#include <machine/resource.h> -#include <net/ethernet.h> -#include <net/if_arp.h> -#include <vm/vm.h> -#include <machine/clock.h> -#include <pci/pcivar.h> -#include <pci/pcireg.h> -#include <pci/if_wxreg.h> -#include <dev/mii/mii.h> -#include <dev/mii/miivar.h> - -#define NBPFILTER 1 - -#include "miibus_if.h" - -#include "opt_bdg.h" -#ifdef BRIDGE -#include <net/if_types.h> -#include <net/bridge.h> -#endif - -struct wxmdvar { - struct device * dev; /* backpointer to device */ - struct arpcom arpcom; /* per-interface network data */ - struct resource * mem; /* resource descriptor for registers */ - struct resource * irq; /* resource descriptor for interrupt */ - void * ih; /* interrupt handler cookie */ - u_int16_t cmdw; - struct callout_handle sch; /* handle for timeouts */ - char name[8]; - bus_space_tag_t st; /* bus space tag */ - bus_space_handle_t sh; /* bus space handle */ - struct ifmedia ifm; - device_t miibus; -#ifdef SMPNG - struct mtx wxmtx; -#else - int spl; -#endif -}; -#define wx_dev w.dev -#define wx_enaddr w.arpcom.ac_enaddr -#define wx_cmdw w.cmdw -#define wx_media w.ifm - -#define wx_if w.arpcom.ac_if -#define wx_name w.name -#define wx_mtx w.wxmtx - -#define IOCTL_CMD_TYPE u_long -#define WXMALLOC(len) malloc(len, M_DEVBUF, M_NOWAIT) -#define WXFREE(ptr) free(ptr, M_DEVBUF) -#define SOFTC_IFP(ifp) ifp->if_softc -#define WX_BPFTAP_ARG(ifp) ifp -#define VTIMEOUT(sc, func, arg, time) (void) timeout(func, arg, time) -#define TIMEOUT(sc, func, arg, time) (sc)->w.sch = timeout(func, arg, time) -#define UNTIMEOUT(f, arg, sc) untimeout(f, arg, (sc)->w.sch) -#define INLINE __inline -#ifdef SMPNG -#define WX_LOCK(_sc) mtx_lock(&(_sc)->wx_mtx) -#define WX_UNLOCK(_sc) mtx_unlock(&(_sc)->wx_mtx) -#define WX_ILOCK(_sc) mtx_lock(&(_sc)->wx_mtx) -#define WX_IUNLK(_sc) mtx_unlock(&(_sc)->wx_mtx) -#else -#define WX_LOCK(_sc) _sc->w.spl = splimp() -#define WX_UNLOCK(_sc) splx(_sc->w.spl) -#define WX_ILOCK(_sc) -#define WX_IUNLK(_sc) -#endif -#define WX_SOFTC_FROM_MII_ARG(x) device_get_softc(x) - - -#define READ_CSR(sc, reg) \ - bus_space_read_4((sc)->w.st, (sc)->w.sh, (reg)) -#define WRITE_CSR(sc, reg, val) \ - bus_space_write_4((sc)->w.st, (sc)->w.sh, (reg), (val)) - -#elif defined(__OpenBSD__) #include <sys/param.h> #include <sys/systm.h> #include <sys/mbuf.h> @@ -332,13 +131,13 @@ struct wxmdvar { #define WX_ILOCK(_sc) #define WX_IUNLK(_sc) #define WX_SOFTC_FROM_MII_ARG(x) (wx_softc_t *) x +#define WX_MII_FROM_SOFTC(x) (&x->w.mii_data) #define vm_offset_t vaddr_t #define READ_CSR _read_csr #define WRITE_CSR _write_csr typedef unsigned long intptr_t; -#endif /* @@ -370,7 +169,8 @@ typedef struct wx_softc { /* * misc goodies */ - u_int32_t : 24, + u_int32_t : 23, + wx_mii : 1, /* non-zero if we have a PHY */ wx_no_flow : 1, wx_ilos : 1, wx_no_ilos : 1, @@ -386,8 +186,6 @@ typedef struct wx_softc { u_int32_t wx_dcr; /* dcr used */ u_int32_t wx_icr; /* last icr */ - mii_data_t *wx_mii; /* non-NULL if we have a PHY */ - /* * Statistics, soft && hard */ @@ -452,7 +250,7 @@ typedef struct wx_softc { #define WX_MAX_TDESC 256 /* number of transmit descriptors */ #define T_NXT_IDX(x) ((x + 1) & (WX_MAX_TDESC - 1)) #define T_PREV_IDX(x) ((x - 1) & (WX_MAX_TDESC - 1)) -#define WX_MAX_RDESC 64 /* number of receive descriptors */ +#define WX_MAX_RDESC 256 /* number of receive descriptors */ #ifdef PADDED_CELL #define RXINCR 2 #else |