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