Thread (14 messages) flat view 14 messages, 5 authors, 2021-08-27

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

From: Joel Stanley <joel@jms.id.au>
Date: 2021-08-25 06:41:32
Also in: lkml, netdev

On Wed, 25 Aug 2021 at 06:35, Joel Stanley [off-list ref] wrote:
On Tue, 24 Aug 2021 at 19:43, Gabriel L. Somlo [off-list ref] wrote:
quoted
quoted
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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help