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