216 lines
5.9 KiB
Plaintext
216 lines
5.9 KiB
Plaintext
# STM32 HAL Ethernet driver configuration options
|
|
|
|
# Copyright (c) 2017 Erwin Rol <erwin@erwinrol.com>
|
|
# Copyright (c) 2020 Alexander Kozhinov <AlexanderKozhinov@yandex.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
|
|
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 new HAL driver"
|
|
depends on SOC_SERIES_STM32H7X || SOC_SERIES_STM32H5X || SOC_SERIES_STM32F4X || SOC_SERIES_STM32F7X
|
|
help
|
|
Use the new HAL driver instead of the legacy one.
|
|
|
|
config ETH_STM32_HAL_API_V1
|
|
bool "Use new HAL driver"
|
|
depends on !SOC_SERIES_STM32H5X
|
|
select DEPRECATED if SOC_SERIES_STM32H7X || SOC_SERIES_STM32F4X || SOC_SERIES_STM32F7X
|
|
help
|
|
Driver version based on legacy HAL version. Deprecated unless using STM32F2 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 "RX thread priority"
|
|
default 2
|
|
help
|
|
RX thread priority
|
|
|
|
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.
|
|
|
|
choice
|
|
prompt "Mac address definition method"
|
|
optional
|
|
help
|
|
The driver supports 2 methods to define 3 last bytes of MAC address
|
|
1. Statically defined by user
|
|
2. Generated dynamically at each boot
|
|
|
|
Note: Configuring this methods using Kconfig is now deprecated in favor
|
|
of device tree based configuration.
|
|
|
|
config ETH_STM32_HAL_RANDOM_MAC
|
|
bool "Random MAC address (DEPRECATED)"
|
|
depends on ENTROPY_GENERATOR
|
|
select DEPRECATED
|
|
help
|
|
Generate a random MAC address dynamically.
|
|
Deprecated in favor of device tree property "zephyr,random-mac-address"
|
|
|
|
config ETH_STM32_HAL_USER_STATIC_MAC
|
|
bool "User defined MAC address (DEPRECATED)"
|
|
select DEPRECATED
|
|
help
|
|
3 last bytes of MAC address are defined by user thanks to
|
|
ETH_STM32_HAL_MAC3, ETH_STM32_HAL_MAC4 and ETH_STM32_HAL_MAC5.
|
|
Deprecated in favor of device tree property "local-mac-address"
|
|
|
|
endchoice
|
|
|
|
if ETH_STM32_HAL_USER_STATIC_MAC
|
|
|
|
config ETH_STM32_HAL_MAC3
|
|
hex "MAC Address Byte 3 (DEPRECATED)"
|
|
default 0
|
|
range 0 0xff
|
|
help
|
|
This is the byte 3 of the MAC address.
|
|
|
|
config ETH_STM32_HAL_MAC4
|
|
hex "MAC Address Byte 4 (DEPRECATED)"
|
|
default 0
|
|
range 0 0xff
|
|
help
|
|
This is the byte 4 of the MAC address.
|
|
|
|
config ETH_STM32_HAL_MAC5
|
|
hex "MAC Address Byte 5 (DEPRECATED)"
|
|
default 0
|
|
range 0 0xff
|
|
help
|
|
This is the byte 5 of the MAC address.
|
|
|
|
endif # ETH_STM32_HAL_USER_STATIC_MAC
|
|
|
|
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
|