1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyunconfig STMMAC_ETH 3*4882a593Smuzhiyun tristate "STMicroelectronics Multi-Gigabit Ethernet driver" 4*4882a593Smuzhiyun depends on HAS_IOMEM && HAS_DMA 5*4882a593Smuzhiyun select MII 6*4882a593Smuzhiyun select PCS_XPCS 7*4882a593Smuzhiyun select PAGE_POOL 8*4882a593Smuzhiyun select PHYLINK 9*4882a593Smuzhiyun select CRC32 10*4882a593Smuzhiyun imply PTP_1588_CLOCK 11*4882a593Smuzhiyun select RESET_CONTROLLER 12*4882a593Smuzhiyun help 13*4882a593Smuzhiyun This is the driver for the Ethernet IPs built around a 14*4882a593Smuzhiyun Synopsys IP Core. 15*4882a593Smuzhiyun 16*4882a593Smuzhiyunif STMMAC_ETH 17*4882a593Smuzhiyun 18*4882a593Smuzhiyunconfig STMMAC_SELFTESTS 19*4882a593Smuzhiyun bool "Support for STMMAC Selftests" 20*4882a593Smuzhiyun depends on INET 21*4882a593Smuzhiyun depends on STMMAC_ETH 22*4882a593Smuzhiyun default n 23*4882a593Smuzhiyun help 24*4882a593Smuzhiyun This adds support for STMMAC Selftests using ethtool. Enable this 25*4882a593Smuzhiyun feature if you are facing problems with your HW and submit the test 26*4882a593Smuzhiyun results to the netdev Mailing List. 27*4882a593Smuzhiyun 28*4882a593Smuzhiyunconfig STMMAC_UIO 29*4882a593Smuzhiyun tristate "STMMAC_UIO ethernet controller" 30*4882a593Smuzhiyun default n 31*4882a593Smuzhiyun select UIO 32*4882a593Smuzhiyun help 33*4882a593Smuzhiyun Say M here if you want to use the stmmac_uio.ko for DPDK. 34*4882a593Smuzhiyun 35*4882a593Smuzhiyunconfig STMMAC_ETHTOOL 36*4882a593Smuzhiyun bool "Ethtool feature for STMMAC" 37*4882a593Smuzhiyun default STMMAC_ETH if !ROCKCHIP_MINI_KERNEL 38*4882a593Smuzhiyun help 39*4882a593Smuzhiyun This selects the ethtool function, default is Y. 40*4882a593Smuzhiyun 41*4882a593Smuzhiyunconfig STMMAC_FULL 42*4882a593Smuzhiyun bool "Support full driver for STMMAC" 43*4882a593Smuzhiyun default STMMAC_ETH if !ROCKCHIP_MINI_KERNEL 44*4882a593Smuzhiyun help 45*4882a593Smuzhiyun This selects the full function, default is Y, full-featured version 46*4882a593Smuzhiyun includes 4.10 and other versions, if it is N, only 4.10 core working. 47*4882a593Smuzhiyun 48*4882a593Smuzhiyunconfig STMMAC_PLATFORM 49*4882a593Smuzhiyun tristate "STMMAC Platform bus support" 50*4882a593Smuzhiyun depends on STMMAC_ETH 51*4882a593Smuzhiyun select MFD_SYSCON 52*4882a593Smuzhiyun default y 53*4882a593Smuzhiyun help 54*4882a593Smuzhiyun This selects the platform specific bus support for the stmmac driver. 55*4882a593Smuzhiyun This is the driver used on several SoCs: 56*4882a593Smuzhiyun STi, Allwinner, Amlogic Meson, Altera SOCFPGA. 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun If you have a controller with this interface, say Y or M here. 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun If unsure, say N. 61*4882a593Smuzhiyun 62*4882a593Smuzhiyunif STMMAC_PLATFORM 63*4882a593Smuzhiyun 64*4882a593Smuzhiyunconfig DWMAC_DWC_QOS_ETH 65*4882a593Smuzhiyun tristate "Support for snps,dwc-qos-ethernet.txt DT binding." 66*4882a593Smuzhiyun select CRC32 67*4882a593Smuzhiyun select MII 68*4882a593Smuzhiyun depends on OF && HAS_DMA 69*4882a593Smuzhiyun help 70*4882a593Smuzhiyun Support for chips using the snps,dwc-qos-ethernet.txt DT binding. 71*4882a593Smuzhiyun 72*4882a593Smuzhiyunconfig DWMAC_GENERIC 73*4882a593Smuzhiyun tristate "Generic driver for DWMAC" 74*4882a593Smuzhiyun default STMMAC_PLATFORM 75*4882a593Smuzhiyun help 76*4882a593Smuzhiyun Generic DWMAC driver for platforms that don't require any 77*4882a593Smuzhiyun platform specific code to function or is using platform 78*4882a593Smuzhiyun data for setup. 79*4882a593Smuzhiyun 80*4882a593Smuzhiyunconfig DWMAC_ANARION 81*4882a593Smuzhiyun tristate "Adaptrum Anarion GMAC support" 82*4882a593Smuzhiyun default ARC 83*4882a593Smuzhiyun depends on OF && (ARC || COMPILE_TEST) 84*4882a593Smuzhiyun help 85*4882a593Smuzhiyun Support for Adaptrum Anarion GMAC Ethernet controller. 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun This selects the Anarion SoC glue layer support for the stmmac driver. 88*4882a593Smuzhiyun 89*4882a593Smuzhiyunconfig DWMAC_IPQ806X 90*4882a593Smuzhiyun tristate "QCA IPQ806x DWMAC support" 91*4882a593Smuzhiyun default ARCH_QCOM 92*4882a593Smuzhiyun depends on OF && (ARCH_QCOM || COMPILE_TEST) 93*4882a593Smuzhiyun select MFD_SYSCON 94*4882a593Smuzhiyun help 95*4882a593Smuzhiyun Support for QCA IPQ806X DWMAC Ethernet. 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun This selects the IPQ806x SoC glue layer support for the stmmac 98*4882a593Smuzhiyun device driver. This driver does not use any of the hardware 99*4882a593Smuzhiyun acceleration features available on this SoC. Network devices 100*4882a593Smuzhiyun will behave like standard non-accelerated ethernet interfaces. 101*4882a593Smuzhiyun 102*4882a593Smuzhiyunconfig DWMAC_LPC18XX 103*4882a593Smuzhiyun tristate "NXP LPC18xx/43xx DWMAC support" 104*4882a593Smuzhiyun default ARCH_LPC18XX 105*4882a593Smuzhiyun depends on OF && (ARCH_LPC18XX || COMPILE_TEST) 106*4882a593Smuzhiyun select MFD_SYSCON 107*4882a593Smuzhiyun help 108*4882a593Smuzhiyun Support for NXP LPC18xx/43xx DWMAC Ethernet. 109*4882a593Smuzhiyun 110*4882a593Smuzhiyunconfig DWMAC_MEDIATEK 111*4882a593Smuzhiyun tristate "MediaTek MT27xx GMAC support" 112*4882a593Smuzhiyun depends on OF && (ARCH_MEDIATEK || COMPILE_TEST) 113*4882a593Smuzhiyun help 114*4882a593Smuzhiyun Support for MediaTek GMAC Ethernet controller. 115*4882a593Smuzhiyun 116*4882a593Smuzhiyun This selects the MT2712 SoC support for the stmmac driver. 117*4882a593Smuzhiyun 118*4882a593Smuzhiyunconfig DWMAC_MESON 119*4882a593Smuzhiyun tristate "Amlogic Meson dwmac support" 120*4882a593Smuzhiyun default ARCH_MESON 121*4882a593Smuzhiyun depends on OF && COMMON_CLK && (ARCH_MESON || COMPILE_TEST) 122*4882a593Smuzhiyun help 123*4882a593Smuzhiyun Support for Ethernet controller on Amlogic Meson SoCs. 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun This selects the Amlogic Meson SoC glue layer support for 126*4882a593Smuzhiyun the stmmac device driver. This driver is used for Meson6, 127*4882a593Smuzhiyun Meson8, Meson8b and GXBB SoCs. 128*4882a593Smuzhiyun 129*4882a593Smuzhiyunconfig DWMAC_OXNAS 130*4882a593Smuzhiyun tristate "Oxford Semiconductor OXNAS dwmac support" 131*4882a593Smuzhiyun default ARCH_OXNAS 132*4882a593Smuzhiyun depends on OF && COMMON_CLK && (ARCH_OXNAS || COMPILE_TEST) 133*4882a593Smuzhiyun select MFD_SYSCON 134*4882a593Smuzhiyun help 135*4882a593Smuzhiyun Support for Ethernet controller on Oxford Semiconductor OXNAS SoCs. 136*4882a593Smuzhiyun 137*4882a593Smuzhiyun This selects the Oxford Semiconductor OXNASSoC glue layer support for 138*4882a593Smuzhiyun the stmmac device driver. This driver is used for OX820. 139*4882a593Smuzhiyun 140*4882a593Smuzhiyunconfig DWMAC_QCOM_ETHQOS 141*4882a593Smuzhiyun tristate "Qualcomm ETHQOS support" 142*4882a593Smuzhiyun default ARCH_QCOM 143*4882a593Smuzhiyun depends on OF && (ARCH_QCOM || COMPILE_TEST) 144*4882a593Smuzhiyun help 145*4882a593Smuzhiyun Support for the Qualcomm ETHQOS core. 146*4882a593Smuzhiyun 147*4882a593Smuzhiyun This selects the Qualcomm ETHQOS glue layer support for the 148*4882a593Smuzhiyun stmmac device driver. 149*4882a593Smuzhiyun 150*4882a593Smuzhiyunconfig DWMAC_ROCKCHIP 151*4882a593Smuzhiyun tristate "Rockchip dwmac support" 152*4882a593Smuzhiyun default ARCH_ROCKCHIP 153*4882a593Smuzhiyun depends on OF && (ARCH_ROCKCHIP || COMPILE_TEST) 154*4882a593Smuzhiyun select MFD_SYSCON 155*4882a593Smuzhiyun help 156*4882a593Smuzhiyun Support for Ethernet controller on Rockchip RK3288 SoC. 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun This selects the Rockchip RK3288 SoC glue layer support for 159*4882a593Smuzhiyun the stmmac device driver. 160*4882a593Smuzhiyun 161*4882a593Smuzhiyunconfig DWMAC_ROCKCHIP_TOOL 162*4882a593Smuzhiyun bool "Rockchip dwmac tool support" 163*4882a593Smuzhiyun depends on DWMAC_ROCKCHIP 164*4882a593Smuzhiyun default DWMAC_ROCKCHIP if !ROCKCHIP_MINI_KERNEL 165*4882a593Smuzhiyun help 166*4882a593Smuzhiyun Support for Ethernet functions on Rockchip SoCs. 167*4882a593Smuzhiyun 168*4882a593Smuzhiyun This selects the features for Rockchip's Ethernet, include PHY loopback, 169*4882a593Smuzhiyun MAC loopback, and delayline scanning of RGMII mode. 170*4882a593Smuzhiyun 171*4882a593Smuzhiyunconfig DWMAC_SOCFPGA 172*4882a593Smuzhiyun tristate "SOCFPGA dwmac support" 173*4882a593Smuzhiyun default (ARCH_SOCFPGA || ARCH_STRATIX10) 174*4882a593Smuzhiyun depends on OF && (ARCH_SOCFPGA || ARCH_STRATIX10 || COMPILE_TEST) 175*4882a593Smuzhiyun select MFD_SYSCON 176*4882a593Smuzhiyun help 177*4882a593Smuzhiyun Support for ethernet controller on Altera SOCFPGA 178*4882a593Smuzhiyun 179*4882a593Smuzhiyun This selects the Altera SOCFPGA SoC glue layer support 180*4882a593Smuzhiyun for the stmmac device driver. This driver is used for 181*4882a593Smuzhiyun arria5 and cyclone5 FPGA SoCs. 182*4882a593Smuzhiyun 183*4882a593Smuzhiyunconfig DWMAC_STI 184*4882a593Smuzhiyun tristate "STi GMAC support" 185*4882a593Smuzhiyun default ARCH_STI 186*4882a593Smuzhiyun depends on OF && (ARCH_STI || COMPILE_TEST) 187*4882a593Smuzhiyun select MFD_SYSCON 188*4882a593Smuzhiyun help 189*4882a593Smuzhiyun Support for ethernet controller on STi SOCs. 190*4882a593Smuzhiyun 191*4882a593Smuzhiyun This selects STi SoC glue layer support for the stmmac 192*4882a593Smuzhiyun device driver. This driver is used on for the STi series 193*4882a593Smuzhiyun SOCs GMAC ethernet controller. 194*4882a593Smuzhiyun 195*4882a593Smuzhiyunconfig DWMAC_STM32 196*4882a593Smuzhiyun tristate "STM32 DWMAC support" 197*4882a593Smuzhiyun default ARCH_STM32 198*4882a593Smuzhiyun depends on OF && HAS_IOMEM && (ARCH_STM32 || COMPILE_TEST) 199*4882a593Smuzhiyun select MFD_SYSCON 200*4882a593Smuzhiyun help 201*4882a593Smuzhiyun Support for ethernet controller on STM32 SOCs. 202*4882a593Smuzhiyun 203*4882a593Smuzhiyun This selects STM32 SoC glue layer support for the stmmac 204*4882a593Smuzhiyun device driver. This driver is used on for the STM32 series 205*4882a593Smuzhiyun SOCs GMAC ethernet controller. 206*4882a593Smuzhiyun 207*4882a593Smuzhiyunconfig DWMAC_SUNXI 208*4882a593Smuzhiyun tristate "Allwinner GMAC support" 209*4882a593Smuzhiyun default ARCH_SUNXI 210*4882a593Smuzhiyun depends on OF && (ARCH_SUNXI || COMPILE_TEST) 211*4882a593Smuzhiyun help 212*4882a593Smuzhiyun Support for Allwinner A20/A31 GMAC ethernet controllers. 213*4882a593Smuzhiyun 214*4882a593Smuzhiyun This selects Allwinner SoC glue layer support for the 215*4882a593Smuzhiyun stmmac device driver. This driver is used for A20/A31 216*4882a593Smuzhiyun GMAC ethernet controller. 217*4882a593Smuzhiyun 218*4882a593Smuzhiyunconfig DWMAC_SUN8I 219*4882a593Smuzhiyun tristate "Allwinner sun8i GMAC support" 220*4882a593Smuzhiyun default ARCH_SUNXI 221*4882a593Smuzhiyun depends on OF && (ARCH_SUNXI || COMPILE_TEST) 222*4882a593Smuzhiyun select MDIO_BUS_MUX 223*4882a593Smuzhiyun help 224*4882a593Smuzhiyun Support for Allwinner H3 A83T A64 EMAC ethernet controllers. 225*4882a593Smuzhiyun 226*4882a593Smuzhiyun This selects Allwinner SoC glue layer support for the 227*4882a593Smuzhiyun stmmac device driver. This driver is used for H3/A83T/A64 228*4882a593Smuzhiyun EMAC ethernet controller. 229*4882a593Smuzhiyun 230*4882a593Smuzhiyunconfig DWMAC_IMX8 231*4882a593Smuzhiyun tristate "NXP IMX8 DWMAC support" 232*4882a593Smuzhiyun default ARCH_MXC 233*4882a593Smuzhiyun depends on OF && (ARCH_MXC || COMPILE_TEST) 234*4882a593Smuzhiyun select MFD_SYSCON 235*4882a593Smuzhiyun help 236*4882a593Smuzhiyun Support for ethernet controller on NXP i.MX8 SOCs. 237*4882a593Smuzhiyun 238*4882a593Smuzhiyun This selects NXP SoC glue layer support for the stmmac 239*4882a593Smuzhiyun device driver. This driver is used for i.MX8 series like 240*4882a593Smuzhiyun iMX8MP/iMX8DXL GMAC ethernet controller. 241*4882a593Smuzhiyun 242*4882a593Smuzhiyunconfig DWMAC_INTEL_PLAT 243*4882a593Smuzhiyun tristate "Intel dwmac support" 244*4882a593Smuzhiyun depends on OF && COMMON_CLK 245*4882a593Smuzhiyun depends on STMMAC_ETH 246*4882a593Smuzhiyun help 247*4882a593Smuzhiyun Support for ethernet controllers on Intel SoCs 248*4882a593Smuzhiyun 249*4882a593Smuzhiyun This selects the Intel platform specific glue layer support for 250*4882a593Smuzhiyun the stmmac device driver. This driver is used for the Intel Keem Bay 251*4882a593Smuzhiyun SoC. 252*4882a593Smuzhiyunendif 253*4882a593Smuzhiyun 254*4882a593Smuzhiyunconfig DWMAC_INTEL 255*4882a593Smuzhiyun tristate "Intel GMAC support" 256*4882a593Smuzhiyun default X86 257*4882a593Smuzhiyun depends on X86 && STMMAC_ETH && PCI 258*4882a593Smuzhiyun depends on COMMON_CLK 259*4882a593Smuzhiyun help 260*4882a593Smuzhiyun This selects the Intel platform specific bus support for the 261*4882a593Smuzhiyun stmmac driver. This driver is used for Intel Quark/EHL/TGL. 262*4882a593Smuzhiyun 263*4882a593Smuzhiyunconfig STMMAC_PCI 264*4882a593Smuzhiyun tristate "STMMAC PCI bus support" 265*4882a593Smuzhiyun depends on STMMAC_ETH && PCI 266*4882a593Smuzhiyun depends on COMMON_CLK 267*4882a593Smuzhiyun help 268*4882a593Smuzhiyun This selects the platform specific bus support for the stmmac driver. 269*4882a593Smuzhiyun This driver was tested on XLINX XC2V3000 FF1152AMT0221 270*4882a593Smuzhiyun D1215994A VIRTEX FPGA board and SNPS QoS IPK Prototyping Kit. 271*4882a593Smuzhiyun 272*4882a593Smuzhiyun If you have a controller with this interface, say Y or M here. 273*4882a593Smuzhiyun 274*4882a593Smuzhiyun If unsure, say N. 275*4882a593Smuzhiyunendif 276