[U-Boot] [PATCH 2/4] net: designware: Pad small packets
Florian Fainelli
f.fainelli at gmail.com
Sun Oct 15 01:00:14 UTC 2017
Make sure that we pad small packets to a minimum length of 60 bytes
(without FCS). This is necessary to interface with Ethernet switches
that will reject RUNT frames unless padded correctly.
Signed-off-by: Florian Fainelli <f.fainelli at gmail.com>
---
drivers/net/designware.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/net/designware.c b/drivers/net/designware.c
index 036d231071ca..10356a9abd0e 100644
--- a/drivers/net/designware.c
+++ b/drivers/net/designware.c
@@ -343,6 +343,8 @@ int designware_eth_enable(struct dw_eth_dev *priv)
return 0;
}
+#define ETH_ZLEN 60
+
static int _dw_eth_send(struct dw_eth_dev *priv, void *packet, int length)
{
struct eth_dma_regs *dma_p = priv->dma_regs_p;
@@ -369,6 +371,8 @@ static int _dw_eth_send(struct dw_eth_dev *priv, void *packet, int length)
return -EPERM;
}
+ length = (length < ETH_ZLEN) ? ETH_ZLEN : length;
+
memcpy((void *)data_start, packet, length);
/* Flush data to be sent */
--
2.11.0
More information about the U-Boot
mailing list