| # STM32 HAL Ethernet driver configuration options |
| |
| # Copyright (c) 2017 Erwin Rol <erwin@erwinrol.com> |
| # Copyright (c) 2020 Alexander Kozhinov <ak.alexander.kozhinov@gmail.com> |
| # 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 |