Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/pci Retire the le@pci attachment. It has been super...



details:   https://anonhg.NetBSD.org/src/rev/02b7ebc81514
branches:  trunk
changeset: 744151:02b7ebc81514
user:      thorpej <thorpej%NetBSD.org@localhost>
date:      Sat Jan 25 18:59:43 2020 +0000

description:
Retire the le@pci attachment.  It has been superseded (and matched at a
higher priority) by the pcn(4) driver since NetBSD 1.6.

diffstat:

 sys/dev/pci/files.pci   |    8 +-
 sys/dev/pci/if_le_pci.c |  346 ------------------------------------------------
 sys/dev/pci/if_levar.h  |   53 -------
 3 files changed, 1 insertions(+), 406 deletions(-)

diffs (truncated from 430 to 300 lines):

diff -r 30dcb6beea7d -r 02b7ebc81514 sys/dev/pci/files.pci
--- a/sys/dev/pci/files.pci     Sat Jan 25 18:53:31 2020 +0000
+++ b/sys/dev/pci/files.pci     Sat Jan 25 18:59:43 2020 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: files.pci,v 1.424 2020/01/20 18:38:17 thorpej Exp $
+#      $NetBSD: files.pci,v 1.425 2020/01/25 18:59:43 thorpej Exp $
 #
 # Config file and device description for machine-independent PCI code.
 # Included by ports that need it.  Requires that the SCSI files be
@@ -183,13 +183,7 @@
 attach ex at pci with ex_pci
 file   dev/pci/if_ex_pci.c             ex_pci
 
-# AMD am7990 (LANCE) -based Ethernet controllers
-# device declaration in sys/conf/files
-attach le at pci with le_pci: le32
-file   dev/pci/if_le_pci.c             le_pci
-
 # AMD PCnet-PCI Ethernet controller family
-# Supersedes if_le_pci.c
 device pcn: ether, ifnet, arp, mii
 attach pcn at pci
 file   dev/pci/if_pcn.c                pcn
