From cf5c02aa4ec291150b1aad5d02b71f6d11623f4b Mon Sep 17 00:00:00 2001 From: Jukka Laitinen Date: Wed, 28 Aug 2019 08:41:06 -0600 Subject: [PATCH] arch/arm/src/stm32h7/stm32_ethernet.c: Correct stm32h7 mac address filtering. Correct the MAC address 0 register definition and remove the 'receive all' flag. Now the Ethernet driver only receives packets addressed to correct MAC. --- arch/arm/src/stm32h7/hardware/stm32_ethernet.h | 2 +- arch/arm/src/stm32h7/stm32_ethernet.c | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/arch/arm/src/stm32h7/hardware/stm32_ethernet.h b/arch/arm/src/stm32h7/hardware/stm32_ethernet.h index f60ab4771bf..4ef19fbdc77 100644 --- a/arch/arm/src/stm32h7/hardware/stm32_ethernet.h +++ b/arch/arm/src/stm32h7/hardware/stm32_ethernet.h @@ -70,8 +70,8 @@ #define STM32_ETH_MACMDIOAR_OFFSET 0x0200 /* Ethernet MAC MDIO address register */ #define STM32_ETH_MACMDIODR_OFFSET 0x0204 /* Ethernet MAC MDIO data register */ +#define STM32_ETH_MACA0HR_OFFSET 0x0300 /* Address 0 high register */ #define STM32_ETH_MACA0LR_OFFSET 0x0304 /* Address 0 low register */ -#define STM32_ETH_MACA0HR_OFFSET 0x0308 /* Address 0 high register */ /* MTL Registers */ diff --git a/arch/arm/src/stm32h7/stm32_ethernet.c b/arch/arm/src/stm32h7/stm32_ethernet.c index 6d78f1e534e..ec401fbbeae 100644 --- a/arch/arm/src/stm32h7/stm32_ethernet.c +++ b/arch/arm/src/stm32h7/stm32_ethernet.c @@ -411,12 +411,10 @@ * ETH_MACPFR_SAIF Source address inverse filtering 0 (not used) * ETH_MACPFR_SAF Source address filter 0 (disabled) * ETH_MACPFR_HPF Hash or perfect filter 0 (Only matching frames passed) - * ETH_MACPFR_RA Receive all 1 (enabled) + * ETH_MACPFR_RA Receive all 0 (disabled) */ -/* TODO: use proper mac filtering and not RA */ - -#define MACPFR_SET_BITS (ETH_MACPFR_RA | ETH_MACPFR_PCF_PAUSE) +#define MACPFR_SET_BITS (ETH_MACPFR_PCF_PAUSE) /* Clear the MACQTXFCR and MACRXFCR bits that will be setup during MAC * initialization (or that are cleared unconditionally). Per the reference