| # 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 |