# Copyright 2022-2023 NXP # SPDX-License-Identifier: Apache-2.0 menuconfig ETH_NXP_S32_NETC bool "NXP S32 Ethernet Switch and Controller (NETC) driver" default y depends on (DT_HAS_NXP_S32_NETC_PSI_ENABLED || DT_HAS_NXP_S32_NETC_VSI_ENABLED) select MBOX select MDIO if DT_HAS_NXP_S32_NETC_PSI_ENABLED select NOCACHE_MEMORY if ARCH_HAS_NOCACHE_MEMORY_SUPPORT help Enable Ethernet Switch and Controller (NETC) driver for NXP S32 SoCs. if ETH_NXP_S32_NETC config ETH_NXP_S32_RX_THREAD_PRIO int "RX thread priority" default 2 help RX thread priority. RX thread is a cooperative thread. config ETH_NXP_S32_RX_THREAD_STACK_SIZE int "RX thread stack size" default 1500 help RX thread stack size. config ETH_NXP_S32_RX_BUDGET int "RX thread budget" default 128 range 1 1024 help The budget parameter places a limit on the amount of work the driver may do in the RX thread before yielding the processor, in case there is more work to do. This is to prevent the RX thread to starve other threads. Each received frame counts as one unit of work. config ETH_NXP_S32_TX_RING_LEN int "TX ring length" default 64 range 8 256 help Length of the TX ring. The value must be a multiple of 8. config ETH_NXP_S32_TX_RING_BUF_SIZE int "TX ring data buffer size" default 1536 range 64 1536 help Size, in bytes, of the TX data buffer. The size must be big enough to store one complete Ethernet frame, and be a multiple of 8. config ETH_NXP_S32_RX_RING_LEN int "RX ring length" default 64 range 8 256 help Length of the RX ring. The value must be a multiple of 8. config ETH_NXP_S32_RX_RING_BUF_SIZE int "RX ring data buffer size" default 1536 range 64 1536 help Size, in bytes, of the RX data buffer. The size must be big enough to store one complete Ethernet frame, and be a multiple of 8. config ETH_NXP_S32_RX_IRQ_PACKET_THRESHOLD int "RX interrupt coalescing packet threshold" default 32 range 1 511 help RX interrupt coalescing packet threshold. This values determines the minimum number of packets received before raising an interrupt. config ETH_NXP_S32_RX_IRQ_TIMER_THRESHOLD int "RX interrupt coalescing timer threshold" default 60000 range 1 $(UINT32_MAX) help RX interrupt coalescing timer threshold, in units of NETC clock cycles. This value determines the maximum amount of time allowed between a first received packet until RX interrupt coalescing packet threshold is reached. If the timer expires before the threshold is reached, an interrupt is raised. config ETH_NXP_S32_MAC_FILTER_TABLE_SIZE int "MAC filter hash table size" default 8 range 8 128 help Maximum number of entries supported in the MAC filter hash table. config ETH_NXP_S32_VSI_INIT_PRIORITY int default 81 help VSI initialization priority. It must be bigger than PSI init priority (CONFIG_ETH_INIT_PRIORITY) and lower than CONFIG_NET_INIT_PRIO, so that it can start after the PSI but before the networking sub-system. endif # ETH_NXP_S32_NETC