# 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 && CPU_HAS_DCACHE 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 select PINCTRL 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 select PINCTRL 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_1G bool "1G mode for ENET1G instance" default y depends on DT_HAS_NXP_ENET1G_ENABLED help Enable the use of the ENET1G ethernet instance in 1G mode. 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 depends on !NET_IPV6 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