# Ethernet drivers configuration options

# Copyright (c) 2015 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

menuconfig ETH_DRIVER
	bool "Ethernet Drivers"
	default y
	depends on NET_L2_ETHERNET

if ETH_DRIVER

module = ETHERNET
module-dep = LOG
module-str = Log level for Ethernet driver
module-help = Sets log level for Ethernet Device Drivers.
source "subsys/net/Kconfig.template.log_config.net"

config ETH_QEMU_IFACE_NAME
	string "Network interface name for QEMU"
	default "zeth"
	depends on NET_QEMU_ETHERNET
	help
	  The network interface name for QEMU. This value is given as
	  a parameter to -nic qemu command line option. The network
	  interface must be created before starting QEMU. The net-setup.sh
	  script from net-tools project can be used to create the network
	  interface.

config ETH_QEMU_EXTRA_ARGS
	string "Extra arguments to QEMU -nic option"
	depends on NET_QEMU_ETHERNET
	default ""
	help
	  Extra arguments passed to QEMU -nic option when Ethernet Networking
	  is enabled. Typically this is used to set the network MAC address of
	  Zephyr instance. This option can contain multiple QEMU option
	  arguments. Each QEMU argument must be separated by comma "," and no
	  spaces between arguments. Example: "mac=02:03:04:f0:0d:01" or
	  "mac=02:03:04:f0:0d:01,downscript=no"

source "drivers/ethernet/Kconfig.enc28j60"
source "drivers/ethernet/Kconfig.enc424j600"
source "drivers/ethernet/Kconfig.mcux"
source "drivers/ethernet/Kconfig.e1000"
source "drivers/ethernet/Kconfig.sam_gmac"
source "drivers/ethernet/Kconfig.stm32_hal"
source "drivers/ethernet/Kconfig.dwmac"
source "drivers/ethernet/Kconfig.smsc911x"
source "drivers/ethernet/Kconfig.native_posix"
source "drivers/ethernet/Kconfig.stellaris"
source "drivers/ethernet/Kconfig.liteeth"
source "drivers/ethernet/Kconfig.gecko"
source "drivers/ethernet/Kconfig.w5500"
source "drivers/ethernet/Kconfig.dsa"
source "drivers/ethernet/Kconfig.xlnx_gem"

source "drivers/ethernet/phy/Kconfig"

endif # "Ethernet Drivers"

config ETH_INIT_PRIORITY
	int "Ethernet driver init priority"
	default 80
	help
	  Ethernet device driver initialization priority.
	  Do not mess with it unless you know what you are doing.
	  Note that the priority needs to be lower than the net stack
	  so that it can start before the networking sub-system.