diff -r 30dcb6beea7d -r 02b7ebc81514 sys/dev/pci/if_le_pci.c
--- a/sys/dev/pci/if_le_pci.c   Sat Jan 25 18:53:31 2020 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,346 +0,0 @@
-/*     $NetBSD: if_le_pci.c,v 1.54 2019/04/25 10:08:46 msaitoh Exp $   */
-
-/*-
- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Charles M. Hannum and by Jason R. Thorpe of the Numerical Aerospace
- * Simulation Facility, NASA Ames Research Center.
- *
- * 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
- */
-
-/*-
- * Copyright (c) 1992, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Ralph Campbell and Rick Macklem.
- *
- * 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.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
- *
- *     @(#)if_le.c     8.2 (Berkeley) 11/16/93
- */
-
-#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_le_pci.c,v 1.54 2019/04/25 10:08:46 msaitoh Exp $");
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/mbuf.h>
-#include <sys/syslog.h>
-#include <sys/socket.h>
-#include <sys/device.h>
-
-#include <net/if.h>
-#include <net/if_ether.h>
-#include <net/if_media.h>
-
-#include <sys/cpu.h>
-#include <sys/bus.h>
-#include <sys/intr.h>
-
-#include <dev/pci/pcireg.h>
-#include <dev/pci/pcivar.h>
-#include <dev/pci/pcidevs.h>
-
-#include <dev/ic/lancereg.h>
-#include <dev/ic/lancevar.h>
-#include <dev/ic/am79900reg.h>
-#include <dev/ic/am79900var.h>
-
-#include <dev/pci/if_levar.h>
-
-static int     le_pci_match(device_t, cfdata_t, void *);
-static void    le_pci_attach(device_t, device_t, void *);
-static int     le_pci_mediachange(struct lance_softc *);
-
-CFATTACH_DECL_NEW(le_pci, sizeof(struct le_softc),
-    le_pci_match, le_pci_attach, NULL, NULL);
-
-/*
- * PCI constants.
- * XXX These should be in a common file!
- */
-#define PCI_CBIO PCI_BAR(0)            /* Configuration Base IO Address */
-
-#define        LE_PCI_MEMSIZE  16384
-
-static int le_pci_supmedia[] = {
-       IFM_ETHER | IFM_AUTO,
-       IFM_ETHER | IFM_AUTO | IFM_FDX,
-       IFM_ETHER | IFM_10_T,
-       IFM_ETHER | IFM_10_T | IFM_FDX,
-       IFM_ETHER | IFM_10_5,
-       IFM_ETHER | IFM_10_5 | IFM_FDX,
-};
-
-static void
-le_pci_wrcsr(struct lance_softc *sc, uint16_t port, uint16_t val)
-{
-       struct le_softc *lesc = (struct le_softc *)sc;
-       bus_space_tag_t iot = lesc->sc_iot;
-       bus_space_handle_t ioh = lesc->sc_ioh;
-
-       bus_space_write_2(iot, ioh, lesc->sc_rap, port);
-       bus_space_write_2(iot, ioh, lesc->sc_rdp, val);
-}
-
-static uint16_t
-le_pci_rdcsr(struct lance_softc *sc, uint16_t port)
-{
-       struct le_softc *lesc = (struct le_softc *)sc;
-       bus_space_tag_t iot = lesc->sc_iot;
-       bus_space_handle_t ioh = lesc->sc_ioh;
-       uint16_t val;
-
-       bus_space_write_2(iot, ioh, lesc->sc_rap, port);
-       val = bus_space_read_2(iot, ioh, lesc->sc_rdp);
-       return val;
-}
-
-static int
-le_pci_mediachange(struct lance_softc *sc)
-{
-       struct le_softc *lesc = (struct le_softc *)sc;
-       bus_space_tag_t iot = lesc->sc_iot;
-       bus_space_handle_t ioh = lesc->sc_ioh;
-       int newmedia = sc->sc_media.ifm_media;
-       uint16_t reg;
-
-       if (IFM_SUBTYPE(newmedia) !=
-           IFM_SUBTYPE(lesc->sc_currentmedia)) {
-               if (IFM_SUBTYPE(newmedia) == IFM_AUTO) {
-                       /* Switch to autoselect - BCR2 bit 1 */
-                       bus_space_write_2(iot, ioh, PCNET_PCI_RAP, 2);
-                       reg = bus_space_read_2(iot, ioh, PCNET_PCI_BDP);
-                       reg |= 2;
-                       bus_space_write_2(iot, ioh, PCNET_PCI_RAP, 2);
-                       bus_space_write_2(iot, ioh, PCNET_PCI_BDP, reg);
-               } else {
-                       /* Force media type (in init block) */
-                       lance_reset(sc);
-                       if (IFM_SUBTYPE(newmedia) == IFM_10_T)
-                               sc->sc_initmodemedia = 1; /* UTP */
-                       else
-                               sc->sc_initmodemedia = 0; /* AUI */
-                       lance_init(&sc->sc_ethercom.ec_if);
-
-                       if (IFM_SUBTYPE(lesc->sc_currentmedia) == IFM_AUTO) {
-                               /* Take away autoselect - BCR2 bit 1 */
-                               bus_space_write_2(iot, ioh, PCNET_PCI_RAP, 2);
-                               reg = bus_space_read_2(iot, ioh, PCNET_PCI_BDP);
-                               reg &= ~2;
-                               bus_space_write_2(iot, ioh, PCNET_PCI_RAP, 2);
-                               bus_space_write_2(iot, ioh, PCNET_PCI_BDP, reg);
-                       }
-               }
-
-       }
-
-       if ((IFM_OPTIONS(newmedia) ^ IFM_OPTIONS(lesc->sc_currentmedia))
-           & IFM_FDX) {
-               /* Toggle full duplex - BCR9 */
-               bus_space_write_2(iot, ioh, PCNET_PCI_RAP, 9);
-               reg = bus_space_read_2(iot, ioh, PCNET_PCI_BDP);
-               if (IFM_OPTIONS(newmedia) & IFM_FDX) {
-                       reg |= 1; /* FDEN */
-                       /*
-                        * Allow FDX on AUI only if explicitly chosen, not in
-                        * autoselect mode
-                        */
-                       if (IFM_SUBTYPE(newmedia) == IFM_10_5)
-                               reg |= 2; /* AUIFD */
-                       else
-                               reg &= ~2;
-               } else
-                       reg &= ~1;
-               bus_space_write_2(iot, ioh, PCNET_PCI_RAP, 9);
-               bus_space_write_2(iot, ioh, PCNET_PCI_BDP, reg);
-       }
-
-       lesc->sc_currentmedia = newmedia;
-       return 0;
-}
-
-static int
-le_pci_match(device_t parent, cfdata_t cf, void *aux)
-{
-       struct pci_attach_args *pa = aux;
-
-       if (PCI_VENDOR(pa->pa_id) != PCI_VENDOR_AMD)
-               return 0;
-
-       switch (PCI_PRODUCT(pa->pa_id)) {
-       case PCI_PRODUCT_AMD_PCNET_PCI:
-               return 1;
-       }
-
-       return 0;
-}
-
-static void
-le_pci_attach(device_t parent, device_t self, void *aux)
-{
-       struct le_softc *lesc = device_private(self);
-       struct lance_softc *sc = &lesc->sc_am79900.lsc;
-       struct pci_attach_args *pa = aux;
-       pci_intr_handle_t ih;
-       bus_space_tag_t iot;
-       bus_space_handle_t ioh;
-       bus_dma_tag_t dmat = pa->pa_dmat;
-       bus_dma_segment_t seg;
-       pci_chipset_tag_t pc = pa->pa_pc;
-       pcireg_t csr;
-       int i, rseg;
-       const char *model, *intrstr;
-       char intrbuf[PCI_INTRSTR_LEN];
-
-       sc->sc_dev = self;
-
-       switch (PCI_PRODUCT(pa->pa_id)) {
-       case PCI_PRODUCT_AMD_PCNET_PCI:
-               model = "PCnet-PCI Ethernet";
-               lesc->sc_rap = PCNET_PCI_RAP;
-               lesc->sc_rdp = PCNET_PCI_RDP;
-               break;
-
-       default:
-               model = "unknown model!";
-       }
-
-       aprint_normal(": %s\n", model);
-
-       if (pci_mapreg_map(pa, PCI_CBIO, PCI_MAPREG_TYPE_IO, 0,
-           &iot, &ioh, NULL, NULL)) {
-               aprint_error_dev(self, "can't map I/O space\n");
-               return;
-       }
-
-       /* Extract the physical MAC address from the ROM. */
-       for (i = 0; i < sizeof(sc->sc_enaddr); i++)
-               sc->sc_enaddr[i] = bus_space_read_1(iot, ioh, i);
-
-       lesc->sc_iot = iot;
-       lesc->sc_ioh = ioh;
-       lesc->sc_dmat = dmat;
-
-       /* Allocate a DMA area for the card. */
-       if (bus_dmamem_alloc(dmat, LE_PCI_MEMSIZE, PAGE_SIZE, 0, &seg, 1,
-           &rseg, BUS_DMA_NOWAIT)) {
-               aprint_error_dev(self, "couldn't allocate memory for card\n");



Home | Main Index | Thread Index | Old Index