From 06397847687dd03e49f5227bf55604a5017e98bc Mon Sep 17 00:00:00 2001
From: Sascha Wildner <saw@online.de>
Date: Sun, 7 Aug 2016 15:09:47 +0200
Subject: [PATCH 2/8] i386 removal, part 52/x: Remove the old cs(4) network
 driver.

Looks like it was i386 specific and ended up in our x86_64 configs by
mistake. At least its manpage was in the i386 section and FreeBSD does
not have it in amd64's NOTES either.
---
 UPDATING                        |   11 +
 sys/conf/files                  |    2 -
 sys/config/LINT64               |    2 -
 sys/config/X86_64_GENERIC       |    1 -
 sys/dev/netif/cs/if_cs.c        | 1289 ---------------------------------------
 sys/dev/netif/cs/if_cs_pccard.c |   96 ---
 sys/dev/netif/cs/if_csreg.h     |  539 ----------------
 sys/dev/netif/cs/if_csvar.h     |   79 ---
 8 files changed, 11 insertions(+), 2008 deletions(-)
 delete mode 100644 sys/dev/netif/cs/if_cs.c
 delete mode 100644 sys/dev/netif/cs/if_cs_pccard.c
 delete mode 100644 sys/dev/netif/cs/if_csreg.h
 delete mode 100644 sys/dev/netif/cs/if_csvar.h

diff --git a/UPDATING b/UPDATING
index ca45213..5b64336 100644
--- a/UPDATING
+++ b/UPDATING
@@ -9,6 +9,17 @@
 # mailing list with the details.
 
 +-----------------------------------------------------------------------+
++         UPGRADING DRAGONFLY FROM 4.6 TO LATER VERSIONS                +
++-----------------------------------------------------------------------+
+
+CS DRIVER REMOVED
+-----------------
+
+The cs(4) driver has been removed. It's old and seems to be i386
+specific, but it was in X86_64_GENERIC, so custom configurations
+derived from it have to be adjusted.
+
++-----------------------------------------------------------------------+
 +         UPGRADING DRAGONFLY FROM 4.4 TO LATER VERSIONS                +
 +-----------------------------------------------------------------------+
 
diff --git a/sys/conf/files b/sys/conf/files
index 374ae85..8d7475f 100644
--- a/sys/conf/files
+++ b/sys/conf/files
@@ -366,8 +366,6 @@ dev/disk/buslogic/bt.c			optional bt
 dev/disk/buslogic/bt_pci.c		optional bt pci
 dev/disk/ccd/ccd.c			optional ccd
 dev/raid/ciss/ciss.c			optional ciss
-dev/netif/cs/if_cs.c			optional cs
-dev/netif/cs/if_cs_pccard.c	optional cs pccard
 dev/misc/dcons/dcons.c		optional dcons
 dev/misc/dcons/dcons_crom.c	optional dcons_crom
 dev/misc/dcons/dcons_os.c	optional dcons
diff --git a/sys/config/LINT64 b/sys/config/LINT64
index db3ef31..635b1f8 100644
--- a/sys/config/LINT64
+++ b/sys/config/LINT64
@@ -1113,7 +1113,6 @@ device		puc
 #
 # Network interfaces: `ed', `ep', `is', `lnc'
 #
-# cs: IBM Etherjet and other Crystal Semi CS89x0-based adapters
 # ep: 3Com 3C509
 # ex: Intel EtherExpress Pro/10 and other i82595-based adapters
 # lnc: Lance/PCnet cards (Isolan, Novell NE2100, NE32-VL, AMD Am7990 & Am79C960)
@@ -1123,7 +1122,6 @@ device		puc
 #     bridge with a PCMCIA adapter plugged into it.
 # xe: Xircom/Intel EtherExpress Pro100/16 PC Card ethernet controller.
 #
-device cs
 device ep
 device ex
 device lnc
diff --git a/sys/config/X86_64_GENERIC b/sys/config/X86_64_GENERIC
index ef51e69..ac86b86 100644
--- a/sys/config/X86_64_GENERIC
+++ b/sys/config/X86_64_GENERIC
@@ -278,7 +278,6 @@ device		wpi		# Intel 3945ABG Wireless LAN IEEE 802.11 driver
 device		wi
 
 device		lnc0	at isa? disable port 0x280 irq 10 drq 0
-device		cs0	at isa? disable port 0x300
 device		sn0	at isa? disable port 0x300 irq 10
 
 # Pseudo devices - the number indicates how many units to allocate.
