Module Name: src Committed By: msaitoh Date: Thu Oct 17 09:13:48 UTC 2019
Modified Files: src/share/man/man4: alc.4 src/sys/dev/pci: if_alc.c if_alcreg.h Log Message: Add support for Killer E2400 and E2500. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/share/man/man4/alc.4 cvs rdiff -u -r1.41 -r1.42 src/sys/dev/pci/if_alc.c cvs rdiff -u -r1.7 -r1.8 src/sys/dev/pci/if_alcreg.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/share/man/man4/alc.4 diff -u src/share/man/man4/alc.4:1.5 src/share/man/man4/alc.4:1.6 --- src/share/man/man4/alc.4:1.5 Mon Jan 19 11:53:59 2015 +++ src/share/man/man4/alc.4 Thu Oct 17 09:13:48 2019 @@ -1,4 +1,4 @@ -.\" $NetBSD: alc.4,v 1.5 2015/01/19 11:53:59 wiz Exp $ +.\" $NetBSD: alc.4,v 1.6 2019/10/17 09:13:48 msaitoh Exp $ .\" .\" Copyright (c) 2009 Kevin Lo <ke...@openbsd.org> .\" @@ -14,12 +14,12 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd January 18, 2015 +.Dd October 16, 2019 .Dt ALC 4 .Os .Sh NAME .Nm alc -.Nd Atheros AR813x/AR815x/AR816x/AR817x Ethernet device +.Nd Atheros AR813x/AR815x/AR816x/AR817x Killer E2200/2400/2500 Ethernet device .Sh SYNOPSIS .Cd "alc* at pci?" .Cd "atphy* at mii?" @@ -27,7 +27,8 @@ The .Nm driver provides support for Ethernet interfaces based on the -Atheros AR813x/AR815x/AR816x/AR817x Gigabit/Fast Ethernet chipsets. +Atheros AR813x/AR815x/AR816x/AR817x Gigabit/Fast Ethernet chipsets and +Killer E2200/2400/2500 Ethernet chipsets. .Pp The following .Ar media Index: src/sys/dev/pci/if_alc.c diff -u src/sys/dev/pci/if_alc.c:1.41 src/sys/dev/pci/if_alc.c:1.42 --- src/sys/dev/pci/if_alc.c:1.41 Thu Oct 17 09:12:12 2019 +++ src/sys/dev/pci/if_alc.c Thu Oct 17 09:13:48 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: if_alc.c,v 1.41 2019/10/17 09:12:12 msaitoh Exp $ */ +/* $NetBSD: if_alc.c,v 1.42 2019/10/17 09:13:48 msaitoh Exp $ */ /* $OpenBSD: if_alc.c,v 1.1 2009/08/08 09:31:13 kevlo Exp $ */ /*- * Copyright (c) 2009, Pyun YongHyeon <yong...@freebsd.org> @@ -101,6 +101,10 @@ static struct alc_ident alc_ident_table[ "Atheros AR8172 PCIe Fast Ethernet" }, { PCI_VENDOR_ATTANSIC, PCI_PRODUCT_ATTANSIC_E2200, 9 * 1024, "Killer E2200 Gigabit Ethernet" }, + { PCI_VENDOR_ATTANSIC, PCI_PRODUCT_ATTANSIC_E2400, 9 * 1024, + "Killer E2400 Gigabit Ethernet" }, + { PCI_VENDOR_ATTANSIC, PCI_PRODUCT_ATTANSIC_E2500, 9 * 1024, + "Killer E2500 Gigabit Ethernet" }, { 0, 0, 0, NULL }, }; @@ -1002,6 +1006,8 @@ alc_phy_down(struct alc_softc *sc) switch (sc->alc_ident->deviceid) { case PCI_PRODUCT_ATTANSIC_AR8161: case PCI_PRODUCT_ATTANSIC_E2200: + case PCI_PRODUCT_ATTANSIC_E2400: + case PCI_PRODUCT_ATTANSIC_E2500: case PCI_PRODUCT_ATTANSIC_AR8162: case PCI_PRODUCT_ATTANSIC_AR8171: case PCI_PRODUCT_ATTANSIC_AR8172: @@ -1342,7 +1348,13 @@ alc_attach(device_t parent, device_t sel sc->alc_dma_rd_burst = 3; if (alc_dma_burst[sc->alc_dma_wr_burst] > 1024) sc->alc_dma_wr_burst = 3; - + /* + * Force maximum payload size to 128 bytes for + * E2200/E2400/E2500. + * Otherwise it triggers DMA write error. + */ + if ((sc->alc_flags & ALC_FLAG_E2X00) != 0) + sc->alc_dma_wr_burst = 0; alc_init_pcie(sc); } @@ -1361,13 +1373,17 @@ alc_attach(device_t parent, device_t sel * shows the same PHY model/revision number of AR8131. */ switch (sc->alc_ident->deviceid) { + case PCI_PRODUCT_ATTANSIC_E2200: + case PCI_PRODUCT_ATTANSIC_E2400: + case PCI_PRODUCT_ATTANSIC_E2500: + sc->alc_flags |= ALC_FLAG_E2X00; + /* FALLTHROUGH */ case PCI_PRODUCT_ATTANSIC_AR8161: if (PCI_SUBSYS_ID(pci_conf_read( sc->sc_pct, sc->sc_pcitag, PCI_SUBSYS_ID_REG)) == 0x0091 && sc->alc_rev == 0) sc->alc_flags |= ALC_FLAG_LINK_WAR; /* FALLTHROUGH */ - case PCI_PRODUCT_ATTANSIC_E2200: case PCI_PRODUCT_ATTANSIC_AR8171: sc->alc_flags |= ALC_FLAG_AR816X_FAMILY; break; Index: src/sys/dev/pci/if_alcreg.h diff -u src/sys/dev/pci/if_alcreg.h:1.7 src/sys/dev/pci/if_alcreg.h:1.8 --- src/sys/dev/pci/if_alcreg.h:1.7 Tue Sep 3 14:29:26 2019 +++ src/sys/dev/pci/if_alcreg.h Thu Oct 17 09:13:48 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: if_alcreg.h,v 1.7 2019/09/03 14:29:26 msaitoh Exp $ */ +/* $NetBSD: if_alcreg.h,v 1.8 2019/10/17 09:13:48 msaitoh Exp $ */ /* $OpenBSD: if_alcreg.h,v 1.1 2009/08/08 09:31:13 kevlo Exp $ */ /*- * Copyright (c) 2009, Pyun YongHyeon <yong...@freebsd.org> @@ -1475,7 +1475,8 @@ struct alc_softc { #define ALC_FLAG_APS 0x1000 #define ALC_FLAG_AR816X_FAMILY 0x2000 #define ALC_FLAG_LINK_WAR 0x4000 -#define ALC_FLAG_LINK 0x8000 +#define ALC_FLAG_E2X00 0x8000 +#define ALC_FLAG_LINK 0x10000 callout_t sc_tick_ch; struct alc_hw_stats alc_stats;