The second field of the TX descriptor has a set of flags to choose when the transmit interrupt is raised : after the packet has been sent on the ethernet or after it has been moved into the TX FIFO. But we don't model that today.
Simply raise the "Packet transmitted on ethernet" the interrupt status bit as soon as the packet is sent by QEMU. Cc: Frederic Konrad <konrad.frede...@yahoo.fr> Signed-off-by: Cédric Le Goater <c...@kaod.org> --- hw/net/ftgmac100.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/hw/net/ftgmac100.c b/hw/net/ftgmac100.c index 0348fcf45676..aa3c05ef9882 100644 --- a/hw/net/ftgmac100.c +++ b/hw/net/ftgmac100.c @@ -547,9 +547,7 @@ static void ftgmac100_do_tx(FTGMAC100State *s, uint32_t tx_ring, qemu_send_packet(qemu_get_queue(s->nic), s->frame, frame_size); ptr = s->frame; frame_size = 0; - if (flags & FTGMAC100_TXDES1_TXIC) { - s->isr |= FTGMAC100_INT_XPKT_ETH; - } + s->isr |= FTGMAC100_INT_XPKT_ETH; } if (flags & FTGMAC100_TXDES1_TX2FIC) { -- 2.25.4