1 # SPDX-License-Identifier: GPL-2.0-only
3 tristate "STMicroelectronics Multi-Gigabit Ethernet driver"
4 depends on HAS_IOMEM && HAS_DMA
5 depends on PTP_1588_CLOCK_OPTIONAL
11 select RESET_CONTROLLER
13 This is the driver for the Ethernet IPs built around a
18 config STMMAC_SELFTESTS
19 bool "Support for STMMAC Selftests"
24 This adds support for STMMAC Selftests using ethtool. Enable this
25 feature if you are facing problems with your HW and submit the test
26 results to the netdev Mailing List.
28 config STMMAC_PLATFORM
29 tristate "STMMAC Platform bus support"
34 This selects the platform specific bus support for the stmmac driver.
35 This is the driver used on several SoCs:
36 STi, Allwinner, Amlogic Meson, Altera SOCFPGA.
38 If you have a controller with this interface, say Y or M here.
44 config DWMAC_DWC_QOS_ETH
45 tristate "Support for snps,dwc-qos-ethernet.txt DT binding."
48 depends on OF && HAS_DMA
50 Support for chips using the snps,dwc-qos-ethernet.txt DT binding.
53 tristate "Generic driver for DWMAC"
54 default STMMAC_PLATFORM
56 Generic DWMAC driver for platforms that don't require any
57 platform specific code to function or is using platform
61 tristate "Adaptrum Anarion GMAC support"
63 depends on OF && (ARC || COMPILE_TEST)
65 Support for Adaptrum Anarion GMAC Ethernet controller.
67 This selects the Anarion SoC glue layer support for the stmmac driver.
70 tristate "Ingenic MAC support"
72 depends on OF && HAS_IOMEM && (MACH_INGENIC || COMPILE_TEST)
75 Support for ethernet controller on Ingenic SoCs.
77 This selects Ingenic SoCs glue layer support for the stmmac
78 device driver. This driver is used on for the Ingenic SoCs
79 MAC ethernet controller.
82 tristate "QCA IPQ806x DWMAC support"
84 depends on OF && (ARCH_QCOM || COMPILE_TEST)
87 Support for QCA IPQ806X DWMAC Ethernet.
89 This selects the IPQ806x SoC glue layer support for the stmmac
90 device driver. This driver does not use any of the hardware
91 acceleration features available on this SoC. Network devices
92 will behave like standard non-accelerated ethernet interfaces.
94 Select the QCOM_SOCINFO config flag to enable specific dwmac
95 fixup based on the ipq806x SoC revision.
98 tristate "NXP LPC18xx/43xx DWMAC support"
100 depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
103 Support for NXP LPC18xx/43xx DWMAC Ethernet.
105 config DWMAC_MEDIATEK
106 tristate "MediaTek MT27xx GMAC support"
107 depends on OF && (ARCH_MEDIATEK || COMPILE_TEST)
109 Support for MediaTek GMAC Ethernet controller.
111 This selects the MT2712 SoC support for the stmmac driver.
114 tristate "Amlogic Meson dwmac support"
116 depends on OF && COMMON_CLK && (ARCH_MESON || COMPILE_TEST)
118 Support for Ethernet controller on Amlogic Meson SoCs.
120 This selects the Amlogic Meson SoC glue layer support for
121 the stmmac device driver. This driver is used for Meson6,
122 Meson8, Meson8b and GXBB SoCs.
124 config DWMAC_QCOM_ETHQOS
125 tristate "Qualcomm ETHQOS support"
127 depends on OF && (ARCH_QCOM || COMPILE_TEST)
129 Support for the Qualcomm ETHQOS core.
131 This selects the Qualcomm ETHQOS glue layer support for the
132 stmmac device driver.
134 config DWMAC_ROCKCHIP
135 tristate "Rockchip dwmac support"
136 default ARCH_ROCKCHIP
137 depends on OF && (ARCH_ROCKCHIP || COMPILE_TEST)
140 Support for Ethernet controller on Rockchip RK3288 SoC.
142 This selects the Rockchip RK3288 SoC glue layer support for
143 the stmmac device driver.
146 tristate "SOCFPGA dwmac support"
147 default ARCH_INTEL_SOCFPGA
148 depends on OF && (ARCH_INTEL_SOCFPGA || COMPILE_TEST)
154 Support for ethernet controller on Altera SOCFPGA
156 This selects the Altera SOCFPGA SoC glue layer support
157 for the stmmac device driver. This driver is used for
158 arria5 and cyclone5 FPGA SoCs.
160 config DWMAC_STARFIVE
161 tristate "StarFive dwmac support"
162 depends on OF && (ARCH_STARFIVE || COMPILE_TEST)
164 default m if ARCH_STARFIVE
166 Support for ethernet controllers on StarFive RISC-V SoCs
168 This selects the StarFive platform specific glue layer support for
169 the stmmac device driver. This driver is used for StarFive JH7110
173 tristate "STi GMAC support"
175 depends on OF && (ARCH_STI || COMPILE_TEST)
178 Support for ethernet controller on STi SOCs.
180 This selects STi SoC glue layer support for the stmmac
181 device driver. This driver is used on for the STi series
182 SOCs GMAC ethernet controller.
185 tristate "STM32 DWMAC support"
187 depends on OF && HAS_IOMEM && (ARCH_STM32 || COMPILE_TEST)
190 Support for ethernet controller on STM32 SOCs.
192 This selects STM32 SoC glue layer support for the stmmac
193 device driver. This driver is used on for the STM32 series
194 SOCs GMAC ethernet controller.
197 tristate "Allwinner GMAC support"
199 depends on OF && (ARCH_SUNXI || COMPILE_TEST)
201 Support for Allwinner A20/A31 GMAC ethernet controllers.
203 This selects Allwinner SoC glue layer support for the
204 stmmac device driver. This driver is used for A20/A31
205 GMAC ethernet controller.
208 tristate "Allwinner sun8i GMAC support"
210 depends on OF && (ARCH_SUNXI || COMPILE_TEST)
213 Support for Allwinner H3 A83T A64 EMAC ethernet controllers.
215 This selects Allwinner SoC glue layer support for the
216 stmmac device driver. This driver is used for H3/A83T/A64
217 EMAC ethernet controller.
220 tristate "NXP IMX8 DWMAC support"
222 depends on OF && (ARCH_MXC || COMPILE_TEST)
225 Support for ethernet controller on NXP i.MX8 SOCs.
227 This selects NXP SoC glue layer support for the stmmac
228 device driver. This driver is used for i.MX8 series like
229 iMX8MP/iMX8DXL GMAC ethernet controller.
231 config DWMAC_INTEL_PLAT
232 tristate "Intel dwmac support"
233 depends on OF && COMMON_CLK
234 depends on STMMAC_ETH
236 Support for ethernet controllers on Intel SoCs
238 This selects the Intel platform specific glue layer support for
239 the stmmac device driver. This driver is used for the Intel Keem Bay
243 tristate "NVIDIA Tegra MGBE support"
244 depends on ARCH_TEGRA || COMPILE_TEST
246 This selects the Multi-GigaBit Ethernet (MGBE) Controller that is
247 found on the NVIDIA Tegra SoC devices. This driver provides the glue
248 layer on top of the stmmac driver required for these NVIDIA Tegra SoC
251 config DWMAC_VISCONTI
252 tristate "Toshiba Visconti DWMAC support"
253 default ARCH_VISCONTI
254 depends on OF && COMMON_CLK && (ARCH_VISCONTI || COMPILE_TEST)
256 Support for ethernet controller on Visconti SoCs.
261 tristate "Intel GMAC support"
263 depends on X86 && STMMAC_ETH && PCI
264 depends on COMMON_CLK
266 This selects the Intel platform specific bus support for the
267 stmmac driver. This driver is used for Intel Quark/EHL/TGL.
269 config DWMAC_LOONGSON
270 tristate "Loongson PCI DWMAC support"
271 default MACH_LOONGSON64
272 depends on (MACH_LOONGSON64 || COMPILE_TEST) && STMMAC_ETH && PCI
273 depends on COMMON_CLK
275 This selects the LOONGSON PCI bus support for the stmmac driver,
276 Support for ethernet controller on Loongson-2K1000 SoC and LS7A1000 bridge.
279 tristate "STMMAC PCI bus support"
280 depends on STMMAC_ETH && PCI
281 depends on COMMON_CLK
283 This selects the platform specific bus support for the stmmac driver.
284 This driver was tested on XLINX XC2V3000 FF1152AMT0221
285 D1215994A VIRTEX FPGA board and SNPS QoS IPK Prototyping Kit.
287 If you have a controller with this interface, say Y or M here.