blob: d2eb4d071358c2422490af3d62197832aae49a0c [file] [log] [blame]
# NXP ENET ethernet drivers configuration options
# Copyright (c) 2016-2017 ARM Ltd
# Copyright 2024 NXP
# SPDX-License-Identifier: Apache-2.0
menu "NXP ENET"
choice NXP_ENET_DRIVER
prompt "NXP ENET Driver Version"
default ETH_NXP_ENET if DT_HAS_NXP_ENET_MAC_ENABLED
default ETH_MCUX if DT_HAS_NXP_KINETIS_ETHERNET_ENABLED
depends on DT_HAS_NXP_ENET_MAC_ENABLED || DT_HAS_NXP_KINETIS_ETHERNET_ENABLED
config ETH_NXP_ENET
bool "NXP ENET Ethernet driver"
select NOCACHE_MEMORY if HAS_MCUX_CACHE
select ARM_MPU if CPU_CORTEX_M7
select MDIO if DT_HAS_NXP_ENET_MDIO_ENABLED
select NET_POWER_MANAGEMENT if (PM_DEVICE && SOC_FAMILY_KINETIS)
select ETH_DSA_SUPPORT
help
Enable NXP ENET Ethernet driver.
config ETH_MCUX
bool "MCUX Ethernet driver"
select NOCACHE_MEMORY if HAS_MCUX_CACHE && CPU_HAS_DCACHE
select ARM_MPU if CPU_CORTEX_M7
select NET_POWER_MANAGEMENT if PM_DEVICE
select ETH_DSA_SUPPORT
select DEPRECATED
help
Enable deprecated legacy MCUX Ethernet driver.
Note, this driver performs one shot PHY setup.
There is no support for PHY disconnect, reconnect or configuration change.
endchoice
if ETH_NXP_ENET
config ETH_NXP_ENET_USE_DTCM_FOR_DMA_BUFFER
bool "Use DTCM for hardware DMA buffers"
default y
help
Place the hardware DMA buffers into DTCM for better
networking performance.
config ETH_NXP_ENET_HW_ACCELERATION
bool "Hardware acceleration"
default y
help
Enable hardware acceleration for the following:
- IPv4, UDP and TCP checksum (both Rx and Tx)
config ETH_NXP_ENET_RX_BUFFERS
int "Number of RX buffers for ethernet driver"
default 6
range 6 16
help
Set the number of RX buffers provided to the NXP ENET driver.
config ETH_NXP_ENET_TX_BUFFERS
int "Number of TX buffers for ethernet driver"
default 1
range 1 16
help
Set the number of TX buffers provided to the NXP ENET driver.
config ETH_NXP_ENET_RX_THREAD_STACK_SIZE
int "NXP ENET RX thread stack size"
default 1600
help
ENET RX thread stack size in bytes.
config ETH_NXP_ENET_RX_THREAD_PRIORITY
int "NXP ENET driver RX cooperative thread priority"
default 2
help
ENET MAC Driver handles RX in cooperative workqueue thread.
This options sets the priority of that thread.
endif # ETH_NXP_ENET
if ETH_MCUX
config ETH_MCUX_PROMISCUOUS_MODE
bool "Promiscuous mode"
help
Place the Ethernet receiver in promiscuous mode. This may be useful
for debugging and not needed for normal work.
config ETH_MCUX_USE_DTCM_FOR_DMA_BUFFER
bool "Use DTCM for hardware DMA buffers"
default y
help
Place the hardware DMA buffers into DTCM for better
networking performance.
config ETH_MCUX_HW_ACCELERATION
bool "Hardware acceleration"
default y
help
Enable hardware acceleration for the following:
- IPv4, UDP and TCP checksum (both Rx and Tx)
config ETH_MCUX_RX_BUFFERS
int "Number of RX buffers for ethernet driver"
default 6
range 6 16
help
Set the number of RX buffers provided to the NXP ENET driver.
config ETH_MCUX_TX_BUFFERS
int "Number of TX buffers for ethernet driver"
default 1
range 1 16
help
Set the number of TX buffers provided to the NXP ENET driver.
menu "Legacy driver options"
config ETH_MCUX_RMII_EXT_CLK
bool "RMII clock from external sources"
help
Setting this option will configure MCUX clock block to feed RMII
reference clock from external source (ENET_1588_CLKIN)
config ETH_MCUX_NO_PHY_SMI
bool "Do not use SMI for PHY communication"
help
Some PHY devices, with DSA capabilities do not use SMI for
communication with MAC ENET controller. Other busses - like SPI
or I2C are used instead.
config ETH_MCUX_PHY_TICK_MS
int "PHY poll period (ms)"
default 1000
range 100 30000
help
Set the PHY status polling period.
config ETH_MCUX_PHY_EXTRA_DEBUG
bool "Additional detailed PHY debug"
help
Enable additional PHY related debug information related to
PHY status polling.
config ETH_MCUX_PHY_RESET
bool "Reset the PHY at boot"
help
Reset the ethernet PHY at boot. Requires dts properties int-gpios and
reset-gpios to be present.
config PTP_CLOCK_MCUX
bool "MCUX PTP clock driver support"
default y
depends on PTP_CLOCK || NET_L2_PTP
help
Enable MCUX PTP clock support.
if PTP_CLOCK_MCUX
config ETH_MCUX_PTP_CLOCK_SRC_HZ
int "Frequency of the clock source for the PTP timer"
default 50000000 if SOC_SERIES_KINETIS_K6X
default 50000000 if SOC_SERIES_IMXRT10XX
default 24000000 if SOC_SERIES_IMXRT11XX
help
Set the frequency in Hz sourced to the PTP timer.
If the value is set properly, the timer will be accurate.
config ETH_MCUX_PTP_CLOCK_INIT_PRIO
int
default 85
help
MCUX PTP Clock initialization priority level. There is
a dependency from the network stack that this device
initializes before network stack (NET_INIT_PRIO).
endif # PTP_CLOCK_MCUX
endmenu # Legacy options
endif # ETH_MCUX
endmenu # NXP ENET