Message ID | 1447054736-27658-12-git-send-email-judge.packham@gmail.com |
---|---|
State | RFC |
Delegated to: | Joe Hershberger |
Headers | show |
On Mon, Nov 9, 2015 at 1:38 AM, Chris Packham <judge.packham@gmail.com> wrote: > IPv6 neighbor discovery uses various multicast addresses to send the > request and receive the response. For neighbor discovery to work > properly in U-boot the Ethernet device needs to support joining/leaving > various L2 multicast groups or it needs to support multicast/promiscuous > mode. For the sake of simplicity the latter approach has been taken. The > e1000 hardware has slightly finer grained control in that it is possible > to enable support for multicast-promiscuous mode separately from unicast > so the extra traffic received is less. > > Signed-off-by: Chris Packham <judge.packham@gmail.com> > > --- > Drivers that support multicast reception have it enabled/disabled with > CONFIG_MCAST_TFTP. It wouldn't be too hard to create a separate > CONFIG_MCAST that is selected by enabling CONFIG_MCAST_TFTP or > CONFIG_NET6. I agree that a new token CONFIG_MCAST should be created. > Changes in v2: None > > drivers/net/e1000.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c > index 2ba03ed..d19a9de 100644 > --- a/drivers/net/e1000.c > +++ b/drivers/net/e1000.c > @@ -5090,6 +5090,11 @@ e1000_setup_rctl(struct e1000_hw *hw) > rctl &= ~(E1000_RCTL_SZ_4096); > rctl |= E1000_RCTL_SZ_2048; > rctl &= ~(E1000_RCTL_BSEX | E1000_RCTL_LPE); > + > +#ifdef CONFIG_NET6 > + rctl |= E1000_RCTL_MPE; > +#endif > + > E1000_WRITE_REG(hw, RCTL, rctl); > } > > -- > 2.5.3 > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot
diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c index 2ba03ed..d19a9de 100644 --- a/drivers/net/e1000.c +++ b/drivers/net/e1000.c @@ -5090,6 +5090,11 @@ e1000_setup_rctl(struct e1000_hw *hw) rctl &= ~(E1000_RCTL_SZ_4096); rctl |= E1000_RCTL_SZ_2048; rctl &= ~(E1000_RCTL_BSEX | E1000_RCTL_LPE); + +#ifdef CONFIG_NET6 + rctl |= E1000_RCTL_MPE; +#endif + E1000_WRITE_REG(hw, RCTL, rctl); }
IPv6 neighbor discovery uses various multicast addresses to send the request and receive the response. For neighbor discovery to work properly in U-boot the Ethernet device needs to support joining/leaving various L2 multicast groups or it needs to support multicast/promiscuous mode. For the sake of simplicity the latter approach has been taken. The e1000 hardware has slightly finer grained control in that it is possible to enable support for multicast-promiscuous mode separately from unicast so the extra traffic received is less. Signed-off-by: Chris Packham <judge.packham@gmail.com> --- Drivers that support multicast reception have it enabled/disabled with CONFIG_MCAST_TFTP. It wouldn't be too hard to create a separate CONFIG_MCAST that is selected by enabling CONFIG_MCAST_TFTP or CONFIG_NET6. Changes in v2: None drivers/net/e1000.c | 5 +++++ 1 file changed, 5 insertions(+)