Module Name: src Committed By: skrll Date: Sat Jul 27 12:56:27 UTC 2024
Modified Files: src/sys/dev/ic: dwc_gmac.c dwc_gmac_reg.h Log Message: Handle GMAC_MAC_Version's that include USERVER. To generate a diff of this commit: cvs rdiff -u -r1.90 -r1.91 src/sys/dev/ic/dwc_gmac.c cvs rdiff -u -r1.22 -r1.23 src/sys/dev/ic/dwc_gmac_reg.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/ic/dwc_gmac.c diff -u src/sys/dev/ic/dwc_gmac.c:1.90 src/sys/dev/ic/dwc_gmac.c:1.91 --- src/sys/dev/ic/dwc_gmac.c:1.90 Sun Jul 14 09:38:41 2024 +++ src/sys/dev/ic/dwc_gmac.c Sat Jul 27 12:56:27 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: dwc_gmac.c,v 1.90 2024/07/14 09:38:41 skrll Exp $ */ +/* $NetBSD: dwc_gmac.c,v 1.91 2024/07/27 12:56:27 skrll Exp $ */ /*- * Copyright (c) 2013, 2014 The NetBSD Foundation, Inc. @@ -41,7 +41,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: dwc_gmac.c,v 1.90 2024/07/14 09:38:41 skrll Exp $"); +__KERNEL_RCSID(1, "$NetBSD: dwc_gmac.c,v 1.91 2024/07/27 12:56:27 skrll Exp $"); /* #define DWC_GMAC_DEBUG 1 */ @@ -182,7 +182,7 @@ int dwc_gmac_attach(struct dwc_gmac_softc *sc, int phy_id, uint32_t mii_clk) { uint8_t enaddr[ETHER_ADDR_LEN]; - uint32_t maclo, machi, ver, hwft; + uint32_t maclo, machi, hwft; struct mii_data * const mii = &sc->sc_mii; struct ifnet * const ifp = &sc->sc_ec.ec_if; prop_dictionary_t dict; @@ -225,8 +225,11 @@ dwc_gmac_attach(struct dwc_gmac_softc *s enaddr[5] = (machi >> 8) & 0x0ff; } - ver = bus_space_read_4(sc->sc_bst, sc->sc_bsh, AWIN_GMAC_MAC_VERSION); - aprint_normal_dev(sc->sc_dev, "Core version: %08x\n", ver); + const uint32_t ver = + bus_space_read_4(sc->sc_bst, sc->sc_bsh, AWIN_GMAC_MAC_VERSION); + const uint32_t snpsver = + __SHIFTOUT(ver, AWIN_GMAC_MAC_VERSION_SNPSVER_MASK); + aprint_normal_dev(sc->sc_dev, "Core version: %08x\n", snpsver); /* * Init chip and do initial setup @@ -238,7 +241,7 @@ dwc_gmac_attach(struct dwc_gmac_softc *s ether_sprintf(enaddr)); hwft = 0; - if (ver >= 0x35) { + if (snpsver >= 0x35) { hwft = bus_space_read_4(sc->sc_bst, sc->sc_bsh, AWIN_GMAC_DMA_HWFEATURES); aprint_normal_dev(sc->sc_dev, Index: src/sys/dev/ic/dwc_gmac_reg.h diff -u src/sys/dev/ic/dwc_gmac_reg.h:1.22 src/sys/dev/ic/dwc_gmac_reg.h:1.23 --- src/sys/dev/ic/dwc_gmac_reg.h:1.22 Tue Feb 27 08:21:24 2024 +++ src/sys/dev/ic/dwc_gmac_reg.h Sat Jul 27 12:56:27 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: dwc_gmac_reg.h,v 1.22 2024/02/27 08:21:24 skrll Exp $ */ +/* $NetBSD: dwc_gmac_reg.h,v 1.23 2024/07/27 12:56:27 skrll Exp $ */ /*- * Copyright (c) 2013, 2014 The NetBSD Foundation, Inc. @@ -38,6 +38,8 @@ #define AWIN_GMAC_MAC_FLOWCTRL 0x0018 #define AWIN_GMAC_MAC_VLANTAG 0x001c #define AWIN_GMAC_MAC_VERSION 0x0020 /* not always implemented? */ +#define AWIN_GMAC_MAC_VERSION_USERVER_MASK __BITS(15, 8) +#define AWIN_GMAC_MAC_VERSION_SNPSVER_MASK __BITS( 7, 0) #define AWIN_GMAC_MAC_INTR 0x0038 #define AWIN_GMAC_MAC_INTMASK 0x003c #define AWIN_GMAC_MAC_ADDR0HI 0x0040