arch/arm/src/stm32h7/stm32_ethernet.c: Fix some errors in Ethernet MAC configuration.

This commit is contained in:
Markus Bernet 2019-08-28 08:06:45 -06:00 committed by Gregory Nutt
parent 316aafc04d
commit 1726f79a0f

View File

@ -373,11 +373,11 @@
(ETH_MACCR_BL_10 | ETH_MACCR_DR | ETH_MACCR_IPG(96))
#endif
/* Clear the MACCR bits that will be setup during MAC initialization (or that
/* Clear the MACPFR bits that will be setup during MAC initialization (or that
* are cleared unconditionally). Per the reference manual, all reserved bits
* must be retained at their reset value.
*
* ETH_MACPFR_PM Bit 0: Promiscuous mode
* ETH_MACPFR_PR Bit 0: Promiscuous mode
* ETH_MACPFR_HUC Bit 1: Hash unicast
* ETH_MACPFR_HMC Bit 2: Hash multicast
* ETH_MACPFR_DAIF Bit 3: Destination address inverse filtering
@ -394,19 +394,19 @@
*/
#define MACPFR_CLEAR_BITS \
(ETH_MACPFR_PM | ETH_MACPFR_HUC | ETH_MACPFR_HMC | ETH_MACPFR_DAIF | \
(ETH_MACPFR_PR | ETH_MACPFR_HUC | ETH_MACPFR_HMC | ETH_MACPFR_DAIF | \
ETH_MACPFR_PM | ETH_MACPFR_DBF | ETH_MACPFR_PCF_MASK | ETH_MACPFR_SAIF | \
ETH_MACPFR_SAF | ETH_MACPFR_HPF | ETH_MACPFR_VTFE | ETH_MACPFR_IPFE | \
ETH_MACPFR_DNTU | ETH_MACPFR_RA)
/* The following bits are set or left zero unconditionally in all modes.
*
* ETH_MACPFR_PM Promiscuous mode 0 (disabled)
* ETH_MACPFR_HU Hash unicast 0 (perfect dest filtering)
* ETH_MACPFR_HM Hash multicast 0 (perfect dest filtering)
* ETH_MACPFR_PR Promiscuous mode 0 (disabled)
* ETH_MACPFR_HUC Hash unicast 0 (perfect dest filtering)
* ETH_MACPFR_HMC Hash multicast 0 (perfect dest filtering)
* ETH_MACPFR_DAIF Destination address inverse filtering 0 (normal)
* ETH_MACPFR_PAM Pass all multicast 0 (Depends on HM bit)
* ETH_MACPFR_BFD Broadcast frames disable 0 (enabled)
* ETH_MACPFR_PM Pass all multicast 0 (Depends on HMC bit)
* ETH_MACPFR_DBF Broadcast frames disable 0 (enabled)
* ETH_MACPFR_PCF Pass control frames 1 (block all but PAUSE)
* ETH_MACPFR_SAIF Source address inverse filtering 0 (not used)
* ETH_MACPFR_SAF Source address filter 0 (disabled)
@ -2788,7 +2788,7 @@ static int stm32_addmac(struct net_driver_s *dev, const uint8_t *mac)
stm32_putreg(temp, registeraddress);
temp = stm32_getreg(STM32_ETH_MACPFR);
temp |= (ETH_MACPFR_HM | ETH_MACPFR_HPF);
temp |= (ETH_MACPFR_HMC | ETH_MACPFR_HPF);
stm32_putreg(temp, STM32_ETH_MACPFR);
return OK;
@ -2850,7 +2850,7 @@ static int stm32_rmmac(struct net_driver_s *dev, const uint8_t *mac)
stm32_getreg(STM32_ETH_MACHT1R) == 0)
{
temp = stm32_getreg(STM32_ETH_MACPFR);
temp &= ~(ETH_MACPFR_HM | ETH_MACPFR_HPF);
temp &= ~(ETH_MACPFR_HMC | ETH_MACPFR_HPF);
stm32_putreg(temp, STM32_ETH_MACPFR);
}