blob: 40dad1b500b2f4fa384a83d6e0d6f167ac6ec501 [file] [log] [blame]
# Copyright 2022-2023 NXP
# SPDX-License-Identifier: Apache-2.0
menuconfig ETH_NXP_S32_GMAC
bool "NXP S32 GMAC driver"
default y
depends on DT_HAS_NXP_S32_GMAC_ENABLED
select NOCACHE_MEMORY if ARCH_HAS_NOCACHE_MEMORY_SUPPORT
select PINCTRL
imply MDIO
help
Enable GMAC/EMAC Ethernet driver for NXP S32 SoCs.
if ETH_NXP_S32_GMAC
config ETH_NXP_S32_TX_RING_LEN
int "TX ring length"
default 4
range 4 128
help
Length of the TX ring. ETH_NXP_S32_TX_RING_BUF_SIZE * ETH_NXP_S32_TX_RING_LEN
must be a multiple of TX FIFO block size.
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 the data bus
width.
config ETH_NXP_S32_RX_RING_LEN
int "RX ring length"
default 4
range 4 128
help
Length of the RX ring. ETH_NXP_S32_RX_RING_BUF_SIZE * ETH_NXP_S32_RX_RING_LEN
must be a multiple of RX FIFO block size.
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 the data bus
width.
config ETH_NXP_S32_CLOCK_CONFIG_IDX
int
default 1
help
This option specifies the zero-based index of the clock configuration
used to initialize the GMAC/EMAC clocks.
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_LOOPBACK
bool "MAC loopback"
help
MAC operates in loopback mode. The data is looped back through
internal FIFO on to the internal MII/GMII interface, passing through
the corresponding transmit PHY interface block.
This mode requires the MII/GMII Rx clock input signal to function
properly because the transmit clock is not internally looped back.
config ETH_NXP_S32_MULTICAST_FILTER
bool "Multicast destination address filtering"
help
Enable support for multicast destination address filtering in the MAC.
MAC performs imperfect filtering using a 64-bit hash table. The upper
6-bits CRC of the received multicast address is used as index to the
content of the hash table. 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, all multicast is received by the MAC.
endif # ETH_NXP_S32_GMAC