On 13/11/24 15:23, Edgar E. Iglesias wrote:
On Tue, Nov 12, 2024 at 07:10:32PM +0100, Philippe Mathieu-Daudé wrote:
For a particular physical address within the EthLite MMIO range,
addr_to_port_index() returns which port is accessed.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
---
hw/net/xilinx_ethlite.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/hw/net/xilinx_ethlite.c b/hw/net/xilinx_ethlite.c
index 20919b4f54..fe91891310 100644
--- a/hw/net/xilinx_ethlite.c
+++ b/hw/net/xilinx_ethlite.c
@@ -24,6 +24,7 @@
#include "qemu/osdep.h"
#include "qemu/module.h"
+#include "qemu/bitops.h"
#include "qom/object.h"
#include "qapi/error.h"
#include "exec/tswap.h"
@@ -86,6 +87,12 @@ static inline void eth_pulse_irq(XlnxXpsEthLite *s)
}
}
+__attribute__((unused))
+static unsigned addr_to_port_index(hwaddr addr)
+{
+ return extract64(addr, 11, 1);
+}
+
Shouldn't you add addr_to_port_index in the following patch and avoid
the temporary unused attribute?
OK.
static uint64_t
eth_read(void *opaque, hwaddr addr, unsigned int size)
{
@@ -190,7 +197,8 @@ static bool eth_can_rx(NetClientState *nc)
static ssize_t eth_rx(NetClientState *nc, const uint8_t *buf, size_t size)
{
XlnxXpsEthLite *s = qemu_get_nic_opaque(nc);
- unsigned int rxbase = s->port_index * (0x800 / 4);
+ unsigned int port_index = s->port_index;
+ unsigned int rxbase = port_index * (0x800 / 4);
Hmm, AFAICT s->port_index is an unsigned int, what is the purpose of this
change?
Likely a rebase mistake, this belongs to the next patch indeed.