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