diff --git a/sys/dev/netif/cs/if_cs.c b/sys/dev/netif/cs/if_cs.c
deleted file mode 100644
index 05aa1f2..0000000
--- a/sys/dev/netif/cs/if_cs.c
+++ /dev/null
@@ -1,1289 +0,0 @@
-/*
- * Copyright (c) 1997,1998 Maxim Bolotin and Oleg Sharoiko.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice unmodified, this list of conditions, and the following
- *    disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/sys/dev/cs/if_cs.c,v 1.19.2.1 2001/01/25 20:13:48 imp Exp $
- */
-
-/*
- * Device driver for Crystal Semiconductor CS8920 based ethernet
- *   adapters. By Maxim Bolotin and Oleg Sharoiko, 27-April-1997
- */
-
-/*
-#define	 CS_DEBUG 
- */
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/interrupt.h>
-#include <sys/malloc.h>
-#include <sys/mbuf.h>
-#include <sys/socket.h>
-#include <sys/sockio.h>
-#include <sys/kernel.h>
-#include <sys/sysctl.h>
-#include <sys/syslog.h>
-#include <sys/module.h>
-#include <sys/bus.h>
-#include <sys/rman.h>
-#include <sys/thread2.h>
-#include <sys/machintr.h>
-
-#include <machine/clock.h>
-
-#include <net/if.h>
-#include <net/ifq_var.h>
-#include <net/if_arp.h>
-#include <net/if_media.h>
-#include <net/ethernet.h>
-#include <net/bpf.h>
-
-#include "if_csreg.h"
-#include "if_csvar.h"
-
-#ifdef  CS_USE_64K_DMA
-#define CS_DMA_BUFFER_SIZE 65536
-#else
-#define CS_DMA_BUFFER_SIZE 16384
-#endif
-
-static int	cs_recv_delay = 570;
-SYSCTL_INT(_machdep, OID_AUTO, cs_recv_delay, CTLFLAG_RW, &cs_recv_delay, 0, "");
-
-static void	cs_init(void *);
-static int	cs_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *);
-static void	cs_start(struct ifnet *, struct ifaltq_subque *);
-static void	cs_stop(struct cs_softc *);
-static void	cs_reset(struct cs_softc *);
-static void	cs_watchdog(struct ifnet *);
-static void	csintr(void *);
-
-static int	cs_mediachange(struct ifnet *);
-static void	cs_mediastatus(struct ifnet *, struct ifmediareq *);
-static int      cs_mediaset(struct cs_softc *, int);
-
-static void	cs_write_mbufs(struct cs_softc*, struct mbuf*);
-static void	cs_xmit_buf(struct cs_softc*);
-static int	cs_get_packet(struct cs_softc*);
-static void	cs_setmode(struct cs_softc*);
-
-static int	get_eeprom_data(device_t, int, int, int *);
-static int	get_eeprom_cksum(int, int, int *);
-static int	wait_eeprom_ready( struct cs_softc *);
-static void	control_dc_dc(struct cs_softc *, int );
-static int	send_test_pkt(struct cs_softc * );
-static int	enable_tp(struct cs_softc *);
-static int	enable_aui(struct cs_softc *);
-static int	enable_bnc(struct cs_softc *);
-static int      cs_duplex_auto(struct cs_softc *);
-
-devclass_t cs_devclass;
-
-DECLARE_DUMMY_MODULE(if_cs);
-
-static int
-get_eeprom_data(device_t dev, int off, int len, int *buffer)
-{
-	struct cs_softc *sc;
-	int i;
-
-	sc = device_get_softc(dev);
-
-#ifdef CS_DEBUG
-	device_printf(dev, "EEPROM data from %x for %x:\n", off, len);
-#endif
-
-	for (i=0;i<len;i++) {
-		if (wait_eeprom_ready(sc) < 0) return -1;
-		/* Send command to EEPROM to read */
-		cs_writereg(sc->nic_addr, PP_EECMD, (off+i)|EEPROM_READ_CMD );
-		if (wait_eeprom_ready(sc)<0)
-			return -1;
-		buffer[i] = cs_readreg (sc->nic_addr, PP_EEData);
-
-#ifdef CS_DEBUG
-		kprintf("%02x %02x ",(unsigned char)buffer[i],
-					(unsigned char)buffer[i+1]);
-#endif
-	}
-
-#ifdef CS_DEBUG
-	kprintf("\n");
-#endif
-
-	return 0;
-}
-
-static int
-get_eeprom_cksum(int off, int len, int *buffer)
-{
-	int i,cksum=0;
-
-	for (i=0;i<len;i++)
-		cksum+=buffer[i];
-	cksum &= 0xffff;
-	if (cksum==0)
-		return 0;
-	return -1;
-}
-
-static int
-wait_eeprom_ready(struct cs_softc *sc)
-{
-	DELAY ( 30000 );	/* XXX should we do some checks here ? */
-	return 0;
-}
-
-static void
-control_dc_dc(struct cs_softc *sc, int on_not_off)
-{
-	unsigned int self_control = HCB1_ENBL;
-
-	if (((sc->adapter_cnf & A_CNF_DC_DC_POLARITY)!=0) ^ on_not_off)
-		self_control |= HCB1;
-	else
-		self_control &= ~HCB1;
-	cs_writereg( sc->nic_addr, PP_SelfCTL, self_control );
-
-	DELAY( 500000 );
-}
-
-
-static int
-cs_duplex_auto(struct cs_softc *sc)
-{
-        int i, error=0;
-        
-        cs_writereg(sc->nic_addr, PP_AutoNegCTL,
-                    RE_NEG_NOW | ALLOW_FDX | AUTO_NEG_ENABLE );
-        for (i=0; cs_readreg(sc->nic_addr,PP_AutoNegST)&AUTO_NEG_BUSY; i++) {
-                if (i > 40000) {
-			if_printf(&sc->arpcom.ac_if, "full/half duplex "
-				  "auto negotiation timeout\n");
-			error = ETIMEDOUT;
-                        break;
-                }
-                DELAY(1000);
-        }
-        DELAY( 1000000 );
-	return error;
-}
-
-static int
-enable_tp(struct cs_softc *sc)
-{
-	cs_writereg(sc->nic_addr, PP_LineCTL, sc->line_ctl & ~AUI_ONLY);
-	control_dc_dc(sc, 0);
-	DELAY( 150000 );
-
-	if ((cs_readreg(sc->nic_addr, PP_LineST) & LINK_OK)==0) {
-		if_printf(&sc->arpcom.ac_if, "failed to enable TP\n");
-                return EINVAL;
-	}
-
-	return 0;
-}
-
-/*
- * XXX This was rewritten from Linux driver without any tests.
- */             
-static int
-send_test_pkt(struct cs_softc *sc)
-{
-	char test_packet[] = { 0,0,0,0,0,0, 0,0,0,0,0,0,
-				0, 46,  /* A 46 in network order */
-				0, 0,   /* DSAP=0 & SSAP=0 fields */
-				0xf3, 0 /* Control (Test Req + P bit set) */ };
-	int i;
-	u_char ether_address_backup[ETHER_ADDR_LEN];
-
-	for (i = 0; i < ETHER_ADDR_LEN; i++) {
-		ether_address_backup[i] = sc->arpcom.ac_enaddr[i];
-	}
-
-	cs_writereg(sc->nic_addr, PP_LineCTL,
-		cs_readreg(sc->nic_addr, PP_LineCTL) | SERIAL_TX_ON );
-	bcopy(test_packet,
-			sc->arpcom.ac_enaddr, ETHER_ADDR_LEN);
-	bcopy(test_packet+ETHER_ADDR_LEN,
-			sc->arpcom.ac_enaddr, ETHER_ADDR_LEN);
-	outw(sc->nic_addr + TX_CMD_PORT, sc->send_cmd);
-	outw(sc->nic_addr + TX_LEN_PORT, sizeof(test_packet));
-
-	/* Wait for chip to allocate memory */
-	DELAY(50000);
-	if (!(cs_readreg(sc->nic_addr, PP_BusST) & READY_FOR_TX_NOW)) {
-		for (i = 0; i < ETHER_ADDR_LEN; i++) {
-			sc->arpcom.ac_enaddr[i] = ether_address_backup[i];
-		}
-		return 0;
-	}
-
-	outsw(sc->nic_addr + TX_FRAME_PORT, test_packet, sizeof(test_packet));
-
-	DELAY(30000);
-
-	if ((cs_readreg(sc->nic_addr,PP_TxEvent) & TX_SEND_OK_BITS) == TX_OK) {
-		for (i = 0; i < ETHER_ADDR_LEN; i++) {
-			sc->arpcom.ac_enaddr[i] = ether_address_backup[i];
-		}
-		return 1;
-	}
-	for (i = 0; i < ETHER_ADDR_LEN; i++) {
-		sc->arpcom.ac_enaddr[i] = ether_address_backup[i];
-	}
-	return 0;
-}
-
-/*
- * XXX This was rewritten from Linux driver without any tests.
- */
-static int
-enable_aui(struct cs_softc *sc)
-{
-	control_dc_dc(sc, 0);
-	cs_writereg(sc->nic_addr, PP_LineCTL,
-		(sc->line_ctl & ~AUTO_AUI_10BASET) | AUI_ONLY);
-
-	if (!send_test_pkt(sc)) {
-		if_printf(&sc->arpcom.ac_if, "failed to enable AUI\n");
-		return EINVAL;
-        }
-        return 0;
-}
-
-/*
- * XXX This was rewritten from Linux driver without any tests.
- */             
-static int
-enable_bnc(struct cs_softc *sc)
-{
-	control_dc_dc(sc, 1);
-	cs_writereg(sc->nic_addr, PP_LineCTL,
-		(sc->line_ctl & ~AUTO_AUI_10BASET) | AUI_ONLY);
-
-	if (!send_test_pkt(sc)) {
-		if_printf(&sc->arpcom.ac_if, "failed to enable BNC\n");
-		return EINVAL;
-        }
-        return 0;
-}
-
-int
-cs_cs89x0_probe(device_t dev)
-{
-	int i;
-	int iobase;
-	int error;
-
-	u_long irq, junk;
-
-	struct cs_softc *sc = device_get_softc(dev);
-
-	unsigned rev_type = 0;
-	char chip_revision;
-	int eeprom_buff[CHKSUM_LEN];
-	int chip_type, pp_isaint;
-#if 0 /* Temporary disabled */
-	int pp_isadma;
-#endif
-
-	error = cs_alloc_port(dev, 0, CS_89x0_IO_PORTS);
-	if (error)
-		return (error);
-
-	iobase=rman_get_start(sc->port_res);
-
-	if ((inw(iobase+ADD_PORT) & ADD_MASK) != ADD_SIG) {
-		/* Chip not detected. Let's try to reset it */
-		if (bootverbose)
-			device_printf(dev, "trying to reset the chip.\n");
-		outw(iobase+ADD_PORT, PP_SelfCTL);
-		i = inw(iobase+DATA_PORT);
-		outw(iobase+ADD_PORT, PP_SelfCTL);
-		outw(iobase+DATA_PORT, i | POWER_ON_RESET);
-		if ((inw(iobase+ADD_PORT) & ADD_MASK) != ADD_SIG)
-			return (ENXIO);
-	}
-
-	outw(iobase+ADD_PORT, PP_ChipID);
-	if (inw(iobase+DATA_PORT) != CHIP_EISA_ID_SIG)
-		return (ENXIO);
-
-	rev_type = cs_readreg(iobase, PRODUCT_ID_ADD);
-	chip_type = rev_type & ~REVISON_BITS;
-	chip_revision = ((rev_type & REVISON_BITS) >> 8) + 'A';
-
-	sc->nic_addr = iobase;
-	sc->chip_type = chip_type;
-
-	if(chip_type==CS8900) {
-		pp_isaint = PP_CS8900_ISAINT;
-#if 0 /* Temporary disabled */
-		pp_isadma = PP_CS8900_ISADMA;
-#endif
-		sc->send_cmd = TX_CS8900_AFTER_ALL;
-	} else {
-		pp_isaint = PP_CS8920_ISAINT;
-#if 0 /* Temporary disabled */
-		pp_isadma = PP_CS8920_ISADMA;
-#endif
-		sc->send_cmd = TX_CS8920_AFTER_ALL;
-	}
-
-        /*
-         * Clear some fields so that fail of EEPROM will left them clean
-         */
-        sc->auto_neg_cnf = 0;
-        sc->adapter_cnf  = 0;
-        sc->isa_config   = 0;
-        
-	/*
-	 * If no interrupt specified (or "?"), use what the board tells us.
-	 */
-	error = bus_get_resource(dev, SYS_RES_IRQ, 0, &irq, &junk);
-
-	/*
-	 * Get data from EEPROM
-	 */
-	if((cs_readreg(iobase, PP_SelfST) & EEPROM_PRESENT) == 0) {
-		device_printf(dev, "No EEPROM, assuming defaults.\n");
-	} else {
-		if (get_eeprom_data(dev, START_EEPROM_DATA, CHKSUM_LEN,
-				    eeprom_buff)<0) {
-			device_printf(dev, "EEPROM read failed, "
-				"assuming defaults.\n");
-		} else {
-			if (get_eeprom_cksum(START_EEPROM_DATA,CHKSUM_LEN, eeprom_buff)<0) {
-				device_printf(dev, "EEPROM cheksum bad, "
-					"assuming defaults.\n");
-			} else {
-                                sc->auto_neg_cnf =
-                                        eeprom_buff[AUTO_NEG_CNF_OFFSET/2];
-                                sc->adapter_cnf =
-                                        eeprom_buff[ADAPTER_CNF_OFFSET/2];
-                                sc->isa_config =
-                                        eeprom_buff[ISA_CNF_OFFSET/2];
-
-                                for (i=0; i<ETHER_ADDR_LEN/2; i++) {
-                                        sc->arpcom.ac_enaddr[i*2]=
-                                                eeprom_buff[i];
-                                        sc->arpcom.ac_enaddr[i*2+1]=
-                                                eeprom_buff[i] >> 8;
-                                }
-
-                                /*
-                                 * If no interrupt specified (or "?"),
-                                 * use what the board tells us.
-                                 */
-				if (error) {
-					irq = sc->isa_config & INT_NO_MASK;
-                                        if (chip_type==CS8900) {
-                                                switch(irq) {
-						 case 0:
-							irq=10;
-							error=0;
-							break;
-						 case 1:
-							irq=11;
-							error=0;
-							break;
-						 case 2:
-							irq=12;
-							error=0;
-							break;
-						 case 3:
-							irq=5;
-							error=0;
-							break;
-						 default:
-							device_printf(dev, "invalid irq in EEPROM.\n");
-							error=EINVAL;
-                                                }
-					} else {
-						if (irq>CS8920_NO_INTS) {
-							device_printf(dev, "invalid irq in EEPROM.\n");
-							error=EINVAL;
-						} else {
-							error=0;
-						}
-					}
-
-					if (!error) {
-						bus_set_resource(dev, SYS_RES_IRQ, 0,
-						    irq, 1, machintr_legacy_intr_cpuid(irq));
-					}
-				}
-			}
-                }
-        }
-
-	if (!error) {
-                if (chip_type == CS8900) {
-			switch(irq) {
-				case  5:
-					irq = 3;
-					break;
-				case 10:
-					irq = 0;
-					break;
-				case 11:
-					irq = 1;
-					break;
-				case 12:
-					irq = 2;
-					break;
-				default:
-					error=EINVAL;
-			}
-                } else {
-                        if (irq > CS8920_NO_INTS) {
-                                error = EINVAL;
-                        }
-                }
-	}
-
-	if (!error) {
-                cs_writereg(iobase, pp_isaint, irq);
-	} else {
-	       	device_printf(dev, "Unknown or invalid irq\n");
-                return (ENXIO);
-        }
-        
-#if 0 /* Temporary disabled */
-        if (drq>0)
-		cs_writereg(iobase, pp_isadma, drq);
-	else {
-		device_printf(dev, "incorrect drq\n");
-		return 0;
-	}
-#endif
-
-	if (bootverbose)
-		 device_printf(dev, "CS89%c0%s rev %c media%s%s%s\n",
-			chip_type==CS8900 ? '0' : '2',
-			chip_type==CS8920M ? "M" : "",
-			chip_revision,
-			(sc->adapter_cnf & A_CNF_10B_T) ? " TP"  : "",
-			(sc->adapter_cnf & A_CNF_AUI)   ? " AUI" : "",
-			(sc->adapter_cnf & A_CNF_10B_2) ? " BNC" : "");
-
-        if ((sc->adapter_cnf & A_CNF_EXTND_10B_2) &&
-            (sc->adapter_cnf & A_CNF_LOW_RX_SQUELCH))
-                sc->line_ctl = LOW_RX_SQUELCH;
-        else
-                sc->line_ctl = 0;
-
-        
-	return 0;
-}
-
-/*
- * Allocate a port resource with the given resource id.
- */
-int
-cs_alloc_port(device_t dev, int rid, int size)
-{
-        struct cs_softc *sc = device_get_softc(dev);
-        struct resource *res;
-
-        res = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid,
-                                 0ul, ~0ul, size, RF_ACTIVE);
-        if (res) {
-                sc->port_rid = rid;
-                sc->port_res = res;
-                sc->port_used = size;
-                return (0);
-        } else {
-                return (ENOENT);
-        }
-}
-
-/*
- * Allocate a memory resource with the given resource id.
- */
-int
-cs_alloc_memory(device_t dev, int rid, int size)
-{
-        struct cs_softc *sc = device_get_softc(dev);
-        struct resource *res;
-
-        res = bus_alloc_resource(dev, SYS_RES_MEMORY, &rid,
-                                 0ul, ~0ul, size, RF_ACTIVE);
-        if (res) {
-                sc->mem_rid = rid;
-                sc->mem_res = res;
-                sc->mem_used = size;
-                return (0);
-        } else {
-                return (ENOENT);
-        }
-}
-
-/*
- * Allocate an irq resource with the given resource id.
- */
-int
-cs_alloc_irq(device_t dev, int rid, int flags)
-{
-        struct cs_softc *sc = device_get_softc(dev);
-        struct resource *res;
-
-        res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid,
-	    (RF_ACTIVE | flags));
-        if (res) {
-                sc->irq_rid = rid;
-                sc->irq_res = res;
-                return (0);
-        } else {
-                return (ENOENT);
-        }
-}
-
-/*
- * Release all resources
- */
-void
-cs_release_resources(device_t dev)
-{
-        struct cs_softc *sc = device_get_softc(dev);
-
-        if (sc->port_res) {
-                bus_release_resource(dev, SYS_RES_IOPORT,
-                                     sc->port_rid, sc->port_res);
-                sc->port_res = NULL;
-        }
-        if (sc->mem_res) {
-                bus_release_resource(dev, SYS_RES_MEMORY,
-                                     sc->mem_rid, sc->mem_res);
-                sc->mem_res = NULL;
-        }
-        if (sc->irq_res) {
-                bus_release_resource(dev, SYS_RES_IRQ,
-                                     sc->irq_rid, sc->irq_res);
-                sc->irq_res = NULL;
-        }
-}
-
-/*
- * Install the interface into kernel networking data structures
- */
-int
-cs_attach(device_t dev)
-{
-        struct cs_softc *sc = device_get_softc(dev);
-        int media = 0, error;
-	struct ifnet *ifp = &sc->arpcom.ac_if;
-
-	/*
-	 * Initialize the media structures.
-	 */
-	ifmedia_init(&sc->media, 0, cs_mediachange, cs_mediastatus);
-
-	KASSERT(sc->port_used > 0 || sc->mem_used > 0,
-		("%s: either I/O port or I/O memory should be used",
-		 device_get_nameunit(dev)));
-	if (sc->port_used > 0)
-		cs_alloc_port(dev, sc->port_rid, sc->port_used);
-	if (sc->mem_used > 0)
-		cs_alloc_memory(dev, sc->mem_rid, sc->mem_used);
-
-	error = cs_alloc_irq(dev, sc->irq_rid, 0);
-	if (error) {
-		device_printf(dev, "Couldn't allocate irq");
-		goto bad;
-	}
-
-	cs_stop(sc);
-
-	ifp->if_softc=sc;
-	if_initname(ifp, device_get_name(dev), device_get_unit(dev));
-	ifp->if_start=cs_start;
-	ifp->if_ioctl=cs_ioctl;
-	ifp->if_watchdog=cs_watchdog;
-	ifp->if_init=cs_init;
-	ifq_set_maxlen(&ifp->if_snd, IFQ_MAXLEN);
-	ifq_set_ready(&ifp->if_snd);
-
-#if 0
-	/*
-	 *  MIB DATA
-	 */
-	ifp->if_linkmib=&sc->mibdata;
-	ifp->if_linkmiblen=sizeof sc->mibdata;
-#endif
-
-	ifp->if_flags=(IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST );
-
-#if 0
-	/*
-	 * this code still in progress (DMA support)
-	 */
-	sc->recv_ring=kmalloc(CS_DMA_BUFFER_SIZE<<1, M_DEVBUF, M_WAITOK);
-	if ((sc->recv_ring-(sc->recv_ring & 0x1FFFF))
-	    < (128*1024-CS_DMA_BUFFER_SIZE))
-	    sc->recv_ring+=16*1024;
-#endif
-
-	sc->buffer=kmalloc(ETHER_MAX_LEN-ETHER_CRC_LEN,M_DEVBUF,M_WAITOK);
-
-	if (sc->adapter_cnf & A_CNF_10B_T) {
-		ifmedia_add(&sc->media, IFM_ETHER|IFM_10_T, 0, NULL);
-		if (sc->chip_type != CS8900) {
-			ifmedia_add(&sc->media,
-				IFM_ETHER|IFM_10_T|IFM_FDX, 0, NULL);
-			ifmedia_add(&sc->media,
-				IFM_ETHER|IFM_10_T|IFM_HDX, 0, NULL);
-		}
-	} 
-
-	if (sc->adapter_cnf & A_CNF_10B_2)
-		ifmedia_add(&sc->media, IFM_ETHER|IFM_10_2, 0, NULL);
-
-	if (sc->adapter_cnf & A_CNF_AUI)
-		ifmedia_add(&sc->media, IFM_ETHER|IFM_10_5, 0, NULL);
-
-	if (sc->adapter_cnf & A_CNF_MEDIA)
-		ifmedia_add(&sc->media, IFM_ETHER|IFM_AUTO, 0, NULL);
-
-	/* Set default media from EEPROM */
-	switch (sc->adapter_cnf & A_CNF_MEDIA_TYPE) {
-	case A_CNF_MEDIA_AUTO:  media = IFM_ETHER|IFM_AUTO; break;
-	case A_CNF_MEDIA_10B_T: media = IFM_ETHER|IFM_10_T; break;
-	case A_CNF_MEDIA_10B_2: media = IFM_ETHER|IFM_10_2; break;
-	case A_CNF_MEDIA_AUI:   media = IFM_ETHER|IFM_10_5; break;
-	default: device_printf(dev, "adapter has no media\n");
-	}
-	ifmedia_set(&sc->media, media);
-	cs_mediaset(sc, media);
-
-	ether_ifattach(ifp, sc->arpcom.ac_enaddr, NULL);
-
-	ifq_set_cpuid(&ifp->if_snd, rman_get_cpuid(sc->irq_res));
-
-	error = bus_setup_intr(dev, sc->irq_res, INTR_MPSAFE,
-			       csintr, sc, &sc->irq_handle, 
-			       ifp->if_serializer);
-	if (error) {
-		device_printf(dev, "Couldn't set up irq");
-		ether_ifdetach(ifp);
-		goto bad;
-	}
-
-	return 0;
-
-bad:
-	cs_detach(dev);
-	return error;
-}
-
-int
-cs_detach(device_t dev)
-{
-	struct cs_softc *sc = device_get_softc(dev);
-	struct ifnet *ifp = &sc->arpcom.ac_if;
-
-	if (device_is_attached(dev)) {
-		lwkt_serialize_enter(ifp->if_serializer);
-		cs_stop(sc);
-		bus_teardown_intr(dev, sc->irq_res, sc->irq_handle);
-		lwkt_serialize_exit(ifp->if_serializer);
-
-		ether_ifdetach(&sc->arpcom.ac_if);
-	}
-
-#if 0
-	/*
-	 * this code still in progress (DMA support)
-	 */
-	if (sc->recv_ring != NULL)
-		kfree(sc->recv_ring, M_DEVBUF);
-#endif
-
-	if (sc->buffer != NULL)
-		kfree(sc->buffer, M_DEVBUF);
-	cs_release_resources(dev);
-	ifmedia_removeall(&sc->media);
-
-	return 0;
-}
-
-/*
- * Initialize the board
- */
-static void
-cs_init(void *xsc)
-{
-	struct cs_softc *sc=(struct cs_softc *)xsc;
-	struct ifnet *ifp = &sc->arpcom.ac_if;
-	int i, rx_cfg;
-
-	/*
-	 * reset whatchdog timer
-	 */
-	ifp->if_timer=0;
-	sc->buf_len = 0;
-
-	/*
-	 * Hardware initialization of cs
-	 */
-
-	/* Enable receiver and transmitter */
-	cs_writereg(sc->nic_addr, PP_LineCTL,
-		cs_readreg( sc->nic_addr, PP_LineCTL ) |
-		SERIAL_RX_ON | SERIAL_TX_ON);
-
-	/* Configure the receiver mode */
-	cs_setmode(sc);
-
-	/*
-	 * This defines what type of frames will cause interrupts
-	 * Bad frames should generate interrupts so that the driver
-	 * could track statistics of discarded packets
-	 */
-        rx_cfg = RX_OK_ENBL | RX_CRC_ERROR_ENBL | RX_RUNT_ENBL |
-		 RX_EXTRA_DATA_ENBL;
-	if (sc->isa_config & STREAM_TRANSFER)
-		rx_cfg |= RX_STREAM_ENBL;
-	cs_writereg(sc->nic_addr, PP_RxCFG, rx_cfg);
-
-	cs_writereg(sc->nic_addr, PP_TxCFG, TX_LOST_CRS_ENBL |
-		    TX_SQE_ERROR_ENBL | TX_OK_ENBL | TX_LATE_COL_ENBL |
-		    TX_JBR_ENBL | TX_ANY_COL_ENBL | TX_16_COL_ENBL);
-
-	cs_writereg(sc->nic_addr, PP_BufCFG, READY_FOR_TX_ENBL |
-		    RX_MISS_COUNT_OVRFLOW_ENBL | TX_COL_COUNT_OVRFLOW_ENBL |
-		    TX_UNDERRUN_ENBL /*| RX_DMA_ENBL*/);
-
-        /* Write MAC address into IA filter */
-        for (i=0; i<ETHER_ADDR_LEN/2; i++)
-                cs_writereg(sc->nic_addr, PP_IA+i*2,
-                            sc->arpcom.ac_enaddr[i*2] |
-                            (sc->arpcom.ac_enaddr[i*2+1] << 8) );
-
-	/*
-	 * Now enable everything
-	 */
-/*
-#ifdef	CS_USE_64K_DMA
-	cs_writereg(sc->nic_addr, PP_BusCTL, ENABLE_IRQ | RX_DMA_SIZE_64K);
-        #else
-
-        cs_writereg(sc->nic_addr, PP_BusCTL, ENABLE_IRQ);
-#endif
-*/
-	cs_writereg(sc->nic_addr, PP_BusCTL, ENABLE_IRQ);
-	
-	/*
-	 * Set running and clear output active flags
-	 */
-	sc->arpcom.ac_if.if_flags |= IFF_RUNNING;
-	ifq_clr_oactive(&sc->arpcom.ac_if.if_snd);
-
-	/*
-	 * Start sending process
-	 */
-	if_devstart(&sc->arpcom.ac_if);
-}
-
-/*
- * Get the packet from the board and send it to the upper layer
- * via ether_input().
- */
-static int
-cs_get_packet(struct cs_softc *sc)
-{
-	struct ifnet *ifp = &(sc->arpcom.ac_if);
-	int iobase = sc->nic_addr, status, length;
-	struct mbuf *m;
-
-#ifdef CS_DEBUG
-	int i;
-#endif
-
-	status = inw(iobase + RX_FRAME_PORT);
-	length = inw(iobase + RX_FRAME_PORT);
-
-#ifdef CS_DEBUG
-	if_printf(ifp, "rcvd: stat %x, len %d\n", status, length);
-#endif
-
-	if (!(status & RX_OK)) {
-#ifdef CS_DEBUG
-		if_printf(ifp, "bad pkt stat %x\n", status);
-#endif
-		IFNET_STAT_INC(ifp, ierrors, 1);
-		return -1;
-	}
-
-	MGETHDR(m, M_NOWAIT, MT_DATA);
-	if (m==NULL)
-		return -1;
-
-	if (length > MHLEN) {
-		MCLGET(m, M_NOWAIT);
-		if (!(m->m_flags & M_EXT)) {
-			m_freem(m);
-			return -1;
-		}
-	}
-
-	/* Initialize packet's header info */
-	m->m_pkthdr.rcvif = ifp;
-	m->m_pkthdr.len = length;
-	m->m_len = length;
-
-	/* Get the data */
-	insw(iobase + RX_FRAME_PORT, m->m_data, (length+1)>>1);
-
-#ifdef CS_DEBUG
-	for (i=0;i<length;i++)
-	     kprintf(" %02x",(unsigned char)*((char *)(m->m_data+i)));
-	kprintf( "\n" );
-#endif
-
-	if (status & (RX_IA | RX_BROADCAST) || 
-	    (ifp->if_flags & IFF_MULTICAST && status & RX_HASHED)) {
-		ifp->if_input(ifp, m, NULL, -1);
-
-		IFNET_STAT_INC(ifp, ipackets, 1);
-
-		if (length==ETHER_MAX_LEN-ETHER_CRC_LEN)
-                        DELAY( cs_recv_delay );
-	} else {
-		m_freem(m);
-	}
-
-	return 0;
-}
-
-/*
- * Handle interrupts
- */
-static void
-csintr(void *arg)
-{
-	struct cs_softc *sc = (struct cs_softc*) arg;
-	struct ifnet *ifp = &(sc->arpcom.ac_if);
-	int status;
-
-#ifdef CS_DEBUG
-	if_printf(ifp, "Interrupt.\n");
-#endif
-
-	while ((status=cs_readword(sc->nic_addr, ISQ_PORT))) {
-
-#ifdef CS_DEBUG
-		if_printf(ifp, "from ISQ: %04x\n", status);
-#endif
-
-		switch (status & ISQ_EVENT_MASK) {
-                case ISQ_RECEIVER_EVENT:
-                        cs_get_packet(sc);
-                        break;
-
-                case ISQ_TRANSMITTER_EVENT:
-                        if (status & TX_OK)
-                                IFNET_STAT_INC(ifp, opackets, 1);
-                        else
-                                IFNET_STAT_INC(ifp, oerrors, 1);
-                        ifq_clr_oactive(&ifp->if_snd);
-                        ifp->if_timer = 0;
-                        break;
-
-                case ISQ_BUFFER_EVENT:
-                        if (status & READY_FOR_TX) {
-                                ifq_clr_oactive(&ifp->if_snd);
-                                ifp->if_timer = 0;
-                        }
-
-                        if (status & TX_UNDERRUN) {
-                                ifq_clr_oactive(&ifp->if_snd);
-                                ifp->if_timer = 0;
-                                IFNET_STAT_INC(ifp, oerrors, 1);
-                        }
-                        break;
-
-                case ISQ_RX_MISS_EVENT:
-                        IFNET_STAT_INC(ifp, ierrors, (status>>6));
-                        break;
-
-                case ISQ_TX_COL_EVENT:
-                        IFNET_STAT_INC(ifp, collisions, (status>>6));
-                        break;
-                }
-        }
-
-        if (!ifq_is_oactive(&ifp->if_snd))
-		if_devstart(ifp);
-}
-
-/*
- * Save the data in buffer
- */
-
-static void
-cs_write_mbufs( struct cs_softc *sc, struct mbuf *m )
-{
-	int len;
-	struct mbuf *mp;
-	unsigned char *data, *buf;
-
-	for (mp=m, buf=sc->buffer, sc->buf_len=0; mp != NULL; mp=mp->m_next) {
-		len = mp->m_len;
-
-		/*
-		 * Ignore empty parts
-		 */
-		if (!len)
-			continue;
-
-		/*
-		 * Find actual data address
-		 */
-		data = mtod(mp, caddr_t);
-
-		bcopy((caddr_t) data, (caddr_t) buf, len);
-		buf += len;
-		sc->buf_len += len;
-	}
-}
-
-
-static void
-cs_xmit_buf( struct cs_softc *sc )
-{
-	outsw(sc->nic_addr+TX_FRAME_PORT, sc->buffer, (sc->buf_len+1)>>1);
-	sc->buf_len = 0;
-}
-
-static void
-cs_start(struct ifnet *ifp, struct ifaltq_subque *ifsq)
-{
-	int length;
-	struct mbuf *m, *mp;
-	struct cs_softc *sc = ifp->if_softc;
-
-	ASSERT_ALTQ_SQ_DEFAULT(ifp, ifsq);
-
-	for (;;) {
-		if (sc->buf_len)
-			length = sc->buf_len;
-		else {
-			m = ifq_dequeue(&ifp->if_snd);
-
-			if (m==NULL) {
-				return;
-			}
-
-			for (length=0, mp=m; mp != NULL; mp=mp->m_next)
-				length += mp->m_len;
-
-			/* Skip zero-length packets */
-			if (length == 0) {
-				m_freem(m);
-				continue;
-			}
-
-			cs_write_mbufs(sc, m);
-
-			BPF_MTAP(ifp, m);
-
-			m_freem(m);
-		}
-
-		/*
-		 * Issue a SEND command
-		 */
-		outw(sc->nic_addr+TX_CMD_PORT, sc->send_cmd);
-		outw(sc->nic_addr+TX_LEN_PORT, length );
-
-		/*
-		 * If there's no free space in the buffer then leave
-		 * this packet for the next time: indicate output active
-		 * and return.
-		 */
-		if (!(cs_readreg(sc->nic_addr, PP_BusST) & READY_FOR_TX_NOW)) {
-			ifp->if_timer = sc->buf_len;
-			ifq_set_oactive(&ifp->if_snd);
-			return;
-		}
-
-               	cs_xmit_buf(sc);
-
-		/*
-		 * Set the watchdog timer in case we never hear
-		 * from board again. (I don't know about correct
-		 * value for this timeout)
-		 */
-		ifp->if_timer = length;
-
-		ifq_set_oactive(&ifp->if_snd);
-		return;
-	}
-}
-
-/*
- * Stop everything on the interface
- */
-static void
-cs_stop(struct cs_softc *sc)
-{
-	cs_writereg(sc->nic_addr, PP_RxCFG, 0);
-	cs_writereg(sc->nic_addr, PP_TxCFG, 0);
-	cs_writereg(sc->nic_addr, PP_BufCFG, 0);
-	cs_writereg(sc->nic_addr, PP_BusCTL, 0);
-
-	sc->arpcom.ac_if.if_flags &= ~IFF_RUNNING;
-	ifq_clr_oactive(&sc->arpcom.ac_if.if_snd);
-	sc->arpcom.ac_if.if_timer = 0;
-}
-
-/*
- * Reset the interface
- */
-static void
-cs_reset(struct cs_softc *sc)
-{
-	cs_stop(sc);
-	cs_init(sc);
-}
-
-static void
-cs_setmode(struct cs_softc *sc)
-{
-	struct ifnet *ifp = &(sc->arpcom.ac_if);
-	int rx_ctl;
-
-	/* Stop the receiver while changing filters */
-	cs_writereg(sc->nic_addr, PP_LineCTL, 
-			cs_readreg(sc->nic_addr, PP_LineCTL) & ~SERIAL_RX_ON);
-
-	if (ifp->if_flags & IFF_PROMISC) {
-		/* Turn on promiscuous mode. */
-		rx_ctl = RX_OK_ACCEPT | RX_PROM_ACCEPT;
-	} else {
-		if (ifp->if_flags & IFF_MULTICAST) {
-			/* Allow receiving frames with multicast addresses */
-			rx_ctl = RX_IA_ACCEPT | RX_BROADCAST_ACCEPT |
-				 RX_OK_ACCEPT | RX_MULTCAST_ACCEPT;
-			/*
-			 * Here the reconfiguration of chip's multicast
-			 * filters should be done but I've no idea about
-			 * hash transformation in this chip. If you can
-			 * add this code or describe me the transformation
-			 * I'd be very glad.
-			 */
-		} else {
-			/*
-			 * Receive only good frames addressed for us and
-			 * good broadcasts.
-			 */
-			rx_ctl = RX_IA_ACCEPT | RX_BROADCAST_ACCEPT |
-				 RX_OK_ACCEPT;
-		}
-	}
-
-	/* Set up the filter */
-	cs_writereg(sc->nic_addr, PP_RxCTL, RX_DEF_ACCEPT | rx_ctl);
-
-	/* Turn on receiver */
-	cs_writereg(sc->nic_addr, PP_LineCTL,
-			cs_readreg(sc->nic_addr, PP_LineCTL) | SERIAL_RX_ON);
-}
-
-static int
-cs_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr)
-{
-	struct cs_softc *sc=ifp->if_softc;
-	struct ifreq *ifr = (struct ifreq *)data;
-	int error=0;
-
-#ifdef CS_DEBUG
-	if_printf(ifp, "ioctl(%lx)\n", command);
-#endif
-
-	switch (command) {
-	case SIOCSIFFLAGS:
-		/*
-		 * Switch interface state between "running" and
-		 * "stopped", reflecting the UP flag.
-                 */
-                if (sc->arpcom.ac_if.if_flags & IFF_UP) {
-                        if ((sc->arpcom.ac_if.if_flags & IFF_RUNNING)==0) {
-                                cs_init(sc);
-                        }
-                } else {
-                        if ((sc->arpcom.ac_if.if_flags & IFF_RUNNING)!=0) {
-                                cs_stop(sc);
-                        }
-		}
-		/*
-		 * Promiscuous and/or multicast flags may have changed,
-		 * so reprogram the multicast filter and/or receive mode.
-		 *
-		 * See note about multicasts in cs_setmode
-		 */
-		cs_setmode(sc);
-		break;
-
-	case SIOCADDMULTI:
-	case SIOCDELMULTI:
-	    /*
-	     * Multicast list has changed; set the hardware filter
-	     * accordingly.
-	     *
-	     * See note about multicasts in cs_setmode
-	     */
-	    cs_setmode(sc);
-	    error = 0;
-	    break;
-
-        case SIOCSIFMEDIA:
-        case SIOCGIFMEDIA:
-                error = ifmedia_ioctl(ifp, ifr, &sc->media, command);
-                break;
-	default:
-		error = ether_ioctl(ifp, command, data);
-		break;
-        }
-
-	return error;
-}
-
-/*
- * Device timeout/watchdog routine. Entered if the device neglects to
- * generate an interrupt after a transmit has been started on it.
- */
-static void
-cs_watchdog(struct ifnet *ifp)
-{
-	struct cs_softc *sc = ifp->if_softc;
-
-	IFNET_STAT_INC(ifp, oerrors, 1);
-	log(LOG_ERR, "%s: device timeout\n", ifp->if_xname);
-
-	/* Reset the interface */
-	if (ifp->if_flags & IFF_UP)
-		cs_reset(sc);
-	else
-		cs_stop(sc);
-}
-
-static int
-cs_mediachange(struct ifnet *ifp)
-{
-	struct cs_softc *sc = ifp->if_softc;
-	struct ifmedia *ifm = &sc->media;
-
-	if (IFM_TYPE(ifm->ifm_media) != IFM_ETHER)
-		return EINVAL;
-
-	return cs_mediaset(sc, ifm->ifm_media);
-}
-
-static void
-cs_mediastatus(struct ifnet *ifp, struct ifmediareq *ifmr)
-{
-	int line_status;
-	struct cs_softc *sc = ifp->if_softc;
-
-	ifmr->ifm_active = IFM_ETHER;
-	line_status = cs_readreg(sc->nic_addr, PP_LineST);
-	if (line_status & TENBASET_ON) {
-		ifmr->ifm_active |= IFM_10_T;
-		if (sc->chip_type != CS8900) {
-			if (cs_readreg(sc->nic_addr, PP_AutoNegST) & FDX_ACTIVE)
-				ifmr->ifm_active |= IFM_FDX;
-			if (cs_readreg(sc->nic_addr, PP_AutoNegST) & HDX_ACTIVE)
-				ifmr->ifm_active |= IFM_HDX;
-		}
-		ifmr->ifm_status = IFM_AVALID;
-		if (line_status & LINK_OK)
-			ifmr->ifm_status |= IFM_ACTIVE;
-	} else {
-		if (line_status & AUI_ON) {
-			cs_writereg(sc->nic_addr, PP_SelfCTL,
-				    cs_readreg(sc->nic_addr, PP_SelfCTL) |
-				    HCB1_ENBL);
-			if (((sc->adapter_cnf & A_CNF_DC_DC_POLARITY)!=0)^
-			    (cs_readreg(sc->nic_addr, PP_SelfCTL)&HCB1))
-				ifmr->ifm_active |= IFM_10_2;
-			else
-				ifmr->ifm_active |= IFM_10_5;
-		}
-	}
-}
-
-static int
-cs_mediaset(struct cs_softc *sc, int media)
-{
-        int error;
-
-	/* Stop the receiver & transmitter */
-	cs_writereg(sc->nic_addr, PP_LineCTL,
-                    cs_readreg(sc->nic_addr, PP_LineCTL) &
-		    ~(SERIAL_RX_ON | SERIAL_TX_ON));
-
-#ifdef CS_DEBUG
-	if_printf(&sc->arpcom.ac_if, "cs_setmedia(%x)\n", media);
-#endif
-
-	switch (IFM_SUBTYPE(media)) {
-	default:
-	case IFM_AUTO:
-		if ((error=enable_tp(sc))==0)
-			error = cs_duplex_auto(sc);
-		else if ((error=enable_bnc(sc)) != 0)
-			error = enable_aui(sc);
-		break;
-	case IFM_10_T:
-		if ((error=enable_tp(sc)) != 0)
-			break;
-		if (media & IFM_FDX)
-			cs_duplex_full(sc);
-		else if (media & IFM_HDX)
-			cs_duplex_half(sc);
-		else
-			error = cs_duplex_auto(sc);
-		break;
-	case IFM_10_2:
-		error = enable_bnc(sc);
-		break;
-	case IFM_10_5:
-		error = enable_aui(sc);
-		break;
-	}
-
-	/*
-	 * Turn the transmitter & receiver back on
-	 */
-	cs_writereg(sc->nic_addr, PP_LineCTL,
-		    cs_readreg( sc->nic_addr, PP_LineCTL ) |
-		    SERIAL_RX_ON | SERIAL_TX_ON); 
-
-	return error;
-}
diff --git a/sys/dev/netif/cs/if_cs_pccard.c b/sys/dev/netif/cs/if_cs_pccard.c
deleted file mode 100644
index 5b5fa60..0000000
--- a/sys/dev/netif/cs/if_cs_pccard.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (c) 1999 M. Warner Losh <imp@village.org> 
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD: src/sys/dev/cs/if_cs_pccard.c,v 1.1.2.1 2001/01/25 20:13:48 imp Exp $
- */
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/kernel.h>
-#include <sys/socket.h>
-#include <sys/module.h>
-#include <sys/bus.h>
-
-#include <net/ethernet.h> 
-#include <net/if.h> 
-#include <net/if_arp.h>
-
-#include "if_csvar.h"
-#include <bus/pccard/pccardvar.h>
-
-#include "card_if.h"
-#include "pccarddevs.h"
-
-static const struct pccard_product cs_pccard_products[] = {
-	PCMCIA_CARD(IBM, ETHERJET, 0),
-	{ NULL }
-};
-static int
-cs_pccard_match(device_t dev)
-{
-	const struct pccard_product *pp;
-
-	if ((pp = pccard_product_lookup(dev, cs_pccard_products,
-	    sizeof(cs_pccard_products[0]), NULL)) != NULL) {
-		if (pp->pp_name != NULL)
-			device_set_desc(dev, pp->pp_name);
-		return 0;
-	}
-	return EIO;
-}
-
-static int
-cs_pccard_probe(device_t dev)
-{
-	int error;
-
-	error = cs_cs89x0_probe(dev);
-        cs_release_resources(dev);
-        return (error);
-}
-
-static device_method_t cs_pccard_methods[] = {
-	/* Device interface */
-	DEVMETHOD(device_probe,		pccard_compat_probe),
-	DEVMETHOD(device_attach,	pccard_compat_attach),
-	DEVMETHOD(device_detach,	cs_detach),
-
-	/* Card interface */
-	DEVMETHOD(card_compat_match,	cs_pccard_match),
-	DEVMETHOD(card_compat_probe,	cs_pccard_probe),
-	DEVMETHOD(card_compat_attach,	cs_attach),
-
-	DEVMETHOD_END
-};
-
-static driver_t cs_pccard_driver = {
-	"cs",
-	cs_pccard_methods,
-	sizeof(struct cs_softc),
-};
-
-extern devclass_t cs_devclass;
-
-DRIVER_MODULE(if_cs, pccard, cs_pccard_driver, cs_devclass, NULL, NULL);
-MODULE_DEPEND(if_cs, pccard, 1, 1, 1);
diff --git a/sys/dev/netif/cs/if_csreg.h b/sys/dev/netif/cs/if_csreg.h
deleted file mode 100644
index 31f0cd1..0000000
--- a/sys/dev/netif/cs/if_csreg.h
+++ /dev/null
@@ -1,539 +0,0 @@
-/*
- * Copyright (c) 1997,1998 Maxim Bolotin and Oleg Sharoiko.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice unmodified, this list of conditions, and the following
- *    disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/sys/dev/cs/if_csreg.h,v 1.3.2.1 2001/01/25 20:13:48 imp Exp $
- * $DragonFly: src/sys/dev/netif/cs/if_csreg.h,v 1.4 2005/09/02 08:14:36 sephe Exp $
- */
-
-#define CS_89x0_IO_PORTS	0x0020
-
-#define PP_ChipID 0x0000	/* offset   0h -> Corp -ID              */
-				/* offset   2h -> Model/Product Number  */
-				/* offset   3h -> Chip Revision Number  */
-
-#define PP_ISAIOB		0x0020	/*  IO base address */
-#define	PP_CS8900_ISAINT	0x0022	/*  ISA interrupt select */
-#define	PP_CS8900_ISADMA	0x0024	/*  ISA Rec DMA channel */
-#define PP_CS8920_ISAINT	0x0370	/*  ISA interrupt select */
-#define PP_CS8920_ISADMA 	0x0374	/*  ISA Rec DMA channel */
-#define PP_ISASOF		0x0026	/*  ISA DMA offset */
-#define PP_DmaFrameCnt		0x0028	/*  ISA DMA Frame count */
-#define PP_DmaByteCnt		0x002A	/*  ISA DMA Byte count */
-#define PP_CS8920_ISAMemB	0x0348	/*  Memory base */
-
-/* EEPROM data and command registers */
-#define PP_EECMD		0x0040	/*  NVR Interface Command register */
-#define PP_EEData		0x0042	/*  NVR Interface Data Register */
-#define PP_DebugReg		0x0044	/*  Debug Register */
-
-#define PP_RxCFG		0x0102	/*  Rx Bus config */
-#define PP_RxCTL		0x0104	/*  Receive Control Register */
-#define PP_TxCFG		0x0106	/*  Transmit Config Register */
-#define PP_TxCMD		0x0108	/*  Transmit Command Register */
-#define PP_BufCFG		0x010A	/*  Bus configuration Register */
-#define PP_LineCTL		0x0112	/*  Line Config Register */
-#define PP_SelfCTL		0x0114	/*  Self Command Register */
-#define PP_BusCTL		0x0116	/*  ISA bus control Register */
-#define PP_TestCTL		0x0118	/*  Test Register */
-#define PP_AutoNegCTL		0x011C	/*  Auto Negotiation Ctrl */
-
-#define PP_ISQ			0x0120	/*  Interrupt Status */
-#define PP_RxEvent		0x0124	/*  Rx Event Register */
-#define PP_TxEvent		0x0128	/*  Tx Event Register */
-#define PP_BufEvent		0x012C	/*  Bus Event Register */
-#define PP_RxMiss		0x0130	/*  Receive Miss Count */
-#define PP_TxCol		0x0132	/*  Transmit Collision Count */
-#define PP_LineST		0x0134	/*  Line State Register */
-#define PP_SelfST		0x0136	/*  Self State register */
-#define PP_BusST		0x0138	/*  Bus Status */
-#define PP_TDR			0x013C	/*  Time Domain Reflectometry */
-#define PP_AutoNegST		0x013E	/*  Auto Neg Status */
-#define PP_TxCommand		0x0144	/*  Tx Command */
-#define PP_TxLength		0x0146	/*  Tx Length */
-#define PP_LAF			0x0150	/*  Hash Table */
-#define PP_IA			0x0158	/*  Physical Address Register */
-
-#define PP_RxStatus		0x0400	/*  Receive start of frame */
-#define PP_RxLength		0x0402	/*  Receive Length of frame */
-#define PP_RxFrame		0x0404	/*  Receive frame pointer */
-#define PP_TxFrame		0x0A00	/*  Transmit frame pointer */
-
-/*
- *  Primary I/O Base Address. If no I/O base is supplied by the user, then this
- *  can be used as the default I/O base to access the PacketPage Area.
- */
-#define DEFAULTIOBASE		0x0300
-#define FIRST_IO		0x020C	/*  First I/O port to check */
-#define LAST_IO			0x037C	/*  Last I/O port to check (+10h) */
-#define ADD_MASK		0x3000	/*  Mask it use of the ADD_PORT register */
-#define ADD_SIG			0x3000	/*  Expected ID signature */
-
-#define CHIP_EISA_ID_SIG	0x630E	/*  Product ID Code for Crystal Chip (CS8900 spec 4.3) */
-
-#define PRODUCT_ID_ADD		0x0002	/*  Address of product ID */
-
-/*  Mask to find out the types of  registers */
-#define REG_TYPE_MASK		0x001F
-
-/*  Eeprom Commands */
-#define ERSE_WR_ENBL		0x00F0
-#define ERSE_WR_DISABLE		0x0000
-
-/*  Defines Control/Config register quintuplet numbers */
-#define RX_BUF_CFG		0x0003
-#define RX_CONTROL		0x0005
-#define TX_CFG			0x0007
-#define TX_COMMAND		0x0009
-#define BUF_CFG			0x000B
-#define LINE_CONTROL		0x0013
-#define SELF_CONTROL		0x0015
-#define BUS_CONTROL		0x0017
-#define TEST_CONTROL		0x0019
-
-/*  Defines Status/Count registers quintuplet numbers */
-#define RX_EVENT		0x0004
-#define TX_EVENT		0x0008
-#define BUF_EVENT		0x000C
-#define RX_MISS_COUNT		0x0010
-#define TX_COL_COUNT		0x0012
-#define LINE_STATUS		0x0014
-#define SELF_STATUS		0x0016
-#define BUS_STATUS		0x0018
-#define TDR			0x001C
-
-/*
- * PP_RxCFG - Receive  Configuration and Interrupt Mask
- *			 bit definition -  Read/write
- */
-#define SKIP_1			0x0040
-#define RX_STREAM_ENBL		0x0080
-#define RX_OK_ENBL		0x0100
-#define RX_DMA_ONLY		0x0200
-#define AUTO_RX_DMA		0x0400
-#define BUFFER_CRC		0x0800
-#define RX_CRC_ERROR_ENBL	0x1000
-#define RX_RUNT_ENBL		0x2000
-#define RX_EXTRA_DATA_ENBL	0x4000
-
-/* PP_RxCTL - Receive Control bit definition - Read/write */
-#define RX_IA_HASH_ACCEPT	0x0040
-#define RX_PROM_ACCEPT		0x0080
-#define RX_OK_ACCEPT		0x0100
-#define RX_MULTCAST_ACCEPT	0x0200
-#define RX_IA_ACCEPT		0x0400
-#define RX_BROADCAST_ACCEPT	0x0800
-#define RX_BAD_CRC_ACCEPT	0x1000
-#define RX_RUNT_ACCEPT		0x2000
-#define RX_EXTRA_DATA_ACCEPT	0x4000
-#define RX_ALL_ACCEPT		(RX_PROM_ACCEPT | RX_BAD_CRC_ACCEPT |	\
-				 RX_RUNT_ACCEPT | RX_EXTRA_DATA_ACCEPT)
-/*
- *  Default receive mode - individually addressed, broadcast, and error free
- */
-#define RX_DEF_ACCEPT (RX_IA_ACCEPT | RX_BROADCAST_ACCEPT | RX_OK_ACCEPT)
-
-/*
- * PP_TxCFG - Transmit Configuration Interrupt Mask
- *			 bit definition - Read/write
- */
-#define TX_LOST_CRS_ENBL	0x0040
-#define TX_SQE_ERROR_ENBL	0x0080
-#define TX_OK_ENBL		0x0100
-#define TX_LATE_COL_ENBL	0x0200
-#define TX_JBR_ENBL		0x0400
-#define TX_ANY_COL_ENBL		0x0800
-#define TX_16_COL_ENBL		0x8000
-
-/*
- * PP_TxCMD - Transmit Command bit definition - Read-only
- */
-#define TX_START_4_BYTES	0x0000
-#define TX_START_64_BYTES	0x0040
-#define TX_START_128_BYTES	0x0080
-#define TX_START_ALL_BYTES	0x00C0
-#define TX_FORCE		0x0100
-#define TX_ONE_COL		0x0200
-#define TX_TWO_PART_DEFF_DISABLE 0x0400
-#define TX_NO_CRC		0x1000
-#define TX_RUNT			0x2000
-
-/*
- * PP_BufCFG - Buffer Configuration Interrupt Mask
- *			 bit definition - Read/write
- */
-#define GENERATE_SW_INTERRUPT	0x0040
-#define RX_DMA_ENBL		0x0080
-#define READY_FOR_TX_ENBL	0x0100
-#define TX_UNDERRUN_ENBL	0x0200
-#define RX_MISS_ENBL		0x0400
-#define RX_128_BYTE_ENBL	0x0800
-#define TX_COL_COUNT_OVRFLOW_ENBL 0x1000
-#define RX_MISS_COUNT_OVRFLOW_ENBL 0x2000
-#define RX_DEST_MATCH_ENBL	0x8000
-
-/*
- * PP_LineCTL - Line Control bit definition - Read/write
- */
-#define SERIAL_RX_ON		0x0040
-#define SERIAL_TX_ON		0x0080
-#define AUI_ONLY		0x0100
-#define AUTO_AUI_10BASET	0x0200
-#define MODIFIED_BACKOFF	0x0800
-#define NO_AUTO_POLARITY	0x1000
-#define TWO_PART_DEFDIS		0x2000
-#define LOW_RX_SQUELCH		0x4000
-
-/*
- * PP_SelfCTL - Software Self Control bit definition - Read/write
- */
-#define POWER_ON_RESET		0x0040
-#define SW_STOP			0x0100
-#define SLEEP_ON		0x0200
-#define AUTO_WAKEUP		0x0400
-#define HCB0_ENBL		0x1000
-#define HCB1_ENBL		0x2000
-#define HCB0			0x4000
-#define HCB1			0x8000
-
-/*
- * PP_BusCTL - ISA Bus Control bit definition - Read/write
- */
-#define RESET_RX_DMA		0x0040
-#define MEMORY_ON		0x0400
-#define DMA_BURST_MODE		0x0800
-#define IO_CHANNEL_READY_ON	0x1000
-#define RX_DMA_SIZE_64Ks	0x2000
-#define ENABLE_IRQ		0x8000
-
-/*
- * PP_TestCTL - Test Control bit definition - Read/write
- */
-#define LINK_OFF		0x0080
-#define ENDEC_LOOPBACK		0x0200
-#define AUI_LOOPBACK		0x0400
-#define BACKOFF_OFF		0x0800
-#define FAST_TEST		0x8000
-
-/*
- * PP_RxEvent - Receive Event Bit definition - Read-only
- */
-#define RX_IA_HASHED		0x0040
-#define RX_DRIBBLE		0x0080
-#define RX_OK			0x0100
-#define RX_HASHED		0x0200
-#define RX_IA			0x0400
-#define RX_BROADCAST		0x0800
-#define RX_CRC_ERROR		0x1000
-#define RX_RUNT			0x2000
-#define RX_EXTRA_DATA		0x4000
-
-#define HASH_INDEX_MASK		0x0FC00
-
-/*
- * PP_TxEvent - Transmit Event Bit definition - Read-only
- */
-#define TX_LOST_CRS		0x0040
-#define TX_SQE_ERROR		0x0080
-#define TX_OK			0x0100
-#define TX_LATE_COL		0x0200
-#define TX_JBR			0x0400
-#define TX_16_COL		0x8000
-#define TX_SEND_OK_BITS		(TX_OK | TX_LOST_CRS)
-#define TX_COL_COUNT_MASK	0x7800
-
-/*
- * PP_BufEvent - Buffer Event Bit definition - Read-only
- */
-#define SW_INTERRUPT		0x0040
-#define RX_DMA			0x0080
-#define READY_FOR_TX		0x0100
-#define TX_UNDERRUN		0x0200
-#define RX_MISS			0x0400
-#define RX_128_BYTE		0x0800
-#define TX_COL_OVRFLW		0x1000
-#define RX_MISS_OVRFLW		0x2000
-#define RX_DEST_MATCH		0x8000
-
-/*
- * PP_LineST - Ethernet Line Status bit definition - Read-only
- */
-#define LINK_OK			0x0080
-#define AUI_ON			0x0100
-#define TENBASET_ON		0x0200
-#define POLARITY_OK		0x1000
-#define CRS_OK			0x4000
-
-/*
- * PP_SelfST - Chip Software Status bit definition
- */
-#define ACTIVE_33V		0x0040
-#define INIT_DONE		0x0080
-#define SI_BUSY			0x0100
-#define EEPROM_PRESENT		0x0200
-#define EEPROM_OK		0x0400
-#define EL_PRESENT		0x0800
-#define EE_SIZE_64		0x1000
-
-/*
- * PP_BusST - ISA Bus Status bit definition
- */
-#define TX_BID_ERROR		0x0080
-#define READY_FOR_TX_NOW	0x0100
-
-/*
- * PP_AutoNegCTL - Auto Negotiation Control bit definition
- */
-#define RE_NEG_NOW		0x0040
-#define ALLOW_FDX		0x0080
-#define AUTO_NEG_ENABLE		0x0100
-#define NLP_ENABLE		0x0200
-#define FORCE_FDX		0x8000
-#define AUTO_NEG_BITS		(FORCE_FDX | NLP_ENABLE | AUTO_NEG_ENABLE)
-#define AUTO_NEG_MASK		(FORCE_FDX | NLP_ENABLE | AUTO_NEG_ENABLE | \
-				 ALLOW_FDX | RE_NEG_NOW)
-
-/*
- * PP_AutoNegST - Auto Negotiation Status bit definition
- */
-#define AUTO_NEG_BUSY		0x0080
-#define FLP_LINK		0x0100
-#define FLP_LINK_GOOD		0x0800
-#define LINK_FAULT		0x1000
-#define HDX_ACTIVE		0x4000
-#define FDX_ACTIVE		0x8000
-
-/*
- * The following block defines the ISQ event types
- */
-#define ISQ_RECEIVER_EVENT	0x04
-#define ISQ_TRANSMITTER_EVENT	0x08
-#define ISQ_BUFFER_EVENT	0x0c
-#define ISQ_RX_MISS_EVENT	0x10
-#define ISQ_TX_COL_EVENT	0x12
-
-#define ISQ_EVENT_MASK		0x003F	/* ISQ mask to find out type of event */
-#define ISQ_HIST		16	/* small history buffer */
-#define AUTOINCREMENT		0x8000	/* Bit mask to set bit-15 for autoincrement */
-
-#define TXRXBUFSIZE		0x0600
-#define RXDMABUFSIZE		0x8000
-#define RXDMASIZE		0x4000
-#define TXRX_LENGTH_MASK	0x07FF
-
-/*  rx options bits */
-#define RCV_WITH_RXON		1       /*  Set SerRx ON */
-#define RCV_COUNTS		2       /*  Use Framecnt1 */
-#define RCV_PONG		4       /*  Pong respondent */
-#define RCV_DONG		8       /*  Dong operation */
-#define RCV_POLLING		0x10	/*  Poll RxEvent */
-#define RCV_ISQ			0x20	/*  Use ISQ, int */
-#define RCV_AUTO_DMA		0x100	/*  Set AutoRxDMAE */
-#define RCV_DMA			0x200	/*  Set RxDMA only */
-#define RCV_DMA_ALL		0x400	/*  Copy all DMA'ed */
-#define RCV_FIXED_DATA		0x800	/*  Every frame same */
-#define RCV_IO			0x1000	/*  Use ISA IO only */
-#define RCV_MEMORY		0x2000	/*  Use ISA Memory */
-
-#define RAM_SIZE		0x1000      /*  The card has 4k bytes or RAM */
-#define PKT_START		PP_TxFrame  /*  Start of packet RAM */
-
-#define RX_FRAME_PORT		0x0000
-#define TX_FRAME_PORT		RX_FRAME_PORT
-#define TX_CMD_PORT		0x0004
-#define TX_CS8900_NOW		0x0000  /* Tx packet after   5 bytes copied */
-#define TX_CS8900_AFTER_381	0x0020  /* Tx packet after 381 bytes copied */
-#define TX_CS8900_AFTER_ALL	0x0060  /* Tx packet after all bytes copied */
-#define TX_CS8920_NOW		0x0000  /* Tx packet after   5 bytes copied */
-#define TX_CS8920_AFTER_381	0x0040  /* Tx packet after 381 bytes copied */
-#define TX_CS8920_AFTER_1021	0x0080  /* Tx packet after1021 bytes copied */
-#define TX_CS8920_AFTER_ALL	0x00C0  /* Tx packet after all bytes copied */
-#define TX_LEN_PORT		0x0006
-#define ISQ_PORT		0x0008
-#define ADD_PORT		0x000A
-#define DATA_PORT		0x000C
-
-#define EEPROM_WRITE_EN		0x00F0
-#define EEPROM_WRITE_DIS	0x0000
-#define EEPROM_WRITE_CMD	0x0100
-#define EEPROM_READ_CMD		0x0200
-
-/*  Receive Header
- *  Description of header of each packet in receive area of memory
- */
-#define RBUF_EVENT_LOW	0  /* Low byte of RxEvent - status of received frame */
-#define RBUF_EVENT_HIGH	1  /* High byte of RxEvent - status of received frame */
-#define RBUF_LEN_LOW	2  /* Length of received data - low byte */
-#define RBUF_LEN_HI	3  /* Length of received data - high byte */
-#define RBUF_HEAD_LEN	4  /* Length of this header */
-
-#define CHIP_READ 0x1  /* Used to mark state of the repins code (chip or dma) */
-#define DMA_READ  0x2  /* Used to mark state of the repins code (chip or dma) */
-
-/*  for bios scan */
-/*  */
-#ifdef CSDEBUG
-/*  use these values for debugging bios scan */
-#define BIOS_START_SEG		0x00000
-#define BIOS_OFFSET_INC		0x0010
-#else
-#define BIOS_START_SEG		0x0c000
-#define BIOS_OFFSET_INC		0x0200
-#endif
-
-#define BIOS_LAST_OFFSET	0x0fc00
-
-/*
- *  Byte offsets into the EEPROM configuration buffer
- */
-#define ISA_CNF_OFFSET		0x6
-#define TX_CTL_OFFSET		(ISA_CNF_OFFSET + 8)	/*  8900 eeprom */
-#define AUTO_NEG_CNF_OFFSET	(ISA_CNF_OFFSET + 8)	/*  8920 eeprom */
-
-/*
- *  the assumption here is that the bits in the eeprom are generally 
- *  in the same position as those in the autonegctl register. 
- *  Of course the IMM bit is not in that register so it must be 
- *  masked out
- */
-#define EE_FORCE_FDX		0x8000
-#define EE_NLP_ENABLE		0x0200
-#define EE_AUTO_NEG_ENABLE	0x0100
-#define EE_ALLOW_FDX		0x0080
-#define EE_AUTO_NEG_CNF_MASK	(EE_FORCE_FDX | EE_NLP_ENABLE | 	\
-				 EE_AUTO_NEG_ENABLE | EE_ALLOW_FDX)
-
-#define IMM_BIT			0x0040	/*  ignore missing media	 */
-
-#define ADAPTER_CNF_OFFSET	(AUTO_NEG_CNF_OFFSET + 2)
-#define A_CNF_MEDIA             0x0007
-#define A_CNF_10B_T		0x0001
-#define A_CNF_AUI		0x0002
-#define A_CNF_10B_2		0x0004
-#define A_CNF_MEDIA_TYPE	0x0060
-#define A_CNF_MEDIA_AUTO	0x0000
-#define A_CNF_MEDIA_10B_T	0x0020
-#define A_CNF_MEDIA_AUI		0x0040
-#define A_CNF_MEDIA_10B_2	0x0060
-#define A_CNF_DC_DC_POLARITY	0x0080
-#define A_CNF_NO_AUTO_POLARITY	0x2000
-#define A_CNF_LOW_RX_SQUELCH	0x4000
-#define A_CNF_EXTND_10B_2	0x8000
-
-#define PACKET_PAGE_OFFSET	0x8
-
-/*
- *  Bit definitions for the ISA configuration word from the EEPROM
- */
-#define INT_NO_MASK		0x000F
-#define DMA_NO_MASK		0x0070
-#define ISA_DMA_SIZE		0x0200
-#define ISA_AUTO_RxDMA		0x0400
-#define ISA_RxDMA		0x0800
-#define DMA_BURST		0x1000
-#define STREAM_TRANSFER		0x2000
-#define ANY_ISA_DMA		(ISA_AUTO_RxDMA | ISA_RxDMA)
-
-/*  DMA controller registers */
-#define DMA_BASE		0x00   /* DMA controller base */
-#define DMA_BASE_2		0x0C0  /* DMA controller base */
-
-#define DMA_STAT		0x0D0  /* DMA controller status register */
-#define DMA_MASK		0x0D4  /* DMA controller mask register */
-#define DMA_MODE		0x0D6  /* DMA controller mode register */
-#define DMA_RESETFF		0x0D8  /* DMA controller first/last flip flop */
-
-/*  DMA data */
-#define DMA_DISABLE		0x04   /*  Disable channel n */
-#define DMA_ENABLE		0x00   /*  Enable channel n */
-/*  Demand transfers, incr. address, auto init, writes, ch. n */
-#define DMA_RX_MODE		0x14
-/*  Demand transfers, incr. address, auto init, reads, ch. n */
-#define DMA_TX_MODE		0x18
-
-#define DMA_SIZE		(16*1024)	/* Size of dma buffer - 16k */
-
-#define CS8900			0x0000
-#define CS8920			0x4000   
-#define CS8920M			0x6000   
-#define REVISON_BITS		0x1F00
-#define EEVER_NUMBER		0x12
-#define CHKSUM_LEN		0x14
-#define CHKSUM_VAL		0x0000
-#define START_EEPROM_DATA	0x001c /* Offset into eeprom for start of data */
-#define IRQ_MAP_EEPROM_DATA	0x0046 /* Offset into eeprom for the IRQ map */
-#define IRQ_MAP_LEN		0x0004 /* No of bytes to read for the IRQ map */
-#define PNP_IRQ_FRMT		0x0022 /* PNP small item IRQ format */
-#define CS8900_IRQ_MAP		0x1c20 /* This IRQ map is fixed */
-
-#define CS8920_NO_INTS		0x0F   /*  Max CS8920 interrupt select # */
-
-#define PNP_ADD_PORT		0x0279
-#define PNP_WRITE_PORT		0x0A79
-
-#define GET_PNP_ISA_STRUCT	0x40
-#define PNP_ISA_STRUCT_LEN	0x06
-#define PNP_CSN_CNT_OFF		0x01
-#define PNP_RD_PORT_OFF		0x02
-#define PNP_FUNCTION_OK		0x00
-#define PNP_WAKE		0x03
-#define PNP_RSRC_DATA		0x04
-#define PNP_RSRC_READY		0x01
-#define PNP_STATUS		0x05
-#define PNP_ACTIVATE		0x30
-#define PNP_CNF_IO_H		0x60
-#define PNP_CNF_IO_L		0x61
-#define PNP_CNF_INT		0x70
-#define PNP_CNF_DMA		0x74
-#define PNP_CNF_MEM		0x48
-
-#define BIT0			1
-#define BIT15			0x8000
-
-#define	CS_DUPLEX_AUTO		0
-#define CS_DUPLEX_FULL		1
-#define CS_DUPLEX_HALF		2
-
-#define cs_readreg(iobase, portno) \
-	(outw((iobase) + ADD_PORT, (portno)), \
-	inw((iobase) + DATA_PORT))
-#define cs_writereg(iobase, portno, value) \
-	(outw((iobase) + ADD_PORT, (portno)), \
-	outw((iobase) + DATA_PORT, (value)))
-#define cs_readword(iobase, portno) \
-	(inw((iobase) + (portno)))
-#define cs_writeword(iobase, portno, value) \
-	(outw((iobase) + (portno), (value)))
-
-#define reset_chip(nic_addr) \
-	cs_writereg(nic_addr, PP_SelfCTL, cs_readreg(ioaddr, PP_SelfCTL) | POWER_ON_RESET), \
-	DELAY(30000)
-
-#define cs_duplex_full(sc) \
-        (cs_writereg(sc->nic_addr, PP_AutoNegCTL, FORCE_FDX))
-
-#define cs_duplex_half(sc) \
-        (cs_writereg(sc->nic_addr, PP_AutoNegCTL, NLP_ENABLE))
-
diff --git a/sys/dev/netif/cs/if_csvar.h b/sys/dev/netif/cs/if_csvar.h
deleted file mode 100644
index 30926ec..0000000
--- a/sys/dev/netif/cs/if_csvar.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (c) 1999 M. Warner Losh <imp@village.org> 
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD: src/sys/dev/cs/if_csvar.h,v 1.1.2.1 2001/01/25 20:13:48 imp Exp $
- * $DragonFly: src/sys/dev/netif/cs/if_csvar.h,v 1.4 2005/09/02 12:51:00 sephe Exp $
- */
-
-#ifndef _IF_CSVAR_H
-#define _IF_CSVAR_H
-
-#include <net/if_arp.h>
-#include <net/if_media.h>
-
-/*
- * cs_softc: per line info and status
- */
-struct cs_softc {
-
-        /* Ethernet common code */
-        struct arpcom arpcom;
-
-        /* Configuration words from EEPROM */
-        int auto_neg_cnf;               /* AutoNegotitation configuration */
-	int adapter_cnf;                /* Adapter configuration */
-        int isa_config;                 /* ISA configuration */
-        int chip_type;			/* Type of chip */
-
-        struct ifmedia media;		/* Media information */
-
-	int     port_rid;		/* resource id for port range */
-	int     port_used;		/* nonzero if ports used */
-	struct resource* port_res;	/* resource for port range */
-	int     mem_rid;  		/* resource id for memory range */
-        int     mem_used;  		/* nonzero if memory used */
-	struct resource* mem_res;	/* resource for memory range */
-        int     irq_rid;		/* resource id for irq */
-        struct resource* irq_res;	/* resource for irq */
-        void*   irq_handle;		/* handle for irq handler */
-
-        int 	nic_addr; 		/* Base IO address of card */
-	int	send_cmd;
-        int	line_ctl;		/* */
-        int	send_underrun;
-        void	*recv_ring;
-
-        unsigned char *buffer;
-        int buf_len;
-};
-
-int	cs_alloc_port(device_t dev, int rid, int size);
-int	cs_alloc_memory(device_t dev, int rid, int size);
-int	cs_alloc_irq(device_t dev, int rid, int flags);
-int	cs_attach(device_t dev);
-int	cs_detach(device_t dev);
-int	cs_cs89x0_probe(device_t dev);
-void	cs_release_resources(device_t dev);
-
-#endif /* _IF_CSVAR_H */
-- 
2.9.2

