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