From: Ioana Radulescu <ruxandra.radule...@nxp.com> Date: Wed, 28 Aug 2019 17:08:15 +0300
> Starting with firmware version MC10.18.0, we have support for > L2 flow control. Asymmetrical configuration (Rx or Tx only) is > supported, but not pause frame autonegotioation. > > Pause frame configuration is done via ethtool. By default, we start > with flow control enabled on both Rx and Tx. Changes are propagated > to hardware through firmware commands, using two flags (PAUSE, > ASYM_PAUSE) to specify Rx and Tx pause configuration, as follows: > > PAUSE | ASYM_PAUSE | Rx pause | Tx pause > ---------------------------------------- > 0 | 0 | disabled | disabled > 0 | 1 | disabled | enabled > 1 | 0 | enabled | enabled > 1 | 1 | enabled | disabled > > The hardware can automatically send pause frames when the number > of buffers in the pool goes below a predefined threshold. Due to > this, flow control is incompatible with Rx frame queue taildrop > (both mechanisms target the case when processing of ingress > frames can't keep up with the Rx rate; for large frames, the number > of buffers in the pool may never get low enough to trigger pause > frames as long as taildrop is enabled). So we set pause frame > generation and Rx FQ taildrop as mutually exclusive. > > Signed-off-by: Ioana Radulescu <ruxandra.radule...@nxp.com> > Reviewed-by: Andrew Lunn <and...@lunn.ch> Applied.