qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 0/4] hw/net: fix m68/ColdFire ethernet fec suppo


From: Greg Ungerer
Subject: Re: [Qemu-devel] [PATCH 0/4] hw/net: fix m68/ColdFire ethernet fec support
Date: Fri, 26 Jun 2015 22:07:18 +1000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0

Hi Stefan,

On 26/06/15 20:12, Stefan Hajnoczi wrote:
On Fri, Jun 26, 2015 at 03:27:12PM +1000, address@hidden wrote:
The following set of patches fixes the emulated ColdFire ethernet fec
driver. There is primarily two problems that need to be fixed.

1. The emulated driver needs to support probing of an attached phy.
    It is strait forward to emulate an attached phy, but to avoid using
    magic numbers I have factored out the common MII register and value
    definitions into their own mii.h file first.

2. Fix the fec driver receiver to return the correct value.

With these changes in place the qemu m5208evb board emulation can probe,
identify and use the fec ethernet running a Linux guest.


  hw/net/mcf_fec.c                |   54 ++++++++++++++++++++++++++--
  include/hw/net/allwinner_emac.h |   40 ---------------------
  include/hw/net/mii.h            |   76 
++++++++++++++++++++++++++++++++++++++++
  3 files changed, 128 insertions(+), 42 deletions(-)
Reviewed-by: Stefan Hajnoczi <address@hidden>

If this series has no maintainer to go through I'll merge it via my net
tree.  Please let me know if you'd like that.

That would be great. Please do merge via your tree.
Thanks for the review.

mcf_fec is not fully correct yet, it needs to call
qemu_flush_queued_packets() when rx_enabled transitions from 0 to 1.
This will restart rx by sending any queued packets from the net
subsystem.

In order to get flow control between NetClientState peers working the
following is missing:

1. mcf_fec_receive()'s !s->rx_enabled case should return -1 to drop
    unexpected packets.

2. mcf_fec_receive() should return 0 in the (bd.flags & FEC_BD_E) == 0
    case where we've run out of rx buffers.  That way the net subsystem
    queues the packet and waits until the next RDAR write transitions
    rx_enabled from 0 to 1.

Ok, thanks for the pointers. I'll work up some additional changes
that handle these cases.

Regards
Greg



reply via email to

[Prev in Thread] Current Thread [Next in Thread]