1source "drivers/net/phy/Kconfig"
2source "drivers/net/pfe_eth/Kconfig"
3source "drivers/net/fsl-mc/Kconfig"
4
5config ETH
6	def_bool y
7
8config DM_ETH
9	bool
10	depends on DM
11	help
12	  Enable driver model for Ethernet.
13
14	  The eth_*() interface will be implemented by the UCLASS_ETH class
15	  This is currently implemented in net/eth-uclass.c
16	  Look in include/net.h for details.
17
18config SPL_DM_ETH
19	depends on SPL_NET
20	def_bool y
21
22config DM_MDIO
23	bool "Enable Driver Model for MDIO devices"
24	depends on PHYLIB
25	help
26	  Enable driver model for MDIO devices
27
28	  Adds UCLASS_MDIO DM class supporting MDIO buses that are probed as
29	  stand-alone devices.  Useful in particular for systems that support
30	  DM_ETH and have a stand-alone MDIO hardware block shared by multiple
31	  Ethernet interfaces.
32	  This is currently implemented in net/mdio-uclass.c
33	  Look in include/miiphy.h for details.
34
35config DM_MDIO_MUX
36	bool "Enable Driver Model for MDIO MUX devices"
37	depends on DM_MDIO
38	help
39	  Enable driver model for MDIO MUX devices
40
41	  Adds UCLASS_MDIO_MUX DM class supporting MDIO MUXes.  Useful for
42	  systems that support DM_MDIO and integrate one or multiple muxes on
43	  the MDIO bus.
44	  This is currently implemented in net/mdio-mux-uclass.c
45	  Look in include/miiphy.h for details.
46
47config DM_DSA
48	bool "Enable Driver Model for DSA switches"
49	depends on DM_MDIO
50	depends on PHY_FIXED
51	help
52	  Enable driver model for DSA switches
53
54	  Adds UCLASS_DSA class supporting switches that follow the Distributed
55	  Switch Architecture (DSA).  These switches rely on the presence of a
56	  management switch port connected to an Ethernet controller capable of
57	  receiving frames from the switch.  This host Ethernet controller is
58	  called the "master" Ethernet interface in DSA terminology.
59	  This is currently implemented in net/dsa-uclass.c, refer to
60	  include/net/dsa.h for API details.
61
62config MDIO_SANDBOX
63	depends on DM_MDIO && SANDBOX
64	default y
65	bool "Sandbox: Mocked MDIO driver"
66	help
67	  This driver implements dummy read/write/reset MDIO functions mimicking
68	  a bus with a single PHY.
69
70	  This driver is used in for testing in test/dm/mdio.c
71
72config MDIO_MUX_SANDBOX
73	depends on DM_MDIO_MUX && MDIO_SANDBOX
74	default y
75	bool "Sandbox: Mocked MDIO-MUX driver"
76	help
77	  This driver implements dummy select/deselect ops mimicking a MUX on
78	  the MDIO bux.  It uses mdio_sandbox driver as parent MDIO.
79
80	  This driver is used for testing in test/dm/mdio.c
81
82config DM_ETH_PHY
83	bool "Enable Driver Model for Ethernet Generic PHY drivers"
84	depends on DM
85	help
86	  Enable driver model for Ethernet Generic PHY .
87
88config DSA_SANDBOX
89	depends on DM_DSA && SANDBOX
90	default y
91	bool "Sandbox: Mocked DSA driver"
92	help
93	  This driver implements a dummy DSA switch connected to a dummy sandbox
94	  Ethernet device used as DSA master, to test DSA class code, including
95	  exported DSA API and datapath processing of Ethernet traffic.
96
97menuconfig NETDEVICES
98	bool "Network device support"
99	depends on NET || NET_LWIP
100	select DM_ETH
101	help
102	  You must select Y to enable any network device support
103	  Generally if you have any networking support this is a given
104
105	  If unsure, say Y
106
107if NETDEVICES
108
109config PHY_GIGE
110	bool "Enable GbE PHY status parsing and configuration"
111	help
112	  Enables support for parsing the status output and for
113	  configuring GbE PHYs (affects the inner workings of some
114	  commands and miiphyutil.c).
115
116config AG7XXX
117	bool "Atheros AG7xxx Ethernet MAC support"
118	depends on ARCH_ATH79
119	select PHYLIB
120	help
121	  This driver supports the Atheros AG7xxx Ethernet MAC. This MAC is
122	  present in the Atheros AR7xxx, AR9xxx and QCA9xxx MIPS chips.
123
124config AIROHA_ETH
125	bool "Airoha Ethernet QDMA Driver"
126	depends on ARCH_AIROHA
127	select PHYLIB
128	select DM_RESET
129	help
130	  This Driver support Airoha Ethernet QDMA Driver
131	  Say Y to enable support for the Airoha Ethernet QDMA.
132
133config ALTERA_TSE
134	bool "Altera Triple-Speed Ethernet MAC support"
135	select PHYLIB
136	help
137	  This driver supports the Altera Triple-Speed (TSE) Ethernet MAC.
138	  Please find details on the "Triple-Speed Ethernet MegaCore Function
139	  Resource Center" of Altera.
140
141config BCM6348_ETH
142	bool "BCM6348 EMAC support"
143	depends on ARCH_BMIPS
144	select DMA
145	select DMA_CHANNELS
146	select MII
147	select PHYLIB
148	help
149	  This driver supports the BCM6348 Ethernet MAC.
150
151config BCM6368_ETH
152	bool "BCM6368 EMAC support"
153	depends on ARCH_BMIPS
154	select DMA
155	select MII
156	help
157	  This driver supports the BCM6368 Ethernet MAC.
158
159config BCMGENET
160	bool "BCMGENET V5 support"
161	select PHYLIB
162	help
163	  This driver supports the BCMGENET Ethernet MAC.
164
165source "drivers/net/bnxt/Kconfig"
166
167config CORTINA_NI_ENET
168	bool "Cortina-Access Ethernet driver"
169	depends on CORTINA_PLATFORM
170	help
171	  This driver supports the Cortina-Access Ethernet MAC for
172	  all supported CAxxxx SoCs.
173
174config CALXEDA_XGMAC
175	bool "Calxeda XGMAC support"
176	depends on ARCH_HIGHBANK
177	help
178	  This driver supports the XGMAC in Calxeda Highbank and Midway
179	  machines.
180
181config DWC_ETH_XGMAC
182        bool "Synopsys DWC Ethernet XGMAC device support"
183	select PHYLIB
184        help
185          This driver supports the Synopsys Designware Ethernet XGMAC (10G
186          Ethernet MAC) IP block. The IP supports many options for bus type,
187          clocking/reset structure, and feature list.
188
189config DWC_ETH_XGMAC_SOCFPGA
190	bool "Synopsys DWC Ethernet XGMAC device support for SOCFPGA"
191	select REGMAP
192	select SYSCON
193	depends on DWC_ETH_XGMAC
194	default y if TARGET_SOCFPGA_AGILEX5
195	help
196	  The Synopsys Designware Ethernet XGMAC IP block with specific
197	  configuration used in Intel SoC FPGA chip.
198
199config DRIVER_DM9000
200	bool "Davicom DM9000 controller driver"
201	help
202	  The Davicom DM9000 parallel bus external ethernet interface chip.
203
204config DM9000_BYTE_SWAPPED
205	bool "Byte swapped access for DM9000"
206	depends on DRIVER_DM9000
207
208config DM9000_NO_SROM
209	bool "No SROM on DM9000"
210	depends on DRIVER_DM9000
211
212config DM9000_USE_16BIT
213	bool "Use 16bit access in DM9000"
214	depends on DRIVER_DM9000
215
216config DWC_ETH_QOS
217	bool "Synopsys DWC Ethernet QOS device support"
218	select PHYLIB
219	help
220	  This driver supports the Synopsys Designware Ethernet QOS (Quality
221	  Of Service) IP block. The IP supports many options for bus type,
222	  clocking/reset structure, and feature list.
223
224config DWC_ETH_QOS_ADI
225	bool "Synopsys DWC Ethernet QOS device support for ADI SC59x-64 parts"
226	depends on DWC_ETH_QOS && ARCH_SC5XX
227	help
228		The Synopsis Designware Ethernet QoS IP block with the specific
229		configuration used in the ADI ADSP-SC59X 64 bit SoCs
230
231config DWC_ETH_QOS_IMX
232	bool "Synopsys DWC Ethernet QOS device support for IMX"
233	depends on DWC_ETH_QOS && MACH_IMX
234	help
235	  The Synopsys Designware Ethernet QOS IP block with the specific
236	  configuration used in IMX soc.
237
238config DWC_ETH_QOS_INTEL
239	bool "Synopsys DWC Ethernet QOS device support for Intel"
240	depends on DWC_ETH_QOS
241	help
242	  The Synopsys Designware Ethernet QOS IP block with the specific
243	  configuration used in the Intel Elkhart-Lake soc.
244
245config DWC_ETH_QOS_ROCKCHIP
246	bool "Synopsys DWC Ethernet QOS device support for Rockchip SoCs"
247	depends on DWC_ETH_QOS && ARCH_ROCKCHIP
248	select DM_ETH_PHY
249	help
250	  The Synopsys Designware Ethernet QOS IP block with specific
251	  configuration used in Rockchip SoCs.
252
253config DWC_ETH_QOS_STM32
254	bool "Synopsys DWC Ethernet QOS device support for STM32"
255	depends on DWC_ETH_QOS && ARCH_STM32MP
256	select DM_ETH_PHY
257	default y if ARCH_STM32MP
258	help
259	  The Synopsys Designware Ethernet QOS IP block with the specific
260	  configuration used in STM32MP soc.
261
262config DWC_ETH_QOS_TEGRA186
263	bool "Synopsys DWC Ethernet QOS device support for TEGRA186"
264	depends on DWC_ETH_QOS
265	default y if TEGRA186
266	help
267	  The Synopsys Designware Ethernet QOS IP block with specific
268	  configuration used in NVIDIA's Tegra186 chip.
269
270config DWC_ETH_QOS_QCOM
271	bool "Synopsys DWC Ethernet QOS device support for Qcom SoCs"
272	depends on DWC_ETH_QOS
273	help
274	  The Synopsys Designware Ethernet QOS IP block with specific
275	  configuration used in Qcom QCS404 SoC.
276
277config DWC_ETH_QOS_STARFIVE
278	bool "Synopsys DWC Ethernet QOS device support for STARFIVE"
279	depends on DWC_ETH_QOS
280	help
281	  The Synopsys Designware Ethernet QOS IP block with specific
282	  configuration used in STARFIVE  JH7110 soc.
283
284config E1000
285	bool "Intel PRO/1000 Gigabit Ethernet support"
286	depends on PCI
287	help
288	  This driver supports Intel(R) PRO/1000 gigabit ethernet family of
289	  adapters.  For more information on how to identify your adapter, go
290	  to the Adapter & Driver ID Guide at:
291
292	  <http://support.intel.com/support/network/adapter/pro100/21397.htm>
293
294config E1000_NO_NVM
295	bool "Intel PRO/1000 has no NVMEM / EEPROM"
296	depends on E1000
297
298config E1000_SPI_GENERIC
299	bool "Allow access to the Intel 8257x SPI bus"
300	depends on E1000
301	help
302	  Allow generic access to the SPI bus on the Intel 8257x, for
303	  example with the "sspi" command.
304
305config E1000_SPI
306	bool "Enable SPI bus utility code"
307	depends on E1000 && !E1000_NO_NVM
308	help
309	  Utility code for direct access to the SPI bus on Intel 8257x.
310	  This does not do anything useful unless you set at least one
311	  of CONFIG_CMD_E1000 or CONFIG_E1000_SPI_GENERIC.
312
313config CMD_E1000
314	bool "Enable the e1000 command"
315	depends on E1000
316	help
317	  This enables the 'e1000' management command for E1000 devices. When
318	  used on devices with SPI support you can reprogram the EEPROM from
319	  U-Boot.
320
321config EEPRO100
322	bool "Intel PRO/100 82557/82559/82559ER Fast Ethernet support"
323	depends on !64BIT
324	help
325	  This driver supports Intel(R) PRO/100 82557/82559/82559ER fast
326	  ethernet family of adapters.
327
328config ESSEDMA
329	bool "Qualcomm ESS Edma support"
330	depends on DM_ETH && ARCH_IPQ40XX
331	select PHYLIB
332	help
333	  This driver supports ethernet DMA adapter found in
334	  Qualcomm IPQ40xx series SoC-s.
335
336config ETH_SANDBOX
337	depends on SANDBOX
338	depends on NET || NET_LWIP
339	default y
340	bool "Sandbox: Mocked Ethernet driver"
341	help
342	  This driver simply responds with fake ARP replies and ping
343	  replies that are used to verify network stack functionality
344
345	  This driver is particularly useful in the test/dm/eth.c tests
346
347config ETH_SANDBOX_RAW
348	depends on SANDBOX
349	depends on NET
350	default y
351	bool "Sandbox: Bridge to Linux Raw Sockets"
352	help
353	  This driver is a bridge from the bottom of the network stack
354	  in U-Boot to the RAW AF_PACKET API in Linux. This allows real
355	  network traffic to be tested from within sandbox. See
356	  doc/arch/index.rst for more details.
357
358config ETH_DESIGNWARE
359	bool "Synopsys Designware Ethernet MAC"
360	select PHYLIB
361	imply ETH_DESIGNWARE_SOCFPGA if ARCH_SOCFPGA
362	help
363	  This MAC is present in SoCs from various vendors. It supports
364	  100Mbit and 1 Gbit operation. You must enable CONFIG_PHYLIB to
365	  provide the PHY (physical media interface).
366
367config ETH_DESIGNWARE_MESON8B
368	bool "Amlogic Meson8b and later glue driver for Synopsys Designware Ethernet MAC"
369	select ETH_DESIGNWARE
370	help
371	  This provides glue layer to use Synopsys Designware Ethernet MAC
372	  present on the Amlogic Meson8b, GX, AXG & G12A SoCs.
373
374config ETH_DESIGNWARE_SOCFPGA
375	select REGMAP
376	select SYSCON
377	select DW_ALTDESCRIPTOR
378	bool "Altera SoCFPGA extras for Synopsys Designware Ethernet MAC"
379	depends on ETH_DESIGNWARE
380	help
381	  The Altera SoCFPGA requires additional configuration of the
382	  Altera system manager to correctly interface with the PHY.
383	  This code handles those SoC specifics.
384
385config ETH_DESIGNWARE_S700
386	bool "Actins S700 glue driver for Synopsys Designware Ethernet MAC"
387	depends on ETH_DESIGNWARE && ARCH_OWL
388	help
389	  This provides glue layer to use Synopsys Designware Ethernet MAC
390	  present on Actions S700 SoC.
391
392config ETH_DESIGNWARE_THEAD
393	bool "T-Head glue driver for Synopsys Designware Ethernet MAC"
394	depends on ETH_DESIGNWARE
395	select DW_ALTDESCRIPTOR
396	help
397	  This provides glue layer to use Synopsys Designware Ethernet MAC
398	  present on T-Head SoCs.
399
400config DW_ALTDESCRIPTOR
401	bool "Designware Ethernet MAC uses alternate (enhanced) descriptors"
402	depends on ETH_DESIGNWARE
403
404config ETHOC
405	bool "OpenCores 10/100 Mbps Ethernet MAC"
406	help
407	  This MAC is present in OpenRISC and Xtensa XTFPGA boards.
408
409config FEC_MXC_SHARE_MDIO
410	bool "Share the MDIO bus for FEC controller"
411	depends on FEC_MXC
412
413config FEC_MXC_MDIO_BASE
414	hex "MDIO base address for the FEC controller"
415	depends on FEC_MXC_SHARE_MDIO
416	help
417	  This specifies the MDIO registers base address. It is used when
418	  two FEC controllers share MDIO bus.
419
420config FEC_MXC
421	bool "FEC Ethernet controller"
422	depends on MX28 || MX5 || MX6 || MX7 || IMX8 || IMX8M || IMX8ULP || IMX93 || VF610
423	help
424	  This driver supports the 10/100 Fast Ethernet controller for
425	  NXP i.MX processors.
426
427config FMAN_ENET
428	bool "Freescale FMan ethernet support"
429	depends on FSL_LSCH2 || PPC
430	select SYS_FMAN_V3 if ARCH_B4420 || ARCH_B4860 || ARCH_LS1043A || \
431		ARCH_LS1046A || ARCH_T1024 || ARCH_T1040 || ARCH_T1042 || \
432		ARCH_T2080 || ARCH_T4240
433	select FSL_FM_10GEC_REGULAR_NOTATION if ARCH_T1024
434	help
435	  This driver support the Freescale FMan Ethernet controller
436
437config SYS_FMAN_FW_ADDR
438	hex "FMAN Firmware Address"
439	depends on FMAN_ENET
440	default 0x0
441
442config SYS_QE_FMAN_FW_LENGTH
443	hex "FMAN QE Firmware length"
444	depends on FMAN_ENET || QE || U_QE
445	default 0x10000
446
447config SYS_FMAN_V3
448	bool
449	select FSL_MEMAC
450	help
451	  SoC has FMan v3 with mEMAC
452
453config FSL_FM_10GEC_REGULAR_NOTATION
454	bool
455	help
456	  On SoCs T4240, T2080, LS1043A, etc, the notation between 10GEC and
457	  MAC as below:
458		10GEC1->MAC9, 10GEC2->MAC10, 10GEC3->MAC1, 10GEC4->MAC2
459	  While on SoCs T1024, etc, the notation between 10GEC and MAC as below:
460		10GEC1->MAC1, 10GEC2->MAC2
461	  so we introduce CONFIG_FSL_FM_10GEC_REGULAR_NOTATION to identify the
462	  new SoCs on which 10GEC enumeration is consistent with MAC
463	  enumeration.
464
465config FTMAC100
466	bool "Ftmac100 Ethernet Support"
467	select MII
468	help
469	  This MAC is present in Andestech SoCs.
470
471config FTGMAC100
472	bool "Ftgmac100 Ethernet Support"
473	select PHYLIB
474	depends on NET
475	help
476	  This driver supports the Faraday's FTGMAC100 Gigabit SoC
477	  Ethernet controller that can be found on Aspeed SoCs (which
478	  include NCSI).
479
480	  It is fully compliant with IEEE 802.3 specification for
481	  10/100 Mbps Ethernet and IEEE 802.3z specification for 1000
482	  Mbps Ethernet and includes Reduced Media Independent
483	  Interface (RMII) and Reduced Gigabit Media Independent
484	  Interface (RGMII) interfaces. It adopts an AHB bus interface
485	  and integrates a link list DMA engine with direct M-Bus
486	  accesses for transmitting and receiving packets. It has
487	  independent TX/RX fifos, supports half and full duplex (1000
488	  Mbps mode only supports full duplex), flow control for full
489	  duplex and backpressure for half duplex.
490
491	  The FTGMAC100 also implements IP, TCP, UDP checksum offloads
492	  and supports IEEE 802.1Q VLAN tag insertion and removal. It
493	  offers high-priority transmit queue for QoS and CoS
494	  applications.
495
496config SYS_DISCOVER_PHY
497	bool
498
499config MCFFEC
500	bool "ColdFire Ethernet Support"
501	depends on M68K
502	select PHYLIB
503	select SYS_DISCOVER_PHY
504	help
505	  This driver supports the network interface units in the
506	  ColdFire family.
507
508config SYS_UNIFY_CACHE
509	depends on MCFFEC
510	bool "Invalidate icache during ethernet operations"
511
512config KS8851_MLL
513	bool "Microchip KS8851-MLL controller driver"
514	help
515	  The Microchip KS8851 parallel bus external ethernet interface chip.
516
517config KSZ9477
518	bool "Microchip KSZ9477 controller driver"
519	depends on DM_DSA && (DM_I2C || DM_SPI)
520	help
521	  This driver implements a DSA switch driver for the KSZ9477 family
522	  of GbE switches using the I2C or SPI interface.
523
524config LITEETH
525	bool "LiteX LiteEth Ethernet MAC"
526	help
527	 Driver for the LiteEth Ethernet MAC from LiteX.
528
529config MV88E6XXX
530	bool "Marvell MV88E6xxx Ethernet switch DSA driver"
531	depends on DM_DSA && DM_MDIO
532	help
533	  This driver implements a DSA switch driver for the MV88E6xxx family
534	  of Ethernet switches using the MDIO interface
535
536config MVGBE
537	bool "Marvell Orion5x/Kirkwood network interface support"
538	depends on ARCH_KIRKWOOD || ARCH_ORION5X
539	select PHYLIB
540	help
541	  This driver supports the network interface units in the
542	  Marvell Orion5x and Kirkwood SoCs
543
544config MVNETA
545	bool "Marvell Armada XP/385/3700 network interface support"
546	depends on ARMADA_XP || ARMADA_38X || ARMADA_3700 || ALLEYCAT_5
547	select PHYLIB
548	select DM_MDIO
549	help
550	  This driver supports the network interface units in the
551	  Marvell ARMADA XP, ARMADA 38X and ARMADA 3700 SoCs
552
553config MVPP2
554	bool "Marvell Armada 375/7K/8K network interface support"
555	depends on ARMADA_375 || ARMADA_8K
556	select PHYLIB
557	select MVMDIO
558	select DM_MDIO
559	help
560	  This driver supports the network interface units in the
561	  Marvell ARMADA 375, 7K and 8K SoCs.
562
563config MACB
564	bool "Cadence MACB/GEM Ethernet Interface"
565	depends on ARM || RISCV
566	select PHYLIB
567	help
568	  The Cadence MACB ethernet interface is found on many Atmel
569	  AT91 and SAMA5 parts.  This driver also supports the Cadence
570	  GEM (Gigabit Ethernet MAC) found in some ARM SoC devices.
571	  Say Y to include support for the MACB/GEM chip.
572
573config MACB_ZYNQ
574	bool "Cadence MACB/GEM Ethernet Interface for Xilinx Zynq"
575	depends on MACB
576	help
577	  The Cadence MACB ethernet interface was used on Zynq platform.
578	  Say Y to enable support for the MACB/GEM in Zynq chip.
579
580config MT7620_ETH
581	bool "MediaTek MT7620 Ethernet Interface"
582	depends on SOC_MT7620
583	select PHYLIB
584	select DM_RESET
585	select DM_GPIO
586	select CLK
587	help
588	  The MediaTek MT7620 ethernet interface is used on MT7620 based
589	  boards. It has a built-in switch with two configurable ports which
590	  can connect to external PHY/MACs.
591
592config MT7628_ETH
593	bool "MediaTek MT7628 Ethernet Interface"
594	depends on SOC_MT7628
595	select PHYLIB
596	help
597	  The MediaTek MT7628 ethernet interface is used on MT7628 and
598	  MT7688 based boards.
599
600config NET_NPCM750
601	bool "Nuvoton NPCM750 Ethernet MAC"
602	depends on ARCH_NPCM
603	help
604	  support NPCM750 EMAC
605
606config NET_OCTEON
607	bool "MIPS Octeon ethernet support"
608	depends on ARCH_OCTEON
609	help
610	  You must select Y to enable network device support for
611	  MIPS Octeon SoCs. If unsure, say n
612
613config NET_OCTEONTX
614	bool "OcteonTX Ethernet support"
615	depends on ARCH_OCTEONTX
616	depends on PCI_SRIOV
617	help
618	  You must select Y to enable network device support for
619	  OcteonTX SoCs. If unsure, say n
620
621config NET_OCTEONTX2
622	bool "OcteonTX2 Ethernet support"
623	depends on ARCH_OCTEONTX2
624	select OCTEONTX2_CGX_INTF
625	help
626	  You must select Y to enable network device support for
627	  OcteonTX2 SoCs. If unsure, say n
628
629config OCTEONTX_SMI
630	bool "OcteonTX SMI Device support"
631	depends on ARCH_OCTEONTX || ARCH_OCTEONTX2
632	help
633	  You must select Y to enable SMI controller support for
634	  OcteonTX or OcteonTX2 SoCs. If unsure, say n
635
636config OCTEONTX2_CGX_INTF
637	bool "OcteonTX2 CGX ATF interface support"
638	depends on ARCH_OCTEONTX2
639	default y if ARCH_OCTEONTX2
640	help
641	  You must select Y to enable CGX ATF interface support for
642	  OcteonTX2 SoCs. If unsure, say n
643
644config PCH_GBE
645	bool "Intel Platform Controller Hub EG20T GMAC driver"
646	select PHYLIB
647	help
648	  This MAC is present in Intel Platform Controller Hub EG20T. It
649	  supports 10/100/1000 Mbps operation.
650
651config RGMII
652	bool "Enable RGMII"
653	help
654	  Enable the support of the Reduced Gigabit Media-Independent
655	  Interface (RGMII).
656
657config MII
658	bool "Enable MII"
659	help
660	  Enable support of the Media-Independent Interface (MII)
661
662config RMII
663	bool "Enable RMII"
664	help
665	  Enable support of the Reduced Media-Independent Interface (MII)
666
667config PCNET
668	bool "AMD PCnet series Ethernet controller driver"
669	help
670	  This driver supports AMD PCnet series fast ethernet family of
671	  PCI chipsets/adapters.
672
673source "drivers/net/qe/Kconfig"
674
675config RTL8139
676	bool "Realtek 8139 series Ethernet controller driver"
677	depends on !64BIT
678	help
679	  This driver supports Realtek 8139 series fast ethernet family of
680	  PCI chipsets/adapters.
681
682config RTL8169
683	bool "Realtek 8169 series Ethernet controller driver"
684	depends on PCI
685	help
686	  This driver supports Realtek 8169 series gigabit ethernet family of
687	  PCI/PCIe chipsets/adapters.
688
689config SJA1105
690	bool "NXP SJA1105 Ethernet switch family driver"
691	depends on DM_DSA && DM_SPI
692	select BITREVERSE
693	help
694	  This is the driver for the NXP SJA1105 automotive Ethernet switch
695	  family. These are 5-port devices and are managed over an SPI
696	  interface. Probing is handled based on OF bindings. The driver
697	  supports the following revisions:
698	    - SJA1105E (Gen. 1, No TT-Ethernet)
699	    - SJA1105T (Gen. 1, TT-Ethernet)
700	    - SJA1105P (Gen. 2, No SGMII, No TT-Ethernet)
701	    - SJA1105Q (Gen. 2, No SGMII, TT-Ethernet)
702	    - SJA1105R (Gen. 2, SGMII, No TT-Ethernet)
703	    - SJA1105S (Gen. 2, SGMII, TT-Ethernet)
704
705config SMC911X
706	bool "SMSC LAN911x and LAN921x controller driver"
707
708config SMC911X_32_BIT
709	bool "Enable SMC911X 32-bit interface"
710	depends on SMC911X
711	help
712	  Define this if data bus is 32 bits. If your processor use a
713	  narrower 16 bit bus or cannot convert one 32 bit word to two 16 bit
714	  words, leave this to "n".
715
716config SUN7I_GMAC
717	bool "Enable Allwinner GMAC Ethernet support"
718	help
719	  Enable the support for Sun7i GMAC Ethernet controller
720
721config SUN7I_GMAC_FORCE_TXERR
722	bool "Force PA17 as gmac function"
723	depends on SUN7I_GMAC
724	help
725	  Some ethernet phys needs TXERR control. Since the GMAC
726	  doesn't have such signal, setting PA17 as GMAC function
727	  makes the pin output low, which enables data transmission.
728
729config SUN4I_EMAC
730	bool "Allwinner Sun4i Ethernet MAC support"
731	depends on ARCH_SUNXI
732	select PHYLIB
733	help
734	  This driver supports the Allwinner based SUN4I Ethernet MAC.
735
736config SUN8I_EMAC
737        bool "Allwinner Sun8i Ethernet MAC support"
738        select PHYLIB
739	select PHY_GIGE
740        help
741          This driver supports the  Allwinner based SUN8I/SUN50I Ethernet MAC.
742	  It can be found in H3/A64/A83T based SoCs and compatible with both
743	  External and Internal PHYs.
744
745config SH_ETHER
746	bool "Renesas SH Ethernet MAC"
747	depends on ARCH_RENESAS
748	select PHYLIB
749	select PHY_ETHERNET_ID
750	help
751	  This driver supports the Ethernet for Renesas SH and ARM SoCs.
752
753source "drivers/net/ti/Kconfig"
754
755config TULIP
756	bool "DEC Tulip DC2114x Ethernet support"
757	depends on !64BIT
758	help
759	  This driver supports DEC DC2114x Fast ethernet chips.
760
761config TULIP_SUPPORT_NON_PCI
762	bool "No PCI controller"
763	depends on TULIP
764	default n
765	help
766	  Say Y to this and you can run this driver on platforms that do not
767	  have PCI controllers.
768
769config TULIP_IGNORE_TX_NO_CARRIER
770	bool "Ignore tx no carrier error"
771	depends on TULIP
772	default n
773	help
774	  Some IP cores of dc2114x or its variants do not comply so well with
775	  the behaviors described by the official document. A packet could be
776	  sent successfully but reported with No Carrier error. Latest drivers
777	  of this IP core do not detect this error anymore. Say Y to this could
778	  disable handling of this error.
779
780config TULIP_MULTIPLE_TX_DESC
781	bool "Use multiple tx descriptors"
782	depends on TULIP
783	default n
784	help
785	  Some IP cores of dc2114x or its variants do not comply so well with
786	  the behaviors described by the official document. Originally this
787	  driver uses only one tx descriptor and organizes it as a ring buffer,
788	  which would lead to a problem that one packet would be sent twice.
789	  Say Y to this could prevent this bug if you are using IP cores with
790	  this issue, by using multiple tx descriptors and organizing them as
791	  a real well-defined ring buffer.
792
793config XILINX_AXIEMAC
794	select PHYLIB
795	select MII
796	bool "Xilinx AXI Ethernet"
797	help
798	  This MAC is present in Xilinx Microblaze, Zynq and ZynqMP SoCs.
799
800config XILINX_AXIMRMAC
801	depends on ARCH_VERSAL
802	bool "Xilinx AXI MRMAC"
803	help
804	  MRMAC is a high performance, low latency, adaptable Ethernet
805	  integrated hard IP. This can be configured up to four ports with MAC
806	  rates from 10GE to 100GE. This could be present in some of the Xilinx
807	  Versal designs.
808
809config VSC7385_ENET
810	bool "Vitesse 7385 Switch Firmware Upload driver"
811	depends on !COMPILE_TEST && PPC
812
813config XILINX_EMACLITE
814	select PHYLIB
815	select MII
816	bool "Xilinx Ethernetlite"
817	help
818	  This MAC is present in Xilinx Microblaze, Zynq and ZynqMP SoCs.
819
820config ZYNQ_GEM
821	select PHYLIB
822	bool "Xilinx Ethernet GEM"
823	depends on ARCH_VERSAL || ARCH_VERSAL_NET || ARCH_VERSAL2 || ARCH_ZYNQ || ARCH_ZYNQMP
824	help
825	  This MAC is present in Xilinx Zynq and ZynqMP SoCs.
826
827config PIC32_ETH
828	bool "Microchip PIC32 Ethernet Support"
829	depends on MACH_PIC32
830	select PHYLIB
831	help
832	  This driver implements 10/100 Mbps Ethernet and MAC layer for
833	  Microchip PIC32 microcontrollers.
834
835config GMAC_ROCKCHIP
836	bool "Rockchip Synopsys Designware Ethernet MAC"
837	depends on ETH_DESIGNWARE && ARCH_ROCKCHIP
838	help
839	  This driver provides Rockchip SoCs network support based on the
840	  Synopsys Designware driver.
841
842config RENESAS_ETHER_SWITCH
843	bool "Renesas Ethernet Switch support"
844	depends on DM_ETH && R8A779F0
845	select PHYLIB
846	help
847	  This driver implements support for the Renesas Ethernet Switch
848	  which is available on R-Car S4 SoC (r8a779f0).
849
850config RENESAS_RAVB
851	bool "Renesas Ethernet AVB MAC"
852	depends on RCAR_64
853	select BITBANGMII
854	select PHYLIB
855	select PHY_ETHERNET_ID
856	help
857	  This driver implements support for the Ethernet AVB block in
858	  several Renesas R-Car and RZ SoCs.
859
860config MPC8XX_FEC
861	bool "Fast Ethernet Controller on MPC8XX"
862	depends on MPC8xx
863	select MII
864	select SYS_DISCOVER_PHY
865	help
866	  This driver implements support for the Fast Ethernet Controller
867	  on MPC8XX
868
869config SNI_AVE
870	bool "Socionext AVE Ethernet support"
871	depends on ARCH_UNIPHIER
872	select PHYLIB
873	select SYSCON
874	select REGMAP
875	help
876	  This driver implements support for the Socionext AVE Ethernet
877	  controller, as found on the Socionext UniPhier family.
878
879config SNI_NETSEC
880	bool "Socionext NETSEC Ethernet support"
881	depends on SYNQUACER_SPI
882	select PHYLIB
883	help
884	  This driver implements support for the Socionext SynQuacer NETSEC
885	  ethernet controller, as found on the Socionext SynQuacer family.
886
887source "drivers/net/mscc_eswitch/Kconfig"
888
889config ETHER_ON_FEC1
890	bool "FEC1"
891	depends on MPC8XX_FEC
892	default y
893
894config FEC1_PHY
895	int "FEC1 PHY"
896	depends on ETHER_ON_FEC1
897	default -1
898	help
899	  Define to the hardcoded PHY address which corresponds
900	  to the given FEC; i. e.
901		#define CONFIG_FEC1_PHY 4
902	  means that the PHY with address 4 is connected to FEC1
903
904	  When set to -1, means to probe for first available.
905
906config PHY_NORXERR
907	bool "PHY_NORXERR"
908	depends on ETHER_ON_FEC1
909	help
910	  The PHY does not have a RXERR line (RMII only).
911	  (so program the FEC to ignore it).
912
913config ETHER_ON_FEC2
914	bool "FEC2"
915	depends on MPC8XX_FEC && MPC885
916	default y
917
918config FEC2_PHY
919	int "FEC2 PHY"
920	depends on ETHER_ON_FEC2
921	default -1
922	help
923	  Define to the hardcoded PHY address which corresponds
924	  to the given FEC; i. e.
925		#define CONFIG_FEC1_PHY 4
926	  means that the PHY with address 4 is connected to FEC1
927
928	  When set to -1, means to probe for first available.
929
930config FEC2_PHY_NORXERR
931	bool "PHY_NORXERR"
932	depends on ETHER_ON_FEC2
933	help
934	  The PHY does not have a RXERR line (RMII only).
935	  (so program the FEC to ignore it).
936
937config SYS_DPAA_QBMAN
938	bool "Device tree fixup for QBMan on freescale SOCs"
939	depends on ARM || PPC
940	default y if ARCH_B4860 || \
941		     ARCH_B4420 || \
942		     ARCH_P1023 || \
943		     ARCH_P2041 || \
944		     ARCH_T1024 || \
945		     ARCH_T1040 || \
946		     ARCH_T1042 || \
947		     ARCH_T2080 || \
948		     ARCH_T4240 || \
949		     ARCH_P4080 || \
950		     ARCH_P3041 || \
951		     ARCH_P5040 || \
952		     ARCH_LS1043A || \
953		     ARCH_LS1046A
954	help
955	  QBman fixups to allow deep sleep in DPAA 1 SOCs
956
957config SYS_FSL_QMAN_V3
958	bool # QMAN version 3
959	depends on SYS_DPAA_QBMAN
960
961config TSEC_ENET
962	select PHYLIB
963	bool "Enable Three-Speed Ethernet Controller"
964	depends on ARCH_LS1021A || PPC
965	help
966	  This driver implements support for the (Enhanced) Three-Speed
967	  Ethernet Controller found on Freescale SoCs.
968
969source "drivers/net/mtk_eth/Kconfig"
970
971config HIFEMAC_ETH
972	bool "HiSilicon Fast Ethernet Controller"
973	select DM_CLK
974	select DM_RESET
975	select PHYLIB
976	help
977	  This driver supports HIFEMAC Ethernet controller found on
978	  HiSilicon SoCs.
979
980config HIFEMAC_MDIO
981	bool "HiSilicon Fast Ethernet Controller MDIO interface"
982	depends on DM_MDIO
983	select DM_CLK
984	help
985	  This driver supports the internal MDIO interface of HIFEMAC
986	  Ethernet controller.
987
988config HIGMACV300_ETH
989	bool "HiSilicon Gigabit Ethernet Controller"
990	select DM_RESET
991	select PHYLIB
992	help
993	  This driver supports HIGMACV300 Ethernet controller found on
994	  HiSilicon SoCs.
995
996config FSL_ENETC
997	bool "NXP ENETC Ethernet controller"
998	depends on DM_MDIO
999	help
1000	  This driver supports the NXP ENETC Ethernet controller found on some
1001	  of the NXP SoCs.
1002
1003config FSL_ENETC_NETC_BLK_CTRL
1004	bool "NXP ENETC NETC blocks control driver"
1005	depends on FSL_ENETC && IMX95
1006	default y if IMX95
1007	help
1008	  This driver configures Integrated Endpoint Register Block (IERB) and
1009	  Privileged Register Block (PRB) of NETC. For i.MX platforms, it also
1010	  includes the configuration of NETCMIX block.
1011	  The IERB contains registers that are used for pre-boot initialization,
1012	  debug, and non-customer configuration. The PRB controls global reset
1013	  and global error handling for NETC. The NETCMIX block is mainly used
1014	  to set MII protocol and PCS protocol of the links, it also contains
1015	  settings for some other functions.
1016
1017config MDIO_GPIO_BITBANG
1018	bool "GPIO bitbanging MDIO driver"
1019	depends on DM_MDIO && DM_GPIO
1020	help
1021	 Driver for bitbanging MDIO
1022
1023config MDIO_MUX_I2CREG
1024	bool "MDIO MUX accessed as a register over I2C"
1025	depends on DM_MDIO_MUX && DM_I2C
1026	help
1027	  This driver is used for MDIO muxes driven by writing to a register of
1028	  an I2C chip.  The board it was developed for uses a mux controlled by
1029	  on-board FPGA which in turn is accessed as a chip over I2C.
1030
1031config MDIO_IPQ4019
1032	bool "Qualcomm IPQ4019 MDIO interface support"
1033	depends on DM_MDIO
1034	help
1035	  This driver supports the MDIO interface found in Qualcomm
1036	  IPQ40xx series Soc-s.
1037
1038config MVMDIO
1039	bool "Marvell MDIO interface support"
1040	depends on DM_MDIO
1041	help
1042	  This driver supports the MDIO interface found in the network
1043	  interface units of the Marvell EBU SoCs (Kirkwood, Orion5x,
1044	  Dove, Armada 370, Armada XP, Armada 37xx and Armada7K/8K/8KP).
1045
1046	  This driver is used by the MVPP2 and MVNETA drivers.
1047
1048config FSL_LS_MDIO
1049	bool "NXP Layerscape MDIO interface support"
1050	depends on DM_MDIO
1051	help
1052	  This driver supports the MDIO bus found on the Fman 10G Ethernet MACs and
1053	  on the mEMAC (which supports both Clauses 22 and 45).
1054
1055config ASPEED_MDIO
1056	bool "Aspeed MDIO interface support"
1057	depends on DM_MDIO
1058	help
1059	  This driver supports the MDIO bus of Aspeed AST2600 SOC.  The driver
1060	  currently supports Clause 22.
1061
1062config MDIO_MUX_MMIOREG
1063	bool "MDIO MUX accessed as a MMIO register access"
1064	depends on DM_MDIO_MUX
1065	help
1066	  This driver is used for MDIO muxes driven by writing to a register in
1067	  the MMIO physical memory.
1068
1069config MDIO_MUX_MESON_G12A
1070	bool "MDIO MUX for Amlogic Meson G12A SoCs"
1071	depends on DM_MDIO_MUX
1072	help
1073	  This driver is used for the MDIO mux found on the Amlogic G12A & compatible
1074	  SoCs.
1075
1076config MDIO_MUX_MESON_GXL
1077	bool "MDIO MUX for Amlogic Meson GXL SoCs"
1078	depends on DM_MDIO_MUX
1079	help
1080	  This driver is used for the MDIO mux found on the Amlogic GXL & compatible
1081	  SoCs.
1082
1083endif # NETDEVICES
1084