# STM32 HAL Ethernet driver configuration options # Copyright (c) 2017 Erwin Rol # Copyright (c) 2020 Alexander Kozhinov # SPDX-License-Identifier: Apache-2.0 menuconfig ETH_STM32_HAL bool "STM32 HAL Ethernet driver" default y depends on DT_HAS_ST_STM32_ETHERNET_ENABLED select USE_STM32_HAL_ETH select NOCACHE_MEMORY if SOC_SERIES_STM32H7X && CPU_CORTEX_M7 select HWINFO select ETH_DSA_SUPPORT select PINCTRL select MDIO if SOC_SERIES_STM32H5X || SOC_SERIES_STM32H7X imply CRC help Enable STM32 HAL based Ethernet driver. It is available for all Ethernet enabled variants of the F2, F4, F7 and H7 series. if ETH_STM32_HAL choice ETH_STM32_HAL_API_VERSION prompt "STM32Cube HAL Ethernet version" config ETH_STM32_HAL_API_V2 bool "Use official STM32Cube HAL driver" depends on SOC_SERIES_STM32H7X || SOC_SERIES_STM32H5X || SOC_SERIES_STM32F4X || SOC_SERIES_STM32F7X help Use the official STM32Cube HAL driver instead of the legacy one. config ETH_STM32_HAL_API_V1 bool "Use legacy STM32Cube HAL driver" depends on SOC_SERIES_STM32F1X || SOC_SERIES_STM32F2X help Driver version based on legacy HAL version as the current official API version. Available only for STM32F1 and STM32F2 SoC series. endchoice config ETH_STM32_HAL_RX_THREAD_STACK_SIZE int "RX thread stack size" default 1500 help RX thread stack size config ETH_STM32_HAL_RX_THREAD_PRIO int "STM32 Ethernet RX Thread Priority" default 2 help This option allows to configure the priority of the RX thread that handles incoming Ethernet packets. Switching between preemptive and cooperative scheduling can be done by NET_TC_THREAD_PREEMPTIVE. Preemptive scheduling can lead to more responsive handling of network traffic, especially under high load. config ETH_STM32_HAL_USE_DTCM_FOR_DMA_BUFFER bool "Use DTCM for DMA buffers" default y depends on SOC_SERIES_STM32F7X help When this option is activated, the buffers for DMA transfer are moved from SRAM to the DTCM (Data Tightly Coupled Memory). config ETH_STM32_HAL_PHY_ADDRESS int "Phy address" default 0 help The phy address to use. config ETH_STM32_HAL_MII bool "Use MII interface" help Use the MII physical interface instead of RMII. config ETH_STM32_CARRIER_CHECK_RX_IDLE_TIMEOUT_MS int "Carrier check timeout period (ms)" default 500 range 100 30000 help Set the RX idle timeout period in milliseconds after which the PHY's carrier status is re-evaluated. config ETH_STM32_AUTO_NEGOTIATION_ENABLE bool "Autonegotiation mode" default y help Enable this if using autonegotiation config ETH_STM32_HW_CHECKSUM bool "Use TX and RX hardware checksum" depends on !SOC_SERIES_STM32H5X help Enable receive and transmit checksum offload to enhance throughput performances. See reference manual for more information on this feature. if !ETH_STM32_AUTO_NEGOTIATION_ENABLE config ETH_STM32_SPEED_10M bool "Set speed to 10 Mbps when autonegotiation is disabled" help Set this if using 10 Mbps and when autonegotiation is disabled, otherwise speed is 100 Mbps config ETH_STM32_MODE_HALFDUPLEX bool "Half duplex mode" help Set this if using half duplex when autonegotiation is disabled otherwise duplex mode is full duplex endif # !ETH_STM32_AUTO_NEGOTIATION_ENABLE if SOC_SERIES_STM32F7X || SOC_SERIES_STM32H7X || SOC_SERIES_STM32H5X config PTP_CLOCK_STM32_HAL bool "STM32 HAL PTP clock driver support" default y depends on PTP_CLOCK || NET_L2_PTP help Enable STM32 PTP clock support. config ETH_STM32_HAL_PTP_CLOCK_SRC_HZ int "Frequency of the clock source for the PTP timer" default 50000000 depends on PTP_CLOCK_STM32_HAL help Set the frequency in Hz sourced to the PTP timer. If the value is set properly, the timer will be accurate. config ETH_STM32_HAL_PTP_CLOCK_ADJ_MIN_PCT int "Lower bound of clock frequency adjustment (in percent)" default 90 depends on PTP_CLOCK_STM32_HAL help Specifies lower bound of PTP clock rate adjustment. config ETH_STM32_HAL_PTP_CLOCK_ADJ_MAX_PCT int "Upper bound of clock frequency adjustment (in percent)" default 110 depends on PTP_CLOCK_STM32_HAL help Specifies upper bound of PTP clock rate adjustment. config ETH_STM32_HAL_PTP_CLOCK_INIT_PRIO int default 85 depends on PTP_CLOCK_STM32_HAL help STM32 PTP Clock initialization priority level. There is a dependency from the network stack that this device initializes before network stack (NET_INIT_PRIO). endif # SOC_SERIES_STM32F7X || SOC_SERIES_STM32H7X || SOC_SERIES_STM32H5X config ETH_STM32_MULTICAST_FILTER bool "Multicast hash filter support" help Enable support for multicast hash filtering in the MAC. Once enabled the ethernet MAC performs imperfect filtering based on a computed hash of the destination MAC address of the multicast address. Only multicast with the computed hash set in the multicast table will be received and all other multicast is dropped by the MAC. If disabled then all multicast is received by the MAC. endif # ETH_STM32_HAL