mirror of
https://github.com/apache/nuttx.git
synced 2026-05-27 19:36:35 +08:00
arch/arm/src/stm32h7/stm32_ethernet.c: Fix some errors in Ethernet MAC configuration.
This commit is contained in:
committed by
Gregory Nutt
parent
316aafc04d
commit
1726f79a0f
@@ -373,11 +373,11 @@
|
|||||||
(ETH_MACCR_BL_10 | ETH_MACCR_DR | ETH_MACCR_IPG(96))
|
(ETH_MACCR_BL_10 | ETH_MACCR_DR | ETH_MACCR_IPG(96))
|
||||||
#endif
|
#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
|
* are cleared unconditionally). Per the reference manual, all reserved bits
|
||||||
* must be retained at their reset value.
|
* 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_HUC Bit 1: Hash unicast
|
||||||
* ETH_MACPFR_HMC Bit 2: Hash multicast
|
* ETH_MACPFR_HMC Bit 2: Hash multicast
|
||||||
* ETH_MACPFR_DAIF Bit 3: Destination address inverse filtering
|
* ETH_MACPFR_DAIF Bit 3: Destination address inverse filtering
|
||||||
@@ -394,19 +394,19 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#define MACPFR_CLEAR_BITS \
|
#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_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_SAF | ETH_MACPFR_HPF | ETH_MACPFR_VTFE | ETH_MACPFR_IPFE | \
|
||||||
ETH_MACPFR_DNTU | ETH_MACPFR_RA)
|
ETH_MACPFR_DNTU | ETH_MACPFR_RA)
|
||||||
|
|
||||||
/* The following bits are set or left zero unconditionally in all modes.
|
/* The following bits are set or left zero unconditionally in all modes.
|
||||||
*
|
*
|
||||||
* ETH_MACPFR_PM Promiscuous mode 0 (disabled)
|
* ETH_MACPFR_PR Promiscuous mode 0 (disabled)
|
||||||
* ETH_MACPFR_HU Hash unicast 0 (perfect dest filtering)
|
* ETH_MACPFR_HUC Hash unicast 0 (perfect dest filtering)
|
||||||
* ETH_MACPFR_HM Hash multicast 0 (perfect dest filtering)
|
* ETH_MACPFR_HMC Hash multicast 0 (perfect dest filtering)
|
||||||
* ETH_MACPFR_DAIF Destination address inverse filtering 0 (normal)
|
* ETH_MACPFR_DAIF Destination address inverse filtering 0 (normal)
|
||||||
* ETH_MACPFR_PAM Pass all multicast 0 (Depends on HM bit)
|
* ETH_MACPFR_PM Pass all multicast 0 (Depends on HMC bit)
|
||||||
* ETH_MACPFR_BFD Broadcast frames disable 0 (enabled)
|
* ETH_MACPFR_DBF Broadcast frames disable 0 (enabled)
|
||||||
* ETH_MACPFR_PCF Pass control frames 1 (block all but PAUSE)
|
* ETH_MACPFR_PCF Pass control frames 1 (block all but PAUSE)
|
||||||
* ETH_MACPFR_SAIF Source address inverse filtering 0 (not used)
|
* ETH_MACPFR_SAIF Source address inverse filtering 0 (not used)
|
||||||
* ETH_MACPFR_SAF Source address filter 0 (disabled)
|
* 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);
|
stm32_putreg(temp, registeraddress);
|
||||||
|
|
||||||
temp = stm32_getreg(STM32_ETH_MACPFR);
|
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);
|
stm32_putreg(temp, STM32_ETH_MACPFR);
|
||||||
|
|
||||||
return OK;
|
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)
|
stm32_getreg(STM32_ETH_MACHT1R) == 0)
|
||||||
{
|
{
|
||||||
temp = stm32_getreg(STM32_ETH_MACPFR);
|
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);
|
stm32_putreg(temp, STM32_ETH_MACPFR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user