This patch series adds support for the EMAC Fast Ethernet controller found on Allwinner SoCs to the Allwinner A10.
Changelog: v4: Address comments from Peter Crosthwaite and Andreas Färber: * Add functions for multiple bytes push/pop to Fifo8 * Get rid of custom fifo implementation and use generic one for both tx and rx * Rename aw_emac_mdio_read -> RTL8201CP_mdio_read * Allow reception of new packets from net layer only when there is space for a full size frame * Change TYPE_AW_EMAC from "allwinner_emac" to "allwinner-emac" * Property "phyaddr" -> "phy-addr" * Remove trailing newlines from error_report() messages v3: Address comments from Peter Crosthwaite and Stefan Hajnoczi: * Use a single, big rx fifo instead of per-packet fifo * Remove link_ok field from PHY state * Call set_link() on post_load * Add missing PHY registers * Implement reset() method * Rename AwEmacMii -> RTL8201CPState * Rename mii_{read,write} -> aw_emac_mdio_{read,write} v2: Address Peter Crosthwaite's comments: * Make phy address customizable through a property * Call qemu_flush_queued_packets() when rx becomes possible * Always create EMAC instance in SoC * Use uint8 arrays for fifos * Minor cleanups Beniamino Galvani (3): util/fifo8: implement push/pop of multiple bytes hw/net: add support for Allwinner EMAC Fast Ethernet controller hw/arm/allwinner-a10: initialize EMAC default-configs/arm-softmmu.mak | 1 + hw/arm/allwinner-a10.c | 16 ++ hw/arm/cubieboard.c | 11 +- hw/net/Makefile.objs | 1 + hw/net/allwinner_emac.c | 532 +++++++++++++++++++++++++++++++++++++++ include/hw/arm/allwinner-a10.h | 3 + include/hw/net/allwinner_emac.h | 211 ++++++++++++++++ include/qemu/fifo8.h | 43 ++++ util/fifo8.c | 44 ++++ 9 files changed, 860 insertions(+), 2 deletions(-) create mode 100644 hw/net/allwinner_emac.c create mode 100644 include/hw/net/allwinner_emac.h -- 1.7.10.4