Re: [PATCH v2 2/2] net: Add driver for LiteX's LiteEth network interface

From: Joel Stanley
Date: Wed Aug 25 2021 - 02:41:32 EST


On Wed, 25 Aug 2021 at 06:35, Joel Stanley <joel@xxxxxxxxx> wrote:
>
> On Tue, 24 Aug 2021 at 19:43, Gabriel L. Somlo <gsomlo@xxxxxxxxx> wrote:
> > > diff --git a/drivers/net/ethernet/litex/Makefile b/drivers/net/ethernet/litex/Makefile
> > > new file mode 100644
> > > index 000000000000..9343b73b8e49
> > > --- /dev/null
> > > +++ b/drivers/net/ethernet/litex/Makefile
> > > +int liteeth_setup_slots(struct liteeth *priv)
> > > +{
> > > + struct device_node *np = priv->dev->of_node;
> > > + int err, depth;
> > > +
> > > + err = of_property_read_u32(np, "rx-fifo-depth", &depth);
> > > + if (err) {
> > > + dev_err(priv->dev, "unable to get rx-fifo-depth\n");
> > > + return err;
> > > + }
> > > + if (depth < LITEETH_BUFFER_SIZE) {
> >
> > If I set depth to be *equal* to LITEETH_BUFFER_SIZE (2048) in DTS,
> > no traffic makes it out of my network interface (linux-on-litex-rocket
> > on an ecpix5 board, see github.com/litex-hub/linux-on-litex-rocket).
> >
> > May I suggest rejecting if (depth / LITEETH_BUFFER_SIZE < 2) instead?
> > When that's enforced, the interface actually works fine for me.
>
> Yes, I was using BUFFER_SIZE as the slot size, which it is not. I'll
> rework it to use the slot size I think.
>
> I spent some time digging through the migen source and I couldn't work
> out where the 1024 length comes from. If anything it should be
> eth_mtu, which is 1530.
>
> Florent, can you clear that up?

Replying to myself, the 0x800 is the slot size. I will fix the maths
so the number of slots is calculated correctly.