diff --git a/drivers/ethernet/Kconfig.nxp_s32_netc b/drivers/ethernet/Kconfig.nxp_s32_netc index 9b2e27ee4f1..bf5a85cb972 100644 --- a/drivers/ethernet/Kconfig.nxp_s32_netc +++ b/drivers/ethernet/Kconfig.nxp_s32_netc @@ -1,4 +1,4 @@ -# Copyright 2022-2023 NXP +# Copyright 2022-2023, 2025 NXP # SPDX-License-Identifier: Apache-2.0 menuconfig ETH_NXP_S32_NETC @@ -92,6 +92,13 @@ config ETH_NXP_S32_MAC_FILTER_TABLE_SIZE help Maximum number of entries supported in the MAC filter hash table. +config ETH_NXP_S32_MULTICAST_MAC_FILTER_TABLE_SIZE + int "Multicast MAC filter hash table size" + default 8 + range 0 8 + help + Maximum number of entries supported in the Multicast MAC filter hash table. + config ETH_NXP_S32_VSI_INIT_PRIORITY int default 81 diff --git a/drivers/ethernet/eth_nxp_s32_netc_psi.c b/drivers/ethernet/eth_nxp_s32_netc_psi.c index 69ff36d0f64..07a26dd053d 100644 --- a/drivers/ethernet/eth_nxp_s32_netc_psi.c +++ b/drivers/ethernet/eth_nxp_s32_netc_psi.c @@ -1,5 +1,5 @@ /* - * Copyright 2022-2024 NXP + * Copyright 2022-2025 NXP * * SPDX-License-Identifier: Apache-2.0 */ @@ -236,7 +236,7 @@ BUILD_ASSERT(DT_NUM_INST_STATUS_OKAY(nxp_s32_netc_psi) == 1, "Only one PSI enabl BUILD_ASSERT((DT_PROP_BY_IDX(node, prop, idx) > NETC_ETH_IP_PSI_INDEX) \ && (DT_PROP_BY_IDX(node, prop, idx) <= FEATURE_NETC_ETH_NUM_OF_VIRTUAL_CTRLS), \ "Invalid VSI index"); \ - static Netc_Eth_Ip_VsiToPsiMsgType \ + static __nocache Netc_Eth_Ip_VsiToPsiMsgType \ _CONCAT3(nxp_s32_eth##n##_vsi, DT_PROP_BY_IDX(node, prop, idx), _rx_msg_buf) \ __aligned(FEATURE_NETC_ETH_VSI_MSG_ALIGNMENT) @@ -363,6 +363,11 @@ static const Netc_Eth_Ip_EnetcGeneralConfigType nxp_s32_eth##n##_enetc_general_c .maskVLANAllowUntaggedEnable = (uint32)0x30000U, \ }; \ \ +IF_ENABLED(CONFIG_ETH_NXP_S32_MULTICAST_MAC_FILTER_TABLE_SIZE, \ +(static const Netc_Eth_Ip_SiMulticastMACHashFilterDataType \ + nxp_s32_eth##n##_multicast_entry_init \ + [CONFIG_ETH_NXP_S32_MULTICAST_MAC_FILTER_TABLE_SIZE];)) \ + \ static const Netc_Eth_Ip_StationInterfaceConfigType nxp_s32_eth##n##_si_cfg = { \ .NumberOfRxBDR = 1, \ .NumberOfTxBDR = 2, \ @@ -373,7 +378,10 @@ static const Netc_Eth_Ip_StationInterfaceConfigType nxp_s32_eth##n##_si_cfg = { .EnableSIMsgInterrupt = true, \ .RxInterrupts = (uint32_t)true, \ .TxInterrupts = (uint32_t)false, \ - .MACFilterTableMaxNumOfEntries = CONFIG_ETH_NXP_S32_MAC_FILTER_TABLE_SIZE, \ +IF_ENABLED(CONFIG_ETH_NXP_S32_MULTICAST_MAC_FILTER_TABLE_SIZE, \ + (.NumberOfConfiguredMulticastMacHashFilterEntries = \ + CONFIG_ETH_NXP_S32_MULTICAST_MAC_FILTER_TABLE_SIZE, \ + .MulticastMACFilterEntries = &nxp_s32_eth##n##_multicast_entry_init)) \ }; \ \ static uint8_t nxp_s32_eth##n##_switch_vlandr2dei_cfg[NETC_ETHSWT_IP_NUMBER_OF_DR]; \ diff --git a/drivers/ethernet/eth_nxp_s32_netc_vsi.c b/drivers/ethernet/eth_nxp_s32_netc_vsi.c index bf5046cd8bf..2aab6953997 100644 --- a/drivers/ethernet/eth_nxp_s32_netc_vsi.c +++ b/drivers/ethernet/eth_nxp_s32_netc_vsi.c @@ -1,5 +1,5 @@ /* - * Copyright 2022-2024 NXP + * Copyright 2022-2025 NXP * * SPDX-License-Identifier: Apache-2.0 */ @@ -133,6 +133,11 @@ BUILD_ASSERT(DT_NUM_INST_STATUS_OKAY(nxp_s32_netc_vsi) == 1, "Only one VSI enabl } \ }; \ \ + IF_ENABLED(CONFIG_ETH_NXP_S32_MULTICAST_MAC_FILTER_TABLE_SIZE, \ + (static const Netc_Eth_Ip_SiMulticastMACHashFilterDataType \ + nxp_s32_eth##n##_multicast_entry_init \ + [CONFIG_ETH_NXP_S32_MULTICAST_MAC_FILTER_TABLE_SIZE];)) \ + \ static const Netc_Eth_Ip_StationInterfaceConfigType nxp_s32_eth##n##_si_cfg = { \ .NumberOfRxBDR = 1, \ .NumberOfTxBDR = 1, \ @@ -141,7 +146,10 @@ BUILD_ASSERT(DT_NUM_INST_STATUS_OKAY(nxp_s32_netc_vsi) == 1, "Only one VSI enabl .EnableSIMsgInterrupt = true, \ .RxInterrupts = (uint32_t)true, \ .TxInterrupts = (uint32_t)false, \ - .MACFilterTableMaxNumOfEntries = CONFIG_ETH_NXP_S32_MAC_FILTER_TABLE_SIZE, \ +IF_ENABLED(CONFIG_ETH_NXP_S32_MULTICAST_MAC_FILTER_TABLE_SIZE, \ + (.NumberOfConfiguredMulticastMacHashFilterEntries = \ + CONFIG_ETH_NXP_S32_MULTICAST_MAC_FILTER_TABLE_SIZE, \ + .MulticastMACFilterEntries = &nxp_s32_eth##n##_multicast_entry_init,)) \ .VSItoPSIMsgCommand = &nxp_s32_eth##n##_vsi2psi_msg, \ }; \ \ diff --git a/west.yml b/west.yml index f45a2fdbae9..f8f54a80481 100644 --- a/west.yml +++ b/west.yml @@ -205,7 +205,7 @@ manifest: groups: - hal - name: hal_nxp - revision: 6a316c1bf7b381845ae8af64208906f6ec332eab + revision: d0e49d63ac74208e183ed47ebb4bf8d490ab63fb path: modules/hal/nxp groups: - hal