0b08de0ef4583d17548a430d5ca0128ba0a3f90c
[oweals/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         help
166           This driver supports Intel(R) PRO/1000 gigabit ethernet family of
167           adapters.  For more information on how to identify your adapter, go
168           to the Adapter & Driver ID Guide at:
169
170           <http://support.intel.com/support/network/adapter/pro100/21397.htm>
171
172 config E1000_SPI_GENERIC
173         bool "Allow access to the Intel 8257x SPI bus"
174         depends on E1000
175         help
176           Allow generic access to the SPI bus on the Intel 8257x, for
177           example with the "sspi" command.
178
179 config E1000_SPI
180         bool "Enable SPI bus utility code"
181         depends on E1000
182         help
183           Utility code for direct access to the SPI bus on Intel 8257x.
184           This does not do anything useful unless you set at least one
185           of CONFIG_CMD_E1000 or CONFIG_E1000_SPI_GENERIC.
186
187 config CMD_E1000
188         bool "Enable the e1000 command"
189         depends on E1000
190         help
191           This enables the 'e1000' management command for E1000 devices. When
192           used on devices with SPI support you can reprogram the EEPROM from
193           U-Boot.
194
195 config ETH_SANDBOX
196         depends on DM_ETH && SANDBOX
197         default y
198         bool "Sandbox: Mocked Ethernet driver"
199         help
200           This driver simply responds with fake ARP replies and ping
201           replies that are used to verify network stack functionality
202
203           This driver is particularly useful in the test/dm/eth.c tests
204
205 config ETH_SANDBOX_RAW
206         depends on DM_ETH && SANDBOX
207         default y
208         bool "Sandbox: Bridge to Linux Raw Sockets"
209         help
210           This driver is a bridge from the bottom of the network stack
211           in U-Boot to the RAW AF_PACKET API in Linux. This allows real
212           network traffic to be tested from within sandbox. See
213           doc/arch/index.rst for more details.
214
215 config ETH_DESIGNWARE
216         bool "Synopsys Designware Ethernet MAC"
217         select PHYLIB
218         imply ETH_DESIGNWARE_SOCFPGA if ARCH_SOCFPGA
219         help
220           This MAC is present in SoCs from various vendors. It supports
221           100Mbit and 1 Gbit operation. You must enable CONFIG_PHYLIB to
222           provide the PHY (physical media interface).
223
224 config ETH_DESIGNWARE_SOCFPGA
225         select REGMAP
226         select SYSCON
227         bool "Altera SoCFPGA extras for Synopsys Designware Ethernet MAC"
228         depends on DM_ETH && ETH_DESIGNWARE
229         help
230           The Altera SoCFPGA requires additional configuration of the
231           Altera system manager to correctly interface with the PHY.
232           This code handles those SoC specifics.
233
234 config ETHOC
235         bool "OpenCores 10/100 Mbps Ethernet MAC"
236         help
237           This MAC is present in OpenRISC and Xtensa XTFPGA boards.
238
239 config FEC_MXC_SHARE_MDIO
240         bool "Share the MDIO bus for FEC controller"
241         depends on FEC_MXC
242
243 config FEC_MXC_MDIO_BASE
244         hex "MDIO base address for the FEC controller"
245         depends on FEC_MXC_SHARE_MDIO
246         help
247           This specifies the MDIO registers base address. It is used when
248           two FEC controllers share MDIO bus.
249
250 config FEC_MXC
251         bool "FEC Ethernet controller"
252         depends on MX28 || MX5 || MX6 || MX7 || IMX8 || IMX8M || VF610
253         help
254           This driver supports the 10/100 Fast Ethernet controller for
255           NXP i.MX processors.
256
257 config FMAN_ENET
258         bool "Freescale FMan ethernet support"
259         depends on ARM || PPC
260         help
261           This driver support the Freescale FMan Ethernet controller
262
263 config FTMAC100
264         bool "Ftmac100 Ethernet Support"
265         help
266           This MAC is present in Andestech SoCs.
267
268 config FTGMAC100
269         bool "Ftgmac100 Ethernet Support"
270         depends on DM_ETH
271         select PHYLIB
272         help
273           This driver supports the Faraday's FTGMAC100 Gigabit SoC
274           Ethernet controller that can be found on Aspeed SoCs (which
275           include NCSI).
276
277           It is fully compliant with IEEE 802.3 specification for
278           10/100 Mbps Ethernet and IEEE 802.3z specification for 1000
279           Mbps Ethernet and includes Reduced Media Independent
280           Interface (RMII) and Reduced Gigabit Media Independent
281           Interface (RGMII) interfaces. It adopts an AHB bus interface
282           and integrates a link list DMA engine with direct M-Bus
283           accesses for transmitting and receiving packets. It has
284           independent TX/RX fifos, supports half and full duplex (1000
285           Mbps mode only supports full duplex), flow control for full
286           duplex and backpressure for half duplex.
287
288           The FTGMAC100 also implements IP, TCP, UDP checksum offloads
289           and supports IEEE 802.1Q VLAN tag insertion and removal. It
290           offers high-priority transmit queue for QoS and CoS
291           applications.
292
293
294 config MCFFEC
295         bool "ColdFire Ethernet Support"
296         depends on DM_ETH
297         select PHYLIB
298         help
299           This driver supports the network interface units in the
300           ColdFire family.
301
302 config FSLDMAFEC
303         bool "ColdFire DMA Ethernet Support"
304         depends on DM_ETH
305         select PHYLIB
306         help
307           This driver supports the network interface units in the
308           ColdFire family.
309
310 config KS8851_MLL
311         bool "Microchip KS8851-MLL controller driver"
312         help
313           The Microchip KS8851 parallel bus external ethernet interface chip.
314
315 if KS8851_MLL
316 if !DM_ETH
317 config KS8851_MLL_BASEADDR
318         hex "Microchip KS8851-MLL Base Address"
319         help
320           Define this to hold the physical address of the device (I/O space)
321 endif #DM_ETH
322 endif #KS8851_MLL
323
324 config MVGBE
325         bool "Marvell Orion5x/Kirkwood network interface support"
326         depends on ARCH_KIRKWOOD || ARCH_ORION5X
327         select PHYLIB if DM_ETH
328         help
329           This driver supports the network interface units in the
330           Marvell Orion5x and Kirkwood SoCs
331
332 config MVNETA
333         bool "Marvell Armada XP/385/3700 network interface support"
334         depends on ARMADA_XP || ARMADA_38X || ARMADA_3700
335         select PHYLIB
336         help
337           This driver supports the network interface units in the
338           Marvell ARMADA XP, ARMADA 38X and ARMADA 3700 SoCs
339
340 config MVPP2
341         bool "Marvell Armada 375/7K/8K network interface support"
342         depends on ARMADA_375 || ARMADA_8K
343         select PHYLIB
344         select MVMDIO
345         select DM_MDIO
346         help
347           This driver supports the network interface units in the
348           Marvell ARMADA 375, 7K and 8K SoCs.
349
350 config MACB
351         bool "Cadence MACB/GEM Ethernet Interface"
352         depends on DM_ETH
353         select PHYLIB
354         help
355           The Cadence MACB ethernet interface is found on many Atmel
356           AT91 and SAMA5 parts.  This driver also supports the Cadence
357           GEM (Gigabit Ethernet MAC) found in some ARM SoC devices.
358           Say Y to include support for the MACB/GEM chip.
359
360 config MACB_ZYNQ
361         bool "Cadence MACB/GEM Ethernet Interface for Xilinx Zynq"
362         depends on MACB
363         help
364           The Cadence MACB ethernet interface was used on Zynq platform.
365           Say Y to enable support for the MACB/GEM in Zynq chip.
366
367 config MT7628_ETH
368         bool "MediaTek MT7628 Ethernet Interface"
369         depends on SOC_MT7628
370         select PHYLIB
371         help
372           The MediaTek MT7628 ethernet interface is used on MT7628 and
373           MT7688 based boards.
374
375 config PCH_GBE
376         bool "Intel Platform Controller Hub EG20T GMAC driver"
377         depends on DM_ETH && DM_PCI
378         select PHYLIB
379         help
380           This MAC is present in Intel Platform Controller Hub EG20T. It
381           supports 10/100/1000 Mbps operation.
382
383 config RGMII
384         bool "Enable RGMII"
385         help
386           Enable the support of the Reduced Gigabit Media-Independent
387           Interface (RGMII).
388
389 config MII
390         bool "Enable MII"
391         help
392           Enable support of the Media-Independent Interface (MII)
393
394 config RTL8139
395         bool "Realtek 8139 series Ethernet controller driver"
396         help
397           This driver supports Realtek 8139 series fast ethernet family of
398           PCI chipsets/adapters.
399
400 config RTL8169
401         bool "Realtek 8169 series Ethernet controller driver"
402         help
403           This driver supports Realtek 8169 series gigabit ethernet family of
404           PCI/PCIe chipsets/adapters.
405
406 config SMC911X
407         bool "SMSC LAN911x and LAN921x controller driver"
408
409 if SMC911X
410
411 if !DM_ETH
412 config SMC911X_BASE
413         hex "SMC911X Base Address"
414         help
415           Define this to hold the physical address
416           of the device (I/O space)
417 endif #DM_ETH
418
419 choice
420         prompt "SMC911X bus width"
421         default SMC911X_16_BIT
422
423 config SMC911X_32_BIT
424         bool "Enable 32-bit interface"
425
426 config SMC911X_16_BIT
427         bool "Enable 16-bit interface"
428         help
429           Define this if data bus is 16 bits. If your processor
430           automatically converts one 32 bit word to two 16 bit
431           words you may also try CONFIG_SMC911X_32_BIT.
432
433 endchoice
434 endif #SMC911X
435
436 config SUN7I_GMAC
437         bool "Enable Allwinner GMAC Ethernet support"
438         help
439           Enable the support for Sun7i GMAC Ethernet controller
440
441 config SUN7I_GMAC_FORCE_TXERR
442         bool "Force PA17 as gmac function"
443         depends on SUN7I_GMAC
444         help
445           Some ethernet phys needs TXERR control. Since the GMAC
446           doesn't have such signal, setting PA17 as GMAC function
447           makes the pin output low, which enables data transmission.
448
449 config SUN4I_EMAC
450         bool "Allwinner Sun4i Ethernet MAC support"
451         depends on DM_ETH
452         select PHYLIB
453         help
454           This driver supports the Allwinner based SUN4I Ethernet MAC.
455
456 config SUN8I_EMAC
457         bool "Allwinner Sun8i Ethernet MAC support"
458         depends on DM_ETH
459         select PHYLIB
460         select PHY_GIGE
461         help
462           This driver supports the  Allwinner based SUN8I/SUN50I Ethernet MAC.
463           It can be found in H3/A64/A83T based SoCs and compatible with both
464           External and Internal PHYs.
465
466 config SH_ETHER
467         bool "Renesas SH Ethernet MAC"
468         select PHYLIB
469         help
470           This driver supports the Ethernet for Renesas SH and ARM SoCs.
471
472 source "drivers/net/ti/Kconfig"
473
474 config XILINX_AXIEMAC
475         depends on DM_ETH && (MICROBLAZE || ARCH_ZYNQ || ARCH_ZYNQMP)
476         select PHYLIB
477         select MII
478         bool "Xilinx AXI Ethernet"
479         help
480           This MAC is present in Xilinx Microblaze, Zynq and ZynqMP SoCs.
481
482 config XILINX_EMACLITE
483         depends on DM_ETH && (MICROBLAZE || ARCH_ZYNQ || ARCH_ZYNQMP || MIPS)
484         select PHYLIB
485         select MII
486         bool "Xilinx Ethernetlite"
487         help
488           This MAC is present in Xilinx Microblaze, Zynq and ZynqMP SoCs.
489
490 config ZYNQ_GEM
491         depends on DM_ETH && (ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL)
492         select PHYLIB
493         bool "Xilinx Ethernet GEM"
494         help
495           This MAC is present in Xilinx Zynq and ZynqMP SoCs.
496
497 config PIC32_ETH
498         bool "Microchip PIC32 Ethernet Support"
499         depends on DM_ETH && MACH_PIC32
500         select PHYLIB
501         help
502           This driver implements 10/100 Mbps Ethernet and MAC layer for
503           Microchip PIC32 microcontrollers.
504
505 config GMAC_ROCKCHIP
506         bool "Rockchip Synopsys Designware Ethernet MAC"
507         depends on DM_ETH && ETH_DESIGNWARE
508         help
509           This driver provides Rockchip SoCs network support based on the
510           Synopsys Designware driver.
511
512 config RENESAS_RAVB
513         bool "Renesas Ethernet AVB MAC"
514         depends on DM_ETH && RCAR_GEN3
515         select PHYLIB
516         help
517           This driver implements support for the Ethernet AVB block in
518           Renesas M3 and H3 SoCs.
519
520 config MPC8XX_FEC
521         bool "Fast Ethernet Controller on MPC8XX"
522         depends on MPC8xx
523         select MII
524         help
525           This driver implements support for the Fast Ethernet Controller
526           on MPC8XX
527
528 config SNI_AVE
529         bool "Socionext AVE Ethernet support"
530         depends on DM_ETH && ARCH_UNIPHIER
531         select PHYLIB
532         select SYSCON
533         select REGMAP
534         help
535           This driver implements support for the Socionext AVE Ethernet
536           controller, as found on the Socionext UniPhier family.
537
538 source "drivers/net/mscc_eswitch/Kconfig"
539
540 config ETHER_ON_FEC1
541         bool "FEC1"
542         depends on MPC8XX_FEC
543         default y
544
545 config FEC1_PHY
546         int "FEC1 PHY"
547         depends on ETHER_ON_FEC1
548         default -1
549         help
550           Define to the hardcoded PHY address which corresponds
551           to the given FEC; i. e.
552                 #define CONFIG_FEC1_PHY 4
553           means that the PHY with address 4 is connected to FEC1
554
555           When set to -1, means to probe for first available.
556
557 config PHY_NORXERR
558         bool "PHY_NORXERR"
559         depends on ETHER_ON_FEC1
560         default n
561         help
562           The PHY does not have a RXERR line (RMII only).
563           (so program the FEC to ignore it).
564
565 config ETHER_ON_FEC2
566         bool "FEC2"
567         depends on MPC8XX_FEC && MPC885
568         default y
569
570 config FEC2_PHY
571         int "FEC2 PHY"
572         depends on ETHER_ON_FEC2
573         default -1
574         help
575           Define to the hardcoded PHY address which corresponds
576           to the given FEC; i. e.
577                 #define CONFIG_FEC1_PHY 4
578           means that the PHY with address 4 is connected to FEC1
579
580           When set to -1, means to probe for first available.
581
582 config FEC2_PHY_NORXERR
583         bool "PHY_NORXERR"
584         depends on ETHER_ON_FEC2
585         default n
586         help
587           The PHY does not have a RXERR line (RMII only).
588           (so program the FEC to ignore it).
589
590 config SYS_DPAA_QBMAN
591         bool "Device tree fixup for QBMan on freescale SOCs"
592         depends on (ARM || PPC) && !SPL_BUILD
593         default y if ARCH_B4860 || \
594                      ARCH_B4420 || \
595                      ARCH_P1023 || \
596                      ARCH_P2041 || \
597                      ARCH_T1023 || \
598                      ARCH_T1024 || \
599                      ARCH_T1040 || \
600                      ARCH_T1042 || \
601                      ARCH_T2080 || \
602                      ARCH_T2081 || \
603                      ARCH_T4240 || \
604                      ARCH_T4160 || \
605                      ARCH_P4080 || \
606                      ARCH_P3041 || \
607                      ARCH_P5040 || \
608                      ARCH_P5020 || \
609                      ARCH_LS1043A || \
610                      ARCH_LS1046A
611         help
612           QBman fixups to allow deep sleep in DPAA 1 SOCs
613
614 config TSEC_ENET
615         select PHYLIB
616         bool "Enable Three-Speed Ethernet Controller"
617         help
618           This driver implements support for the (Enhanced) Three-Speed
619           Ethernet Controller found on Freescale SoCs.
620
621 config MEDIATEK_ETH
622         bool "MediaTek Ethernet GMAC Driver"
623         depends on DM_ETH
624         select PHYLIB
625         select DM_GPIO
626         select DM_RESET
627         help
628           This Driver support MediaTek Ethernet GMAC
629           Say Y to enable support for the MediaTek Ethernet GMAC.
630
631 config HIGMACV300_ETH
632         bool "HiSilicon Gigabit Ethernet Controller"
633         depends on DM_ETH
634         select DM_RESET
635         select PHYLIB
636         help
637           This driver supports HIGMACV300 Ethernet controller found on
638           HiSilicon SoCs.
639
640 config FSL_ENETC
641         bool "NXP ENETC Ethernet controller"
642         depends on DM_PCI && DM_ETH && DM_MDIO
643         help
644           This driver supports the NXP ENETC Ethernet controller found on some
645           of the NXP SoCs.
646
647 config MDIO_MUX_I2CREG
648         bool "MDIO MUX accessed as a register over I2C"
649         depends on DM_MDIO_MUX && DM_I2C
650         help
651           This driver is used for MDIO muxes driven by writing to a register of
652           an I2C chip.  The board it was developed for uses a mux controlled by
653           on-board FPGA which in turn is accessed as a chip over I2C.
654
655 config MVMDIO
656         bool "Marvell MDIO interface support"
657         depends on DM_MDIO
658         help
659           This driver supports the MDIO interface found in the network
660           interface units of the Marvell EBU SoCs (Kirkwood, Orion5x,
661           Dove, Armada 370, Armada XP, Armada 37xx and Armada7K/8K/8KP).
662
663           This driver is used by the MVPP2 and MVNETA drivers.
664
665 config FSL_LS_MDIO
666         bool "NXP Layerscape MDIO interface support"
667         depends on DM_MDIO
668         help
669           This driver supports the MDIO bus found on the Fman 10G Ethernet MACs and
670           on the mEMAC (which supports both Clauses 22 and 45).
671
672 endif # NETDEVICES