On Fri, Jun 26, 2015 at 03:27:12PM +1000, g...@uclinux.org 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 <stefa...@redhat.com>

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.

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.

Attachment: pgptUAYlMWuSz.pgp
Description: PGP signature

Reply via email to