|  | # Kconfig - 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 | 
|  | help | 
|  | Enable Atmel SAM MCU Family Ethernet driver. | 
|  |  | 
|  | if ETH_SAM_GMAC | 
|  |  | 
|  | config ETH_SAM_GMAC_NAME | 
|  | string "Device name" | 
|  | default "ETH_0" | 
|  | help | 
|  | Device name allows user to obtain a handle to the device object | 
|  | required by all driver API functions. Device name has to be unique. | 
|  |  | 
|  | config ETH_SAM_GMAC_QUEUES | 
|  | int "Number of hardware TX and RX queues" | 
|  | default 1 | 
|  | range 1 3 | 
|  | 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_TX_TIMEOUT_MSEC | 
|  | int "TX timeout" | 
|  | default 5000 | 
|  | range 1000 10000 | 
|  | help | 
|  | The maximum time in msec that the driver will wait for a TX interrupt | 
|  | after scheduling a packet to be sent. If no interrupt is reported during | 
|  | that period, all TX packets in the queue will be discarded. | 
|  |  | 
|  | config ETH_SAM_GMAC_BUF_RX_COUNT | 
|  | int "Network RX buffers preallocated by the SAM ETH driver" | 
|  | default 18 | 
|  | 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_IRQ_PRI | 
|  | int "Interrupt priority" | 
|  | default 0 | 
|  | help | 
|  | IRQ priority of Ethernet device | 
|  |  | 
|  | 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 an arbitrary MAC address. | 
|  |  | 
|  | 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_MANUAL | 
|  |  | 
|  | config ETH_SAM_GMAC_MAC0 | 
|  | hex "MAC Address Byte 0" | 
|  | default 0 | 
|  | range 0 0xff | 
|  |  | 
|  | config ETH_SAM_GMAC_MAC1 | 
|  | hex "MAC Address Byte 1" | 
|  | default 0 | 
|  | range 0 0xff | 
|  |  | 
|  | config ETH_SAM_GMAC_MAC2 | 
|  | hex "MAC Address Byte 2" | 
|  | default 0 | 
|  | range 0 0xff | 
|  |  | 
|  | config ETH_SAM_GMAC_MAC3 | 
|  | hex "MAC Address Byte 3" | 
|  | default 0 | 
|  | range 0 0xff | 
|  |  | 
|  | config ETH_SAM_GMAC_MAC4 | 
|  | hex "MAC Address Byte 4" | 
|  | default 0 | 
|  | range 0 0xff | 
|  |  | 
|  | config ETH_SAM_GMAC_MAC5 | 
|  | hex "MAC Address Byte 5" | 
|  | default 0 | 
|  | range 0 0xff | 
|  |  | 
|  | endif # ETH_SAM_GMAC_MAC_MANUAL | 
|  |  | 
|  | 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 |