ed07a78044ec4dcd99a33df714655b6fc911bb81
[platform/kernel/u-boot.git] / drivers / net / Kconfig
1 source "drivers/net/phy/Kconfig"
2 source "drivers/net/pfe_eth/Kconfig"
3 source "drivers/net/fsl-mc/Kconfig"
4
5 config DM_ETH
6         bool "Enable Driver Model for Ethernet drivers"
7         depends on DM
8         help
9           Enable driver model for Ethernet.
10
11           The eth_*() interface will be implemented by the UCLASS_ETH class
12           This is currently implemented in net/eth-uclass.c
13           Look in include/net.h for details.
14
15 config DM_MDIO
16         bool "Enable Driver Model for MDIO devices"
17         depends on DM_ETH && PHYLIB
18         help
19           Enable driver model for MDIO devices
20
21           Adds UCLASS_MDIO DM class supporting MDIO buses that are probed as
22           stand-alone devices.  Useful in particular for systems that support
23           DM_ETH and have a stand-alone MDIO hardware block shared by multiple
24           Ethernet interfaces.
25           This is currently implemented in net/mdio-uclass.c
26           Look in include/miiphy.h for details.
27
28 config DM_MDIO_MUX
29         bool "Enable Driver Model for MDIO MUX devices"
30         depends on DM_MDIO
31         help
32           Enable driver model for MDIO MUX devices
33
34           Adds UCLASS_MDIO_MUX DM class supporting MDIO MUXes.  Useful for
35           systems that support DM_MDIO and integrate one or multiple muxes on
36           the MDIO bus.
37           This is currently implemented in net/mdio-mux-uclass.c
38           Look in include/miiphy.h for details.
39
40 config MDIO_SANDBOX
41         depends on DM_MDIO && SANDBOX
42         default y
43         bool "Sandbox: Mocked MDIO driver"
44         help
45           This driver implements dummy read/write/reset MDIO functions mimicking
46           a bus with a single PHY.
47
48           This driver is used in for testing in test/dm/mdio.c
49
50 config MDIO_MUX_SANDBOX
51         depends on DM_MDIO_MUX && MDIO_SANDBOX
52         default y
53         bool "Sandbox: Mocked MDIO-MUX driver"
54         help
55           This driver implements dummy select/deselect ops mimicking a MUX on
56           the MDIO bux.  It uses mdio_sandbox driver as parent MDIO.
57
58           This driver is used for testing in test/dm/mdio.c
59
60 config DM_ETH_PHY
61         bool "Enable Driver Model for Ethernet Generic PHY drivers"
62         depends on DM
63         help
64           Enable driver model for Ethernet Generic PHY .
65
66 menuconfig NETDEVICES
67         bool "Network device support"
68         depends on NET
69         default y if DM_ETH
70         help
71           You must select Y to enable any network device support
72           Generally if you have any networking support this is a given
73
74           If unsure, say Y
75
76 if NETDEVICES
77
78 config PHY_GIGE
79         bool "Enable GbE PHY status parsing and configuration"
80         help
81           Enables support for parsing the status output and for
82           configuring GbE PHYs (affects the inner workings of some
83           commands and miiphyutil.c).
84
85 config AG7XXX
86         bool "Atheros AG7xxx Ethernet MAC support"
87         depends on DM_ETH && ARCH_ATH79
88         select PHYLIB
89         help
90           This driver supports the Atheros AG7xxx Ethernet MAC. This MAC is
91           present in the Atheros AR7xxx, AR9xxx and QCA9xxx MIPS chips.
92
93
94 config ALTERA_TSE
95         bool "Altera Triple-Speed Ethernet MAC support"
96         depends on DM_ETH
97         select PHYLIB
98         help
99           This driver supports the Altera Triple-Speed (TSE) Ethernet MAC.
100           Please find details on the "Triple-Speed Ethernet MegaCore Function
101           Resource Center" of Altera.
102
103 config BCM_SF2_ETH
104         bool "Broadcom SF2 (Starfighter2) Ethernet support"
105         select PHYLIB
106         help
107           This is an abstract framework which provides a generic interface
108           to MAC and DMA management for multiple Broadcom SoCs such as
109           Cygnus, NSP and bcm28155_ap platforms.
110
111 config BCM_SF2_ETH_DEFAULT_PORT
112         int "Broadcom SF2 (Starfighter2) Ethernet default port number"
113         depends on BCM_SF2_ETH
114         default 0
115         help
116           Default port number for the Starfighter2 ethernet driver.
117
118 config BCM_SF2_ETH_GMAC
119         bool "Broadcom SF2 (Starfighter2) GMAC Ethernet support"
120         depends on BCM_SF2_ETH
121         help
122           This flag enables the ethernet support for Broadcom platforms with
123           GMAC such as Cygnus. This driver is based on the framework provided
124           by the BCM_SF2_ETH driver.
125           Say Y to any bcmcygnus based platforms.
126
127 config BCM6348_ETH
128         bool "BCM6348 EMAC support"
129         depends on DM_ETH && ARCH_BMIPS
130         select DMA
131         select DMA_CHANNELS
132         select MII
133         select PHYLIB
134         help
135           This driver supports the BCM6348 Ethernet MAC.
136
137 config BCM6368_ETH
138         bool "BCM6368 EMAC support"
139         depends on DM_ETH && ARCH_BMIPS
140         select DMA
141         select MII
142         help
143           This driver supports the BCM6368 Ethernet MAC.
144
145 config BCMGENET
146         bool "BCMGENET V5 support"
147         depends on DM_ETH
148         select PHYLIB
149         help
150           This driver supports the BCMGENET Ethernet MAC.
151
152 config DWC_ETH_QOS
153         bool "Synopsys DWC Ethernet QOS device support"
154         depends on DM_ETH
155         select PHYLIB
156         help
157           This driver supports the Synopsys Designware Ethernet QOS (Quality
158           Of Service) IP block. The IP supports many options for bus type,
159           clocking/reset structure, and feature list. This driver currently
160           supports the specific configuration used in NVIDIA's Tegra186 chip,
161           but should be extensible to other combinations quite easily.
162
163 config E1000
164         bool "Intel PRO/1000 Gigabit Ethernet support"
165         depends on (DM_ETH && DM_PCI) || !DM_ETH
166         help
167           This driver supports Intel(R) PRO/1000 gigabit ethernet family of
168           adapters.  For more information on how to identify your adapter, go
169           to the Adapter & Driver ID Guide at:
170
171           <http://support.intel.com/support/network/adapter/pro100/21397.htm>
172
173 config E1000_SPI_GENERIC
174         bool "Allow access to the Intel 8257x SPI bus"
175         depends on E1000
176         help
177           Allow generic access to the SPI bus on the Intel 8257x, for
178           example with the "sspi" command.
179
180 config E1000_SPI
181         bool "Enable SPI bus utility code"
182         depends on E1000
183         help
184           Utility code for direct access to the SPI bus on Intel 8257x.
185           This does not do anything useful unless you set at least one
186           of CONFIG_CMD_E1000 or CONFIG_E1000_SPI_GENERIC.
187
188 config CMD_E1000
189         bool "Enable the e1000 command"
190         depends on E1000
191         help
192           This enables the 'e1000' management command for E1000 devices. When
193           used on devices with SPI support you can reprogram the EEPROM from
194           U-Boot.
195
196 config EEPRO100
197         bool "Intel PRO/100 82557/82559/82559ER Fast Ethernet support"
198         help
199           This driver supports Intel(R) PRO/100 82557/82559/82559ER fast
200           ethernet family of adapters.
201
202 config ETH_SANDBOX
203         depends on DM_ETH && SANDBOX
204         default y
205         bool "Sandbox: Mocked Ethernet driver"
206         help
207           This driver simply responds with fake ARP replies and ping
208           replies that are used to verify network stack functionality
209
210           This driver is particularly useful in the test/dm/eth.c tests
211
212 config ETH_SANDBOX_RAW
213         depends on DM_ETH && SANDBOX
214         default y
215         bool "Sandbox: Bridge to Linux Raw Sockets"
216         help
217           This driver is a bridge from the bottom of the network stack
218           in U-Boot to the RAW AF_PACKET API in Linux. This allows real
219           network traffic to be tested from within sandbox. See
220           doc/arch/index.rst for more details.
221
222 config ETH_DESIGNWARE
223         bool "Synopsys Designware Ethernet MAC"
224         select PHYLIB
225         imply ETH_DESIGNWARE_SOCFPGA if ARCH_SOCFPGA
226         help
227           This MAC is present in SoCs from various vendors. It supports
228           100Mbit and 1 Gbit operation. You must enable CONFIG_PHYLIB to
229           provide the PHY (physical media interface).
230
231 config ETH_DESIGNWARE_SOCFPGA
232         select REGMAP
233         select SYSCON
234         bool "Altera SoCFPGA extras for Synopsys Designware Ethernet MAC"
235         depends on DM_ETH && ETH_DESIGNWARE
236         help
237           The Altera SoCFPGA requires additional configuration of the
238           Altera system manager to correctly interface with the PHY.
239           This code handles those SoC specifics.
240
241 config ETHOC
242         bool "OpenCores 10/100 Mbps Ethernet MAC"
243         help
244           This MAC is present in OpenRISC and Xtensa XTFPGA boards.
245
246 config FEC_MXC_SHARE_MDIO
247         bool "Share the MDIO bus for FEC controller"
248         depends on FEC_MXC
249
250 config FEC_MXC_MDIO_BASE
251         hex "MDIO base address for the FEC controller"
252         depends on FEC_MXC_SHARE_MDIO
253         help
254           This specifies the MDIO registers base address. It is used when
255           two FEC controllers share MDIO bus.
256
257 config FEC_MXC
258         bool "FEC Ethernet controller"
259         depends on MX28 || MX5 || MX6 || MX7 || IMX8 || IMX8M || VF610
260         help
261           This driver supports the 10/100 Fast Ethernet controller for
262           NXP i.MX processors.
263
264 config FMAN_ENET
265         bool "Freescale FMan ethernet support"
266         depends on ARM || PPC
267         help
268           This driver support the Freescale FMan Ethernet controller
269
270 config FTMAC100
271         bool "Ftmac100 Ethernet Support"
272         help
273           This MAC is present in Andestech SoCs.
274
275 config FTGMAC100
276         bool "Ftgmac100 Ethernet Support"
277         depends on DM_ETH
278         select PHYLIB
279         help
280           This driver supports the Faraday's FTGMAC100 Gigabit SoC
281           Ethernet controller that can be found on Aspeed SoCs (which
282           include NCSI).
283
284           It is fully compliant with IEEE 802.3 specification for
285           10/100 Mbps Ethernet and IEEE 802.3z specification for 1000
286           Mbps Ethernet and includes Reduced Media Independent
287           Interface (RMII) and Reduced Gigabit Media Independent
288           Interface (RGMII) interfaces. It adopts an AHB bus interface
289           and integrates a link list DMA engine with direct M-Bus
290           accesses for transmitting and receiving packets. It has
291           independent TX/RX fifos, supports half and full duplex (1000
292           Mbps mode only supports full duplex), flow control for full
293           duplex and backpressure for half duplex.
294
295           The FTGMAC100 also implements IP, TCP, UDP checksum offloads
296           and supports IEEE 802.1Q VLAN tag insertion and removal. It
297           offers high-priority transmit queue for QoS and CoS
298           applications.
299
300
301 config MCFFEC
302         bool "ColdFire Ethernet Support"
303         depends on DM_ETH
304         select PHYLIB
305         help
306           This driver supports the network interface units in the
307           ColdFire family.
308
309 config FSLDMAFEC
310         bool "ColdFire DMA Ethernet Support"
311         depends on DM_ETH
312         select PHYLIB
313         help
314           This driver supports the network interface units in the
315           ColdFire family.
316
317 config KS8851_MLL
318         bool "Microchip KS8851-MLL controller driver"
319         help
320           The Microchip KS8851 parallel bus external ethernet interface chip.
321
322 if KS8851_MLL
323 if !DM_ETH
324 config KS8851_MLL_BASEADDR
325         hex "Microchip KS8851-MLL Base Address"
326         help
327           Define this to hold the physical address of the device (I/O space)
328 endif #DM_ETH
329 endif #KS8851_MLL
330
331 config MVGBE
332         bool "Marvell Orion5x/Kirkwood network interface support"
333         depends on ARCH_KIRKWOOD || ARCH_ORION5X
334         select PHYLIB if DM_ETH
335         help
336           This driver supports the network interface units in the
337           Marvell Orion5x and Kirkwood SoCs
338
339 config MVNETA
340         bool "Marvell Armada XP/385/3700 network interface support"
341         depends on ARMADA_XP || ARMADA_38X || ARMADA_3700
342         select PHYLIB
343         help
344           This driver supports the network interface units in the
345           Marvell ARMADA XP, ARMADA 38X and ARMADA 3700 SoCs
346
347 config MVPP2
348         bool "Marvell Armada 375/7K/8K network interface support"
349         depends on ARMADA_375 || ARMADA_8K
350         select PHYLIB
351         select MVMDIO
352         select DM_MDIO
353         help
354           This driver supports the network interface units in the
355           Marvell ARMADA 375, 7K and 8K SoCs.
356
357 config MACB
358         bool "Cadence MACB/GEM Ethernet Interface"
359         depends on DM_ETH
360         select PHYLIB
361         help
362           The Cadence MACB ethernet interface is found on many Atmel
363           AT91 and SAMA5 parts.  This driver also supports the Cadence
364           GEM (Gigabit Ethernet MAC) found in some ARM SoC devices.
365           Say Y to include support for the MACB/GEM chip.
366
367 config MACB_ZYNQ
368         bool "Cadence MACB/GEM Ethernet Interface for Xilinx Zynq"
369         depends on MACB
370         help
371           The Cadence MACB ethernet interface was used on Zynq platform.
372           Say Y to enable support for the MACB/GEM in Zynq chip.
373
374 config MT7628_ETH
375         bool "MediaTek MT7628 Ethernet Interface"
376         depends on SOC_MT7628
377         select PHYLIB
378         help
379           The MediaTek MT7628 ethernet interface is used on MT7628 and
380           MT7688 based boards.
381
382 config PCH_GBE
383         bool "Intel Platform Controller Hub EG20T GMAC driver"
384         depends on DM_ETH && DM_PCI
385         select PHYLIB
386         help
387           This MAC is present in Intel Platform Controller Hub EG20T. It
388           supports 10/100/1000 Mbps operation.
389
390 config RGMII
391         bool "Enable RGMII"
392         help
393           Enable the support of the Reduced Gigabit Media-Independent
394           Interface (RGMII).
395
396 config MII
397         bool "Enable MII"
398         help
399           Enable support of the Media-Independent Interface (MII)
400
401 config RTL8139
402         bool "Realtek 8139 series Ethernet controller driver"
403         help
404           This driver supports Realtek 8139 series fast ethernet family of
405           PCI chipsets/adapters.
406
407 config RTL8169
408         bool "Realtek 8169 series Ethernet controller driver"
409         help
410           This driver supports Realtek 8169 series gigabit ethernet family of
411           PCI/PCIe chipsets/adapters.
412
413 config SMC911X
414         bool "SMSC LAN911x and LAN921x controller driver"
415
416 if SMC911X
417
418 if !DM_ETH
419 config SMC911X_BASE
420         hex "SMC911X Base Address"
421         help
422           Define this to hold the physical address
423           of the device (I/O space)
424 endif #DM_ETH
425
426 choice
427         prompt "SMC911X bus width"
428         default SMC911X_16_BIT
429
430 config SMC911X_32_BIT
431         bool "Enable 32-bit interface"
432
433 config SMC911X_16_BIT
434         bool "Enable 16-bit interface"
435         help
436           Define this if data bus is 16 bits. If your processor
437           automatically converts one 32 bit word to two 16 bit
438           words you may also try CONFIG_SMC911X_32_BIT.
439
440 endchoice
441 endif #SMC911X
442
443 config SUN7I_GMAC
444         bool "Enable Allwinner GMAC Ethernet support"
445         help
446           Enable the support for Sun7i GMAC Ethernet controller
447
448 config SUN7I_GMAC_FORCE_TXERR
449         bool "Force PA17 as gmac function"
450         depends on SUN7I_GMAC
451         help
452           Some ethernet phys needs TXERR control. Since the GMAC
453           doesn't have such signal, setting PA17 as GMAC function
454           makes the pin output low, which enables data transmission.
455
456 config SUN4I_EMAC
457         bool "Allwinner Sun4i Ethernet MAC support"
458         depends on DM_ETH
459         select PHYLIB
460         help
461           This driver supports the Allwinner based SUN4I Ethernet MAC.
462
463 config SUN8I_EMAC
464         bool "Allwinner Sun8i Ethernet MAC support"
465         depends on DM_ETH
466         select PHYLIB
467         select PHY_GIGE
468         help
469           This driver supports the  Allwinner based SUN8I/SUN50I Ethernet MAC.
470           It can be found in H3/A64/A83T based SoCs and compatible with both
471           External and Internal PHYs.
472
473 config SH_ETHER
474         bool "Renesas SH Ethernet MAC"
475         select PHYLIB
476         help
477           This driver supports the Ethernet for Renesas SH and ARM SoCs.
478
479 source "drivers/net/ti/Kconfig"
480
481 config XILINX_AXIEMAC
482         depends on DM_ETH && (MICROBLAZE || ARCH_ZYNQ || ARCH_ZYNQMP)
483         select PHYLIB
484         select MII
485         bool "Xilinx AXI Ethernet"
486         help
487           This MAC is present in Xilinx Microblaze, Zynq and ZynqMP SoCs.
488
489 config XILINX_EMACLITE
490         depends on DM_ETH && (MICROBLAZE || ARCH_ZYNQ || ARCH_ZYNQMP || MIPS)
491         select PHYLIB
492         select MII
493         bool "Xilinx Ethernetlite"
494         help
495           This MAC is present in Xilinx Microblaze, Zynq and ZynqMP SoCs.
496
497 config ZYNQ_GEM
498         depends on DM_ETH && (ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL)
499         select PHYLIB
500         bool "Xilinx Ethernet GEM"
501         help
502           This MAC is present in Xilinx Zynq and ZynqMP SoCs.
503
504 config PIC32_ETH
505         bool "Microchip PIC32 Ethernet Support"
506         depends on DM_ETH && MACH_PIC32
507         select PHYLIB
508         help
509           This driver implements 10/100 Mbps Ethernet and MAC layer for
510           Microchip PIC32 microcontrollers.
511
512 config GMAC_ROCKCHIP
513         bool "Rockchip Synopsys Designware Ethernet MAC"
514         depends on DM_ETH && ETH_DESIGNWARE
515         help
516           This driver provides Rockchip SoCs network support based on the
517           Synopsys Designware driver.
518
519 config RENESAS_RAVB
520         bool "Renesas Ethernet AVB MAC"
521         depends on DM_ETH && RCAR_GEN3
522         select PHYLIB
523         help
524           This driver implements support for the Ethernet AVB block in
525           Renesas M3 and H3 SoCs.
526
527 config MPC8XX_FEC
528         bool "Fast Ethernet Controller on MPC8XX"
529         depends on MPC8xx
530         select MII
531         help
532           This driver implements support for the Fast Ethernet Controller
533           on MPC8XX
534
535 config SNI_AVE
536         bool "Socionext AVE Ethernet support"
537         depends on DM_ETH && ARCH_UNIPHIER
538         select PHYLIB
539         select SYSCON
540         select REGMAP
541         help
542           This driver implements support for the Socionext AVE Ethernet
543           controller, as found on the Socionext UniPhier family.
544
545 source "drivers/net/mscc_eswitch/Kconfig"
546
547 config ETHER_ON_FEC1
548         bool "FEC1"
549         depends on MPC8XX_FEC
550         default y
551
552 config FEC1_PHY
553         int "FEC1 PHY"
554         depends on ETHER_ON_FEC1
555         default -1
556         help
557           Define to the hardcoded PHY address which corresponds
558           to the given FEC; i. e.
559                 #define CONFIG_FEC1_PHY 4
560           means that the PHY with address 4 is connected to FEC1
561
562           When set to -1, means to probe for first available.
563
564 config PHY_NORXERR
565         bool "PHY_NORXERR"
566         depends on ETHER_ON_FEC1
567         default n
568         help
569           The PHY does not have a RXERR line (RMII only).
570           (so program the FEC to ignore it).
571
572 config ETHER_ON_FEC2
573         bool "FEC2"
574         depends on MPC8XX_FEC && MPC885
575         default y
576
577 config FEC2_PHY
578         int "FEC2 PHY"
579         depends on ETHER_ON_FEC2
580         default -1
581         help
582           Define to the hardcoded PHY address which corresponds
583           to the given FEC; i. e.
584                 #define CONFIG_FEC1_PHY 4
585           means that the PHY with address 4 is connected to FEC1
586
587           When set to -1, means to probe for first available.
588
589 config FEC2_PHY_NORXERR
590         bool "PHY_NORXERR"
591         depends on ETHER_ON_FEC2
592         default n
593         help
594           The PHY does not have a RXERR line (RMII only).
595           (so program the FEC to ignore it).
596
597 config SYS_DPAA_QBMAN
598         bool "Device tree fixup for QBMan on freescale SOCs"
599         depends on (ARM || PPC) && !SPL_BUILD
600         default y if ARCH_B4860 || \
601                      ARCH_B4420 || \
602                      ARCH_P1023 || \
603                      ARCH_P2041 || \
604                      ARCH_T1023 || \
605                      ARCH_T1024 || \
606                      ARCH_T1040 || \
607                      ARCH_T1042 || \
608                      ARCH_T2080 || \
609                      ARCH_T2081 || \
610                      ARCH_T4240 || \
611                      ARCH_T4160 || \
612                      ARCH_P4080 || \
613                      ARCH_P3041 || \
614                      ARCH_P5040 || \
615                      ARCH_P5020 || \
616                      ARCH_LS1043A || \
617                      ARCH_LS1046A
618         help
619           QBman fixups to allow deep sleep in DPAA 1 SOCs
620
621 config TSEC_ENET
622         select PHYLIB
623         bool "Enable Three-Speed Ethernet Controller"
624         help
625           This driver implements support for the (Enhanced) Three-Speed
626           Ethernet Controller found on Freescale SoCs.
627
628 config MEDIATEK_ETH
629         bool "MediaTek Ethernet GMAC Driver"
630         depends on DM_ETH
631         select PHYLIB
632         select DM_GPIO
633         select DM_RESET
634         help
635           This Driver support MediaTek Ethernet GMAC
636           Say Y to enable support for the MediaTek Ethernet GMAC.
637
638 config HIGMACV300_ETH
639         bool "HiSilicon Gigabit Ethernet Controller"
640         depends on DM_ETH
641         select DM_RESET
642         select PHYLIB
643         help
644           This driver supports HIGMACV300 Ethernet controller found on
645           HiSilicon SoCs.
646
647 config FSL_ENETC
648         bool "NXP ENETC Ethernet controller"
649         depends on DM_PCI && DM_ETH && DM_MDIO
650         help
651           This driver supports the NXP ENETC Ethernet controller found on some
652           of the NXP SoCs.
653
654 config MDIO_MUX_I2CREG
655         bool "MDIO MUX accessed as a register over I2C"
656         depends on DM_MDIO_MUX && DM_I2C
657         help
658           This driver is used for MDIO muxes driven by writing to a register of
659           an I2C chip.  The board it was developed for uses a mux controlled by
660           on-board FPGA which in turn is accessed as a chip over I2C.
661
662 config MVMDIO
663         bool "Marvell MDIO interface support"
664         depends on DM_MDIO
665         help
666           This driver supports the MDIO interface found in the network
667           interface units of the Marvell EBU SoCs (Kirkwood, Orion5x,
668           Dove, Armada 370, Armada XP, Armada 37xx and Armada7K/8K/8KP).
669
670           This driver is used by the MVPP2 and MVNETA drivers.
671
672 config FSL_LS_MDIO
673         bool "NXP Layerscape MDIO interface support"
674         depends on DM_MDIO
675         help
676           This driver supports the MDIO bus found on the Fman 10G Ethernet MACs and
677           on the mEMAC (which supports both Clauses 22 and 45).
678
679 endif # NETDEVICES