| # Atmel SAM Ethernet (GMAC) driver configuration options | 
 |  | 
 | # Copyright (c) 2016 Piotr Mienkowski | 
 | # SPDX-License-Identifier: Apache-2.0 | 
 |  | 
 | menuconfig ETH_SAM_GMAC | 
 | 	bool "Atmel SAM Ethernet driver" | 
 | 	depends on SOC_FAMILY_SAM | 
 | 	select NOCACHE_MEMORY | 
 | 	help | 
 | 	  Enable Atmel SAM MCU Family Ethernet driver. | 
 |  | 
 | if ETH_SAM_GMAC | 
 |  | 
 | config ETH_SAM_GMAC_QUEUES | 
 | 	int "Number of active hardware TX and RX queues" | 
 | 	default 1 | 
 | 	range 1 $(dt_int_val,DT_INST_0_ATMEL_SAM_GMAC_NUM_QUEUES) | 
 | 	help | 
 | 	  Select the number of hardware queues used by the driver. Packets will be | 
 | 	  routed to appropriate queues based on their priority. | 
 |  | 
 | config ETH_SAM_GMAC_FORCE_QUEUE | 
 | 	bool "Force all traffic to be routed through a specific queue" | 
 | 	depends on ETH_SAM_GMAC_QUEUES > 1 | 
 | 	depends on NET_TC_RX_COUNT < 5 | 
 | 	help | 
 | 	  This option is meant to be used only for debugging. Use it to force all | 
 | 	  traffic to be routed through a specific hardware queue. With this enabled | 
 | 	  it is easier to verify whether the chosen hardware queue actually works. | 
 | 	  This works only if there are four or fewer RX traffic classes enabled, as | 
 | 	  the SAM GMAC hardware supports screening up to four traffic classes. | 
 |  | 
 | config ETH_SAM_GMAC_FORCED_QUEUE | 
 | 	int "Queue to force the packets to" | 
 | 	depends on ETH_SAM_GMAC_FORCE_QUEUE | 
 | 	default 0 | 
 | 	range 0 1 if ETH_SAM_GMAC_QUEUES = 2 | 
 | 	range 0 2 if ETH_SAM_GMAC_QUEUES = 3 | 
 | 	range 0 3 if ETH_SAM_GMAC_QUEUES = 4 | 
 | 	range 0 4 if ETH_SAM_GMAC_QUEUES = 5 | 
 | 	range 0 5 if ETH_SAM_GMAC_QUEUES = 6 | 
 | 	help | 
 | 	  Which queue to force the routing to. This affects both the TX and RX queues | 
 | 	  setup. | 
 |  | 
 | config ETH_SAM_GMAC_BUF_RX_COUNT | 
 | 	int "Network RX buffers preallocated by the SAM ETH driver" | 
 | 	default 12 | 
 | 	help | 
 | 	  Number of network buffers that will be permanently allocated by the | 
 | 	  Ethernet driver. These buffers are used in receive path. They are | 
 | 	  preallocated by the driver and made available to the GMAC module to be | 
 | 	  filled in with incoming data. Their number has to be large enough to fit | 
 | 	  at least one complete Ethernet frame. SAM ETH driver will always allocate | 
 | 	  that amount of buffers for itself thus reducing the NET_BUF_RX_COUNT | 
 | 	  which is a total amount of RX data buffers used by the whole networking | 
 | 	  stack. One has to ensure that NET_PKT_RX_COUNT is large enough to | 
 | 	  fit at least two Ethernet frames: one being received by the GMAC module | 
 | 	  and the other being processed by the higher layer networking stack. | 
 |  | 
 | config ETH_SAM_GMAC_MONITOR_PERIOD | 
 | 	int "Monitor task execution period" | 
 | 	default 1000 | 
 | 	help | 
 | 	  Monitor task execution period in milliseconds. The monitor task is | 
 | 	  periodically executed to detect and report any changes in the PHY | 
 | 	  link status to the operating system. | 
 |  | 
 | choice ETH_SAM_GMAC_MAC_SELECT | 
 | 	prompt "MAC address" | 
 | 	help | 
 | 	  Choose how to configure MAC address. | 
 |  | 
 | config ETH_SAM_GMAC_MAC_MANUAL | 
 | 	bool "Manual" | 
 | 	help | 
 | 	  Assign the MAC address specified in the device tree. | 
 |  | 
 | config ETH_SAM_GMAC_MAC_I2C_EEPROM | 
 | 	bool "Read from an I2C EEPROM" | 
 | 	help | 
 | 	  Read MAC address from an I2C EEPROM. | 
 |  | 
 | config ETH_SAM_GMAC_RANDOM_MAC | 
 | 	bool "Random MAC address" | 
 | 	help | 
 | 	  Generate a random MAC address dynamically. | 
 |  | 
 | endchoice | 
 |  | 
 | if ETH_SAM_GMAC_MAC_I2C_EEPROM | 
 |  | 
 | config ETH_SAM_GMAC_MAC_I2C_SLAVE_ADDRESS | 
 | 	hex "I2C 7-bit EEPROM chip address" | 
 | 	range 0 0xff | 
 | 	help | 
 | 	  I2C 7-bit address of the EEPROM chip. | 
 |  | 
 | config ETH_SAM_GMAC_MAC_I2C_INT_ADDRESS | 
 | 	hex "I2C EEPROM internal address" | 
 | 	range 0 0xffffffff | 
 | 	help | 
 | 	  Internal address of the EEPROM chip where the MAC address is stored. | 
 | 	  Chips with 1 to 4 byte internal address size are supported. Address | 
 | 	  size has to be configured in a separate Kconfig option. | 
 |  | 
 | config ETH_SAM_GMAC_MAC_I2C_INT_ADDRESS_SIZE | 
 | 	int "I2C EEPROM internal address size" | 
 | 	default 1 | 
 | 	range 1 4 | 
 | 	help | 
 | 	  Size (in bytes) of the internal EEPROM address. | 
 |  | 
 | config ETH_SAM_GMAC_MAC_I2C_DEV_NAME | 
 | 	string "I2C bus driver device name" | 
 | 	help | 
 | 	  Device name, e.g. I2C_0, of an I2C bus driver device. It is required to | 
 | 	  obtain handle to the I2C device object. | 
 |  | 
 | endif # ETH_SAM_GMAC_MAC_I2C_EEPROM | 
 |  | 
 | choice | 
 | 	prompt "MII/RMII Interface to the Physical Layer" | 
 |  | 
 | 	config ETH_SAM_GMAC_RMII | 
 | 		bool "RMII" | 
 |  | 
 | 	config ETH_SAM_GMAC_MII | 
 | 		bool "MII" | 
 | endchoice | 
 |  | 
 | config ETH_SAM_GMAC_PHY_ADDR | 
 | 	int "GMAC PHY Address" | 
 | 	default 0 | 
 | 	help | 
 | 	  GMAC PHY Address as used by IEEE 802.3, Section 2 MII compatible PHY | 
 | 	  transceivers. If you have a single PHY on board it is safe to leave it | 
 | 	  at 0 which is the broadcast address. | 
 |  | 
 | config PTP_CLOCK_SAM_GMAC | 
 | 	bool "SAM GMAC PTP clock driver support" | 
 | 	default y | 
 | 	select PTP_CLOCK | 
 | 	depends on NET_GPTP | 
 | 	help | 
 | 	  Enable SAM GMAC PTP Clock support. | 
 |  | 
 | endif # ETH_SAM_GMAC |