Module Name: src Committed By: msaitoh Date: Tue Jan 22 03:42:28 UTC 2019
Modified Files: src/sys/arch/arm/at91: at91emac.c src/sys/arch/arm/ep93xx: epe.c src/sys/arch/arm/gemini: gemini_gmac.c src/sys/arch/arm/imx: if_enet.c src/sys/arch/arm/omap: if_cpsw.c omapl1x_emac.c src/sys/arch/arm/sunxi: sun4i_emac.c sunxi_emac.c src/sys/arch/arm/ti: if_cpsw.c src/sys/arch/arm/xscale: ixp425_if_npe.c src/sys/arch/evbppc/virtex/dev: if_temac.c src/sys/arch/macppc/dev: if_bm.c if_gm.c src/sys/arch/mips/alchemy/dev: if_aumac.c src/sys/arch/mips/atheros/dev: if_ae.c src/sys/arch/mips/cavium/dev: if_cnmac.c octeon_smi.c octeon_smivar.h src/sys/arch/mips/ralink: ralink_eth.c src/sys/arch/mips/sibyte/dev: sbmac.c src/sys/arch/playstation2/dev: emac3.c emac3var.h src/sys/arch/powerpc/booke/dev: pq3etsec.c src/sys/arch/powerpc/ibm4xx/dev: if_emac.c src/sys/arch/sgimips/mace: if_mec.c src/sys/dev/cadence: if_cemac.c src/sys/dev/ic: aic6915.c ax88190.c dl10019.c dwc_gmac.c elink3.c elinkxl.c gem.c hme.c i82557.c lan9118.c mtd803.c rtl8169.c rtl81x9.c smc83c170.c smc91cxx.c tulip.c src/sys/dev/marvell: if_gfe.c if_mvgbe.c if_mvxpe.c src/sys/dev/mii: acphy.c amhphy.c atphy.c bmtphy.c brgphy.c ciphy.c dmphy.c etphy.c exphy.c gentbi.c glxtphy.c gphyter.c icsphy.c igphy.c igphyreg.h ihphy.c ikphy.c inphy.c iophy.c lxtphy.c makphy.c mii.c mii_bitbang.c mii_bitbang.h mii_physubr.c miivar.h nsphy.c nsphyter.c pnaphy.c qsphy.c rdcphy.c rgephy.c rlphy.c sqphy.c tlphy.c tqphy.c ukphy.c ukphy_subr.c urlphy.c src/sys/dev/pci: if_age.c if_alc.c if_ale.c if_bce.c if_bge.c if_bnx.c if_cas.c if_et.c if_jme.c if_lii.c if_msk.c if_nfe.c if_pcn.c if_sip.c if_sk.c if_ste.c if_stge.c if_tl.c if_vge.c if_vr.c if_vte.c if_wm.c src/sys/dev/pcmcia: if_xi.c src/sys/dev/sbus: be.c src/sys/dev/usb: if_aue.c if_axe.c if_axen.c if_mue.c if_smsc.c if_udav.c if_url.c Log Message: Change MII PHY read/write API from: int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to: int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t); Now we can test if a read/write operation failed or not by the return value. In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR. Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed: arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c Tested with the following device: axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V) Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/sys/arch/arm/at91/at91emac.c cvs rdiff -u -r1.38 -r1.39 src/sys/arch/arm/ep93xx/epe.c cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/gemini/gemini_gmac.c cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/imx/if_enet.c cvs rdiff -u -r1.21 -r1.22 src/sys/arch/arm/omap/if_cpsw.c cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/omap/omapl1x_emac.c cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/sunxi/sun4i_emac.c cvs rdiff -u -r1.20 -r1.21 src/sys/arch/arm/sunxi/sunxi_emac.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/ti/if_cpsw.c cvs rdiff -u -r1.35 -r1.36 src/sys/arch/arm/xscale/ixp425_if_npe.c cvs rdiff -u -r1.12 -r1.13 src/sys/arch/evbppc/virtex/dev/if_temac.c cvs rdiff -u -r1.55 -r1.56 src/sys/arch/macppc/dev/if_bm.c cvs rdiff -u -r1.50 -r1.51 src/sys/arch/macppc/dev/if_gm.c cvs rdiff -u -r1.44 -r1.45 src/sys/arch/mips/alchemy/dev/if_aumac.c cvs rdiff -u -r1.31 -r1.32 src/sys/arch/mips/atheros/dev/if_ae.c cvs rdiff -u -r1.10 -r1.11 src/sys/arch/mips/cavium/dev/if_cnmac.c cvs rdiff -u -r1.1 -r1.2 src/sys/arch/mips/cavium/dev/octeon_smi.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/mips/cavium/dev/octeon_smivar.h cvs rdiff -u -r1.14 -r1.15 src/sys/arch/mips/ralink/ralink_eth.c cvs rdiff -u -r1.51 -r1.52 src/sys/arch/mips/sibyte/dev/sbmac.c cvs rdiff -u -r1.12 -r1.13 src/sys/arch/playstation2/dev/emac3.c cvs rdiff -u -r1.6 -r1.7 src/sys/arch/playstation2/dev/emac3var.h cvs rdiff -u -r1.39 -r1.40 src/sys/arch/powerpc/booke/dev/pq3etsec.c cvs rdiff -u -r1.48 -r1.49 src/sys/arch/powerpc/ibm4xx/dev/if_emac.c cvs rdiff -u -r1.57 -r1.58 src/sys/arch/sgimips/mace/if_mec.c cvs rdiff -u -r1.14 -r1.15 src/sys/dev/cadence/if_cemac.c cvs rdiff -u -r1.36 -r1.37 src/sys/dev/ic/aic6915.c src/sys/dev/ic/mtd803.c cvs rdiff -u -r1.12 -r1.13 src/sys/dev/ic/ax88190.c src/sys/dev/ic/dl10019.c cvs rdiff -u -r1.55 -r1.56 src/sys/dev/ic/dwc_gmac.c cvs rdiff -u -r1.143 -r1.144 src/sys/dev/ic/elink3.c cvs rdiff -u -r1.125 -r1.126 src/sys/dev/ic/elinkxl.c cvs rdiff -u -r1.112 -r1.113 src/sys/dev/ic/gem.c cvs rdiff -u -r1.100 -r1.101 src/sys/dev/ic/hme.c cvs rdiff -u -r1.149 -r1.150 src/sys/dev/ic/i82557.c cvs rdiff -u -r1.27 -r1.28 src/sys/dev/ic/lan9118.c cvs rdiff -u -r1.156 -r1.157 src/sys/dev/ic/rtl8169.c cvs rdiff -u -r1.103 -r1.104 src/sys/dev/ic/rtl81x9.c cvs rdiff -u -r1.86 -r1.87 src/sys/dev/ic/smc83c170.c cvs rdiff -u -r1.97 -r1.98 src/sys/dev/ic/smc91cxx.c cvs rdiff -u -r1.191 -r1.192 src/sys/dev/ic/tulip.c cvs rdiff -u -r1.49 -r1.50 src/sys/dev/marvell/if_gfe.c cvs rdiff -u -r1.52 -r1.53 src/sys/dev/marvell/if_mvgbe.c cvs rdiff -u -r1.20 -r1.21 src/sys/dev/marvell/if_mvxpe.c cvs rdiff -u -r1.25 -r1.26 src/sys/dev/mii/acphy.c src/sys/dev/mii/glxtphy.c cvs rdiff -u -r1.20 -r1.21 src/sys/dev/mii/amhphy.c cvs rdiff -u -r1.18 -r1.19 src/sys/dev/mii/atphy.c cvs rdiff -u -r1.32 -r1.33 src/sys/dev/mii/bmtphy.c src/sys/dev/mii/urlphy.c cvs rdiff -u -r1.78 -r1.79 src/sys/dev/mii/brgphy.c cvs rdiff -u -r1.28 -r1.29 src/sys/dev/mii/ciphy.c src/sys/dev/mii/igphy.c cvs rdiff -u -r1.36 -r1.37 src/sys/dev/mii/dmphy.c cvs rdiff -u -r1.1 -r1.2 src/sys/dev/mii/etphy.c src/sys/dev/mii/rdcphy.c cvs rdiff -u -r1.54 -r1.55 src/sys/dev/mii/exphy.c cvs rdiff -u -r1.27 -r1.28 src/sys/dev/mii/gentbi.c cvs rdiff -u -r1.30 -r1.31 src/sys/dev/mii/gphyter.c cvs rdiff -u -r1.50 -r1.51 src/sys/dev/mii/icsphy.c src/sys/dev/mii/lxtphy.c cvs rdiff -u -r1.10 -r1.11 src/sys/dev/mii/igphyreg.h src/sys/dev/mii/ihphy.c cvs rdiff -u -r1.12 -r1.13 src/sys/dev/mii/ikphy.c cvs rdiff -u -r1.55 -r1.56 src/sys/dev/mii/inphy.c cvs rdiff -u -r1.38 -r1.39 src/sys/dev/mii/iophy.c cvs rdiff -u -r1.51 -r1.52 src/sys/dev/mii/makphy.c src/sys/dev/mii/mii.c \ src/sys/dev/mii/sqphy.c cvs rdiff -u -r1.13 -r1.14 src/sys/dev/mii/mii_bitbang.c \ src/sys/dev/mii/ukphy_subr.c cvs rdiff -u -r1.6 -r1.7 src/sys/dev/mii/mii_bitbang.h cvs rdiff -u -r1.83 -r1.84 src/sys/dev/mii/mii_physubr.c cvs rdiff -u -r1.63 -r1.64 src/sys/dev/mii/miivar.h cvs rdiff -u -r1.61 -r1.62 src/sys/dev/mii/nsphy.c cvs rdiff -u -r1.39 -r1.40 src/sys/dev/mii/nsphyter.c cvs rdiff -u -r1.21 -r1.22 src/sys/dev/mii/pnaphy.c cvs rdiff -u -r1.49 -r1.50 src/sys/dev/mii/qsphy.c src/sys/dev/mii/ukphy.c cvs rdiff -u -r1.45 -r1.46 src/sys/dev/mii/rgephy.c cvs rdiff -u -r1.31 -r1.32 src/sys/dev/mii/rlphy.c cvs rdiff -u -r1.62 -r1.63 src/sys/dev/mii/tlphy.c cvs rdiff -u -r1.40 -r1.41 src/sys/dev/mii/tqphy.c cvs rdiff -u -r1.54 -r1.55 src/sys/dev/pci/if_age.c cvs rdiff -u -r1.29 -r1.30 src/sys/dev/pci/if_alc.c src/sys/dev/pci/if_cas.c cvs rdiff -u -r1.26 -r1.27 src/sys/dev/pci/if_ale.c cvs rdiff -u -r1.49 -r1.50 src/sys/dev/pci/if_bce.c cvs rdiff -u -r1.321 -r1.322 src/sys/dev/pci/if_bge.c cvs rdiff -u -r1.67 -r1.68 src/sys/dev/pci/if_bnx.c cvs rdiff -u -r1.19 -r1.20 src/sys/dev/pci/if_et.c src/sys/dev/pci/if_lii.c cvs rdiff -u -r1.36 -r1.37 src/sys/dev/pci/if_jme.c cvs rdiff -u -r1.83 -r1.84 src/sys/dev/pci/if_msk.c cvs rdiff -u -r1.66 -r1.67 src/sys/dev/pci/if_nfe.c src/sys/dev/pci/if_pcn.c \ src/sys/dev/pci/if_stge.c src/sys/dev/pci/if_vge.c cvs rdiff -u -r1.168 -r1.169 src/sys/dev/pci/if_sip.c cvs rdiff -u -r1.92 -r1.93 src/sys/dev/pci/if_sk.c cvs rdiff -u -r1.52 -r1.53 src/sys/dev/pci/if_ste.c cvs rdiff -u -r1.110 -r1.111 src/sys/dev/pci/if_tl.c cvs rdiff -u -r1.126 -r1.127 src/sys/dev/pci/if_vr.c cvs rdiff -u -r1.21 -r1.22 src/sys/dev/pci/if_vte.c cvs rdiff -u -r1.616 -r1.617 src/sys/dev/pci/if_wm.c cvs rdiff -u -r1.84 -r1.85 src/sys/dev/pcmcia/if_xi.c cvs rdiff -u -r1.89 -r1.90 src/sys/dev/sbus/be.c cvs rdiff -u -r1.145 -r1.146 src/sys/dev/usb/if_aue.c cvs rdiff -u -r1.94 -r1.95 src/sys/dev/usb/if_axe.c cvs rdiff -u -r1.17 -r1.18 src/sys/dev/usb/if_axen.c cvs rdiff -u -r1.27 -r1.28 src/sys/dev/usb/if_mue.c cvs rdiff -u -r1.38 -r1.39 src/sys/dev/usb/if_smsc.c cvs rdiff -u -r1.55 -r1.56 src/sys/dev/usb/if_udav.c cvs rdiff -u -r1.60 -r1.61 src/sys/dev/usb/if_url.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.