net: Add SunGEM device emulation as found on Apple UniNorth
commitf85504b23a59f769f36f7c4d4e0ce8fd08c78749
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 6 Sep 2017 18:19:55 +0000 (6 19:19 +0100)
committerDavid Gibson <david@gibson.dropbear.id.au>
Fri, 15 Sep 2017 00:29:48 +0000 (15 10:29 +1000)
treedf59b98523edd2802501912581b56cb546c9c6e9
parent3dabde1128b671f36ac6cb36b97b273139964420
net: Add SunGEM device emulation as found on Apple UniNorth

This adds a simplistic emulation of the Sun GEM ethernet controller
found in Apple ASICs.

Currently we only support the Apple UniNorth 1.x variant, but the
other Apple or Sun variants should mostly be a matter of adding
PCI IDs options.

We have a very primitive emulation of a single Broadcom 5201 PHY
which is supported by the MacOS driver.

This model brings out-of-the-box networking to MacOS 9, and all
versions of OS X I tried with the mac99 platform.

Further improvements from Mark:
- Remove sungem.h file, moving constants into sungem.c as required
- Switch to using tracepoints for debugging
- Split register blocks into separate memory regions
- Use arrays in SunGEMState to hold register values
- Add state-saving support

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
default-configs/ppc-softmmu.mak
hw/net/Makefile.objs
hw/net/sungem.c [new file with mode: 0644]
hw/net/trace-events
hw/pci/pci.c
include/hw/pci/pci_ids.h