Loading...
1# SPDX-License-Identifier: GPL-2.0-only
2config STMMAC_ETH
3 tristate "STMicroelectronics Multi-Gigabit Ethernet driver"
4 depends on HAS_IOMEM && HAS_DMA
5 depends on PTP_1588_CLOCK_OPTIONAL
6 select MII
7 select PCS_XPCS
8 select PAGE_POOL
9 select PHYLINK
10 select CRC32
11 select RESET_CONTROLLER
12 help
13 This is the driver for the Ethernet IPs built around a
14 Synopsys IP Core.
15
16if STMMAC_ETH
17
18config STMMAC_SELFTESTS
19 bool "Support for STMMAC Selftests"
20 depends on INET
21 depends on STMMAC_ETH
22 default n
23 help
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.
27
28config STMMAC_PLATFORM
29 tristate "STMMAC Platform bus support"
30 depends on STMMAC_ETH
31 select MFD_SYSCON
32 default y
33 help
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.
37
38 If you have a controller with this interface, say Y or M here.
39
40 If unsure, say N.
41
42if STMMAC_PLATFORM
43
44config DWMAC_DWC_QOS_ETH
45 tristate "Support for snps,dwc-qos-ethernet.txt DT binding."
46 select CRC32
47 select MII
48 depends on OF && HAS_DMA
49 help
50 Support for chips using the snps,dwc-qos-ethernet.txt DT binding.
51
52config DWMAC_GENERIC
53 tristate "Generic driver for DWMAC"
54 default STMMAC_PLATFORM
55 help
56 Generic DWMAC driver for platforms that don't require any
57 platform specific code to function or is using platform
58 data for setup.
59
60config DWMAC_ANARION
61 tristate "Adaptrum Anarion GMAC support"
62 default ARC
63 depends on OF && (ARC || COMPILE_TEST)
64 help
65 Support for Adaptrum Anarion GMAC Ethernet controller.
66
67 This selects the Anarion SoC glue layer support for the stmmac driver.
68
69config DWMAC_INGENIC
70 tristate "Ingenic MAC support"
71 default MACH_INGENIC
72 depends on OF && HAS_IOMEM && (MACH_INGENIC || COMPILE_TEST)
73 select MFD_SYSCON
74 help
75 Support for ethernet controller on Ingenic SoCs.
76
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.
80
81config DWMAC_IPQ806X
82 tristate "QCA IPQ806x DWMAC support"
83 default ARCH_QCOM
84 depends on OF && (ARCH_QCOM || COMPILE_TEST)
85 select MFD_SYSCON
86 help
87 Support for QCA IPQ806X DWMAC Ethernet.
88
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.
93
94 Select the QCOM_SOCINFO config flag to enable specific dwmac
95 fixup based on the ipq806x SoC revision.
96
97config DWMAC_LPC18XX
98 tristate "NXP LPC18xx/43xx DWMAC support"
99 default ARCH_LPC18XX
100 depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
101 select MFD_SYSCON
102 help
103 Support for NXP LPC18xx/43xx DWMAC Ethernet.
104
105config DWMAC_MEDIATEK
106 tristate "MediaTek MT27xx GMAC support"
107 depends on OF && (ARCH_MEDIATEK || COMPILE_TEST)
108 help
109 Support for MediaTek GMAC Ethernet controller.
110
111 This selects the MT2712 SoC support for the stmmac driver.
112
113config DWMAC_MESON
114 tristate "Amlogic Meson dwmac support"
115 default ARCH_MESON
116 depends on OF && COMMON_CLK && (ARCH_MESON || COMPILE_TEST)
117 help
118 Support for Ethernet controller on Amlogic Meson SoCs.
119
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.
123
124config DWMAC_QCOM_ETHQOS
125 tristate "Qualcomm ETHQOS support"
126 default ARCH_QCOM
127 depends on OF && (ARCH_QCOM || COMPILE_TEST)
128 help
129 Support for the Qualcomm ETHQOS core.
130
131 This selects the Qualcomm ETHQOS glue layer support for the
132 stmmac device driver.
133
134config DWMAC_ROCKCHIP
135 tristate "Rockchip dwmac support"
136 default ARCH_ROCKCHIP
137 depends on OF && (ARCH_ROCKCHIP || COMPILE_TEST)
138 select MFD_SYSCON
139 help
140 Support for Ethernet controller on Rockchip RK3288 SoC.
141
142 This selects the Rockchip RK3288 SoC glue layer support for
143 the stmmac device driver.
144
145config DWMAC_SOCFPGA
146 tristate "SOCFPGA dwmac support"
147 default ARCH_INTEL_SOCFPGA
148 depends on OF && (ARCH_INTEL_SOCFPGA || COMPILE_TEST)
149 select MFD_SYSCON
150 select MDIO_REGMAP
151 select REGMAP_MMIO
152 select PCS_LYNX
153 help
154 Support for ethernet controller on Altera SOCFPGA
155
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.
159
160config DWMAC_STARFIVE
161 tristate "StarFive dwmac support"
162 depends on OF && (ARCH_STARFIVE || COMPILE_TEST)
163 select MFD_SYSCON
164 default m if ARCH_STARFIVE
165 help
166 Support for ethernet controllers on StarFive RISC-V SoCs
167
168 This selects the StarFive platform specific glue layer support for
169 the stmmac device driver. This driver is used for StarFive JH7110
170 ethernet controller.
171
172config DWMAC_STI
173 tristate "STi GMAC support"
174 default ARCH_STI
175 depends on OF && (ARCH_STI || COMPILE_TEST)
176 select MFD_SYSCON
177 help
178 Support for ethernet controller on STi SOCs.
179
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.
183
184config DWMAC_STM32
185 tristate "STM32 DWMAC support"
186 default ARCH_STM32
187 depends on OF && HAS_IOMEM && (ARCH_STM32 || COMPILE_TEST)
188 select MFD_SYSCON
189 help
190 Support for ethernet controller on STM32 SOCs.
191
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.
195
196config DWMAC_SUNXI
197 tristate "Allwinner GMAC support"
198 default ARCH_SUNXI
199 depends on OF && (ARCH_SUNXI || COMPILE_TEST)
200 help
201 Support for Allwinner A20/A31 GMAC ethernet controllers.
202
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.
206
207config DWMAC_SUN8I
208 tristate "Allwinner sun8i GMAC support"
209 default ARCH_SUNXI
210 depends on OF && (ARCH_SUNXI || COMPILE_TEST)
211 select MDIO_BUS_MUX
212 help
213 Support for Allwinner H3 A83T A64 EMAC ethernet controllers.
214
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.
218
219config DWMAC_IMX8
220 tristate "NXP IMX8 DWMAC support"
221 default ARCH_MXC
222 depends on OF && (ARCH_MXC || COMPILE_TEST)
223 select MFD_SYSCON
224 help
225 Support for ethernet controller on NXP i.MX8 SOCs.
226
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.
230
231config DWMAC_INTEL_PLAT
232 tristate "Intel dwmac support"
233 depends on OF && COMMON_CLK
234 depends on STMMAC_ETH
235 help
236 Support for ethernet controllers on Intel SoCs
237
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
240 SoC.
241
242config DWMAC_LOONGSON1
243 tristate "Loongson1 GMAC support"
244 default MACH_LOONGSON32
245 depends on OF && (MACH_LOONGSON32 || COMPILE_TEST)
246 help
247 Support for ethernet controller on Loongson1 SoC.
248
249 This selects Loongson1 SoC glue layer support for the stmmac
250 device driver. This driver is used for Loongson1-based boards
251 like Loongson LS1B/LS1C.
252
253config DWMAC_TEGRA
254 tristate "NVIDIA Tegra MGBE support"
255 depends on ARCH_TEGRA || COMPILE_TEST
256 help
257 This selects the Multi-GigaBit Ethernet (MGBE) Controller that is
258 found on the NVIDIA Tegra SoC devices. This driver provides the glue
259 layer on top of the stmmac driver required for these NVIDIA Tegra SoC
260 devices.
261
262config DWMAC_VISCONTI
263 tristate "Toshiba Visconti DWMAC support"
264 default ARCH_VISCONTI
265 depends on OF && COMMON_CLK && (ARCH_VISCONTI || COMPILE_TEST)
266 help
267 Support for ethernet controller on Visconti SoCs.
268
269endif
270
271config DWMAC_INTEL
272 tristate "Intel GMAC support"
273 default X86
274 depends on X86 && STMMAC_ETH && PCI
275 depends on COMMON_CLK
276 help
277 This selects the Intel platform specific bus support for the
278 stmmac driver. This driver is used for Intel Quark/EHL/TGL.
279
280config DWMAC_LOONGSON
281 tristate "Loongson PCI DWMAC support"
282 default MACH_LOONGSON64
283 depends on (MACH_LOONGSON64 || COMPILE_TEST) && STMMAC_ETH && PCI
284 depends on COMMON_CLK
285 help
286 This selects the LOONGSON PCI bus support for the stmmac driver,
287 Support for ethernet controller on Loongson-2K1000 SoC and LS7A1000 bridge.
288
289config STMMAC_PCI
290 tristate "STMMAC PCI bus support"
291 depends on STMMAC_ETH && PCI
292 depends on COMMON_CLK
293 help
294 This selects the platform specific bus support for the stmmac driver.
295 This driver was tested on XLINX XC2V3000 FF1152AMT0221
296 D1215994A VIRTEX FPGA board and SNPS QoS IPK Prototyping Kit.
297
298 If you have a controller with this interface, say Y or M here.
299
300 If unsure, say N.
301endif
1config STMMAC_ETH
2 tristate "STMicroelectronics 10/100/1000 Ethernet driver"
3 depends on HAS_IOMEM
4 select NET_CORE
5 select MII
6 select PHYLIB
7 select CRC32
8 ---help---
9 This is the driver for the Ethernet IPs are built around a
10 Synopsys IP Core and only tested on the STMicroelectronics
11 platforms.
12
13if STMMAC_ETH
14
15config STMMAC_PLATFORM
16 bool "STMMAC Platform bus support"
17 depends on STMMAC_ETH
18 default y
19 ---help---
20 This selects the platform specific bus support for
21 the stmmac device driver. This is the driver used
22 on many embedded STM platforms based on ARM and SuperH
23 processors.
24 If you have a controller with this interface, say Y or M here.
25
26 If unsure, say N.
27
28config STMMAC_PCI
29 bool "STMMAC PCI bus support (EXPERIMENTAL)"
30 depends on STMMAC_ETH && PCI && EXPERIMENTAL
31 ---help---
32 This is to select the Synopsys DWMAC available on PCI devices,
33 if you have a controller with this interface, say Y or M here.
34
35 This PCI support is tested on XLINX XC2V3000 FF1152AMT0221
36 D1215994A VIRTEX FPGA board.
37
38 If unsure, say N.
39
40config STMMAC_DEBUG_FS
41 bool "Enable monitoring via sysFS "
42 default n
43 depends on STMMAC_ETH && DEBUG_FS
44 ---help---
45 The stmmac entry in /sys reports DMA TX/RX rings
46 or (if supported) the HW cap register.
47
48config STMMAC_DA
49 bool "STMMAC DMA arbitration scheme"
50 default n
51 ---help---
52 Selecting this option, rx has priority over Tx (only for Giga
53 Ethernet device).
54 By default, the DMA arbitration scheme is based on Round-robin
55 (rx:tx priority is 1:1).
56
57config STMMAC_TIMER
58 bool "STMMAC Timer optimisation"
59 default n
60 depends on RTC_HCTOSYS_DEVICE
61 ---help---
62 Use an external timer for mitigating the number of network
63 interrupts. Currently, for SH architectures, it is possible
64 to use the TMU channel 2 and the SH-RTC device.
65
66choice
67 prompt "Select Timer device"
68 depends on STMMAC_TIMER
69
70config STMMAC_TMU_TIMER
71 bool "TMU channel 2"
72 depends on CPU_SH4
73 ---help---
74
75config STMMAC_RTC_TIMER
76 bool "Real time clock"
77 depends on RTC_CLASS
78 ---help---
79
80endchoice
81
82choice
83 prompt "Select the DMA TX/RX descriptor operating modes"
84 depends on STMMAC_ETH
85 ---help---
86 This driver supports DMA descriptor to operate both in dual buffer
87 (RING) and linked-list(CHAINED) mode. In RING mode each descriptor
88 points to two data buffer pointers whereas in CHAINED mode they
89 points to only one data buffer pointer.
90
91config STMMAC_RING
92 bool "Enable Descriptor Ring Mode"
93
94config STMMAC_CHAINED
95 bool "Enable Descriptor Chained Mode"
96
97endchoice
98
99
100endif