aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilippe Mathieu-Daudé <philmd@linaro.org>2024-11-09 19:32:56 +0100
committerPhilippe Mathieu-Daudé <philmd@linaro.org>2024-12-31 21:21:34 +0100
commit7eb77fa4cd88bd70f68a603aa829207bf403e987 (patch)
tree1758da2f00f31c2829365dcc1a948f927b42a4dd
parent0fb867ed63dc14086e74c97865530bc69866b060 (diff)
downloadqemu-7eb77fa4cd88bd70f68a603aa829207bf403e987.zip
qemu-7eb77fa4cd88bd70f68a603aa829207bf403e987.tar.gz
qemu-7eb77fa4cd88bd70f68a603aa829207bf403e987.tar.bz2
hw/net/xilinx_ethlite: Correct maximum RX buffer size
The current max RX bufsize is set to 0x800. This is invalid, since it contains the MMIO registers region. Add the correct definition (valid for both TX & RX, see datasheet p. 20, Table 11 "XPS Ethernet Lite MAC Memory Map") and use it. Reviewed-by: Edgar E. Iglesias <edgar.iglesias@amd.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-Id: <20241112181044.92193-6-philmd@linaro.org>
-rw-r--r--hw/net/xilinx_ethlite.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/hw/net/xilinx_ethlite.c b/hw/net/xilinx_ethlite.c
index 330dccb..d54f96d 100644
--- a/hw/net/xilinx_ethlite.c
+++ b/hw/net/xilinx_ethlite.c
@@ -3,6 +3,9 @@
*
* Copyright (c) 2009 Edgar E. Iglesias.
*
+ * DS580: https://docs.amd.com/v/u/en-US/xps_ethernetlite
+ * LogiCORE IP XPS Ethernet Lite Media Access Controller
+ *
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
@@ -33,6 +36,7 @@
#include "trace.h"
#define R_TX_BUF0 0
+#define BUFSZ_MAX 0x07e4
#define R_TX_LEN0 (0x07f4 / 4)
#define R_TX_GIE0 (0x07f8 / 4)
#define R_TX_CTRL0 (0x07fc / 4)
@@ -191,7 +195,7 @@ static ssize_t eth_rx(NetClientState *nc, const uint8_t *buf, size_t size)
return -1;
}
- if (size > (R_MAX - R_RX_BUF0 - rxbase) * 4) {
+ if (size >= BUFSZ_MAX) {
trace_ethlite_pkt_size_too_big(size);
return -1;
}