xilinx_ethlite: Flush queued packets on SW service
Software services a received packet by clearing the CTRL_S bit in the RX_CTRLn register. If this bit is cleared, flush any packets queued for the device. Reported-by: John Williams <john.williams@xilinx.com> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
This commit is contained in:
parent
808fb9f277
commit
2f991adb8e
|
@ -135,11 +135,14 @@ eth_write(void *opaque, hwaddr addr,
|
|||
break;
|
||||
|
||||
/* Keep these native. */
|
||||
case R_RX_CTRL0:
|
||||
case R_RX_CTRL1:
|
||||
if (!(value & CTRL_S)) {
|
||||
qemu_flush_queued_packets(&s->nic->nc);
|
||||
}
|
||||
case R_TX_LEN0:
|
||||
case R_TX_LEN1:
|
||||
case R_TX_GIE0:
|
||||
case R_RX_CTRL0:
|
||||
case R_RX_CTRL1:
|
||||
D(qemu_log("%s addr=%x val=%x\n", __func__, addr * 4, value));
|
||||
s->regs[addr] = value;
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue